=========================================================== .___ __ __ _________________ __ __ __| _/|__|/ |_ / ___\_` __ \__ \ | | \/ __ | | \\_ __\ / /_/ > | \// __ \| | / /_/ | | || | \___ /|__| (____ /____/\____ | |__||__| /_____/ \/ \/ grep rough audit - static analysis tool v2.8 written by @Wireghoul =================================[justanotherhacker.com]=== aseba-plugin-blockly-20180211+git/closure-library/scripts/ci/sauce_connect.sh-22- aseba-plugin-blockly-20180211+git/closure-library/scripts/ci/sauce_connect.sh:23:SAUCE_ACCESS_KEY=`echo $SAUCE_ACCESS_KEY | rev` aseba-plugin-blockly-20180211+git/closure-library/scripts/ci/sauce_connect.sh-24- ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js-163-Mc(this,a)}function Bk(a,b,c,d){qk.call(this,a,b,c,d)}function S6(){P6.call(this,"SINGLELINE",1)}function V6(){P6.call(this,"SOURCELESS",3)}function kqc(a){if(!a)throw CV(new svc);}function hCc(a){if(!a)throw CV(new uyc);}function nCc(a){if(!a)throw CV(new klc);}function cCc(a){if(!a)throw CV(new Mfb);}function kB(a,b){this.i=a;this.a=new BB(b)}function K9(a,b,c){return Hbb(a.a,a.q,b,c)}function PPb(a,b,c){return GQb(a.g,b).c==c}function eFb(a,b){return fFb(a,cFb(a,b.b))}function M$b(a){return!!(!a.d? aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js:164:null:a.d.a)}function Jqc(a){return OBc(a.a,a.a.length)}function krc(a,b){return mrc(a,a.length,b)}function lrc(a,b){return nrc(a,a.length,b)}function Mvb(){return(new Date).getTime()}function bBb(){bBb=bW;aBb=new eBb(new xwc)}function Axc(a){a.b=new Uxc(a);a.c=new xwc}function HBc(a){return a.c.exec(a.a)!=null}function fD(a){bD();return parseInt(a)||-1}function cvc(a){bvc();return a==$uc?null:a}function FQb(a){GQb(a,0);return Fqc(a.b,0)}function fy(a){var b;return vn(),b=a,Cp(b)}function nbb(a){lbb(); aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js-165-obb.call(this,a,kbb)}function J9b(a){Y7b.call(this,a);A9b(this)}function Uxc(a){Vxc.call(this,a,null,null)}function Rk(a,b,c){ck.call(this,a,b,c,null)}function Be(){ze.call(this,"ALWAYS_TRUE",0)}function kq(){Yf.call(this,new Hxc,new xwc)}function mh(a){this.a=a;this.b=Sf(this.a.d)}function ql(a){this.a=Td(a);this.b=wx(this)}function ec(a,b){Kd(b>=a);this.b=a;this.a=b}function Gk(a,b){this.d=a;Ck(this);this.b=b}function x5(a,b){this.a=a;this.c=b;this.b=0}function r7(a){j7();this.a=a;this.b=new gqc} ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js-1373-t$(a.c,":",false);a.Ag(C,4)}else $d(e2b(b,75)!=0,b)}break;case 94:c_(a,b);g_(a,b);break;case 67:r$(a.c,"switch(");a.Ag(t,4);r$(a.c,")");u$(a.c);V$(a,t.d);v$(a.c,c==0);break;case 68:Zd(p==2);r$(a.c,"case ");a.Ag(t,4);X$(a,H);break;case 69:Zd(p==1);r$(a.c,cFc);X$(a,t);break;case 83:Zd(p==2);if(t.j!=(w7b(),c6b))throw CV(new akc(pFc));a.Ag(t,4);r$(a.c,":");H.j==U4b||a.c.vg();b_(a,H,c==1?1:4,true);break;case 92:a.g&&r$(a.c,"(");a.Ag(t,4);a.g&&r$(a.c,")");break;case 115:a.Ag(t,2);a.Ag(t.d,4);break;case 116:r$(a.c, aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js:1374:"`");for(i=t;i;i=i.d)if(i.j==(w7b(),$6b))U$(a,j_(a,i.qi(),'"',"'","\\`",MCc,false,false));else{a.c.gg("${");a.Ag(i.b,2);r$(a.c,"}")}r$(a.c,"`");break;case 120:r$(a.c,HCc);break;case 121:r$(a.c,ECc);break;case 122:r$(a.c,FCc);break;case 126:r$(a.c,"any");break;case 128:r$(a.c,rFc);break;case 130:a.Ag(t,4);break;case 134:Y$(a,t,nkb((w7b(),A4b)),c);r$(a.c,"[]");break;case 123:X=t;r$(a.c,"(");a_(a,t.d,true,4,",");r$(a.c,")");t$(a.c,"=>",true);a.Ag(X,4);break;case 125:a_(a,t,true,4,"|");break;case 132:r$(a.c, aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js-1375-"{");a_(a,t,false,4,",");r$(a.c,"}");break;case 124:a.Ag(t,4);r$(a.c,"<");a_(a,t.d,true,4,",");r$(a.c,">");break;case 136:r$(a.c,"<");a_(a,t,false,0,",");r$(a.c,">");break;case 135:$$(a,b.qi());if(b.b){r$(a.c,gFc);a.c.vg();a.Ag(b.b,4)}break;case 148:{Zd(p==3);J=t;bb=t.d;I=H;r$(a.c,sFc);a.Ag(J,4);A=g2b(J,81);!!A&&a.Ag(A,4);if(bb.j!=(w7b(),r5b)){r$(a.c,gFc);ab=bb.b;a.Ag(ab,4);while(ab=ab.d){r$(a.c,",");a.c.vg();a.Ag(ab,4)}}a.Ag(I,4)}break;case 151:{Zd(p==2);J=t;I=H;r$(a.c,tFc);a.Ag(J,4);a.Ag(I,4);break}case 159:{Zd(p== ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js-1458-a.a+="\\n * @param {WebGLShader} shader\\n * @return {string}\\n * @nosideeffects\\n */\\nWEBGL_debug_shaders.prototype.getTranslatedShaderSource = function(shader) {};\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/\\n * @constructor\\n * @noalias\\n */\\nfunction WEBGL_compressed_texture_s3tc() {}\\n\\n/** @type {number} */\\nWEBGL_compressed_texture_s3tc.prototype.COMPRESSED_RGB_S3TC_DXT1_EXT;\\n\\n/** @type {number} */\\nWEBGL_compressed_texture_s3tc.prototype.COMPRESSED_RGBA_S3TC_DXT1_EXT;\\n\\n/** @type {number} */\\nWEBGL_compressed_texture_s3tc.prototype.COMPRESSED_RGBA_S3TC_DXT3_EXT;\\n\\n/** @type {number} */\\nWEBGL_compressed_texture_s3tc.prototype.COMPRESSED_RGBA_S3TC_DXT5_EXT;\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/OES_depth_texture/\\n * @constructor\\n * @noalias\\n */\\nfunction OES_depth_texture() {}\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/OES_element_index_uint/\\n * @constructor\\n * @noalias\\n */\\nfunction OES_element_index_uint() {}\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/EXT_texture_filter_anisotropic/\\n * @constructor\\n * @noalias\\n */\\nfunction EXT_texture_filter_anisotropic() {}\\n\\n/** @type {number} */\\nEXT_texture_filter_anisotropic.prototype.TEXTURE_MAX_ANISOTROPY_EXT;\\n\\n/** @type {number} */\\nEXT_texture_filter_anisotropic.prototype.MAX_TEXTURE_MAX_ANISOTROPY_EXT;\\n\\n\\n/**\\n * @see https://www.khronos.org/registry/webgl/extensions/WEBGL_draw_buffers/\\n * @constructor\\n * @noalias\\n */\\nfunction WEBGL_draw_buffers() {}\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT0_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT1_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT2_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT3_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT4_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT5_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT6_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT7_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT8_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT9_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT10_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT11_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT12_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT13_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT14_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.COLOR_ATTACHMENT15_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER0_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER1_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER2_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER3_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER4_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER5_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER6_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER7_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER8_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER9_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER10_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER11_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER12_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER13_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER14_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.DRAW_BUFFER15_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.MAX_COLOR_ATTACHMENTS_WEBGL;\\n\\n/** @type {number} */\\nWEBGL_draw_buffers.prototype.MAX_DRAW_BUFFERS_WEBGL;\\n\\n/**\\n * @param {Array<number>} buffers Draw buffers.\\n * @return {undefined}\\n */\\nWEBGL_draw_buffers.prototype.drawBuffersWEBGL = function(buffers) {};\\n\\n\\n/**\\n * @see http://www.khronos.org/registry/webgl/extensions/ANGLE_instanced_arrays/\\n * @constructor\\n * @noalias\\n */\\nfunction ANGLE_instanced_arrays() {}\\n\\n\\n/** @type {number} */\\nANGLE_instanced_arrays.prototype.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE;\\n\\n\\n/**\\n * @param {number} mode Primitive type.\\n * @param {number} first First vertex.\\n * @param {number} count Number of vertices per instance.\\n * @param {number} primcount Number of instances.\\n * @return {undefined}\\n */\\nANGLE_instanced_arrays.prototype.drawArraysInstancedANGLE = function(\\n mode, first, count, primcount) {};\\n\\n\\n/**\\n * @param {number} mode Primitive type.\\n * @param {number} count Number of vertex indices per instance.\\n * @param {number} type Type of a vertex index.\\n * @param {number} offset Offset to the first vertex index.\\n * @param {number} primcount Number of instances.\\n * @return {undefined}\\n */\\nANGLE_instanced_arrays.prototype.drawElementsInstancedANGLE = function(\\n mode, count, type, offset, primcount) {};\\n\\n\\n/**\\n * @param {number} index Attribute index.\\n * @param {number} divisor Instance divisor.\\n * @return {undefined}\\n */\\nANGLE_instanced_arrays.prototype.vertexAttribDivisorANGLE = function(\\n index, divisor) {};\\n\\n\",\"externs/fetchapi.js\":\"/*\\n * Copyright 2014 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Definitions of the fetch api.\\n *\\n * This api is still in development and not yet stable. Use at your\\n * own risk.\\n *\\n * Based on Living Standard \u2014 Last Updated 17 August 2016\\n *\\n * @see https://fetch.spec.whatwg.org/\\n * @externs\\n */\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://w3c.github.io/webappsec-referrer-policy/#enumdef-referrerpolicy\\n * Possible values: '', 'no-referrer', 'no-referrer-when-downgrade',\\n * 'same-origin', 'origin', 'strict-origin', 'origin-when-cross-origin',\\n * 'strict-origin-when-cross-origin', 'unsafe-url'\\n */\\nvar ReferrerPolicy;\\n\\n\\n/**\\n * @typedef {!Headers|!Array<!Array<string>>|!IObject<string,string>}\\n * @see https://fetch.spec.whatwg.org/#headersinit\\n */\\nvar HeadersInit;\\n\\n\\n/**\\n * @param {!HeadersInit=} opt_headersInit\\n * @constructor\\n * @implements {Iterable<!Array<string>>}\\n * @see https://fetch.spec.whatwg.org/#headers\\n */\\nfunction Headers(opt_headersInit) {}\\n\\n/**\\n * @param {string} name\\n * @param {string} value\\n * @return {undefined}\\n */\\nHeaders.prototype.append = function(name, value) {};\\n\\n/**\\n * @param {string} name\\n * @return {undefined}\\n */\\nHeaders.prototype.delete = function(name) {};\\n\\n/** @return {!IteratorIterable<!Array<string>>} */\\nHeaders.prototype.entries = function() {};\\n\\n/**\\n * @param {string} name\\n * @return {?string}\\n */\\nHeaders.prototype.get = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @return {!Array<string>}\\n */\\nHeaders.prototype.getAll = function(name) {};\\n\\n/**\\n * @param {string} name\\n * @return {boolean}\\n */\\nHeaders.prototype.has = function(name) {};\\n\\n/** @return {!Iterator<string>} */\\nHeaders.prototype.keys = function() {};\\n\\n/**\\n * @param {string} name\\n * @param {string} value\\n * @return {undefined}\\n */\\nHeaders.prototype.set = function(name, value) {};\\n\\n/** @return {!Iterator<string>} */\\nHeaders.prototype.values = function() {};\\n\\n/** @return {!Iterator<!Array<string>>} */\\nHeaders.prototype[Symbol.iterator] = function() {};\\n\\n\\n/**\\n * @typedef {!Blob|!BufferSource|!FormData|string}\\n * @see https://fetch.spec.whatwg.org/#bodyinit\\n */\\nvar BodyInit;\\n\\n\\n/**\\n * @typedef {!BodyInit|!ReadableStream}\\n * @see https://fetch.spec.whatwg.org/#responsebodyinit\\n */\\nvar ResponseBodyInit;\\n\\n\\n/**\\n * @interface\\n * @see https://fetch.spec.whatwg.org/#body\\n */\\nfunction Body() {};\\n\\n/** @type {boolean} */\\nBody.prototype.bodyUsed;\\n\\n/** @return {!Promise<!ArrayBuffer>} */\\nBody.prototype.arrayBuffer = function() {};\\n\\n/** @return {!Promise<!Blob>} */\\nBody.prototype.blob = function() {};\\n\\n/** @return {!Promise<!FormData>} */\\nBody.prototype.formData = function() {};\\n\\n/** @return {!Promise<*>} */\\nBody.prototype.json = function() {};\\n\\n/** @return {!Promise<string>} */\\nBody.prototype.text = function() {};\\n\\n\\n/**\\n * @typedef {!Request|string}\\n * @see https://fetch.spec.whatwg.org/#requestinfo\\n */\\nvar RequestInfo;\\n\\n\\n/**\\n * @param {!RequestInfo} input\\n * @param {!RequestInit=} opt_init\\n * @constructor\\n * @implements {Body}\\n * @see https://fetch.spec.whatwg.org/#request\\n */\\nfunction Request(input, opt_init) {}\\n\\n/** @override */\\nRequest.prototype.bodyUsed;\\n\\n/** @override */\\nRequest.prototype.arrayBuffer = function() {};\\n\\n/** @override */\\nRequest.prototype.blob = function() {};\\n\\n/** @override */\\nRequest.prototype.formData = function() {};\\n\\n/** @override */\\nRequest.prototype.json = function() {};\\n\\n/** @override */\\nRequest.prototype.text = function() {};\\n\\n/** @type {string} */\\nRequest.prototype.method;\\n\\n/** @type {string} */\\nRequest.prototype.url;\\n\\n/** @type {!Headers} */\\nRequest.prototype.headers;\\n\\n/** @type {!FetchRequestType} */\\nRequest.prototype.type;\\n\\n/** @type {!RequestDestination} */\\nRequest.prototype.destination;\\n\\n/** @type {string} */\\nRequest.prototype.referrer;\\n\\n/** @type {!RequestMode} */\\nRequest.prototype.mode;\\n\\n/** @type {!RequestCredentials} */\\nRequest.prototype.credentials;\\n\\n/** @type {!RequestCache} */\\nRequest.prototype.cache;\\n\\n/** @type {!RequestRedirect} */\\nRequest.prototype.redirect;\\n\\n/** @type {string} */\\nRequest.prototype.integrity;\\n\\n/** @return {!Request} */\\nRequest.prototype.clone = function() {};\\n\\n\\n/**\\n * @record\\n * @see https://fetch.spec.whatwg.org/#requestinit\\n */\\nfunction RequestInit() {};\\n\\n/** @type {(undefined|string)} */\\nRequestInit.prototype.method;\\n\\n/** @type {(undefined|!HeadersInit)} */\\nRequestInit.prototype.headers;\\n\\n/** @type {(undefined|?BodyInit)} */\\nRequestInit.prototype.body;\\n\\n/** @type {(undefined|string)} */\\nRequestInit.prototype.referrer;\\n\\n/** @type {(undefined|!ReferrerPolicy)} */\\nRequestInit.prototype.referrerPolicy;\\n\\n/** @type {(undefined|!RequestMode)} */\\nRequestInit.prototype.mode;\\n\\n/** @type {(undefined|!RequestCredentials)} */\\nRequestInit.prototype.credentials;\\n\\n/** @type {(undefined|!RequestCache)} */\\nRequestInit.prototype.cache;\\n\\n/** @type {(undefined|!RequestRedirect)} */\\nRequestInit.prototype.redirect;\\n\\n/** @type {(undefined|string)} */\\nRequestInit.prototype.integrity;\\n\\n/** @type {(undefined|null)} */\\nRequestInit.prototype.window;\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requesttype\\n * Possible values: '', 'audio', 'font', 'image', 'script', 'style',\\n * 'track', 'video'\\n */\\nvar FetchRequestType;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requestdestination\\n * Possible values: '', 'document', 'embed', 'font', 'image', 'manifest',\\n * 'media', 'object', 'report', 'script', 'serviceworker', 'sharedworker',\\n * 'style', 'worker', 'xslt'\\n */\\nvar RequestDestination;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requestmode\\n * Possible values: 'navigate', 'same-origin', 'no-cors', 'cors'\\n */\\nvar RequestMode ;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requestcredentials\\n * Possible values: 'omit', 'same-origin', 'include'\\n */\\nvar RequestCredentials;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requestcache\\n * Possible values: 'default', 'no-store', 'reload', 'no-cache', 'force-cache',\\n * 'only-if-cached'\\n */\\nvar RequestCache;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#requestredirect\\n * Possible values: 'follow', 'error', 'manual'\\n */\\nvar RequestRedirect;\\n\\n\\n/**\\n * @param {?ResponseBodyInit=} opt_body\\n * @param {!ResponseInit=} opt_init\\n * @constructor\\n * @implements {Body}\\n * @see https://fetch.spec.whatwg.org/#response\\n */\\nfunction Response(opt_body, opt_init) {}\\n\\n/** @return {!Response} */\\nResponse.error = function() {};\\n\\n/**\\n * @param {string} url\\n * @param {number=} opt_status\\n * @return {!Response}\\n */\\nResponse.redirect = function(url, opt_status) {};\\n\\n/** @override */\\nResponse.prototype.bodyUsed;\\n\\n/** @override */\\nResponse.prototype.arrayBuffer = function() {};\\n\\n/** @override */\\nResponse.prototype.blob = function() {};\\n\\n/** @override */\\nResponse.prototype.formData = function() {};\\n\\n/** @override */\\nResponse.prototype.json = function() {};\\n\\n/** @override */\\nResponse.prototype.text = function() {};\\n\\n/** @type {!ResponseType} */\\nResponse.prototype.type;\\n\\n/** @type {string} */\\nResponse.prototype.url;\\n\\n/** @type {boolean} */\\nResponse.prototype.redirected;\\n\\n/** @type {number} */\\nResponse.prototype.status;\\n\\n/** @type {boolean} */\\nResponse.prototype.ok;\\n\\n/** @type {string} */\\nResponse.prototype.statusText;\\n\\n/** @type {!Headers} */\\nResponse.prototype.headers;\\n\\n/** @type {?ReadableStream} */\\nResponse.prototype.body;\\n\\n/** @type {!Promise<!Headers>} */\\nResponse.prototype.trailer;\\n\\n/** @return {!Response} */\\nResponse.prototype.clone = function() {};\\n\\n\\n/**\\n * @record\\n * @see https://fetch.spec.whatwg.org/#responseinit\\n */\\nfunction ResponseInit() {};\\n\\n/** @type {(undefined|number)} */\\nResponseInit.prototype.status;\\n\\n/** @type {(undefined|string)} */\\nResponseInit.prototype.statusText;\\n\\n/** @type {(undefined|!HeadersInit)} */\\nResponseInit.prototype.headers;\\n\\n\\n/**\\n * @typedef {string}\\n * @see https://fetch.spec.whatwg.org/#responsetype\\n * Possible values: 'basic', 'cors', 'default', 'error', 'opaque',\\n * 'opaqueredirect'\\n */\\nvar ResponseType;\\n\\n/**\\n * @param {!RequestInfo} input\\n * @param {!RequestInit=} opt_init\\n * @return {!Promise<!Response>}\\n * @see https://fetch.spec.whatwg.org/#fetch-method\\n */\\nfunction fetch(input, opt_init) {}\\n\\n/**\\n * @param {!RequestInfo} input\\n * @param {!RequestInit=} opt_init\\n * @return {!Promise<!Response>}\\n * @see https://fetch.spec.whatwg.org/#fetch-method\\n */\\nWindow.prototype.fetch = function(input, opt_init) {};\\n\\n/**\\n * @param {!RequestInfo} input\\n * @param {!RequestInit=} opt_init\\n * @return {!Promise<!Response>}\\n * @see https://fetch.spec.whatwg.org/#fetch-method\\n */\\nWorkerGlobalScope.prototype.fetch = function(input, opt_init) {};\\n\",\"externs/streamsapi.js\":\"/*\\n * Copyright 2015 The Closure Compiler Authors\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n/**\\n * @fileoverview Streams API definitions\\n *\\n * Based on Living Standard \u2014 Last Updated 5 August 2016\\n * https://streams.spec.whatwg.org/commit-snapshots/34ecaadbcce8df9943d7a2cdb7fca4dc25914df4/\\n *\\n * @see https://streams.spec.whatwg.org/\\n * @externs\\n */\\n\\n\\n/** @typedef {{ value:*, done:boolean }} */\\nvar IteratorResult;\\n\\n\\n/**\\n * @typedef {!CountQueuingStrategy|!ByteLengthQueuingStrategy|{\\n * size: (undefined|function(*): number),\\n * highWaterMark: number\\n * }}\\n"; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js:1459:a.a+=" */\\nvar QueuingStrategy;\\n\\n\\n/**\\n * @record\\n */\\nfunction TransformStream() {};\\n\\n/** @type {!WritableStream} */\\nTransformStream.prototype.writable;\\n\\n/** @type {!ReadableStream} */\\nTransformStream.prototype.readable;\\n\\n\\n/**\\n * @record\\n */\\nfunction PipeOptions() {};\\n\\n/** @type {undefined|boolean} */\\nPipeOptions.prototype.preventClose;\\n\\n/** @type {undefined|boolean} */\\nPipeOptions.prototype.preventAbort;\\n\\n/** @type {undefined|boolean} */\\nPipeOptions.prototype.preventCancel;\\n\\n\\n/**\\n * @record\\n */\\nfunction ReadableStreamSource() {};\\n\\n/**\\n * @type {(undefined|\\n * function((!ReadableByteStreamController|!ReadableStreamDefaultController)):(!IThenable<*>|undefined))}\\n */\\nReadableStreamSource.prototype.start;\\n\\n/**\\n * @type {(undefined|\\n * function((!ReadableByteStreamController|!ReadableStreamDefaultController)):(!IThenable<*>|undefined))}\\n */\\nReadableStreamSource.prototype.pull;\\n\\n/** @type {(undefined|function(*):(!Promise<*>|undefined))} */\\nReadableStreamSource.prototype.cancel;\\n\\n/** @type {(undefined|string)} */\\nReadableStreamSource.prototype.type;\\n\\n/** @type {(undefined|number)} */\\nReadableStreamSource.prototype.autoAllocateChunkSize;\\n\\n\\n/**\\n * @param {!ReadableStreamSource=} opt_underlyingSource\\n * @param {!QueuingStrategy=} opt_queuingStrategy\\n * @constructor\\n * @see https://streams.spec.whatwg.org/#rs-class\\n */\\nfunction ReadableStream(opt_underlyingSource, opt_queuingStrategy) {};\\n\\n/**\\n * @type {boolean}\\n * @see https://streams.spec.whatwg.org/#rs-locked\\n */\\nReadableStream.prototype.locked;\\n\\n/**\\n * @param {*} reason\\n * @return {!Promise<void>}\\n * @see https://streams.spec.whatwg.org/#rs-cancel\\n */\\nReadableStream.prototype.cancel = function(reason) {};\\n\\n/**\\n * @param {{ mode:(undefined|string) }=} opt_options\\n * @return {(!ReadableStreamDefaultReader|!ReadableStreamBYOBReader)}\\n * @see https://streams.spec.whatwg.org/#rs-get-reader\\n */\\nReadableStream.prototype.getReader = function(opt_options) {};\\n\\n/**\\n * @param {!TransformStream} transform\\n * @param {!PipeOptions=} opt_options\\n * @return {!ReadableStream}\\n * @see https://streams.spec.whatwg.org/#rs-pipe-through\\n */\\nReadableStream.prototype.pipeThrough = function(transform, opt_options) {};\\n\\n/**\\n * @param {!WritableStream} dest\\n * @param {!PipeOptions=} opt_options\\n * @return {!Promise<void>}\\n * @see https://streams.spec.whatwg.org/#rs-pipe-to\\n */\\nReadableStream.prototype.pipeTo = function(dest, opt_options) {};\\n\\n/**\\n * @return {!Array<!ReadableStream>}\\n * @see https://streams.spec.whatwg.org/#rs-tee\\n */\\nReadableStream.prototype.tee = function() {};\\n\\n\\n/**\\n * The ReadableStreamDefaultReader constructor is generally not meant to be used directly;\\n * instead, a stream\u2019s getReader() method should be used.\\n *\\n * @interface\\n * @see https://streams.spec.whatwg.org/#default-reader-class\\n */\\nfunction ReadableStreamDefaultReader() {};\\n\\n/**\\n * @type {!Promise<void>}\\n * @see https://streams.spec.whatwg.org/#default-reader-closed\\n */\\nReadableStreamDefaultReader.prototype.closed;\\n\\n/**\\n * @param {*} reason\\n * @return {!Promise<*>}\\n * @see https://streams.spec.whatwg.org/#default-reader-cancel\\n */\\nReadableStreamDefaultReader.prototype.cancel = function(reason) {};\\n\\n/**\\n * @return {!Promise<!IteratorResult>}\\n * @see https://streams.spec.whatwg.org/#default-reader-read\\n */\\nReadableStreamDefaultReader.prototype.read = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#default-reader-release-lock\\n */\\nReadableStreamDefaultReader.prototype.releaseLock = function() {};\\n\\n\\n/**\\n * The ReadableStreamBYOBReader constructor is generally not meant to be used\\n * directly; instead, a stream\u2019s getReader() method should be used.\\n *\\n * @interface\\n * @see https://streams.spec.whatwg.org/#byob-reader-class\\n */\\nfunction ReadableStreamBYOBReader() {};\\n\\n/**\\n * @type {!Promise<void>}\\n * @see https://streams.spec.whatwg.org/#byob-reader-closed\\n */\\nReadableStreamBYOBReader.prototype.closed;\\n\\n/**\\n * @param {*} reason\\n * @return {!Promise<*>}\\n * @see https://streams.spec.whatwg.org/#byob-reader-cancel\\n */\\nReadableStreamBYOBReader.prototype.cancel = function(reason) {};\\n\\n/**\\n * @param {!ArrayBufferView} view\\n * @return {!Promise<!IteratorResult>}\\n * @see https://streams.spec.whatwg.org/#byob-reader-read\\n */\\nReadableStreamBYOBReader.prototype.read = function(view) {};\\n\\n/**\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#byob-reader-release-lock\\n */\\nReadableStreamBYOBReader.prototype.releaseLock = function() {};\\n\\n\\n/**\\n * The ReadableStreamDefaultController constructor cannot be used directly;\\n * it only works on a ReadableStream that is in the middle of being constructed.\\n *\\n * @interface\\n * @see https://streams.spec.whatwg.org/#rs-default-controller-class\\n */\\nfunction ReadableStreamDefaultController() {};\\n\\n/**\\n * @type {number}\\n * @see https://streams.spec.whatwg.org/#rs-default-controller-desired-size\\n */\\nReadableStreamDefaultController.prototype.desiredSize;\\n\\n/**\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rs-default-controller-close\\n */\\nReadableStreamDefaultController.prototype.close = function() {};\\n\\n/**\\n * @param {*} chunk\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rs-default-controller-enqueue\\n */\\nReadableStreamDefaultController.prototype.enqueue = function(chunk) {};\\n\\n/**\\n * @param {*} err\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rs-default-controller-error\\n */\\nReadableStreamDefaultController.prototype.error = function(err) {};\\n\\n\\n/**\\n * The ReadableByteStreamController constructor cannot be used directly;\\n * it only works on a ReadableStream that is in the middle of being constructed.\\n *\\n * @interface\\n * @see https://streams.spec.whatwg.org/#rbs-controller-class\\n */\\nfunction ReadableByteStreamController() {};\\n\\n/**\\n * @type {!ReadableStreamBYOBRequest}\\n * @see https://streams.spec.whatwg.org/#rbs-controller-byob-request\\n */\\nReadableByteStreamController.prototype.byobRequest;\\n\\n/**\\n * @type {number}\\n * @see https://streams.spec.whatwg.org/#rbs-controller-desired-size\\n */\\nReadableByteStreamController.prototype.desiredSize;\\n\\n/**\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rbs-controller-close\\n */\\nReadableByteStreamController.prototype.close = function() {};\\n\\n/**\\n * @param {!ArrayBufferView} chunk\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rbs-controller-enqueue\\n */\\nReadableByteStreamController.prototype.enqueue = function(chunk) {};\\n\\n/**\\n * @param {*} err\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rbs-controller-error\\n */\\nReadableByteStreamController.prototype.error = function(err) {};\\n\\n\\n/**\\n * @interface\\n * @see https://streams.spec.whatwg.org/#rs-byob-request-class\\n */\\nfunction ReadableStreamBYOBRequest() {};\\n\\n/**\\n * @type {!ArrayBufferView}\\n * @see https://streams.spec.whatwg.org/#rs-byob-request-view\\n */\\nReadableStreamBYOBRequest.prototype.view;\\n\\n/**\\n * @param {number} bytesWritten\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rs-byob-request-respond\\n */\\nReadableStreamBYOBRequest.prototype.respond = function(bytesWritten) {};\\n\\n/**\\n * @param {!ArrayBufferView} view\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#rs-byob-request-respond-with-new-view\\n */\\nReadableStreamBYOBRequest.prototype.respondWithNewView = function(view) {};\\n\\n\\n/**\\n * @record\\n */\\nfunction WritableStreamSink() {};\\n\\n/** @type {(undefined|function(!WritableStreamDefaultController):(!IThenable<*>|undefined))}*/\\nWritableStreamSink.prototype.start;\\n\\n/** @type {(undefined|function(!WritableStreamDefaultController):(!IThenable<*>|undefined))}*/\\nWritableStreamSink.prototype.write;\\n\\n/** @type {(undefined|function():(!IThenable<*>|undefined))} */\\nWritableStreamSink.prototype.close;\\n\\n/** @type {(undefined|function(*):(!IThenable<*>|undefined))} */\\nWritableStreamSink.prototype.abort;\\n\\n\\n/**\\n * @param {!WritableStreamSink=} opt_underlyingSink\\n * @param {!QueuingStrategy=} opt_queuingStrategy\\n * @constructor\\n * @see https://streams.spec.whatwg.org/#ws-class\\n */\\nfunction WritableStream(opt_underlyingSink, opt_queuingStrategy) {};\\n\\n/**\\n * @type {boolean}\\n * @see https://streams.spec.whatwg.org/#ws-locked\\n */\\nWritableStream.prototype.locked;\\n\\n/**\\n * @param {*} reason\\n * @return {!Promise<undefined>}\\n * @see https://streams.spec.whatwg.org/#ws-abort\\n */\\nWritableStream.prototype.abort = function(reason) {};\\n\\n/**\\n * @return {!WritableStreamDefaultWriter}\\n * @see https://streams.spec.whatwg.org/#ws-get-writer\\n */\\nWritableStream.prototype.getWriter = function() {};\\n\\n\\n/**\\n * @interface\\n * @see https://streams.spec.whatwg.org/#default-writer-class\\n */\\nfunction WritableStreamDefaultWriter() {};\\n\\n/**\\n * @type {!Promise<undefined>}\\n * @see https://streams.spec.whatwg.org/#default-writer-closed\\n */\\nWritableStreamDefaultWriter.prototype.closed;\\n\\n/**\\n * @type {number}\\n * @see https://streams.spec.whatwg.org/#default-writer-desiredSize\\n */\\nWritableStreamDefaultWriter.prototype.desiredSize;\\n\\n/**\\n * @type {!Promise<number>}\\n * @see https://streams.spec.whatwg.org/#default-writer-ready\\n */\\nWritableStreamDefaultWriter.prototype.ready;\\n\\n/**\\n * @param {*} reason\\n * @return {!Promise<undefined>}\\n * @see https://streams.spec.whatwg.org/#default-writer-abort\\n */\\nWritableStreamDefaultWriter.prototype.abort = function(reason) {};\\n\\n/**\\n * @return {!Promise<undefined>}\\n * @see https://streams.spec.whatwg.org/#default-writer-close\\n */\\nWritableStreamDefaultWriter.prototype.close = function() {};\\n\\n/**\\n * @return {undefined}\\n * @see https://streams.spec.whatwg.org/#default-writer-release-lock\\n */\\nWritableStreamDefaultWriter.prototype.releaseLock = function() {};\\n\\n/**\\n * @param {*} chunk\\n * @return {!Promise<undefined>}\\n * @see https://streams.spec.whatwg.org/#default-writer-write\\n */\\nWritableStreamDefaultWriter.prototype.write = function(chunk) {};\\n\\n\\n/**\\n * The WritableStreamDefaultController constructor cannot be used directly;\\n * it only works on a WritableStream that is in the middle of being constructed.\\n *\\n * @interface\\n * @see https://streams.spec.whatwg.org/#ws-default-controller-class\\n */\\nfunction WritableStreamDefaultController() {};\\n\\n/**\\n * @param {*} err\\n * @return {!Promise<undefined>}\\n * @see https://streams.spec.whatwg.org/#ws-default-controller-error\\n */\\nWritableStreamDefaultController.prototype.error = function(err) {};\\n\\n\\n/**\\n * @param {{ highWaterMark:number }} config\\n * @constructor\\n * @see https://streams.spec.whatwg.org/#blqs-class\\n */\\nfunction ByteLengthQueuingStrategy(config) {}\\n\\n/**\\n * If we don't want to be strict we can define chunk as {*}\\n * and return as {number|undefined}\\n *\\n * @param {{ byteLength:number }} chunk\\n * @return {number}\\n * @see https://streams.spec.whatwg.org/#blqs-size\\n */\\nByteLengthQueuingStrategy.prototype.size = function(chunk) {};\\n\\n\\n/**\\n * @param {{ highWaterMark:number }} config\\n * @constructor\\n * @see https://streams.spec.whatwg.org/#cqs-class\\n */\\nfunction CountQueuingStrategy(config) {}\\n\\n/**\\n * @param {*} chunk\\n * @return {number}\\n * @see https://streams.spec.whatwg.org/#cqs-size\\n */\\nCountQueuingStrategy.prototype.size = function(chunk) {};\\n\",\"js/build_polyfill_table.js\":\"#!/usr/bin/env node\\n\\n/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'use strict';\\n\\nconst fs = require('fs');\\n\\n/**\\n * Provides an ordering to ensure lower-versioned polyfills don't\\n * depend on higher versions.\\n */\\nconst ORDER = ['es3', 'es5', 'es6', 'es7', 'es8'];\\n\\n/**\\n * Prints to stderr and exits.\\n * @param {string} message\\n */\\nfunction fail(message) {\\n console.error(message);\\n process.exit(1);\\n}\\n\\n/**\\n * Builds up a table of polyfills.\\n */\\nclass PolyfillTable {\\n constructor() {\\n /** @const {!Map<string, !Array<string>>} */\\n this.symbolToFile = new Map();\\n /** @const {!Map<string, !Set<string>>} */\\n this.deps = new Map();\\n /** @const {!Map<string, string>} */\\n this.versions = new Map();\\n /** @const {!Array<!Array<string>>} */\\n this.rows = [];\\n }\\n\\n /**\\n * Returns a shim for $jscomp.polyfill.\\n * @param {string} lib Library currently being scanned.\\n * @return {function(string, ?Function, string, string)}\\n */\\n polyfill(lib) {\\n return (polyfill, impl, fromLang, toLang) => {\\n if (!ORDER.includes(fromLang)) {\\n throw new Error(\\n `Unknown language version ${fromLang} for ${polyfill}`);\\n }\\n\\n if (!ORDER.includes(toLang)) {\\n throw new Error(\\n `Unknown language version ${toLang} for ${polyfill}`);\\n }\\n\\n this.symbolToFile.set(polyfill, this.symbolToFile.get(polyfill) || []);\\n this.symbolToFile.get(polyfill).push(lib);\\n const row = [polyfill, fromLang, toLang];\\n if (impl) {\\n row.push(lib);\\n this.versions.set(lib, maxVersion(this.versions.get(lib), toLang));\\n }\\n this.rows.push(row);\\n };\\n }\\n\\n /**\\n * Reads a JS file and adds it to the table.\\n * @param {string} lib Name of the library.\\n * @param {string} data Contents of the file.\\n */\\n readFile(lib, data) {\\n // Look for 'require' directives and add it to the dependency map.\\n const deps = new Set();\\n this.deps.set(lib, deps);\\n const re = /'require ([^']+)'/g;\\n let match;\\n while (match = re.exec(data)) {\\n match[1].split(' ').forEach(dep => deps.add(dep));\\n }\\n // Now run the file.\\n try {\\n new Function('$jscomp', data)({\\n global: global,\\n polyfill: this.polyfill(lib, table),\\n });\\n } catch (err) {\\n throw new Error('Failed to parse file: ' + lib + ': ' + err);\\n }\\n }\\n\\n /**\\n * Concatenates the table into a string. Throws an error if\\n * there are any symbols provided by multiple files.\\n * @return {string}\\n */\\n build() {\\n const errors = new Set();\\n try {\\n // First check for duplicate provided symbols.\\n for (const entry of this.symbolToFile.entries()) {\\n if (entry[1].length != 1) {\\n errors.add(\\n `ERROR - ${entry[0]} provided by multiple files:${\\n entry[1].map(f => '\\\\n ' + f).join('')}`);\\n }\\n }\\n // Next ensure all deps have nonincreasing versions.\\n checkDeps(errors, this.deps, this.versions);\\n // If there are any errors, we should fail; otherwise concatenate.\\n } catch (err) {\\n errors.add('ERROR - uncaught exception: ' + err.stack);\\n }\\n if (errors.size) {\\n fail(Array.from(errors).join('\\\\n\\\\n'));\\n }\\n return this.rows.sort().map(row => row.join(' ')).join('\\\\n');\\n }\\n}\\n\\n/**\\n * Checks dependencies for the following issues:\\n * (1) cyclic dependencies\\n * (2) missing dependencies\\n * (3) version mismatches\\n * @param {!Set<string>} errors\\n * @param {!Map<string, !Set<string>>} deps\\n * @param {!Map<string, string>} versions\\n */\\nfunction checkDeps(errors, deps, versions) {\\n for (const file of deps.keys()) {\\n const seen = new Set([file]);\\n const queue = [file];\\n const version = versions.get(file);\\n while (queue.length) {\\n const next = queue.shift();\\n for (const dep of deps.get(next) || []) {\\n if (dep == file) errors.add('ERROR - Cyclic dependency:\\\\n ' + dep);\\n if (seen.has(dep)) continue;\\n seen.add(dep);\\n queue.push(dep);\\n if (!deps.has(dep)) {\\n errors.add(\\n 'ERROR - missing dependency:\\\\n ' + dep +\\n ' required from\\\\n ' "; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js-1460-a.a+="+ file);\\n }\\n const depVersion = versions.get(dep);\\n if (version && maxVersion(depVersion, version) != version) {\\n errors.add(\\n 'ERROR - lower version depends on higher version:\\\\n ' +\\n version + ': ' + file + '\\\\n ' + depVersion + ': ' + dep);\\n }\\n }\\n }\\n }\\n}\\n\\n/**\\n * Returns the higher order of the given versions.\\n * @param {string} version1\\n * @param {string} version2\\n * @return {string} The max version.\\n */\\nfunction maxVersion(version1, version2) {\\n return ORDER[Math.max(ORDER.indexOf(version1), ORDER.indexOf(version2))];\\n}\\n\\nconst table = new PolyfillTable();\\n\\nconst reads = process.argv.slice(2).map(filename =>\\n new Promise((fulfill, reject) =>\\n fs.readFile(filename, 'utf8', (err, data) => {\\n try {\\n if (err) {\\n reject(err);\\n } else {\\n const lib = filename.replace(/^.*?\\\\/js\\\\/|\\\\.js$/g, '');\\n table.readFile(lib, data);\\n fulfill('');\\n }\\n } catch (err) {\\n reject(err);\\n }\\n })));\\n\\nPromise.all(reads).then(\\n success => console.log(table.build()),\\n failure => fail(failure.stack));\\n\",\"js/polyfills.txt\":\"Array.from es6 es3 es6/array/from\\nArray.of es6 es3 es6/array/of\\nArray.prototype.copyWithin es6 es3 es6/array/copywithin\\nArray.prototype.entries es6 es3 es6/array/entries\\nArray.prototype.fill es6 es3 es6/array/fill\\nArray.prototype.find es6 es3 es6/array/find\\nArray.prototype.findIndex es6 es3 es6/array/findindex\\nArray.prototype.includes es7 es3 es6/array/includes\\nArray.prototype.keys es6 es3 es6/array/keys\\nArray.prototype.values es8 es3 es6/array/values\\nMap es6 es3 es6/map\\nMath.acosh es6 es3 es6/math/acosh\\nMath.asinh es6 es3 es6/math/asinh\\nMath.atanh es6 es3 es6/math/atanh\\nMath.cbrt es6 es3 es6/math/cbrt\\nMath.clz32 es6 es3 es6/math/clz32\\nMath.cosh es6 es3 es6/math/cosh\\nMath.expm1 es6 es3 es6/math/exp1m\\nMath.hypot es6 es3 es6/math/hypot\\nMath.imul es6 es3 es6/math/imul\\nMath.log10 es6 es3 es6/math/log10\\nMath.log1p es6 es3 es6/math/log1p\\nMath.log2 es6 es3 es6/math/log2\\nMath.sign es6 es3 es6/math/sign\\nMath.sinh es6 es3 es6/math/sinh\\nMath.tanh es6 es3 es6/math/tanh\\nMath.trunc es6 es3 es6/math/trunc\\nNumber.EPSILON es6 es3 es6/number/constants\\nNumber.MAX_SAFE_INTEGER es6 es3 es6/number/constants\\nNumber.MIN_SAFE_INTEGER es6 es3 es6/number/constants\\nNumber.isFinite es6 es3 es6/number/isfinite\\nNumber.isInteger es6 es3 es6/number/isinteger\\nNumber.isNaN es6 es3 es6/number/isnan\\nNumber.isSafeInteger es6 es3 es6/number/issafeinteger\\nNumber.parseFloat es6 es3 es6/number/parsefloat\\nNumber.parseInt es6 es3 es6/number/parseint\\nObject.assign es6 es3 es6/object/assign\\nObject.entries es8 es3 es6/object/entries\\nObject.getOwnPropertyDescriptors es8 es5 es6/object/getownpropertydescriptors\\nObject.getOwnPropertySymbols es6 es5 es6/object/getownpropertysymbols\\nObject.is es6 es3 es6/object/is\\nObject.setPrototypeOf es6 es5 es6/object/setprototypeof\\nObject.values es8 es3 es6/object/values\\nPromise es6 es3 es6/promise\\nProxy es6 es6\\nReflect.apply es6 es3 es6/reflect/apply\\nReflect.construct es6 es3 es6/reflect/construct\\nReflect.defineProperty es6 es5 es6/reflect/defineproperty\\nReflect.deleteProperty es6 es3 es6/reflect/deleteproperty\\nReflect.get es6 es5 es6/reflect/get\\nReflect.getOwnPropertyDescriptor es6 es5 es6/reflect/getownpropertydescriptor\\nReflect.getPrototypeOf es6 es5 es6/reflect/getprototypeof\\nReflect.has es6 es3 es6/reflect/has\\nReflect.isExtensible es6 es3 es6/reflect/isextensible\\nReflect.ownKeys es6 es5 es6/reflect/ownkeys\\nReflect.preventExtensions es6 es3 es6/reflect/preventextensions\\nReflect.set es6 es5 es6/reflect/set\\nReflect.setPrototypeOf es6 es5 es6/reflect/setprototypeof\\nSet es6 es3 es6/set\\nString.fromCodePoint es6 es3 es6/string/fromcodepoint\\nString.prototype.codePointAt es6 es3 es6/string/codepointat\\nString.prototype.endsWith es6 es3 es6/string/endswith\\nString.prototype.includes es6 es3 es6/string/includes\\nString.prototype.normalize es6 es6\\nString.prototype.padEnd es8 es3 es6/string/padend\\nString.prototype.padStart es8 es3 es6/string/padstart\\nString.prototype.repeat es6 es3 es6/string/repeat\\nString.prototype.startsWith es6 es3 es6/string/startswith\\nString.raw es6 es6\\nWeakMap es6 es3 es6/weakmap\\nWeakSet es6 es3 es6/weakset\\n\",\"js/base.js\":\"/*\\n * Copyright 2012 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\\n/**\\n * @fileoverview The base namespace for code injected by the compiler\\n * at compile-time.\\n *\\n * @author nicksantos@google.com (Nick Santos)\\n */\\n\\n/** @const */\\nvar $jscomp = $jscomp || {};\\n\\n/** @const Locals for goog.scope */\\n$jscomp.scope = {};\\n\",\"js/es6/array.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Brings in all ES6 Array polyfills.\\n */\\n'require es6/array/copywithin';\\n'require es6/array/entries';\\n'require es6/array/fill';\\n'require es6/array/find';\\n'require es6/array/findindex';\\n'require es6/array/from';\\n'require es6/array/includes';\\n'require es6/array/keys';\\n'require es6/array/of';\\n'require es6/array/values';\\n\",\"js/es6/array/copywithin.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.copyWithin', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Copies elements from one part of the array to another.\\n *\\n * @this {!IArrayLike<VALUE>}\\n * @param {number} target Start index to copy elements to.\\n * @param {number} start Start index to copy elements from.\\n * @param {number=} opt_end Index from which to end copying.\\n * @return {!IArrayLike<VALUE>} The array, with the copy performed in-place.\\n * @template VALUE\\n */\\n var polyfill = function(target, start, opt_end) {\\n var len = this.length;\\n target = Number(target);\\n start = Number(start);\\n opt_end = Number(opt_end != null ? opt_end : len);\\n if (target < start) {\\n opt_end = Math.min(opt_end, len);\\n while (start < opt_end) {\\n if (start in this) {\\n this[target++] = this[start++];\\n } else {\\n delete this[target++];\\n start++;\\n }\\n }\\n } else {\\n opt_end = Math.min(opt_end, len + start - target);\\n target += opt_end - start;\\n while (opt_end > start) {\\n if (--opt_end in this) {\\n this[--target] = this[opt_end];\\n } else {\\n delete this[target];\\n }\\n }\\n }\\n return this;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/entries.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n'require es6/util/iteratorfromarray';\\n\\n$jscomp.polyfill('Array.prototype.entries', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns an iterator of [key, value] arrays, one for each entry\\n * in the given array.\\n *\\n * @this {!IArrayLike<VALUE>}\\n * @return {!IteratorIterable<!Array<number|VALUE>>}\\n * @template VALUE\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function() {\\n return $jscomp.iteratorFromArray(\\n this, function(i, v) { return [i, v]; });\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/fill.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.fill', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Fills elements of an array with a constant value.\\n *\\n * @this {!IArrayLike<VALUE>}\\n * @param {VALUE} value Value to fill.\\n * @param {number=} opt_start Start index, or zero if omitted.\\n * @param {number=} opt_end End index, or length if omitted.\\n * @return {!IArrayLike<VALUE>} The array, with the fill performed in-place.\\n * @template VALUE\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(value, opt_start, opt_end) {\\n var length = this.length || 0;\\n if (opt_start < 0) {\\n opt_start = Math.max(0, length + /** @type {number} */ (opt_start));\\n }\\n if (opt_end == null || opt_end > length) opt_end = length;\\n opt_end = Number(opt_end);\\n if (opt_end < 0) opt_end = Math.max(0, length + opt_end);\\n for (var i = Number(opt_start || 0); i < opt_end; i++) {\\n this[i] = value;\\n }\\n return this;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/find.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/findinternal';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.find', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Finds and returns an element that satisfies the given predicate.\\n *\\n * @this {!IArrayLike<VALUE>}\\n * @param {function(this: THIS, VALUE, number, !IArrayLike<VALUE>): *}\\n * callback\\n * @param {THIS=} opt_thisArg\\n * @return {VALUE|undefined} The found value, or undefined.\\n * @template VALUE, THIS\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(callback, opt_thisArg) {\\n return $jscomp.findInternal(this, callback, opt_thisArg).v;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/findindex.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/findinternal';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.findIndex', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Finds an element that satisfies the given predicate, returning its index.\\n *\\n * @this {!IArrayLike<VALUE>}\\n * @param {function(this: THIS, VALUE, number, !IArrayLike<VALUE>): *}\\n * callback\\n * @param {THIS=} opt_thisArg\\n * @return {number} The found value, or undefined.\\n * @template VALUE, THIS\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(callback, opt_thisArg) {\\n return $jscomp.findInternal(this, callback, opt_thisArg).i;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/from.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/symbol';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.from', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Creates a new Array from an array-like or iterable object.\\n *\\n * <p>Polyfills the static function Array.from(). Does not support\\n * constructor inheritance (i.e. (subclass of Array).from), and\\n * relies on the compiler to check the validity of inputs rather\\n * than producing spec-compliant TypeErrors.\\n *\\n * @param {!IArrayLike<INPUT>|!Iterable<INPUT>} arrayLike\\n * An array-like or iterable.\\n * @param {(function(this: THIS, INPUT): OUTPUT)=} opt_mapFn\\n * Function to call on each argument.\\n * @param {THIS=} opt_thisArg\\n * Object to use as 'this' when calling mapFn.\\n * @return {!Array<OUTPUT>}\\n * @template INPUT, OUTPUT, THIS\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function(arrayLike, opt_mapFn, opt_thisArg) {\\n $jscomp.initSymbolIterator();\\n opt_mapFn = opt_mapFn != null ? opt_mapFn : function(x) { return x; };\\n var result = [];\\n // NOTE: this is cast to ? because [] on @struct is an error\\n var iteratorFunction = /** @type {?} */ (arrayLike)[Symbol.iterator];\\n if (typeof iteratorFunction == 'function') {\\n arrayLike = iteratorFunction.call(arrayLike);\\n var next;\\n while (!(next = arrayLike.next()).done) {\\n result.push(\\n opt_mapFn.call(/** @type {?} */ (opt_thisArg), next.value));\\n }\\n } else {\\n var len = arrayLike.length; // need to support non-iterables\\n for (var i = 0; i < len; i++) {\\n result.push(\\n opt_mapFn.call(/** @type {?} */ (opt_thisArg), arrayLike[i]));\\n }\\n }\\n return result;\\n };\\n\\n return polyfill;\\"; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js:1461:a.a+="n}, 'es6', 'es3');\\n\",\"js/es6/array/includes.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/object/is';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.includes', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfills Array.prototype.includes.\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes\\n *\\n * @this {!IArrayLike<T>}\\n * @param {T} searchElement\\n * @param {number=} opt_fromIndex\\n * @return {boolean}\\n * @template T\\n * @suppress {reportUnknownTypes}\\n */\\n var includes = function(searchElement, opt_fromIndex) {\\n var array = this;\\n if (array instanceof String) {\\n array = /** @type {!IArrayLike} */ (String(array));\\n }\\n var len = array.length;\\n for (var i = opt_fromIndex || 0; i < len; i++) {\\n if (array[i] == searchElement || Object.is(array[i], searchElement)) {\\n return true;\\n }\\n }\\n return false;\\n };\\n\\n return includes;\\n}, 'es7', 'es3');\\n\",\"js/es6/array/keys.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/util/iteratorfromarray';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.prototype.keys', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns an iterator of keys of the given array.\\n *\\n * @this {!IArrayLike}\\n * @return {!IteratorIterable<number>}\\n */\\n var polyfill = function() {\\n return $jscomp.iteratorFromArray(this, function(i) { return i; });\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/of.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/array/from';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Array.of', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Creates an array from a fixed set of arguments.\\n *\\n * <p>Polyfills the static function Array.of(). Does not support\\n * constructor inheritance (i.e. (subclass of Array).of).\\n *\\n * @param {...T} var_args Elements to include in the array.\\n * @return {!Array<T>}\\n * @template T\\n */\\n var polyfill = function(var_args) {\\n return Array.from(arguments);\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/array/values.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/util/iteratorfromarray';\\n'require util/polyfill';\\n\\n// NOTE: Although Array.prototype.values was added to the 2015 edition of the\\n// spec, we consider it an \\\"ES8\\\" feature because many browsers which are\\n// otherwise ES6-compatible, have not implemented it due to web compatibility\\n// issues. See https://bugs.chromium.org/p/chromium/issues/detail?id=615873\\n$jscomp.polyfill('Array.prototype.values', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns an iterator of values of the given array.\\n *\\n * @this {!IArrayLike<VALUE>}\\n * @return {!IteratorIterable<VALUE>}\\n * @template VALUE\\n * @suppress {reportUnknownTypes}\\n */\\n var polyfill = function() {\\n return $jscomp.iteratorFromArray(this, function(k, v) { return v; });\\n };\\n\\n return polyfill;\\n}, 'es8', 'es3');\\n\",\"js/es6/execute_async_generator.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require base';\\n'require es6/promise';\\n\\n/**\\n * Handle the execution of an async function.\\n *\\n * An async function, foo(a, b), will be rewritten as:\\n *\\n * ```\\n * function foo(a, b) {\\n * let $jscomp$async$arguments = arguments;\\n * let $jscomp$async$this = this;\\n * function* $jscomp$async$generator() {\\n * // original body of foo() with:\\n * // - await (x) replaced with yield (x)\\n * // - arguments replaced with $jscomp$async$arguments\\n * // - this replaced with $jscomp$async$this\\n * }\\n * return $jscomp.executeAsyncGenerator($jscomp$async$generator());\\n * }\\n * ```\\n * @param {!Generator<?>} generator\\n * @return {!Promise<?>}\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.executeAsyncGenerator = function(generator) {\\n function passValueToGenerator(value) {\\n return generator.next(value);\\n }\\n\\n function passErrorToGenerator(error) {\\n return generator.throw(error);\\n }\\n\\n return new Promise(function(resolve, reject) {\\n function handleGeneratorRecord(/** !IIterableResult<*> */ genRec) {\\n if (genRec.done) {\\n resolve(genRec.value);\\n } else {\\n // One can await a non-promise, so genRec.value\\n // might not already be a promise.\\n Promise.resolve(genRec.value)\\n .then(passValueToGenerator, passErrorToGenerator)\\n .then(handleGeneratorRecord, reject);\\n }\\n }\\n\\n handleGeneratorRecord(generator.next());\\n });\\n};\\n\",\"js/es6/map.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/symbol';\\n'require es6/util/makeiterator';\\n'require es6/weakmap';\\n'require util/defines';\\n'require util/owns';\\n'require util/polyfill';\\n\\n\\n/**\\n * Internal record type for entries.\\n * @record\\n * @template KEY, VALUE\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.MapEntry = function() {\\n /** @type {!$jscomp.MapEntry<KEY, VALUE>} */\\n this.previous;\\n /** @type {!$jscomp.MapEntry<KEY, VALUE>} */\\n this.next;\\n /** @type {?Object} */\\n this.head;\\n /** @type {KEY} */\\n this.key;\\n /** @type {VALUE} */\\n this.value;\\n};\\n\\n\\n$jscomp.polyfill('Map',\\n /**\\n * @param {*} NativeMap\\n * @return {*}\\n * @suppress {reportUnknownTypes}\\n */\\n function(NativeMap) {\\n // Perform a conformance check to ensure correct native implementation.\\n var isConformant = !$jscomp.ASSUME_NO_NATIVE_MAP && (function() {\\n if (!NativeMap ||\\n !NativeMap.prototype.entries ||\\n typeof Object.seal != 'function') {\\n return false;\\n }\\n // Some implementations don't support constructor arguments.\\n try {\\n NativeMap = /** @type {function(new: Map, !Iterator=)} */ (NativeMap);\\n var key = Object.seal({x: 4});\\n var map = new NativeMap($jscomp.makeIterator([[key, 's']]));\\n if (map.get(key) != 's' || map.size != 1 || map.get({x: 4}) ||\\n map.set({x: 4}, 't') != map || map.size != 2) {\\n return false;\\n }\\n var /** !Iterator<!Array> */ iter = map.entries();\\n var item = iter.next();\\n if (item.done || item.value[0] != key || item.value[1] != 's') {\\n return false;\\n }\\n item = iter.next();\\n if (item.done || item.value[0].x != 4 ||\\n item.value[1] != 't' || !iter.next().done) {\\n return false;\\n }\\n return true;\\n } catch (err) { // This should hopefully never happen, but let's be safe.\\n return false;\\n }\\n })();\\n if (isConformant) return NativeMap;\\n\\n // We depend on Symbol.iterator, so ensure it's loaded.\\n $jscomp.initSymbol();\\n $jscomp.initSymbolIterator();\\n\\n\\n /** @const {!WeakMap<!Object, string>} */\\n var idMap = new WeakMap();\\n\\n\\n /**\\n * Polyfill for the global Map data type.\\n * @constructor\\n * @struct\\n * @extends {Map<KEY, VALUE>}\\n * @implements {Iterable<!Array<KEY|VALUE>>}\\n * @template KEY, VALUE\\n * @param {!Iterable<!Array<KEY|VALUE>>|!Array<!Array<KEY|VALUE>>|null=}\\n * opt_iterable Optional data to populate the map.\\n */\\n // TODO(sdh): fix param type if heterogeneous arrays ever supported.\\n var PolyfillMap = function(opt_iterable) {\\n /** @private {!Object<!Array<!$jscomp.MapEntry<KEY, VALUE>>>} */\\n this.data_ = {};\\n\\n /** @private {!$jscomp.MapEntry<KEY, VALUE>} */\\n this.head_ = createHead();\\n\\n // Note: this property should not be changed. If we're willing to give up\\n // ES3 support, we could define it as a property directly. It should be\\n // marked readonly if such an annotation ever comes into existence.\\n /** @type {number} */\\n this.size = 0;\\n\\n if (opt_iterable) {\\n var iter = $jscomp.makeIterator(opt_iterable);\\n var entry;\\n while (!(entry = iter.next()).done) {\\n var item =\\n /** @type {!IIterableResult<!Array<KEY|VALUE>>} */ (entry).value;\\n this.set(/** @type {KEY} */ (item[0]), /** @type {VALUE} */ (item[1]));\\n }\\n }\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.set = function(key, value) {\\n var r = maybeGetEntry(this, key);\\n if (!r.list) {\\n r.list = (this.data_[r.id] = []);\\n }\\n if (!r.entry) {\\n r.entry = {\\n next: this.head_,\\n previous: this.head_.previous,\\n head: this.head_,\\n key: key,\\n value: value,\\n };\\n r.list.push(r.entry);\\n this.head_.previous.next = r.entry;\\n this.head_.previous = r.entry;\\n this.size++;\\n } else {\\n r.entry.value = value;\\n }\\n return this;\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.delete = function(key) {\\n var r = maybeGetEntry(this, key);\\n if (r.entry && r.list) {\\n r.list.splice(r.index, 1);\\n if (!r.list.length) delete this.data_[r.id];\\n r.entry.previous.next = r.entry.next;\\n r.entry.next.previous = r.entry.previous;\\n r.entry.head = null;\\n this.size--;\\n return true;\\n }\\n return false;\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.clear = function() {\\n this.data_ = {};\\n this.head_ = this.head_.previous = createHead();\\n this.size = 0;\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.has = function(key) {\\n return !!(maybeGetEntry(this, key).entry);\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.get = function(key) {\\n var entry = maybeGetEntry(this, key).entry;\\n // NOTE: this cast is a lie, but so is the extern.\\n return /** @type {VALUE} */ (entry &&\\n /** @type {VALUE} */ (entry.value));\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.entries = function() {\\n return makeIterator(this, /** @return {!Array<(KEY|VALUE)>} */ function(\\n /** !$jscomp.MapEntry<KEY, VALUE> */ entry) {\\n return ([entry.key, entry.value]);\\n });\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.keys = function() {\\n return makeIterator(this, /** @return {KEY} */ function(\\n /** !$jscomp.MapEntry<KEY, VALUE> */ entry) {\\n return entry.key;\\n });\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.values = function() {\\n return makeIterator(this, /** @return {VALUE} */ function(\\n /** !$jscomp.MapEntry<KEY, VALUE> */ entry) {\\n return entry.value;\\n });\\n };\\n\\n\\n /** @override */\\n PolyfillMap.prototype.forEach = function(callback, opt_thisArg) {\\n var iter = this.entries();\\n var item;\\n while (!(item = iter.next()).done) {\\n var entry = item.value;\\n callback.call(\\n /** @type {?} */ (opt_thisArg),\\n /** @type {VALUE} */ (entry[1]),\\n /** @type {KEY} */ (entry[0]),\\n this);\\n }\\n };\\n\\n\\n /** @type {?} */ (PolyfillMap.prototype)[Symbol.iterator] =\\n PolyfillMap.prototype.entries;\\n\\n\\n /**\\n * Returns an entry or undefined.\\n * @param {!PolyfillMap<KEY, VALUE>} map\\n * @param {KEY} key\\n * @return {{id: string,\\n * list: (!Array<!$jscomp.MapEntry<KEY, VALUE>>|undefined),\\n * index: number,\\n * entry: (!$jscomp.MapEntry<KEY, VALUE>|undefined)}}\\n * @template KEY, VALUE\\n */\\n var maybeGetEntry = function(map, key) {\\n var id = getId(key);\\n var list = map.data_[id];\\n if (list && $jscomp.owns(map.data_, id)) {\\n for (var index = 0; index < list.length; index++) {\\n var entry = list[index];\\n if ((key !== key && entry.key !== entry.key) || key === entry.key) {\\n return {id: id, list: list, index: index, entry: entry};\\n }\\n }\\n }\\n return {id: id, list: list, index: -1, entry: undefined};\\n };\\n\\n\\n /**\\n * Maps over the entries with the given function.\\n * @param {!PolyfillMap<KEY, VALUE>} map\\n * @param {function(!$jscomp.MapEntry<KEY, VALUE>): T} func\\n * @return {!IteratorIterable<T>}\\n * @template KEY, VALUE, T\\n * @private\\n */\\n var makeIterator = function(map, func) {\\n var entry = map.head_;\\n return $jscomp.iteratorPrototype(function() {\\n if (entry) {\\n while (entry.head != map.head_) {\\n entry = entry.previous;\\n }\\n while (entry.next != entry.head) {\\n entry = entry.next;\\n return {done: false, value: func(entry)};\\n }\\n entry = null; // make sure depletion is permanent\\n }\\n return {done: true, value: void 0};\\n });\\n };\\n\\n\\n /**\\n * Makes a new \\\"head\\\" element.\\n * @return {!$jscomp.MapEntry<KEY, VALUE>}\\n * @template KEY, VALUE\\n * @suppress {checkTypes} ignore missing key/value for head only\\n */\\n var createHead = function() {\\n var head = /** type {!$jscomp.MapEntry<KEY, VALUE>} */ ({});\\n head.previous = head.next = head.head = head;\\n retur"; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js-1462-a.a+="n head;\\n };\\n\\n\\n /**\\n * Counter for generating IDs.\\n * @private {number}\\n */\\n var mapIndex = 0;\\n\\n\\n /**\\n * @param {*} obj An extensible object.\\n * @return {string} A unique ID.\\n */\\n var getId = function(obj) {\\n var type = obj && typeof obj;\\n if (type == 'object' || type == 'function') {\\n obj = /** @type {!Object} */ (obj);\\n if (!idMap.has(obj)) {\\n var id = '' + (++mapIndex);\\n idMap.set(obj, id);\\n return id;\\n }\\n return idMap.get(obj);\\n }\\n // Add a prefix since obj could be '__proto__';\\n return 'p_' + obj;\\n };\\n\\n\\n return PolyfillMap;\\n}, 'es6', 'es3');\\n\",\"js/es6/math.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Brings in all ES6 Math polyfills.\\n */\\n'require es6/math/acosh';\\n'require es6/math/asinh';\\n'require es6/math/atanh';\\n'require es6/math/cbrt';\\n'require es6/math/clz32';\\n'require es6/math/cosh';\\n'require es6/math/exp1m';\\n'require es6/math/hypot';\\n'require es6/math/imul';\\n'require es6/math/log10';\\n'require es6/math/log1p';\\n'require es6/math/log2';\\n'require es6/math/sign';\\n'require es6/math/sinh';\\n'require es6/math/tanh';\\n'require es6/math/trunc';\\n\",\"js/es6/math/acosh.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.acosh', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Computes the inverse hyperbolic cosine.\\n *\\n * <p>Polyfills the static function Math.acosh().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The inverse hyperbolic cosine of x.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n return Math.log(x + Math.sqrt(x * x - 1));\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/asinh.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.asinh', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Computes the inverse hyperbolic sine.\\n *\\n * <p>Polyfills the static function Math.asinh().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The inverse hyperbolic sine of x.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n if (x === 0) return x;\\n var y = Math.log(Math.abs(x) + Math.sqrt(x * x + 1));\\n return x < 0 ? -y : y;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/atanh.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n'require es6/math/log1p';\\n\\n$jscomp.polyfill('Math.atanh', function(orig) {\\n if (orig) return orig;\\n var log1p = Math.log1p;\\n\\n /**\\n * Computes the inverse hyperbolic tangent.\\n *\\n * <p>Polyfills the static function Math.atanh().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The inverse hyperbolic tangent +x.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n return (log1p(x) - log1p(-x)) / 2;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/cbrt.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.cbrt', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the cube root of the number, handling negatives safely.\\n *\\n * <p>Polyfills the static function Math.cbrt().\\n *\\n * @param {number} x Any number, or value that can be coerced into a number.\\n * @return {number} The cube root of x.\\n */\\n var polyfill = function(x) {\\n if (x === 0) return x;\\n x = Number(x);\\n var y = Math.pow(Math.abs(x), 1 / 3);\\n return x < 0 ? -y : y;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/clz32.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.clz32', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Counts the leading zeros in the 32-bit binary representation.\\n *\\n * <p>Polyfills the static function Math.clz32().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The number of leading zero bits.\\n */\\n var polyfill = function(x) {\\n // This binary search algorithm is taken from v8.\\n x = Number(x) >>> 0; // first ensure we have a 32-bit unsigned integer.\\n if (x === 0) return 32;\\n var result = 0;\\n if ((x & 0xFFFF0000) === 0) {\\n x <<= 16;\\n result += 16;\\n }\\n if ((x & 0xFF000000) === 0) {\\n x <<= 8;\\n result += 8;\\n }\\n if ((x & 0xF0000000) === 0) {\\n x <<= 4;\\n result += 4;\\n }\\n if ((x & 0xC0000000) === 0) {\\n x <<= 2;\\n result += 2;\\n }\\n if ((x & 0x80000000) === 0) result++;\\n return result;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/cosh.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.cosh', function(orig) {\\n if (orig) return orig;\\n var exp = Math.exp;\\n\\n /**\\n * Computes the hyperbolic cosine.\\n *\\n * <p>Polyfills the static function Math.cosh().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The hyperbolic cosine of x.\\n */\\n var polyfill = function(x) {\\n x = Number(x);\\n return (exp(x) + exp(-x)) / 2;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/exp1m.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.expm1', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Exponentiates x and then subtracts one. This is implemented in a\\n * way that is accurate for numbers close to zero.\\n *\\n * <p>Polyfills the static function Math.expm1().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The exponential of x, less 1.\\n */\\n var polyfill = function(x) {\\n // This implementation is based on the Taylor expansion\\n // exp(x) ~ 1 + x + x^2/2 + x^3/6 + x^4/24 + ...\\n x = Number(x);\\n if (x < .25 && x > -.25) {\\n var y = x;\\n var d = 1;\\n var z = x;\\n var zPrev = 0;\\n while (zPrev != z) {\\n y *= x / (++d);\\n z = (zPrev = z) + y;\\n }\\n return z;\\n }\\n return Math.exp(x) - 1;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/hypot.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.hypot', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the sum of its arguments in quadrature.\\n *\\n * <p>Polyfills the static function Math.hypot().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @param {number} y Any number, or value that can be coerced to a number.\\n * @param {...*} var_args More numbers.\\n * @return {number} The square root of the sum of the squares.\\n */\\n var polyfill = function(x, y, var_args) {\\n // Make the type checker happy.\\n x = Number(x);\\n y = Number(y);\\n var i, z, sum;\\n // Note: we need to normalize the numbers in case of over/underflow.\\n var max = Math.max(Math.abs(x), Math.abs(y));\\n for (i = 2; i < arguments.length; i++) {\\n max = Math.max(max, Math.abs(arguments[i]));\\n }\\n if (max > 1e100 || max < 1e-100) {\\n x = x / max;\\n y = y / max;\\n sum = x * x + y * y;\\n for (i = 2; i < arguments.length; i++) {\\n z = Number(arguments[i]) / max;\\n sum += z * z;\\n }\\n return Math.sqrt(sum) * max;\\n } else {\\n sum = x * x + y * y;\\n for (i = 2; i < arguments.length; i++) {\\n z = Number(arguments[i]);\\n sum += z * z;\\n }\\n return Math.sqrt(sum);\\n }\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/imul.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.imul', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Performs C-like 32-bit signed integer multiplication.\\n *\\n * <p>Polyfills the static function Math.imul().\\n *\\n * @param {number} a Any number, or value that can be coerced to a number.\\n * @param {number} b Any number, or value that can be coerced to a number.\\n * @return {number} The 32-bit integer product of a and b.\\n */\\n var polyfill = function(a, b) {\\n // This algorithm is taken from v8.\\n // Note: If multiplication overflows 32 bits, then we risk losing\\n // precision. We must therefore break the inputs into 16-bit\\n // words and multiply separately.\\n a = Number(a);\\n b = Number(b);\\n var ah = (a >>> 16) & 0xFFFF; // Treat individual words as unsigned\\n var al = a & 0xFFFF;\\n var bh = (b >>> 16) & 0xFFFF;\\n var bl = b & 0xFFFF;\\n var lh = ((ah * bl + al * bh) << 16) >>> 0; // >>> 0 casts to uint\\n return (al * bl + lh) | 0; // | 0 casts back to signed\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/log10.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('Math.log10', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the base-10 logarithm.\\n *\\n * <p>Polyfills the static function Math.log10().\\n *\\n * @param {number} x Any number, or value that can be coerced to a number.\\n * @return {number} The common log of x.\\n */\\n var polyfill = function(x) {\\n return Math.log(x) / Math.LN10;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/math/log1p.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writin"; ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js-1467-a.a+="nd on Symbol.iterator, so ensure it's loaded.\\n $jscomp.initSymbol();\\n $jscomp.initSymbolIterator();\\n\\n\\n\\n /**\\n * Polyfill for the global Map data type.\\n * @constructor\\n * @struct\\n * @extends {Set<VALUE>}\\n * @implements {Iterable<VALUE>}\\n * @template KEY, VALUE\\n * @param {!Iterable<VALUE>|!Array<VALUE>|null=} opt_iterable\\n * Optional data to populate the set.\\n */\\n // TODO(sdh): fix param type if heterogeneous arrays ever supported.\\n var PolyfillSet = function(opt_iterable) {\\n /** @private @const {!Map<VALUE, VALUE>} */\\n this.map_ = new Map();\\n if (opt_iterable) {\\n var iter = $jscomp.makeIterator(opt_iterable);\\n var entry;\\n while (!(entry = iter.next()).done) {\\n var item = /** @type {!IIterableResult<VALUE>} */ (entry).value;\\n this.add(item);\\n }\\n }\\n // Note: this property should not be changed. If we're willing to give up\\n // ES3 support, we could define it as a property directly. It should be\\n // marked readonly if such an annotation ever comes into existence.\\n this.size = this.map_.size;\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.add = function(value) {\\n this.map_.set(value, value);\\n this.size = this.map_.size;\\n return this;\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.delete = function(value) {\\n var result = this.map_.delete(value);\\n this.size = this.map_.size;\\n return result;\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.clear = function() {\\n this.map_.clear();\\n this.size = 0;\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.has = function(value) {\\n return this.map_.has(value);\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.entries = function() {\\n return this.map_.entries();\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.values = function() {\\n return this.map_.values();\\n };\\n\\n\\n /** @override */\\n PolyfillSet.prototype.keys = PolyfillSet.prototype.values;\\n\\n\\n /** @type {?} */ (PolyfillSet.prototype)[Symbol.iterator] =\\n PolyfillSet.prototype.values;\\n\\n\\n /** @override */\\n PolyfillSet.prototype.forEach = function(callback, opt_thisArg) {\\n var set = this;\\n this.map_.forEach(function(value) {\\n return callback.call(/** @type {?} */ (opt_thisArg), value, value, set);\\n });\\n };\\n\\n\\n return PolyfillSet;\\n}, 'es6', 'es3');\\n\",\"js/es6/string.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Brings in all ES6 String polyfills.\\n */\\n'require es6/string/codepointat';\\n'require es6/string/endswith';\\n'require es6/string/fromcodepoint';\\n'require es6/string/includes';\\n'require es6/string/padend';\\n'require es6/string/padstart';\\n'require es6/string/repeat';\\n'require es6/string/startswith';\\n\",\"js/es6/string/codepointat.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.codePointAt', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns the UTF-16 codepoint at the given index.\\n *\\n * <p>Polyfills the instance method String.prototype.codePointAt().\\n *\\n * @this {string}\\n * @param {number} position\\n * @return {number|undefined} The codepoint.\\n */\\n var polyfill = function(position) {\\n // NOTE: this is taken from v8's harmony-string.js StringCodePointAt\\n 'use strict';\\n var string = $jscomp.checkStringArgs(this, null, 'codePointAt');\\n var size = string.length;\\n // Make 'position' a number (non-number coerced to NaN and then or to zero).\\n position = Number(position) || 0;\\n if (!(position >= 0 && position < size)) {\\n return void 0;\\n }\\n // Truncate 'position' to an integer.\\n position = position | 0;\\n var first = string.charCodeAt(position);\\n if (first < 0xD800 || first > 0xDBFF || position + 1 === size) {\\n return first;\\n }\\n var second = string.charCodeAt(position + 1);\\n if (second < 0xDC00 || second > 0xDFFF) {\\n return first;\\n }\\n return (first - 0xD800) * 0x400 + second + 0x2400;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/string/endswith.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.endsWith', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Tests whether the string ends with a given substring.\\n *\\n * <p>Polyfills the instance method String.prototype.endsWith().\\n *\\n * @this {string}\\n * @param {string} searchString\\n * @param {number=} opt_position\\n * @return {boolean}\\n */\\n var polyfill = function(searchString, opt_position) {\\n 'use strict';\\n var string = $jscomp.checkStringArgs(this, searchString, 'endsWith');\\n searchString = searchString + '';\\n if (opt_position === void 0) opt_position = string.length;\\n var i = Math.max(0, Math.min(opt_position | 0, string.length));\\n var j = searchString.length;\\n while (j > 0 && i > 0) {\\n if (string[--i] != searchString[--j]) return false;\\n }\\n return j <= 0;\\n };\\nreturn polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/string/fromcodepoint.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.fromCodePoint', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Creates a new string from the given codepoints.\\n *\\n * <p>Polyfills the static function String.fromCodePoint().\\n *\\n * @param {...number} var_args\\n * @return {string}\\n */\\n var polyfill = function(var_args) {\\n // Note: this is taken from v8's harmony-string.js StringFromCodePoint.\\n var result = '';\\n for (var i = 0; i < arguments.length; i++) {\\n var code = Number(arguments[i]);\\n if (code < 0 || code > 0x10FFFF || code !== Math.floor(code)) {\\n throw new RangeError('invalid_code_point ' + code);\\n }\\n if (code <= 0xFFFF) {\\n result += String.fromCharCode(code);\\n } else {\\n code -= 0x10000;\\n result += String.fromCharCode((code >>> 10) & 0x3FF | 0xD800);\\n result += String.fromCharCode(code & 0x3FF | 0xDC00);\\n }\\n }\\n return result;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/string/includes.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.includes', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Searches for a substring, starting at the given position.\\n *\\n * <p>Polyfills the instance method String.prototype.includes().\\n *\\n * @this {string}\\n * @param {string} searchString\\n * @param {number=} opt_position\\n * @return {boolean}\\n */\\n var polyfill = function(searchString, opt_position) {\\n 'use strict';\\n var string = $jscomp.checkStringArgs(this, searchString, 'includes');\\n return string.indexOf(searchString, opt_position || 0) !== -1;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/string/padend.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/stringpadding';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.padEnd', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfills String.prototype.padEnd.\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd\\n *\\n * @this {string}\\n * @param {number} targetLength\\n * @param {string=} opt_padString\\n * @return {string}\\n */\\n var padEnd = function(targetLength, opt_padString) {\\n var string = $jscomp.checkStringArgs(this, null, 'padStart');\\n var padLength = targetLength - string.length;\\n return string + $jscomp.stringPadding(opt_padString, padLength);\\n };\\n\\n return padEnd;\\n}, 'es8', 'es3');\\n\",\"js/es6/string/padstart.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n'require util/stringpadding';\\n\\n$jscomp.polyfill('String.prototype.padStart', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Polyfills String.prototype.padStart.\\n *\\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart\\n *\\n * @this {string}\\n * @param {number} targetLength\\n * @param {string=} opt_padString\\n * @return {string}\\n */\\n var padStart = function(targetLength, opt_padString) {\\n var string = $jscomp.checkStringArgs(this, null, 'padStart');\\n var padLength = targetLength - string.length;\\n return $jscomp.stringPadding(opt_padString, padLength) + string;\\n };\\n\\n return padStart;\\n}, 'es8', 'es3');\\n\",\"js/es6/string/repeat.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.repeat', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Returns a new string repeated the given number of times.\\n *\\n * <p>Polyfills the instance method String.prototype.repeat().\\n *\\n * @this {string}\\n * @param {number} copies\\n * @return {string}\\n */\\n var polyfill = function(copies) {\\n 'use strict';\\n var string = $jscomp.checkStringArgs(this, null, 'repeat');\\n if (copies < 0 || copies > 0x4FFFFFFF) { // impose a 1GB limit\\n throw new RangeError('Invalid count value');\\n }\\n copies = copies | 0; // cast to a signed integer.\\n var result = '';\\n while (copies) {\\n if (copies & 1) result += string;\\n if ((copies >>>= 1)) string += string;\\n }\\n return result;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/string/startswith.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require util/checkstringargs';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('String.prototype.startsWith', function(orig) {\\n if (orig) return orig;\\n\\n /**\\n * Tests whether the string starts with a given substring.\\n *\\n * <p>Polyfills the instance method String.prototype.startsWith().\\n *\\n * @this {string}\\n * @param {string} searchString\\n * @param {number=} opt_position\\n * @return {boolean}\\n */\\n var polyfill = function(searchString, opt_position) {\\n 'use strict';\\n var string = $jscomp.checkStringArgs(this, searchString, 'startsWith');\\n searchString = searchString + '';\\n var strLen = string.length;\\n var searchLen = searchString.length;\\n var i = Math.max(\\n 0,\\n Math.min(/** @type {number} */ (opt_position) | 0, string.length));\\n var j = 0;\\n while (j < searchLen && i < strLen) {\\n if (string[i++] != searchString[j++]) return false;\\n }\\n return j >= searchLen;\\n };\\n\\n return polyfill;\\n}, 'es6', 'es3');\\n\",\"js/es6/symbol.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LIC"; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js:1468:a.a+='ENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\'require util/defineproperty\';\\n\'require util/global\';\\n\\n/** @const {string} */\\n$jscomp.SYMBOL_PREFIX = \'jscomp_symbol_\';\\n\\n\\n/**\\n * Initializes the Symbol function.\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.initSymbol = function() {\\n // Only need to do this once. All future calls are no-ops.\\n $jscomp.initSymbol = function() {};\\n\\n if (!$jscomp.global[\'Symbol\']) {\\n $jscomp.global[\'Symbol\'] = $jscomp.Symbol;\\n }\\n};\\n\\n\\n/**\\n * Produces \\"symbols\\" (actually just unique strings).\\n * @param {string=} opt_description\\n * @return {symbol}\\n */\\n$jscomp.Symbol = /** @type {function(): !Function} */ (function() {\\n var counter = 0;\\n /**\\n * @param {string=} opt_description\\n * @return {symbol}\\n * @suppress {reportUnknownTypes}\\n */\\n function Symbol(opt_description) {\\n return /** @type {symbol} */ (\\n $jscomp.SYMBOL_PREFIX + (opt_description || \'\') + (counter++));\\n }\\n return Symbol;\\n})();\\n\\n\\n/**\\n * Initializes Symbol.iterator (if it\'s not already defined) and adds a\\n * Symbol.iterator property to the Array prototype.\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.initSymbolIterator = function() {\\n $jscomp.initSymbol();\\n var symbolIterator = $jscomp.global[\'Symbol\'].iterator;\\n if (!symbolIterator) {\\n symbolIterator = $jscomp.global[\'Symbol\'].iterator =\\n $jscomp.global[\'Symbol\'](\'iterator\');\\n }\\n\\n if (typeof Array.prototype[symbolIterator] != \'function\') {\\n $jscomp.defineProperty(\\n Array.prototype, symbolIterator, {\\n configurable: true,\\n writable: true,\\n /**\\n * @this {Array}\\n * @return {!IteratorIterable}\\n */\\n value: function() {\\n return $jscomp.arrayIterator(this);\\n }\\n });\\n }\\n\\n // Only need to do this once. All future calls are no-ops.\\n $jscomp.initSymbolIterator = function() {};\\n};\\n\\n\\n/**\\n * Returns an iterator from the given array.\\n * @param {!Array<T>} array\\n * @return {!IteratorIterable<T>}\\n * @template T\\n */\\n$jscomp.arrayIterator = function(array) {\\n var index = 0;\\n return $jscomp.iteratorPrototype(function() {\\n if (index < array.length) {\\n return {\\n done: false,\\n value: array[index++],\\n };\\n } else {\\n return {done: true};\\n }\\n });\\n};\\n\\n\\n/**\\n * Returns an iterator with the given `next` method. Passing\\n * all iterators through this function allows easily extending\\n * the definition of `%IteratorPrototype%` if methods are ever\\n * added to it in the future.\\n *\\n * @param {function(this: Iterator<T>): T} next\\n * @return {!IteratorIterable<T>}\\n * @template T\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.iteratorPrototype = function(next) {\\n $jscomp.initSymbolIterator();\\n\\n var iterator = {next: next};\\n /**\\n * @this {IteratorIterable}\\n * @return {!IteratorIterable}\\n */\\n iterator[$jscomp.global[\'Symbol\'].iterator] = function() { return this; };\\n return /** @type {!IteratorIterable} */ (iterator);\\n};\\n","js/es6/util/arrayfromiterable.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Polyfill for array destructuring.\\n */\\n\'require es6/util/makeiterator\';\\n\'require es6/util/arrayfromiterator\';\\n\\n\\n/**\\n * Copies the values from an Iterable into an Array.\\n * @param {string|!Array<T>|!Iterable<T>|!Arguments<T>} iterable\\n * @return {!Array<T>}\\n * @template T\\n */\\n$jscomp.arrayFromIterable = function(iterable) {\\n if (iterable instanceof Array) {\\n return iterable;\\n } else {\\n return $jscomp.arrayFromIterator($jscomp.makeIterator(iterable));\\n }\\n};\\n","js/es6/util/arrayfromiterator.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Polyfill for array destructuring.\\n */\\n\'require base\';\\n\\n\\n/**\\n * Copies the values from an Iterator into an Array. The important difference\\n * between this and $jscomp.arrayFromIterable is that if the iterator\'s\\n * next() method has already been called one or more times, this method returns\\n * only the values that haven\'t been yielded yet.\\n * @param {!Iterator<T>} iterator\\n * @return {!Array<T>}\\n * @template T\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.arrayFromIterator = function(iterator) {\\n var i;\\n var arr = [];\\n while (!(i = iterator.next()).done) {\\n arr.push(i.value);\\n }\\n return arr;\\n};\\n","js/es6/util/construct.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview\\n * @suppress {uselessCode}\\n */\\n\\n\'require util/objectcreate\';\\n\\n/**\\n * Polyfill for Reflect.construct() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/construct\\n *\\n * Calls a constructor as with the \'new\' operator.\\n * TODO(sdh): how to type \'target\' with (new: TARGET) if opt_newTarget missing?\\n *\\n * @param {function(new: ?, ...?)} target The constructor to call.\\n * @param {!Array} argList The arguments as a list.\\n * @param {function(new: TARGET, ...?)=} opt_newTarget The constructor to instantiate.\\n * @return {TARGET} The result of the function call.\\n * @template TARGET\\n */\\n$jscomp.construct = /** @type {function(): !Function} */ (function() {\\n\\n // Check for https://github.com/Microsoft/ChakraCore/issues/3217\\n /** @return {boolean} */\\n function reflectConstructWorks() {\\n /** @constructor */ function Base() {}\\n /** @constructor */ function Derived() {}\\n new Base();\\n Reflect.construct(Base, [], Derived);\\n return new Base() instanceof Base;\\n }\\n\\n if (typeof Reflect != \'undefined\' && Reflect.construct) {\\n if (reflectConstructWorks()) return Reflect.construct;\\n var brokenConstruct = Reflect.construct;\\n /**\\n * @param {function(new: ?, ...?)} target The constructor to call.\\n * @param {!Array} argList The arguments as a list.\\n * @param {function(new: TARGET, ...?)=} opt_newTarget The constructor to instantiate.\\n * @return {TARGET} The result of the function call.\\n * @template TARGET\\n * @suppress {reportUnknownTypes}\\n */\\n var patchedConstruct = function(target, argList, opt_newTarget) {\\n var out = brokenConstruct(target, argList);\\n if (opt_newTarget) Reflect.setPrototypeOf(out, opt_newTarget.prototype);\\n return out;\\n };\\n return patchedConstruct;\\n }\\n\\n /**\\n * @param {function(new: ?, ...?)} target The constructor to call.\\n * @param {!Array} argList The arguments as a list.\\n * @param {function(new: TARGET, ...?)=} opt_newTarget The constructor to instantiate.\\n * @return {TARGET} The result of the function call.\\n * @template TARGET\\n * @suppress {reportUnknownTypes}\\n */\\n function construct(target, argList, opt_newTarget) {\\n if (opt_newTarget === undefined) opt_newTarget = target;\\n var proto = opt_newTarget.prototype || Object.prototype;\\n var obj = $jscomp.objectCreate(proto);\\n var apply = Function.prototype.apply;\\n var out = apply.call(target, obj, argList);\\n return out || obj;\\n }\\n return construct;\\n})();\\n","js/es6/util/inherits.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Polyfill for ES6 extends keyword.\\n * @suppress {uselessCode}\\n */\\n\'require base\';\\n\'require util/objectcreate\';\\n\'require es6/util/setprototypeof\';\\n\\n\\n/**\\n * Inherit the prototype methods and static methods from one constructor\\n * into another.\\n *\\n * This wires up the prototype chain (like goog.inherits) and copies static\\n * properties, for ES6-to-ES{3,5} transpilation.\\n *\\n * Usage:\\n * <pre>\\n * function ParentClass() {}\\n *\\n * // Regular method.\\n * ParentClass.prototype.foo = function(a) {};\\n *\\n * // Static method.\\n * ParentClass.bar = function() {};\\n *\\n * function ChildClass() {\\n * ParentClass.call(this);\\n * }\\n * $jscomp.inherits(ChildClass, ParentClass);\\n *\\n * var child = new ChildClass();\\n * child.foo();\\n * ChildClass.bar(); // Static inheritance.\\n * </pre>\\n *\\n * @param {!Function} childCtor Child class.\\n * @param {!Function} parentCtor Parent class.\\n */\\n$jscomp.inherits = function(childCtor, parentCtor) {\\n childCtor.prototype = $jscomp.objectCreate(parentCtor.prototype);\\n /** @override */ childCtor.prototype.constructor = childCtor;\\n if ($jscomp.setPrototypeOf) {\\n // avoid null dereference warning\\n /** @const {!Function} */\\n var setPrototypeOf = $jscomp.setPrototypeOf;\\n setPrototypeOf(childCtor, parentCtor);\\n } else {\\n // setPrototypeOf is not available so we need to copy the static\\n // methods to the child\\n for (var p in parentCtor) {\\n if (p == \'prototype\') {\\n // Don\'t copy parentCtor.prototype to childCtor.\\n continue;\\n }\\n if (Object.defineProperties) {\\n var descriptor = Object.getOwnPropertyDescriptor(parentCtor, p);\\n if (descriptor) {\\n Object.defineProperty(childCtor, p, descriptor);\\n }\\n } else {\\n // Pre-ES5 browser. Just copy with an assignment.\\n childCtor[p] = parentCtor[p];\\n }\\n }\\n }\\n\\n childCtor.superClass_ = parentCtor.prototype;\\n};\\n","js/es6/util/iteratorfromarray.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Utilities for iterator-returning methods.\\n */\\n\'require es6/symbol\';\\n\\n\\n/**\\n * Creates an iterator from an array-like, with a transformation function.\\n * @param {!IArrayLike<INPUT>} array\\n * @param {function(number, INPUT): OUTPUT} transform\\n * @return {!IteratorIterable<OUTPUT>}\\n * @template INPUT, OUTPUT\\n * @suppress {checkTypes|reportUnknownTypes}\\n */\\n$jscomp.iteratorFromArray = function(array, transform) {\\n $jscomp.initSymbolIterator();\\n // NOTE: IE8 doesn\'t support indexing from boxed Strings.\\n if (array instanceof String) array = array + \'\';\\n var i = 0;\\n var iter = {\\n next: function() {\\n if (i < array.length) {\\n var index = i++;\\n return {value: transform(index, array[index]), done: false};\\n }\\n iter.next = function() { return {done: true, value: void 0}; };\\n return iter.next();\\n }\\n };\\n iter[Symbol.iterator] = function() { return iter; };\\n return iter;\\n};\\n","js/es6/util/makeiterator.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Polyfill for for-of loops.\\n */\\n\'require es6/symbol\';\\n\\n\\n/**\\n * Creates an iterator for the given iterable.\\n *\\n * @param {string|!Iterable<T>|!Iterator<T>|!Arguments<T>} iterable\\n * @return {!Iterator<T>}\\n * @template T\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.makeIterator = function(iterable) {\\n $jscomp.initSymbolIterator();\\n\\n // NOTE: Disabling typechecking because [] not allowed on @struct.\\n var iteratorFunction = /** @type {?} */ (iterable)[Symbol.iterator];\\n return iteratorFunction ? iteratorFunction.call(iterable) :\\n $jscomp.arrayIterator(/** @type {!Array} */ (iterable));\\n};\\n","js/es6/util/setprototypeof.js":"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview\\n * @suppress {uselessCode}\\n */\\n\\n/**\\n * @suppress {missingProperties,reportUnknownTypes}\\n * @return {boolean}\\n */\\n$jscomp.underscoreProtoCanBeSet = function() {\\n var x = {a: true};\\n var y = {};\\n try {\\n y.__proto__ = x;\\n return y.a;\\n } catch (e) {\\n // __proto__ property is readonly (possibly IE 10?)\\n }\\n return false;\\n};\\n\\n/**\\n * If we can implement it, this will be a function that attempts to set the\\n * prototype of an object, otherwise it will be `null`.\\n *\\n * It returns the first argument if successful. Throws a `TypeError` if the\\n * object is not extensible.\\n *\\n * @type {null|function(!Object, ?Object): !Object}\\n */\\n$jscomp.setPrototypeOf = (typeof Object.setPrototypeOf == \'function\') ?\\n Object.setPrototypeOf :\\n $jscomp.underscoreProtoCanBeSet() ?\\n function(target, proto) {\\n target.__proto__ = proto;\\n if (target.__proto__ !== proto) {\\n throw '; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js:1469:a.a+="new TypeError(target + ' is not extensible');\\n }\\n return target;\\n } :\\n null;\\n\",\"js/es6/weakmap.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/symbol';\\n'require es6/util/makeiterator';\\n'require util/defineproperty';\\n'require util/owns';\\n'require util/polyfill';\\n\\n$jscomp.polyfill('WeakMap',\\n /**\\n * @param {*} NativeWeakMap\\n * @return {*}\\n * @suppress {reportUnknownTypes}\\n */\\n function(NativeWeakMap) {\\n /**\\n * Checks conformance of the existing WeakMap.\\n * @return {boolean} True if the browser's implementation conforms.\\n */\\n function isConformant() {\\n if (!NativeWeakMap || !Object.seal) return false;\\n try {\\n var x = Object.seal({});\\n var y = Object.seal({});\\n var map = new /** @type {function(new: WeakMap, !Array)} */ (\\n NativeWeakMap)([[x, 2], [y, 3]]);\\n if (map.get(x) != 2 || map.get(y) != 3) return false;\\n map.delete(x);\\n map.set(y, 4);\\n return !map.has(x) && map.get(y) == 4;\\n } catch (err) { // This should hopefully never happen, but let's be safe.\\n return false;\\n }\\n }\\n if (isConformant()) return NativeWeakMap;\\n\\n var prop = '$jscomp_hidden_' + Math.random().toString().substring(2);\\n\\n /**\\n * Inserts the hidden property into the target.\\n * @param {!Object} target\\n */\\n function insert(target) {\\n if (!$jscomp.owns(target, prop)) {\\n var obj = {};\\n // TODO(sdh): This property will be enumerated in IE8. If this becomes\\n // a problem, we could avoid it by copying an infrequently-used non-enum\\n // method (like toLocaleString) onto the object itself and encoding the\\n // property on the copy instead. This codepath must be easily removable\\n // if IE8 support is not needed.\\n $jscomp.defineProperty(target, prop, {value: obj});\\n }\\n }\\n\\n /**\\n * Monkey-patches the freezing methods to ensure that the hidden\\n * property is added before any freezing happens.\\n * @param {string} name\\n */\\n function patch(name) {\\n var prev = Object[name];\\n if (prev) {\\n Object[name] = function(target) {\\n insert(target);\\n return prev(target);\\n };\\n }\\n }\\n patch('freeze');\\n patch('preventExtensions');\\n patch('seal');\\n // Note: no need to patch Reflect.preventExtensions since the polyfill\\n // just calls Object.preventExtensions anyway (and if it's not polyfilled\\n // then neither is WeakMap).\\n\\n var index = 0;\\n\\n /**\\n * Polyfill for WeakMap:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap\\n *\\n * This implementation is as non-leaky as possible, due to patching\\n * the freezing and sealing operations. It does not include any logic\\n * to handle cases where a key was somehow made non-extensible without\\n * the special hidden property being added. It takes some care to ensure\\n * the hidden property is not enumerated over nor discoverable, though\\n * it's not completely secure (particularly in IE8).\\n *\\n * @constructor\\n * @extends {WeakMap<KEY, VALUE>}\\n * @template KEY, VALUE\\n * @param {!Iterator<!Array<KEY|VALUE>>|!Array<!Array<KEY|VALUE>>|null=}\\n * opt_iterable Optional initial data.\\n */\\n var PolyfillWeakMap = function(opt_iterable) {\\n /** @private @const {string} */\\n this.id_ = (index += (Math.random() + 1)).toString();\\n\\n if (opt_iterable) {\\n $jscomp.initSymbol();\\n $jscomp.initSymbolIterator();\\n var iter = $jscomp.makeIterator(opt_iterable);\\n var entry;\\n while (!(entry = iter.next()).done) {\\n var item = entry.value;\\n this.set(/** @type {KEY} */ (item[0]), /** @type {VALUE} */ (item[1]));\\n }\\n }\\n };\\n\\n /** @override */\\n PolyfillWeakMap.prototype.set = function(key, value) {\\n insert(key);\\n if (!$jscomp.owns(key, prop)) {\\n // NOTE: If the insert() call fails on the key, but the property\\n // has previously successfully been added higher up the prototype\\n // chain, then we'll silently misbehave. Instead, throw immediately\\n // before doing something bad. If this becomes a problem (e.g. due\\n // to some rogue frozen objects) then we may need to add a slow and\\n // leaky fallback array to each WeakMap instance, as well as extra\\n // logic in each accessor to use it (*only*) when necessary.\\n throw new Error('WeakMap key fail: ' + key);\\n }\\n key[prop][this.id_] = value;\\n return this;\\n };\\n\\n /** @override */\\n PolyfillWeakMap.prototype.get = function(key) {\\n return $jscomp.owns(key, prop) ? key[prop][this.id_] : undefined;\\n };\\n\\n /** @override */\\n PolyfillWeakMap.prototype.has = function(key) {\\n return $jscomp.owns(key, prop) && $jscomp.owns(key[prop], this.id_);\\n };\\n\\n /** @override */\\n PolyfillWeakMap.prototype.delete = function(key) {\\n if (!$jscomp.owns(key, prop) ||\\n !$jscomp.owns(key[prop], this.id_)) {\\n return false;\\n }\\n return delete key[prop][this.id_];\\n };\\n\\n return PolyfillWeakMap;\\n}, 'es6', 'es3');\\n\",\"js/es6/weakset.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/symbol';\\n'require es6/util/makeiterator';\\n'require util/polyfill';\\n'require es6/weakmap';\\n\\n$jscomp.polyfill('WeakSet',\\n /**\\n * @param {*} NativeWeakSet\\n * @return {*}\\n * @suppress {reportUnknownTypes}\\n */\\n function(NativeWeakSet) {\\n /**\\n * Checks conformance of the existing WeakSet.\\n * @return {boolean} True if the browser's implementation conforms.\\n */\\n function isConformant() {\\n if (!NativeWeakSet || !Object.seal) return false;\\n try {\\n var x = Object.seal({});\\n var y = Object.seal({});\\n var set = new /** @type {function(new: WeakSet, !Array)} */ (\\n NativeWeakSet)([x]);\\n if (!set.has(x) || set.has(y)) return false;\\n set.delete(x);\\n set.add(y);\\n return !set.has(x) && set.has(y);\\n } catch (err) { // This should hopefully never happen, but let's be safe.\\n return false;\\n }\\n }\\n if (isConformant()) return NativeWeakSet;\\n\\n /**\\n * @constructor\\n * @extends {WeakSet<TYPE>}\\n * @template TYPE\\n * @param {!Iterator<TYPE>|!Array<TYPE>|null=} opt_iterable\\n */\\n var PolyfillWeakSet = function(opt_iterable) {\\n /** @private @const {!WeakMap<TYPE, boolean>} */\\n this.map_ = new WeakMap();\\n\\n if (opt_iterable) {\\n $jscomp.initSymbol();\\n $jscomp.initSymbolIterator();\\n var iter = $jscomp.makeIterator(opt_iterable);\\n var entry;\\n while (!(entry = iter.next()).done) {\\n var item = entry.value;\\n this.add(item);\\n }\\n }\\n };\\n\\n /** @override */\\n PolyfillWeakSet.prototype.add = function(elem) {\\n this.map_.set(elem, true);\\n return this;\\n };\\n\\n /** @override */\\n PolyfillWeakSet.prototype.has = function(elem) {\\n return this.map_.has(elem);\\n };\\n\\n /** @override */\\n PolyfillWeakSet.prototype.delete = function(elem) {\\n return this.map_.delete(elem);\\n };\\n\\n return PolyfillWeakSet;\\n}, 'es6', 'es3');\\n\",\"js/es6_dart_runtime.js\":\"/*\\n * Copyright 2014 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Additional runtime functions required for transpilation from\\n * ES6 to ES5 of code generated by the Dart Dev Compiler.\\n *\\n * Note that DDC's output cannot currently be lowered to ES3 (heavy use of\\n * getters or setters, including in the runtime), so these helpers make no\\n * attempt of fallback behaviour when methods like Object.getPrototypeOf or\\n * Object.getOwnPropertyDescriptor are undefined (unlike helpers in es6/*.js).\\n *\\n * @author ochafik@google.com (Olivier Chafik)\\n */\\n'require base';\\n\\n/**\\n * Gets a property descriptor for a target instance, skipping its class\\n * and walking up the super-classes hierarchy.\\n *\\n * @private\\n * @param {!Object} target\\n * @param {!string} name\\n * @return {?}\\n */\\n$jscomp.getSuperPropertyDescriptor_ = function(target, name) {\\n var getPrototypeOf = Object.getPrototypeOf;\\n var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n var cls = getPrototypeOf(target);\\n while (cls != null) {\\n cls = getPrototypeOf(cls);\\n if (cls != null) {\\n var desc = getOwnPropertyDescriptor(cls, name);\\n if (desc != null) {\\n return desc;\\n }\\n }\\n }\\n return undefined;\\n};\\n\\n/**\\n * Gets a property of a target instance using its super class getter or value,\\n * or returns undefined if that property is not defined on any ancestor.\\n *\\n * @param {!Object} target\\n * @param {!string} propertyName\\n * @return {*}\\n */\\n$jscomp.superGet = function(target, propertyName) {\\n var desc = $jscomp.getSuperPropertyDescriptor_(target, propertyName);\\n return desc && (desc.get ? desc.get.call(target) : desc.value);\\n};\\n\\n/**\\n * Sets a property on a target instance using its super setter if is defined\\n * on any ancestor, or setting it as a simple property on the target otherwise.\\n *\\n * @template T\\n * @param {!Object} target\\n * @param {!string} propertyName\\n * @param {T} value\\n * @return {T}\\n */\\n$jscomp.superSet = function(target, propertyName, value) {\\n var desc = $jscomp.getSuperPropertyDescriptor_(target, propertyName);\\n if (desc) {\\n if (!desc.set) {\\n throw new TypeError('No setter for super.' + propertyName);\\n }\\n desc.set.call(target, value);\\n } else {\\n target[propertyName] = value;\\n }\\n return value;\\n};\\n\",\"js/es6_runtime.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/array';\\n'require es6/execute_async_generator';\\n'require es6/map';\\n'require es6/math';\\n'require es6/number';\\n'require es6/object';\\n'require es6/promise';\\n'require es6/reflect';\\n'require es6/set';\\n'require es6/string';\\n'require es6/symbol';\\n'require es6/util/arrayfromiterable';\\n'require es6/util/arrayfromiterator';\\n'require es6/util/inherits';\\n'require es6/util/iteratorfromarray';\\n'require es6/util/makeiterator';\\n'require es6/weakmap';\\n'require es6/weakset';\\n\",\"js/license.js\":\"/*\\n * Copyright 2015 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\",\"js/runtime_type_check.js\":\"/*\\n * Copyright 2010 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\\n/**\\n * @fileoverview Provides the boilerplate code for run-time type checking.\\n *\\n * @author moedinger@google.com (Andrew Moedinger)\\n * @author nadaa@google.com (Nada Amin)\\n */\\n'require base';\\n\\n/** @const */\\n$jscomp.typecheck = {};\\n\\n/**\\n * A state variable to suspend checking, to avoid infinite calls\\n * caused by calling checked code from the checking functions.\\n *\\n * @type {boolean}\\n */\\n$jscomp.typecheck.suspendChecking = false;\\n\\n\\n/**\\n * Log and possibly format the run-time type check warning. This\\n * function is customized at compile-time.\\n *\\n * @param {string} warning the warning to log.\\n * @param {*} expr the faulty expression.\\n */\\n$jscomp.typecheck.log = function(warning, expr) {};\\n\\n/**\\n * Checks that the given expression matches one of the given checkers,\\n * logging if not, and returning the expression regardless.\\n *\\n * @param {*} expr the expression to check.\\n * @param {!Array.<!$jscomp.typecheck.Checker>} checkers the checkers to\\n * use in checking, one of these has to match for checking to succeed.\\n * @return {*} the given expression back.\\n */\\n$jscomp.typecheck.checkType = function(expr, checkers) {\\n if ($jscomp.typecheck.suspendChecking) {\\n return expr;\\n }\\n $jscomp.typecheck.suspendChecking = true;\\n\\n for (var i = 0; i < checkers.length; i++) {\\n var checker = checkers[i];\\n var ok = checker.check(expr);\\n if (ok) {\\n $jscomp.typecheck.suspendChecking = false;\\n return expr;\\n }\\n }\\n\\n var warning = $jscomp.typecheck.prettify_(expr) + ' not in ' +\\n checkers.join(' ');\\n\\n $jscomp.typecheck.log(warning, expr);\\n\\n $jscomp.typecheck.suspendChecking = false;\\n return expr;\\n};\\n\\n\\n/**\\n * Prettify the given expression for printing.\\n *\\n * @param {*} expr the expression.\\n * @return {string} a string representation of the given expression.\\n * @private\\n */\\n$jscomp.typecheck.prettify_ = function(expr) {\\n var className = $jscomp.typecheck.getClassName_(expr);\\n if (className) {\\n return className;\\n }\\n try {\\n return String(expr);\\n }\\n catch (e) {}\\n return '<unknown>';\\n};\\n\\n/**\\n * Gets the class name if the given expression is an object.\\n *\\n * @param {*} expr the expression.\\n * @return {string|undefined} the class name or undefined if the\\n * expression is not an object.\\n * @private\\n */\\n$jscomp.typecheck.getClassName_ = function(expr) {\\n var className = void 0;\\n if (typeof expr == 'object' && expr && expr.constructor) {\\n className = expr.constructor.name;\\n if (!className) {\\n var funNameRe = /function (.{1,})\\\\(/;\\n var m = (funNameRe).exec(expr.con"; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js-1470-a.a+="structor.toString());\\n className = m && m.length > 1 ? m[1] : void 0;\\n }\\n }\\n return className;\\n};\\n\\n/**\\n * Interface for all checkers.\\n *\\n * @interface\\n */\\n$jscomp.typecheck.Checker = function() {};\\n\\n\\n/**\\n * Checks the given expression.\\n *\\n * @param {*} expr the expression to check.\\n * @return {boolean} whether the given expression matches this checker.\\n */\\n$jscomp.typecheck.Checker.prototype.check = function(expr) {};\\n\\n\\n\\n/**\\n * A class for all value checkers, except the null checker.\\n *\\n * @param {string} type the value type (e.g. 'number') of this checker.\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.ValueChecker_ = function(type) {\\n /**\\n * The value type of this checker.\\n * @type {string}\\n * @private\\n */\\n this.type_ = type;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ValueChecker_.prototype.check = function(expr) {\\n return typeof(expr) == this.type_;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ValueChecker_.prototype.toString = function() {\\n return 'value(' + this.type_ + ')';\\n};\\n\\n\\n\\n/**\\n * A checker class for null values.\\n *\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.NullChecker_ = function() {};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.NullChecker_.prototype.check = function(expr) {\\n return expr === null;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.NullChecker_.prototype.toString = function() {\\n return 'value(null)';\\n};\\n\\n\\n/**\\n * A checker class for a class defined in externs, including built-in\\n * JS types.\\n *\\n * <p>If the class type is undefined, then checking is suspended to\\n * avoid spurious warnings. This is necessary because some externs\\n * types are not defined in all browsers. For example, Window is not\\n * defined Chrome, as window has the type DOMWindow.\\n *\\n * <p>Another subtlety is that a built-in type may be referenced in a\\n * different frame than the one in which it was created. This causes\\n * instanceOf to return false even though the object is of the correct\\n * type. We work around this by checking as many windows as possible,\\n * redefining open on top and window to keep track of them.\\n *\\n * @param {string} className the name of the extern class to check.\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.ExternClassChecker_ = function(className) {\\n /**\\n * The name of the extern class to check.\\n * @type {string}\\n * @private\\n */\\n this.className_ = className;\\n};\\n\\n\\n/**\\n * A list of (hopefully all) open windows.\\n *\\n * @type {!Array.<!Window>}\\n */\\n$jscomp.typecheck.ExternClassChecker_.windows = [];\\n\\n\\n/**\\n * A list of the original open methods that have been redefined.\\n *\\n * @type {!Array.<!Function>}\\n */\\n$jscomp.typecheck.ExternClassChecker_.oldOpenFuns = [];\\n\\n\\n/**\\n * Redefines the open method on the given window, adding tracking.\\n *\\n * @param {!Window} win the window to track.\\n */\\n$jscomp.typecheck.ExternClassChecker_.trackOpenOnWindow = function(win) {\\n if (win.tracked) {\\n return;\\n }\\n win.tracked = true;\\n\\n var key = $jscomp.typecheck.ExternClassChecker_.oldOpenFuns.length;\\n\\n $jscomp.typecheck.ExternClassChecker_.oldOpenFuns.push(win.open);\\n $jscomp.typecheck.ExternClassChecker_.windows.push(win);\\n\\n win.open = function() {\\n var w = $jscomp.typecheck.ExternClassChecker_.oldOpenFuns[key].apply(\\n this, arguments);\\n $jscomp.typecheck.ExternClassChecker_.trackOpenOnWindow(w);\\n return w;\\n };\\n};\\n\\n\\n/**\\n * Returns the global 'this' object. This will normally be the same as 'window'\\n * but when running in a worker thread, the DOM is not available.\\n *\\n * This does not work when strict mode is enabled.\\n *\\n * @return {!Window}\\n * @private\\n */\\n$jscomp.typecheck.ExternClassChecker_.getGlobalThis_ = function() {\\n return (function() { return this; }).call(null);\\n};\\n\\n\\n// Install listeners on the global 'this' object.\\n(function() {\\n var globalThis = $jscomp.typecheck.ExternClassChecker_.getGlobalThis_();\\n $jscomp.typecheck.ExternClassChecker_.trackOpenOnWindow(globalThis);\\n\\n var theTop = globalThis['top'];\\n if (theTop) {\\n $jscomp.typecheck.ExternClassChecker_.trackOpenOnWindow(theTop);\\n }\\n})();\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ExternClassChecker_.prototype.check = function(expr) {\\n var classTypeDefined = [ false ];\\n for (var i = 0; i < $jscomp.typecheck.ExternClassChecker_.windows.length;\\n i++) {\\n var w = $jscomp.typecheck.ExternClassChecker_.windows[i];\\n if (this.checkWindow_(w, expr, classTypeDefined)) {\\n return true;\\n }\\n }\\n return !classTypeDefined[0];\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ExternClassChecker_.prototype.toString = function() {\\n return 'ext_class(' + this.className_ + ')';\\n};\\n\\n\\n/**\\n * Checks whether the given expression is an instance of this extern\\n * class in this window or any of its frames and subframes.\\n *\\n * @param {!Window} w the window to start checking from.\\n * @param {*} expr the expression to check.\\n * @param {!Array.<boolean>} classTypeDefined a wrapped boolean\\n * updated to indicate whether the class type was seen in any frame.\\n * @return {boolean} true if the given expression is an instance of this class.\\n * @private\\n */\\n$jscomp.typecheck.ExternClassChecker_.prototype.checkWindow_ =\\n function(w, expr, classTypeDefined) {\\n var classType = /** @type {function(new: ?)} */ (w[this.className_]);\\n classTypeDefined[0] = classTypeDefined[0] || !!classType;\\n if (classType && expr instanceof classType) {\\n return true;\\n }\\n for (var i = 0; i < w.length; i++) {\\n if (this.checkWindow_(w.frames[i], expr, classTypeDefined)) {\\n return true;\\n }\\n }\\n return false;\\n};\\n\\n\\n\\n/**\\n * A class for all checkers of user-defined classes.\\n *\\n * @param {string} className name of the class to check.\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.ClassChecker_ = function(className) {\\n\\n /**\\n * The name of the class to check.\\n * @type {string}\\n * @private\\n */\\n this.className_ = className;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ClassChecker_.prototype.check = function(expr) {\\n return !!(expr && expr['instance_of__' + this.className_]);\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ClassChecker_.prototype.toString = function() {\\n return 'class(' + this.className_ + ')';\\n};\\n\\n\\n\\n/**\\n * A class for all checkers of user-defined interfaces.\\n *\\n * @param {string} interfaceName name of the interface to check.\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.InterfaceChecker_ = function(interfaceName) {\\n\\n /**\\n * The name of the interface to check.\\n * @type {string}\\n * @private\\n */\\n this.interfaceName_ = interfaceName;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.InterfaceChecker_.prototype.check = function(expr) {\\n return !!(expr && expr['implements__' + this.interfaceName_]);\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.InterfaceChecker_.prototype.toString = function() {\\n return 'interface(' + this.interfaceName_ + ')';\\n};\\n\\n\\n\\n/**\\n * A checker for object types (possibly with non-standard prototype: might not\\n * inherit from Object).\\n *\\n * @constructor\\n * @implements {$jscomp.typecheck.Checker}\\n * @private\\n */\\n$jscomp.typecheck.ObjectChecker_ = function() {};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ObjectChecker_.prototype.check = function(expr) {\\n return (typeof(expr) == 'object' || typeof(expr) == 'function') && !!expr;\\n};\\n\\n\\n/** @inheritDoc */\\n$jscomp.typecheck.ObjectChecker_.prototype.toString = function() {\\n return 'value(object)';\\n};\\n\\n\\n\\n/**\\n * A checker for null values.\\n *\\n * @type {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.nullChecker = new $jscomp.typecheck.NullChecker_();\\n\\n\\n/**\\n * Creates a checker for the given value type (excluding the null type).\\n *\\n * @param {string} type the value type.\\n * @return {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.valueChecker = function(type) {\\n return new $jscomp.typecheck.ValueChecker_(type);\\n};\\n\\n\\n/**\\n * Creates a checker for the given extern class name.\\n *\\n * @param {string} className the class name.\\n * @return {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.externClassChecker = function(className) {\\n return new $jscomp.typecheck.ExternClassChecker_(className);\\n};\\n\\n\\n/**\\n * Creates a checker for the given user-defined class.\\n *\\n * @param {string} className the class name.\\n * @return {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.classChecker = function(className) {\\n return new $jscomp.typecheck.ClassChecker_(className);\\n};\\n\\n\\n/**\\n * Creates a checker for the given user-defined interface.\\n *\\n * @param {string} interfaceName the interface name.\\n * @return {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.interfaceChecker = function(interfaceName) {\\n return new $jscomp.typecheck.InterfaceChecker_(interfaceName);\\n};\\n\\n\\n/**\\n * A checker for objects.\\n *\\n * @type {!$jscomp.typecheck.Checker} a checker.\\n */\\n$jscomp.typecheck.objectChecker = new $jscomp.typecheck.ObjectChecker_();\\n\",\"js/util/checkstringargs.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require base';\\n\\n\\n/**\\n * Throws if the argument is a RegExp, or if thisArg is undefined.\\n * @param {?} thisArg The 'this' arg, which must be defined.\\n * @param {*} arg The first argument of the function, which mustn't be a RegExp.\\n * @param {string} func Name of the function, for reporting.\\n * @return {string} The thisArg, coerced to a string.\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.checkStringArgs = function(thisArg, arg, func) {\\n if (thisArg == null) {\\n throw new TypeError(\\n \\\"The 'this' value for String.prototype.\\\" + func +\\n ' must not be null or undefined');\\n }\\n if (arg instanceof RegExp) {\\n throw new TypeError(\\n 'First argument to String.prototype.' + func +\\n ' must not be a regular expression');\\n }\\n return thisArg + '';\\n};\\n\",\"js/util/defineproperty.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Provides methods to polyfill native objects.\\n * @suppress {reportUnknownTypes}\\n */\\n'require util/defines';\\n\\n\\n/**\\n * Polyfill for Object.defineProperty() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty\\n *\\n * Refuses to define properties on Array.prototype and Object.prototype,\\n * since we can't make them non-enumerable and this messes up peoples' for\\n * loops. Beyond this, we simply assign values and not worry\\n * about enumerability or writeability.\\n * @param {?} target\\n * @param {string} property\\n * @param {?} descriptor\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.defineProperty =\\n $jscomp.ASSUME_ES5 || typeof Object.defineProperties == 'function' ?\\n Object.defineProperty :\\n function(target, property, descriptor) {\\n descriptor = /** @type {!ObjectPropertyDescriptor} */ (descriptor);\\n // NOTE: This is currently never called with a descriptor outside\\n // the control of the compiler. If we ever decide to polyfill either\\n // Object.defineProperty or Reflect.defineProperty for ES3, we should\\n // explicitly check for `get` or `set` on the descriptor and throw a\\n // TypeError, since it's impossible to properly polyfill it.\\n if (target == Array.prototype || target == Object.prototype) return;\\n target[property] = descriptor.value;\\n };\\n\",\"js/util/defines.js\":\"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require base';\\n\\n\\n/**\\n * Whether to assume ES5 is available. This enables removing several\\n * internal polyfills, which must otherwise be detected at runtime.\\n * @define {boolean}\\n */\\n$jscomp.ASSUME_ES5 = false;\\n\\n/**\\n * Whether to skip the conformance check and simply use the polyfill always.\\n * @define {boolean}\\n */\\n$jscomp.ASSUME_NO_NATIVE_MAP = false;\\n\\n/**\\n * Whether to skip the conformance check and simply use the polyfill always.\\n * @define {boolean}\\n */\\n$jscomp.ASSUME_NO_NATIVE_SET = false;\\n\",\"js/util/finddescriptor.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n'require es6/reflect/getownpropertydescriptor';\\n'require es6/reflect/getprototypeof';\\n\\n\\n/**\\n * Helper function to find a descriptor.\\n * @param {!Object} target\\n * @param {string} propertyKey\\n * @return {!ObjectPropertyDescriptor|undefined}\\n */\\n$jscomp.findDescriptor = function(target, propertyKey) {\\n var /** ?Object */ obj = target;\\n while (obj) {\\n var property = Reflect.getOwnPropertyDescriptor(obj, propertyKey);\\n if (property) {\\n return property;\\n }\\n obj = Reflect.getPrototypeOf(obj);\\n }\\n return undefined;\\n};\\n\",\"js/util/findinternal.js\":\"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Utility for Array methods that find elements.\\n */\\n'require base';\\n\\n// TODO(sdh): would be nice to template on the ARRAY type as well,\\n// so that the third arg type of callback can be refined to be\\n// exactly the same as the array type, but then there's no way to\\n// enforce that it must, in fact, be an array.\\n/**\\n * Internal implementation of fin"; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js:1471:a.a+='d.\\n * @param {!IArrayLike<VALUE>} array\\n * @param {function(this: THIS, VALUE, number, !IArrayLike<VALUE>): *} callback\\n * @param {THIS} thisArg\\n * @return {{i: number, v: (VALUE|undefined)}}\\n * @template THIS, VALUE\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.findInternal = function(array, callback, thisArg) {\\n if (array instanceof String) {\\n array = /** @type {!IArrayLike} */ (String(array));\\n }\\n var len = array.length;\\n for (var i = 0; i < len; i++) {\\n var value = array[i];\\n if (callback.call(thisArg, value, i, array)) return {i: i, v: value};\\n }\\n return {i: -1, v: void 0};\\n};\\n","js/util/global.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Runtime code to store the global object.\\n */\\n\'require base\';\\n\'declare global\';\\n\'declare window\';\\n\\n\\n/**\\n * @param {!Object} maybeGlobal\\n * @return {!Object} The global object.\\n * @suppress {undefinedVars|reportUnknownTypes}\\n */\\n$jscomp.getGlobal = function(maybeGlobal) {\\n return (typeof window != \'undefined\' && window === maybeGlobal) ?\\n maybeGlobal :\\n (typeof global != \'undefined\' && global != null) ? global : maybeGlobal;\\n};\\n\\n\\n// TODO(sdh): This should be typed as \\"the global object\\", but there\'s not\\n// currently any way to do this in the existing type system.\\n/**\\n * The global object. For browsers we could just use `this` but in Node that\\n * doesn\'t work.\\n * @const {?}\\n */\\n$jscomp.global = $jscomp.getGlobal(this);\\n","js/util/objectcreate.js":"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Provides a partial internal polyfill for Object.create.\\n */\\n\'require util/defines\';\\n\\n\\n/**\\n * Polyfill for Object.create() method:\\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create\\n *\\n * Does not implement the second argument.\\n * @param {!Object} prototype\\n * @return {!Object}\\n */\\n$jscomp.objectCreate =\\n ($jscomp.ASSUME_ES5 || typeof Object.create == \'function\') ?\\n Object.create :\\n function(prototype) {\\n /** @constructor */\\n var ctor = function() {};\\n ctor.prototype = prototype;\\n return new ctor();\\n };\\n","js/util/owns.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\'require base\';\\n\\n/**\\n * Synonym for Object.prototype.hasOwnProperty.call(obj, prop).\\n * @param {!Object} obj\\n * @param {string} prop\\n * @return {boolean}\\n */\\n$jscomp.owns = function(obj, prop) {\\n return Object.prototype.hasOwnProperty.call(obj, prop);\\n};\\n","js/util/polyfill.js":"/*\\n * Copyright 2016 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n/**\\n * @fileoverview Provides methods to polyfill native objects.\\n */\\n\'require util/defineproperty\';\\n\'require util/global\';\\n\\n\\n/**\\n * @param {string} target Qualified name of the class or method to polyfill,\\n * e.g. \'Array.prototype.includes\' or \'Map\'.\\n * @param {?function(*): *} polyfill A function that takes the current browser\\n * implementation of the target and returns an optional new polyfill\\n * implementation. If null is returned, then no polyfill will be added. A\\n * null argument for this parameter indicates that the function will not be\\n * polyfilled, and is only useful for `build_polyfill_table.js` bookkeeping.\\n * @param {string} fromLang The language level in which the target is expected\\n * to already be present in the browser. The compiler requires that\\n * `languageOut < fromLang` before injecting a polyfill (i.e. if the\\n * specified output language already includes the feature then there\'s no\\n * need to polyfill it).\\n * @param {string} toLang The language level required by the polyfill\\n * implementation. The compiler will issue an error if a polyfill is\\n * required, but `languageOut < toLang`. Additionally, the\\n * `build_polyfill_table.js` script audits the polyfill dependency tree to\\n * ensure that no polyfill with a lower `toLang` depends on one with a\\n * higher `toLang`.\\n * @suppress {reportUnknownTypes}\\n */\\n$jscomp.polyfill = function(target, polyfill, fromLang, toLang) {\\n if (!polyfill) return;\\n var obj = $jscomp.global;\\n var split = target.split(\'.\');\\n for (var i = 0; i < split.length - 1; i++) {\\n var key = split[i];\\n if (!(key in obj)) obj[key] = {}; // Might want to be defineProperty.\\n obj = obj[key];\\n }\\n var property = split[split.length - 1];\\n var orig = obj[property];\\n var impl = polyfill(orig);\\n if (impl == orig || impl == null) return;\\n $jscomp.defineProperty(\\n obj, property, {configurable: true, writable: true, value: impl});\\n};\\n","js/util/reflectobject.js":"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\'require base\';\\n\\n/**\\n * Definition for object reflection. See goog.reflect.object.\\n *\\n * @param {!Function} type Type to cast to.\\n * @param {Object} object Object literal to cast.\\n * @return {Object} The object literal.\\n */\\n$jscomp.reflectObject = function(type, object) {\\n return object;\\n};\\n","js/util/stringpadding.js":"/*\\n * Copyright 2017 The Closure Compiler Authors.\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n *\\n * Unless required by applicable law or agreed to in writing, software\\n * distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n * See the License for the specific language governing permissions and\\n * limitations under the License.\\n */\\n\\n\'require es6/string/repeat\';\\n\\n/**\\n * Repeats the given string as necessary to reach the given length,\\n * truncating any extra characters.\\n * @param {string|undefined} padString\\n * @param {number} padLength\\n * @return {string}\\n */\\n$jscomp.stringPadding = function(padString, padLength) {\\n var padding = padString !== undefined ? String(padString) : \' \';\\n if (!(padLength > 0) || !padding) return \'\';\\n var repeats = Math.ceil(padLength / padding.length);\\n return padding.repeat(repeats).substring(0, padLength);\\n};\\n","parsing/ParserConfig.properties":"# Copyright 2009 The Closure Compiler Authors.\\n#\\n# Licensed under the Apache License, Version 2.0 (the \\"License\\");\\n# you may not use this file except in compliance with the License.\\n# You may obtain a copy of the License at\\n#\\n# http://www.apache.org/licenses/LICENSE-2.0\\n#\\n# Unless required by applicable law or agreed to in writing, software\\n# distributed under the License is distributed on an \\"AS IS\\" BASIS,\\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n# See the License for the specific language governing permissions and\\n# limitations under the License.\\n\\n# Configuration options for the Parser.\\n#\\n# Allows us to update the allowed JSDoc annotations independently of the\\n# Compiler binary, so we can add new JSDoc annotations to old binaries.\\n\\n# The version of the compiler that we\'re currently building.\\n# Should be formatted as:\\n# Version# (Revision XXX)\\ncompiler.version = ${compiler.version}\\n\\n# The datestamp of the compiler that we\'re currently building.\\ncompiler.date = ${compiler.date}\\n\\n# A comma-delimited list.\\n# Some of these are not used by JSCompiler, but appear in third-party JS code.\\n# http://usejsdoc.org/\\n# It\'s not strictly necessary for the natively-supported annotations to be\\n# listed here, but it\'s nice to have them all in one place.\\njsdoc.annotations =\\\\\\n addon,\\\\\\n alias,\\\\\\n animations,\\\\\\n augments,\\\\\\n author,\\\\\\n base,\\\\\\n borrows,\\\\\\n bug,\\\\\\n channel, \\\\\\n class,\\\\\\n classdesc,\\\\\\n codepen,\\\\\\n config,\\\\\\n consistentIdGenerator,\\\\\\n constructor,\\\\\\n constructs,\\\\\\n copyright,\\\\\\n default,\\\\\\n delegate,\\\\\\n demo,\\\\\\n deprecated,\\\\\\n desc,\\\\\\n description,\\\\\\n dict,\\\\\\n element,\\\\\\n enhance,\\\\\\n enhanceable,\\\\\\n enum,\\\\\\n event,\\\\\\n eventOf,\\\\\\n eventType,\\\\\\n example,\\\\\\n exception,\\\\\\n exec,\\\\\\n export,\\\\\\n exportDoc,\\\\\\n exportInterface,\\\\\\n expose,\\\\\\n externs,\\\\\\n field,\\\\\\n file,\\\\\\n fires,\\\\\\n function,\\\\\\n global,\\\\\\n hassoydelcall,\\\\\\n hassoydeltemplate,\\\\\\n id,\\\\\\n idGenerator,\\\\\\n ignore,\\\\\\n inner,\\\\\\n instance,\\\\\\n kind,\\\\\\n lends,\\\\\\n link,\\\\\\n meaning,\\\\\\n member,\\\\\\n memberOf,\\\\\\n memberof,\\\\\\n method,\\\\\\n methodOf,\\\\\\n mixes,\\\\\\n mixin,\\\\\\n modName,\\\\\\n model,\\\\\\n modifies,\\\\\\n mods,\\\\\\n module,\\\\\\n multiElement,\\\\\\n name,\\\\\\n namespace,\\\\\\n ngInject,\\\\\\n ngdoc,\\\\\\n nocompile,\\\\\\n package,\\\\\\n param,\\\\\\n parent,\\\\\\n pintomodule,\\\\\\n preserveTry,\\\\\\n priority,\\\\\\n private,\\\\\\n property,\\\\\\n propertyOf,\\\\\\n protected,\\\\\\n provideGoog,\\\\\\n public,\\\\\\n readonly,\\\\\\n requirecss,\\\\\\n requires,\\\\\\n restrict,\\\\\\n returns,\\\\\\n scope,\\\\\\n see,\\\\\\n since,\\\\\\n stableIdGenerator,\\\\\\n static,\\\\\\n struct,\\\\\\n summary,\\\\\\n supported,\\\\\\n this,\\\\\\n throws,\\\\\\n todo,\\\\\\n tutorial,\\\\\\n type,\\\\\\n typedef,\\\\\\n typeSummary,\\\\\\n url,\\\\\\n usage,\\\\\\n version,\\\\\\n virtual,\\\\\\n visibility,\\\\\\n wizSupportsSymbolicLookup,\\\\\\n wizaction,\\\\\\n wizmodule\\n\\n# Comma-delimited list of valid suppressions.\\n# This should be a subset of the list of DiagnosticGroups.\\njsdoc.suppressions =\\\\\\n accessControls,\\\\\\n ambiguousFunctionDecl,\\\\\\n checkDebuggerStatement,\\\\\\n checkEventfulObjectDisposal,\\\\\\n checkRegExp,\\\\\\n checkTypes,\\\\\\n checkVars,\\\\\\n closureDepMethodUsageChecks,\\\\\\n const,\\\\\\n constantProperty,\\\\\\n deprecated,\\\\\\n duplicate,\\\\\\n es5Strict,\\\\\\n externsValidation,\\\\\\n extraProvide,\\\\\\n extraRequire,\\\\\\n fileoverviewTags,\\\\\\n globalThis,\\\\\\n invalidCasts,\\\\\\n legacyGoogScopeRequire,\\\\\\n lateProvide,\\\\\\n lintChecks,\\\\\\n messageConventions,\\\\\\n misplacedTypeAnnotation,\\\\\\n missingOverride, \\\\\\n missingPolyfill, \\\\\\n missingProperties,\\\\\\n missingProvide,\\\\\\n missingRequire,\\\\\\n missingReturn,\\\\\\n moduleLoad,\\\\\\n newCheckTypes,\\\\\\n newCheckTypesAllChecks,\\\\\\n nonStandardJsDocs,\\\\\\n reportUnknownTypes,\\\\\\n strictModuleDepCheck,\\\\\\n suspiciousCode,\\\\\\n transitionalSuspiciousCodeWarnings,\\\\\\n undefinedNames,\\\\\\n undefinedVars,\\\\\\n underscore,\\\\\\n unknownDefines,\\\\\\n unusedLocalVariables,\\\\\\n unusedPrivateMembers,\\\\\\n uselessCode,\\\\\\n visibility,\\\\\\n with\\n\\n# A comma-delimited list of reserved words that we should not rename variables\\n# to. Used when an extension is released that steps on globals.\\n# This prevents the compiler from renaming variables to these names, but not\\n# from allowing externs for these names.\\n#\\n# i,j - common loop variables often overwritten by browser extensions\\n# s \u2013 commonly defined by browser extensions when injecting scripts.\\n# $j,$ - common jquery aliases often overwritten by browser extensions\\n# o - overwritten by Norton Identity Protection\'s Chrome extension.\\n# ga,_gaq - global variable names used by Google Analytics.\\n# TODO(tbreisacher): Remove \'ga\' and \'_gaq\' if/when we enable\\n# --isolation_mode=IIFE by default.\\ncompiler.reserved.vars = i,j,s,$,$j,o,ga,_gaq\\n","rhino/Messages.properties":"#\\n# Default JavaScript messages file.\\n#\\n# ***** BEGIN LICENSE BLOCK *****\\n# Version: MPL 1.1/GPL 2.0\\n#\\n# The contents of this file are subject to the Mozilla Public License Version\\n# 1.1 (the \\"License\\"); you may not use this file except in compliance with\\n# the License. You may obtain a copy of the License at\\n# http://www.mozilla.org/MPL/\\n#\\n# Software distributed under the License is distributed on an \\"AS IS\\" basis,\\n# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\\n# for the specific language governing rights and limitations under the\\n# License.\\n#\\n# The Original Code is Rhino code, released\\n# May 6, 1999.\\n#\\n# The Initial Developer of the Original Code is\\n# Netscape Communications Corporation.\\n# Portions created by the Initial Developer are Copyright (C) 1997-1999\\n# the Initial Developer. All Rights Reserved.\\n#\\n# Contributor(s):\\n# Norris Boyd\\n# Bob Jervis\\n# Pascal-Louis Perez\\n#\\n# Alternatively, the contents of this file may be used under the terms of\\n# the GNU General Public License Version 2 or later (the \\"GPL\\"), in which\\n# case the provisions of the GPL are applicable instead of those above. If\\n# you wish to allow use of your version of this file only under the terms of\\n# the GPL and not to allow others to use your version of this file under the\\n# MPL, indicate your decision by deleting the provisions above and replacing\\n# them with the notice and other provisions required by the GPL. If you do\\n# not delete the provisions above, a recipient may use your version of this\\n# file under either the MPL or the GPL.\\n#\\n# ***** END LICENSE BLOCK *****\\n\\n# This is replaced during jar assembly from property string\\n# and should not be translated\\nimplementation.version = @IMPLEMENTATION.VERSION@\\n\\n#\\n# To add JavaScript error messages for a particular locale, create a\\n# new Messages_[locale].properties file, where [locale] is the Java\\n# string abbreviation '; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/transpile.js-1472-a.a+='for that locale. For example, JavaScript\\n# messages for the Polish locale should be located in\\n# Messages_pl.properties, and messages for the Italian Swiss locale\\n# should be located in Messages_it_CH.properties. Message properties\\n# files should be accessible through the classpath under\\n# org.mozilla.javascript.resources\\n#\\n# See:\\n# java.util.ResourceBundle\\n# java.text.MessageFormat\\n#\\n\\n# SomeJavaClassWhereUsed\\n\\n# Codegen\\nmsg.dup.parms =\\\\\\n Duplicate parameter name \\"{0}\\".\\n\\nmsg.unexpected.eof =\\\\\\n Unexpected end of file\\n\\nmsg.extra.trailing.comma =\\\\\\n Trailing comma is not legal in an ECMA-262 object initializer\\n\\nmsg.end.annotation.expected =\\\\\\n expected end of line or comment.\\n\\nmsg.bad.jsdoc.tag =\\\\\\n illegal use of unknown JSDoc tag \\"{0}\\"; ignoring it\\n\\nmsg.bad.fileoverview.visibility.annotation =\\\\\\n {0} visibility not allowed in @fileoverview block\\n\\nmsg.missing.variable.name =\\\\\\n expecting a variable name in a @param tag.\\n\\nmsg.dup.variable.name =\\\\\\n duplicate variable name \\"{0}\\"\\n\\nmsg.invalid.variable.name =\\\\\\n invalid param name \\"{0}\\"\\n\\nmsg.jsdoc.incompat.type =\\\\\\n type annotation incompatible with other annotations.\\n\\nmsg.jsdoc.type.syntax =\\\\\\n type not recognized due to syntax error.\\n\\nmsg.jsdoc.override =\\\\\\n extra @override/@inheritDoc tag.\\n\\nmsg.jsdoc.final =\\\\\\n extra @final tag.\\n\\nmsg.jsdoc.extra.visibility=\\\\\\n extra visibility tag\\n\\nmsg.jsdoc.idgen.duplicate =\\\\\\n extra @idGenerator tag\\n\\nmsg.jsdoc.idgen.bad =\\\\\\n malformed @idGenerator tag\\n\\nmsg.jsdoc.wizaction =\\\\\\n extra @wizaction tag\\n\\nmsg.jsdoc.idgen.unknown =\\\\\\n unknown @idGenerator parameter: {0}\\n\\nmsg.jsdoc.hidden =\\\\\\n extra @hidden tag\\n\\nmsg.jsdoc.consistidgen =\\\\\\n extra @consistentIdGenerator tag\\n\\nmsg.jsdoc.const =\\\\\\n conflicting @const tag\\n\\nmsg.jsdoc.desc.extra =\\\\\\n extra @desc tag\\n\\nmsg.jsdoc.meaning.extra =\\\\\\n extra @meaning tag\\n\\nmsg.jsdoc.fileoverview.extra =\\\\\\n extra @fileoverview tag\\n\\nmsg.jsdoc.lends.incompatible =\\\\\\n @lends tag incompatible with other annotations.\\n\\nmsg.jsdoc.lends.missing =\\\\\\n missing object name in @lends tag.\\n\\nmsg.jsdoc.preserve.nobuilder =\\\\\\n @preserve or @license annotation without file to associate it with\\n\\nmsg.jsdoc.missing.lp =\\\\\\n missing opening (\\n\\nmsg.jsdoc.missing.braces =\\\\\\n Type annotations should have curly braces.\\n\\nmsg.jsdoc.missing.rc =\\\\\\n expected closing }\\n\\nmsg.jsdoc.missing.rp =\\\\\\n missing closing )\\n\\nmsg.jsdoc.missing.gt =\\\\\\n missing closing >\\n\\nmsg.jsdoc.missing.rb =\\\\\\n missing closing ]\\n\\nmsg.jsdoc.missing.colon =\\\\\\n expecting colon after this\\n\\nmsg.jsdoc.function.this =\\\\\\n expecting this but {0} found\\n\\nmsg.jsdoc.function.newnotobject =\\\\\\n constructed type must be an object type\\n\\nmsg.jsdoc.function.varargs =\\\\\\n variable length argument must be last.\\n\\nmsg.jsdoc.type.union =\\\\\\n union type element with bad syntax\\n\\nmsg.jsdoc.type.record.duplicate =\\\\\\n Duplicate record field {0}.\\n\\nmsg.jsdoc.enum =\\\\\\n conflicting @enum tag\\n\\nmsg.jsdoc.constructor =\\\\\\n conflicting @constructor tag\\n\\nmsg.jsdoc.deprecated =\\\\\\n extra @deprecated tag\\n\\nmsg.jsdoc.interface =\\\\\\n extra @interface tag\\n\\nmsg.jsdoc.interface.constructor =\\\\\\n cannot be both an interface and a constructor.\\n\\nmsg.jsdoc.record =\\\\\\n conflicting @record tag.\\n\\nmsg.jsdoc.implements.duplicate =\\\\\\n duplicate @implements tag.\\n\\nmsg.jsdoc.noalias =\\\\\\n extra @noalias tag\\n\\nmsg.jsdoc.nosideeffects =\\\\\\n conflicting @nosideeffects tag\\n\\nmsg.jsdoc.implicitcast =\\\\\\n extra @implicitCast tag.\\n\\nmsg.jsdoc.this =\\\\\\n conflicting @this tag\\n\\nmsg.jsdoc.this.object =\\\\\\n @this must specify an object type\\n\\nmsg.jsdoc.type =\\\\\\n conflicting @type tag\\n\\nmsg.jsdoc.define =\\\\\\n conflicting @define tag\\n\\nmsg.jsdoc.define.badtype =\\\\\\n @define tag only permits literal types\\n\\nmsg.jsdoc.extends =\\\\\\n conflicting @extends tag\\n\\nmsg.jsdoc.extends.duplicate =\\\\\\n duplicate @extends tag\\n\\nmsg.jsdoc.export =\\\\\\n extra @export tag\\n\\nmsg.jsdoc.expose =\\\\\\n extra @expose tag\\n\\nmsg.jsdoc.externs =\\\\\\n extra @externs tag\\n\\nmsg.jsdoc.typesummary =\\\\\\n extra @typeSummary tag\\n\\nmsg.jsdoc.nocompile =\\\\\\n extra @nocompile tag\\n\\nmsg.jsdoc.nocollapse =\\\\\\n extra @nocollapse tag\\n\\nmsg.jsdoc.seemissing =\\\\\\n @see tag missing description\\n\\nmsg.jsdoc.authormissing =\\\\\\n @author tag missing author\\n\\nmsg.jsdoc.versionmissing =\\\\\\n @version tag missing version information\\n\\nmsg.jsdoc.extraversion =\\\\\\n conflicting @version tag\\n\\nmsg.jsdoc.suppress =\\\\\\n malformed @suppress tag\\n\\nmsg.jsdoc.suppress.duplicate =\\\\\\n duplicate @suppress tag\\n\\nmsg.jsdoc.suppress.unknown =\\\\\\n unknown @suppress parameter: {0}\\n\\nmsg.jsdoc.modifies =\\\\\\n malformed @modifies tag\\n\\nmsg.jsdoc.modifies.duplicate =\\\\\\n conflicting @modifies tag\\n\\nmsg.jsdoc.modifies.unknown =\\\\\\n unknown @modifies parameter: {0}\\n\\nmsg.jsdoc.polymerBehavior.extra =\\\\\\n extra @polymerBehavior tag\\n\\nmsg.jsdoc.polymer.extra =\\\\\\n extra @polymer tag\\n\\nmsg.jsdoc.customElement.extra =\\\\\\n extra @customElement tag\\n\\nmsg.jsdoc.mixinClass.extra =\\\\\\n extra @mixinClass tag\\n\\nmsg.jsdoc.mixinFunction.extra =\\\\\\n extra @mixinFunction tag\\n\\nmsg.jsdoc.stableidgen =\\\\\\n extra @stableIdGenerator tag\\n\\nmsg.jsdoc.templatemissing =\\\\\\n @template tag missing type name.\\n\\nmsg.jsdoc.template.name.declared.twice =\\\\\\n Type name(s) for @template annotation declared twice.\\n\\nmsg.jsdoc.template.invalid.type.name =\\\\\\n Invalid type name(s) for @template annotation.\\n\\nmsg.jsdoc.disposeparameter.missing =\\\\\\n @disposes tag missing parameter name.\\n\\nmsg.jsdoc.disposeparameter.error =\\\\\\n @disposes parameter unknown or parameter specified multiple times.\\n\\nmsg.jsdoc.jaggerInject.extra =\\\\\\n extra @jaggerInject tag\\n\\nmsg.jsdoc.jaggerModule.extra =\\\\\\n extra @jaggerModule tag\\n\\nmsg.jsdoc.jaggerProvidePromise.extra =\\\\\\n extra @jaggerProvidePromise tag\\n\\nmsg.jsdoc.jaggerProvide.extra =\\\\\\n extra @jaggerProvide tag\\n\\nmsg.jsdoc.nginject.extra =\\\\\\n extra @ngInject tag\\n\\nmsg.no.type.name =\\\\\\n expecting a type name.\\n\\nmsg.jsdoc.typetransformation.missing.delimiter =\\\\\\n Expected end delimiter for a type transformation.\\n\\nmsg.jsdoc.typetransformation.with.multiple.names =\\\\\\n Type transformation must be associated to a single type name.\\n\\nmsg.jsdoc.typetransformation.expression.missing =\\\\\\n Missing type transformation expression.\\n\\nmsg.jsdoc.typetransformation.invalid =\\\\\\n Invalid {0}\\n\\nmsg.jsdoc.typetransformation.invalid.expression =\\\\\\n Invalid {0} expression\\n\\nmsg.jsdoc.typetransformation.missing.param =\\\\\\n Missing parameter in {0}\\n\\nmsg.jsdoc.typetransformation.extra.param =\\\\\\n Found extra parameter in {0}\\n\\nmsg.jsdoc.typetransformation.invalid.inside =\\\\\\n Invalid expression inside {0}\\n"}\n'; ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/goog/delegate/delegateregistry_test.js-32- toString() { aseba-plugin-blockly-20180211+git/closure-library/closure/goog/delegate/delegateregistry_test.js:33: return `Foo(${this.arg !== undefined ? this.arg : ''})`; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/delegate/delegateregistry_test.js-34- } ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/goog/delegate/delegateregistry_test.js-41- toString() { aseba-plugin-blockly-20180211+git/closure-library/closure/goog/delegate/delegateregistry_test.js:42: return `Bar(${this.arg !== undefined ? this.arg : ''})`; aseba-plugin-blockly-20180211+git/closure-library/closure/goog/delegate/delegateregistry_test.js-43- } ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-126- throw new Error( aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js:127: `Path to base must end with base.js: ${processedArgs.basePath}.`); aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-128- } ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-185- if (!args.overwriteExistingFiles && fs.existsSync(htmlFilename)) { aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js:186: console.warn(`"${htmlFilename}" exists - skipping.`); aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-187- return; ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-194- console.error( aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js:195: `File ${filename} does not provide or module the tests, ` + aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-196- 'cannot generate html.'); ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-199- aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js:200: const newJS = `goog.require('${provide[1]}');`; aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js:201: const title = `Closure Unit Tests - ${provide[1]}`; aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-202- ############################################## aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-252-<meta charset="UTF-8" /> aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js:253:${pathToBootstrap ? `<script src=${pathToBootstrap}></script>` : ''} aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-254-<script src="${pathToBase}"></script> aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js:255:${pathToDeps ? `<script src=${pathToDeps}></script>` : ''} aseba-plugin-blockly-20180211+git/closure-library/closure/bin/generate_closure_unit_tests/generate_closure_unit_tests.js-256-<script>${js}</script> ############################################## aseba-plugin-blockly-20180211+git/closure-library/third_party/closure/goog/dojo/dom/query.js-109- * * `[foo^='bar']` attribute start match aseba-plugin-blockly-20180211+git/closure-library/third_party/closure/goog/dojo/dom/query.js:110: * * `[foo$='bar']` attribute end match aseba-plugin-blockly-20180211+git/closure-library/third_party/closure/goog/dojo/dom/query.js-111- * * `[foo*='bar']` attribute substring match