UNPKG

three

Version:

JavaScript 3D library

38 lines (35 loc) 1.73 MB
// This is ammo.js, a port of Bullet Physics to JavaScript. zlib licensed. var Ammo = (function() { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; return ( function(Ammo) { Ammo = Ammo || {}; var c;var d;d||(d=typeof Ammo !== 'undefined' ? Ammo : {});var aa={},ba;for(ba in d)d.hasOwnProperty(ba)&&(aa[ba]=d[ba]);d.arguments=[];d.thisProgram="./this.program";d.quit=function(a,b){throw b;};d.preRun=[];d.postRun=[];var ca=!1,da=!1,ea=!1,fa=!1;ca="object"===typeof window;da="function"===typeof importScripts;ea="object"===typeof process&&"function"===typeof require&&!ca&&!da;fa=!ca&&!ea&&!da;var ia=""; if(ea){ia=__dirname+"/";var ja,ka;d.read=function(a,b){var e=la(a);e||(ja||(ja=require("fs")),ka||(ka=require("path")),a=ka.normalize(a),e=ja.readFileSync(a));return b?e:e.toString()};d.readBinary=function(a){a=d.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};1<process.argv.length&&(d.thisProgram=process.argv[1].replace(/\\/g,"/"));d.arguments=process.argv.slice(2);process.on("uncaughtException",function(a){if(!(a instanceof ma))throw a;});process.on("unhandledRejection",na); d.quit=function(a){process.exit(a)};d.inspect=function(){return"[Emscripten Module object]"}}else if(fa)"undefined"!=typeof read&&(d.read=function(a){var b=la(a);return b?oa(b):read(a)}),d.readBinary=function(a){var b;if(b=la(a))return b;if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));b=read(a,"binary");assert("object"===typeof b);return b},"undefined"!=typeof scriptArgs?d.arguments=scriptArgs:"undefined"!=typeof arguments&&(d.arguments=arguments),"function"===typeof quit&& (d.quit=function(a){quit(a)});else if(ca||da)da?ia=self.location.href:document.currentScript&&(ia=document.currentScript.src),_scriptDir&&(ia=_scriptDir),ia=0!==ia.indexOf("blob:")?ia.substr(0,ia.lastIndexOf("/")+1):"",d.read=function(a){try{var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText}catch(e){if(a=la(a))return oa(a);throw e;}},da&&(d.readBinary=function(a){try{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}catch(e){if(a= la(a))return a;throw e;}}),d.readAsync=function(a,b,e){var f=new XMLHttpRequest;f.open("GET",a,!0);f.responseType="arraybuffer";f.onload=function(){if(200==f.status||0==f.status&&f.response)b(f.response);else{var g=la(a);g?b(g.buffer):e()}};f.onerror=e;f.send(null)},d.setWindowTitle=function(a){document.title=a}; var pa=d.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),qa=d.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||pa);for(ba in aa)aa.hasOwnProperty(ba)&&(d[ba]=aa[ba]);aa=void 0;var ra=0,sa=!1;function assert(a,b){a||na("Assertion failed: "+b)}var ta="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0; function ua(a,b){for(var e=b;a[e];)++e;if(16<e-b&&a.subarray&&ta)return ta.decode(a.subarray(b,e));for(e="";;){var f=a[b++];if(!f)return e;if(f&128){var g=a[b++]&63;if(192==(f&224))e+=String.fromCharCode((f&31)<<6|g);else{var n=a[b++]&63;f=224==(f&240)?(f&15)<<12|g<<6|n:(f&7)<<18|g<<12|n<<6|a[b++]&63;65536>f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le"); var buffer,va,wa,xa,ya;function za(){na("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+Aa+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}var Aa=d.TOTAL_MEMORY||67108864; 5242880>Aa&&qa("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+Aa+"! (TOTAL_STACK=5242880)");d.buffer?buffer=d.buffer:(buffer=new ArrayBuffer(Aa),d.buffer=buffer);d.HEAP8=va=new Int8Array(buffer);d.HEAP16=new Int16Array(buffer);d.HEAP32=xa=new Int32Array(buffer);d.HEAPU8=wa=new Uint8Array(buffer);d.HEAPU16=new Uint16Array(buffer);d.HEAPU32=new Uint32Array(buffer);d.HEAPF32=ya=new Float32Array(buffer);d.HEAPF64=new Float64Array(buffer);xa[7336]=5272480; function Ba(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var e=b.Da;"number"===typeof e?void 0===b.ga?d.dynCall_v(e):d.dynCall_vi(e,b.ga):e(void 0===b.ga?null:b.ga)}}}var Ca=[],Da=[],Ea=[],Fa=[],Ga=!1;function Ha(){var a=d.preRun.shift();Ca.unshift(a)}Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(a,b){var e=a&65535,f=b&65535;return e*f+((a>>>16)*f+e*(b>>>16)<<16)|0}); Math.clz32||(Math.clz32=function(a){var b=32,e=a>>16;e&&(b-=16,a=e);if(e=a>>8)b-=8,a=e;if(e=a>>4)b-=4,a=e;if(e=a>>2)b-=2,a=e;return a>>1?b-2:b-a});Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)});var Ia=0,Ja=null,Ka=null;d.preloadedImages={};d.preloadedAudios={}; var La=null,Ma="data:application/octet-stream;base64,",Na=[function(a,b,e,f){a=d.getCache(d.DebugDrawer)[a];if(!a.hasOwnProperty("drawLine"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::drawLine.";a.drawLine(b,e,f)},function(a,b,e,f,g,n){a=d.getCache(d.DebugDrawer)[a];if(!a.hasOwnProperty("drawContactPoint"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::drawContactPoint.";a.drawContactPoint(b,e,f,g,n)},function(a,b){a=d.getCache(d.DebugDrawer)[a]; if(!a.hasOwnProperty("reportErrorWarning"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::reportErrorWarning.";a.reportErrorWarning(b)},function(a,b,e){a=d.getCache(d.DebugDrawer)[a];if(!a.hasOwnProperty("draw3dText"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::draw3dText.";a.draw3dText(b,e)},function(a,b){a=d.getCache(d.DebugDrawer)[a];if(!a.hasOwnProperty("setDebugMode"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::setDebugMode."; a.setDebugMode(b)},function(a){a=d.getCache(d.DebugDrawer)[a];if(!a.hasOwnProperty("getDebugMode"))throw"a JSImplementation must implement all functions, you forgot DebugDrawer::getDebugMode.";return a.getDebugMode()},function(a,b,e,f,g,n,A,Q){a=d.getCache(d.ConcreteContactResultCallback)[a];if(!a.hasOwnProperty("addSingleResult"))throw"a JSImplementation must implement all functions, you forgot ConcreteContactResultCallback::addSingleResult.";return a.addSingleResult(b,e,f,g,n,A,Q)}];Da.push({Da:function(){Oa()}}); La="data:application/octet-stream;base64,AAAAAAAAAAARAAoAERERAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABEADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA0AAAAEDQAAAAAJDgAAAAAADgAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABISEgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAoAAAAACgAAAAAJCwAAAAAACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAADAxMjM0NTY3ODlBQkNERUZUISIZDQECAxFLHAwQBAsdEh4naG5vcHFiIAUGDxMUFRoIFgcoJBcYCQoOGx8lI4OCfSYqKzw9Pj9DR0pNWFlaW1xdXl9gYWNkZWZnaWprbHJzdHl6e3wAAAAAAAAAAABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAAAAAAOgwAACiNgAAcAkAAAAAAADAMAAAsDYAAOgwAADnNwAAiAkAAAAAAADAMAAABzgAAOgwAAAzOAAAoAkAAAAAAADAMAAAYjgAAOgwAACKOAAAuAkAAAAAAADAMAAAoDgAAOgwAAC8OAAA0AkAAAAAAADAMAAA0zgAAMAwAADjOAAA6DAAAPg4AADwCQAAAAAAAMAwAAAqOQAA6DAAAFU5AAAICgAAAAAAAMAwAABvOQAA6DAAAII5AACADQAAAAAAAOgwAACuOQAAMAoAAAAAAADAMAAA6TkAAOgwAAAKOgAAMAoAAAAAAADoMAAAPjoAADAKAAAAAAAA6DAAAGw6AAAwCgAAAAAAAOgwAABeOwAAMA0AAAAAAADoMAAAazsAAIgKAAAAAAAAwDAAAIs7AADAMAAAnjsAAOgwAACzOwAAkAoAAAAAAADoMAAA0jsAALARAAAAAAAA6DAAAGM8AADYCgAAAAAAAOgwAABFPAAAMBEAAAAAAADoMAAAhTwAAIgKAAAAAAAA6DAAAKY8AACICgAAAAAAAOgwAADJPAAAiAoAAAAAAADoMAAA6zwAANgKAAAAAAAA6DAAAA09AAAoCwAAAAAAAMAwAAAtPQAA6DAAADk+AAAoCwAAAAAAAOgwAAB8PQAAUBEAAAAAAADoMAAATT0AAPgQAAAAAAAAwDAAAF89AADoMAAAHD4AAFARAAAAAAAA6DAAAO0+AADQCwAAAAAAAOgwAACePgAAmAsAAAAAAADoMAAAuD4AAKgLAAAAAAAAwDAAANI+AADoMAAACD8AACgLAAAAAAAA6DAAADw/AAAwDQAAAAAAAOgwAADsQAAA8AsAAAAAAADoMAAAzj8AAOAJAAAAAAAA6DAAAAZBAACoDgAAAAAAAOgwAAAYQQAAEAwAAAAAAADAMAAANkEAAOgwAABkQQAAWAwAAAAAAADoMAAAlEEAAFgMAAAAAAAA6DAAANBBAAAoDAAAAAAAAOgwAAARQgAAWAwAAAAAAAAQMQAARkIAAAAAAAABAAAAcAwAAAIEAADAMAAAWkIAAOgwAACBQgAAWAwAAAAAAADoMAAAsEIAAFgMAAAAAAAA6DAAAONCAABYDAAAAAAAAOgwAABBQwAAuAwAAAAAAADAMAAAZ0MAAOgwAAB8QwAA0AwAAAAAAADAMAAAj0MAAOgwAACjQwAA2AkAAAAAAADoMAAA7UMAAAgNAAAAAAAA6DAAAL9DAADgCQAAAAAAAOgwAAAORAAA0AwAAAAAAADoMAAAL0QAACgNAAAAAAAAwDAAAEhEAADAMAAAckQAAOgwAACGRAAAMA0AAAAAAADoMAAAlkQAADgNAAAAAAAA6DAAAN9EAAAIEwAAAAAAAOgwAACxRAAAeA0AAAAAAADAMAAAy0QAAOgwAAD3RAAAkA0AAAAAAADAMAAAGUUAAOgwAAA0RQAAMAoAAAAAAADoMAAAZEUAADAKAAAAAAAA6DAAAI9FAAAwCgAAAAAAAOgwAADCRQAAMAoAAAAAAADoMAAA80UAADAKAAAAAAAA6DAAABRGAAAwCgAAAAAAAOgwAABIRgAAMAoAAAAAAADoMAAAfUYAADAKAAAAAAAA6DAAAKpGAAAwCgAAAAAAAOgwAADjRgAAMAoAAAAAAADAMAAAFUcAAOgwAABcRwAAKAsAAAAAAADoMAAAN0gAALgTAAAAAAAA6DAAAH5HAABQEQAAAAAAAOgwAAAcSAAAUBEAAAAAAADoMAAAW0gAALgTAAAAAAAA6DAAAHhIAACgDgAAAAAAAMAwAACLSAAAwDAAADJMAADoMAAAIksAAJgLAAAAAAAA6DAAAPdIAACgCQAAAAAAAOgwAAB8SQAAiAoAAAAAAADoMAAA+kkAABgTAAAAAAAA6DAAAI9KAAAYEwAAAAAAABAxAAA4SwAAAAAAAAIAAABQEQAAAgAAAFgRAAACBAAA6DAAAFlMAADwCQAAAAAAAOgwAAD2TAAAKBMAAAAAAADoMAAAp00AACgTAAAAAAAA6DAAAGZOAACYCwAAAAAAAOgwAACYTgAAqAsAAAAAAADoMAAAfk4AAJAOAAAAAAAA6DAAALJOAAC4EwAAAAAAAOgwAAAeUAAAMAoAAAAAAADoMAAABFAAALgTAAAAAAAA6DAAANdOAACQDgAAAAAAAOgwAADyTgAAoA4AAAAAAADoMAAAf08AAKAOAAAAAAAA6DAAAF9QAAC4EwAAAAAAAOgwAABGUAAAiAoAAAAAAADoMAAAn1AAALgTAAAAAAAA6DAAAH5QAACICgAAAAAAAOgwAAD8UAAAGBEAAAAAAADoMAAAI1EAADARAAAAAAAA6DAAADdRAAAwEAAAAAAAAOgwAABMUQAAMBAAAAAAAADoMAAAYlEAADARAAAAAAAA6DAAACBSAAC4EAAAAAAAAOgwAAByUQAAkBAAAAAAAADAMAAA4FEAAOgwAAA5UgAAkBAAAAAAAADoMAAAoVIAAJAQAAAAAAAA6DAAAJ1TAACwEQAAAAAAAOgwAAASUwAAUBEAAAAAAADoMAAAKlMAAFgRAAAAAAAA6DAAANZTAACwEQAAAAAAAOgwAADrUwAAMBEAAAAAAADoMAAABVQAAPgQAAAAAAAAwDAAAD9UAADoMAAAUlQAABgRAAAAAAAA6DAAAGJUAAAgEQAAAAAAAOgwAACXVAAACBEAAAAAAADAMAAAq1QAAMAwAADAVAAA6DAAAAJVAAAwEQAAAAAAAOgwAAAcVQAAYBEAAAAAAADoMAAAN1UAAGARAAAAAAAA6DAAAHRVAAAIEQAAAAAAAOgwAABJVQAAWBEAAAAAAADoMAAAkFUAABgRAAAAAAAA6DAAAKVVAAD4EAAAAAAAAOgwAACyVQAAEBMAAAAAAADoMAAAw1UAAFgRAAAAAAAA6DAAAB5WAABYEQAAAAAAAOgwAACOVgAAsBEAAAAAAADoMAAAyFYAADARAAAAAAAA6DAAAORWAAAQEgAAAAAAAOgwAAABVwAAEBIAAAAAAADoMAAAFFcAABgUAAAAAAAA6DAAAFdXAABgEgAAAAAAAOgwAAAlVwAAcBIAAAAAAADAMAAAP1cAAOgwAABmVwAAiBIAAAAAAADoMAAAeFcAALgJAAAAAAAA6DAAAIBYAACIEgAAAAAAAOgwAACRVwAAeA0AAAAAAADoMAAA/1cAAHgNAAAAAAAA6DAAAOFYAABwEgAAAAAAAOgwAACfWAAAiAoAAAAAAADoMAAAtFgAAIgKAAAAAAAA6DAAAMtYAACICgAAAAAAAMAwAAD0WAAAwDAAAF5ZAADoMAAAb1kAAFARAAAAAAAA6DAAAItZAABQEQAAAAAAAOgwAABVWgAAWBMAAAAAAADoMAAAqlkAAKAOAAAAAAAAwDAAAHlaAADoMAAAmloAAFgTAAAAAAAA6DAAAM5aAAAoDQAAAAAAAOgwAAC7WgAAoA4AAAAAAADoMAAA4FoAACgNAAAAAAAA6DAAAP5aAACwEwAAAAAAAMAwAAASWwAA6DAAADlbAAAoCwAAAAAAAOgwAABaWwAAKAsAAAAAAADoMAAAbVsAALgTAAAAAAAA6DAAAJBbAACwEwAAAAAAAOgwAACjWwAAsBMAAAAAAADAMAAAvFsAAMAwAADWWwAA6DAAAOtbAAAoFAAAAAAAAMAwAACbXAAAwDAAAIFdAADoMAAA4V0AAEgUAAAAAAAA6DAAAI5dAABYFAAAAAAAAMAwAACvXQAA6DAAALxdAAA4FAAAAAAAAOgwAADnXgAASBQAAAAAAADoMAAAw14AAHAUAAAAAAAA6DAAAAlfAAA4FAAAAAAAAAAAAABgCQAAAQAAAAIAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAQAAAAIAAAABAAAAAQAAAAEAAAADAAAAAgAAAAEAAAACAAAAAwAAAAEAAAAAAAAAcAkAAAMAAAAEAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAQAAAAEAAAABAAAAAwAAAAIAAAABAAAAAgAAAAMAAAABAAAAAAAAAHgJAAAFAAAABgAAAAEAAAABAAAAAAAAAIgJAAAHAAAACAAAAAEAAAABAAAAAAAAAJAJAAAJAAAACgAAAAIAAAABAAAAAAAAAKAJAAALAAAADAAAAAIAAAABAAAAAAAAAKgJAAANAAAADgAAAAEAAAABAAAAAgAAAAAAAAC4CQAADwAAABAAAAABAAAAAQAAAAEAAAAAAAAAwAkAABEAAAASAAAAAwAAAAQAAAAAAAAA0AkAABMAAAAUAAAAAQAAAAEAAAAAAAAA2AkAABUAAAAWAAAAAQAAAAAAAADgCQAAFwAAABgAAAADAAAAAgAAAAAAAADwCQAAGQAAABoAAAADAAAAAQAAAAAAAAD4CQAAGwAAABwAAAACAAAAAwAAAAMAAAAFAAAAAQAAAAIAAAAdAAAABAAAAAUAAAAGAAAABAAAAAcAAAAFAAAABgAAAAAAAAAQCgAAHgAAAB8AAAAGAAAABwAAAAIAAAAIAAAAAAAAAFgKAAAgAAAAIQAAAAIAAAAAAAAASAoAACAAAAAiAAAAAwAAAAAAAAA4CgAAIAAAACMAAAAEAAAAAAAAACAKAAAgAAAAJAAAAAUAAAAAAAAAaAoAAAQAAAAlAAAAJgAAAAgAAAAJAAAAAwAAAAkAAAAHAAAAAAAAAHgKAAAnAAAAKAAAAAgAAAAKAAAAAgAAAAUAAAAGAAAAAAAAAJgKAAApAAAAKgAAAAEAAAABAAAAAwAAAAoAAAAAAAAAqAoAACsAAAAsAAAABAAAAAkAAAABAAAAAQAAAAsAAAALAAAAAgAAAAwAAAAMAAAABAAAAAIAAAANAAAABAAAAA0AAAAFAAAAAAAAAOgKAAAnAAAALQAAAAgAAAAOAAAAAgAAAAUAAAAGAAAAAAAAALgKAAAnAAAALgAAAAgAAAAPAAAAAgAAAAUAAAAGAAAAAAAAAMgKAAAvAAAAMAAAAAYAAAAJAAAAAQAAAAEAAAAQAAAADgAAAAMAAAAPAAAADAAAAAUAAAADAAAAEAAAAAUAAAANAAAACgAAAAsAAAADAAAABwAAAAgAAAARAAAADAAAABIAAAAAAAAACAsAACcAAAAxAAAADQAAABEAAAACAAAABQAAAAYAAAAAAAAA+AoAACcAAAAyAAAADgAAABEAAAACAAAABQAAAAYAAAAAAAAAGAsAADMAAAA0AAAABAAAAAEAAAASAAAAAAAAADALAAA1AAAANgAAAAUAAAACAAAAEwAAAAAAAABACwAANwAAADgAAAAJAAAAAAAAAGALAAAGAAAAFAAAAA8AAAA5AAAAOgAAAAAAAABQCwAAOwAAADwAAAAKAAAACQAAAAEAAAABAAAAEAAAAA4AAAAEAAAAEwAAAAwAAAAHAAAABAAAABAAAAAFAAAADQAAABAAAAARAAAAAwAAAAsAAAAIAAAAFAAAABIAAAAHAAAAFQAAABYAAAAMAAAAEwAAABcAAAANAAAAAQAAAA4AAAAAAAAAaAsAAD0AAAA+AAAADwAAAAAAAAB4CwAAPwAAAEAAAABBAAAAQgAAABUAAAAYAAAAQwAAABAAAAARAAAAEgAAABYAAABEAAAAFwAAAAEAAAAUAAAAGAAAABkAAAAaAAAAGwAAABwAAABFAAAAHQAAABMAAAAeAAAAHwAAABkAAAAaAAAACAAAAAkAAAAbAAAARgAAACAAAAAhAAAAIgAAACMAAAAIAAAACQAAAEcAAAAkAAAACgAAAAsAAAAMAAAASAAAACUAAAANAAAAAAAAAIgLAABJAAAASgAAAAoAAAAAAAAAsAsAAEsAAABMAAAABgAAAAMAAAAmAAAAAAAAAMALAAALAAAATQAAAE4AAAAnAAAAHAAAAAYAAAAoAAAAAAAAANALAABPAAAAUAAAAEEAAABCAAAAFQAAABgAAABRAAAAEAAAABQAAAASAAAAKQAAAEQAAAAqAAAAAQAAABQAAAAYAAAAGQAAABoAAAAbAAAAHAAAAEUAAAAdAAAAEwAAAB4AAAAfAAAAGQAAABoAAAAIAAAACQAAAB0AAABGAAAAIAAAACEAAAAiAAAAIwAAAA4AAAAJAAAARwAAACQAAAAKAAAADwAAAAwAAABIAAAAJQAAAA0AAAAAAAAA4AsAABkAAABSAAAADAAAAAMAAAAAAAAAAAwAAFMAAABUAAAAAQAAAAAAAAAYDAAAVQAAAFYAAABXAAAAAQAAACsAAAAsAAAAAQAAAAIAAAAEAAAAHgAAAAcAAAAAAAAAKAwAAFgAAABZAAAAWgAAAAEAAAAtAAAALgAAAAEAAAADAAAABQAAAB8AAAAIAAAAWwAAAAAAAAA4DAAAWAAAAFwAAABaAAAAAQAAAC0AAAAvAAAAAQAAAAMAAAAFAAAAIAAAAAkAAABbAAAAFQAAAAAAAABIDAAAWAAAAF0AAABeAAAAAQAAADAAAAAxAAAAAQAAAAQAAAAGAAAAIQAAAAoAAAAAAAAAWAwAAFgAAABfAAAAVwAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAB4AAAAHAAAAAAAAAHgMAABYAAAAYAAAAFcAAAABAAAAMgAAADMAAAABAAAABQAAAAcAAAAiAAAACwAAAAAAAACIDAAAWAAAAGEAAABiAAAAAQAAADQAAAA1AAAAAgAAAAYAAAAIAAAAIwAAAAwAAAAWAAAAAAAAAJgMAABYAAAAYwAAAGQAAAABAAAANgAAADcAAAABAAAABwAAAAkAAAAkAAAADQAAAAAAAACoDAAAZQAAAGYAAAAXAAAAAQAAABgAAABnAAAAJQAAABUAAAABAAAAAQAAAAIAAAABAAAAAgAAAAAAAADADAAAaAAAAGkAAAADAAAAOAAAABAAAAARAAAAFgAAAAAAAADYDAAAFQAAAGoAAAAGAAAAAAAAAOgMAABrAAAAbAAAAAQAAAA5AAAAOgAAAAUAAAA7AAAAPAAAAD0AAAAGAAAAJgAAAG0AAAAnAAAAPgAAAAAAAAD4DAAAGQAAAG4AAAADAAAACgAAAAAAAAAYDQAAbwAAAHAAAAABAAAAAQAAAAIAAAAAAAAAAgAAAAAAAAABAAAAAAAAADANAAAEAAAAcQAAAHIAAAAnAAAAKAAAAA4AAAAJAAAAAAAAADgNAAAEAAAAcwAAAHQAAAAnAAAAKAAAAA4AAAAJAAAAGQAAABcAAAAAAAAASA0AAAQAAAB1AAAAdgAAACcAAAAoAAAADgAAAAkAAAAaAAAAGAAAAAAAAABYDQAAdwAAAHgAAAAHAAAADwAAAD8AAABAAAAAEAAAABEAAAAZAAAAKQAAAA0AAAAqAAAAKwAAACwAAAAOAAAAQQAAAAAAAABoDQAAeQAAAHoAAAAPAAAAAAAAAIANAAB7AAAAfAAAAAYAAAAHAAAAEgAAAAgAAAAAAAAAKA4AACAAAAB9AAAACAAAAAAAAAAYDgAAIAAAAH4AAAAJAAAAAAAAAAgOAAAgAAAAfwAAAAoAAAAAAAAA+A0AACAAAACAAAAACwAAAAAAAADoDQAAIAAAAIEAAAAMAAAAAAAAANgNAAAgAAAAggAAAA0AAAAAAAAAyA0AACAAAACDAAAADgAAAAAAAAC4DQAAIAAAAIQAAAAPAAAAAAAAAKgNAAAgAAAAhQAAABAAAAAAAAAAmA0AACAAAACGAAAAEQAAAAAAAAA4DgAAhwAAAIgAAAAbAAAAQgAAAAAAAABADgAAiQAAAIoAAAAHAAAABAAAAEMAAAAAAAAAUA4AAIsAAACMAAAACAAAAAUAAABEAAAAAAAAAGAOAAA3AAAAjQAAABoAAAAAAAAAcA4AAI4AAACPAAAAGwAAAAAAAACADgAAkAAAAJEAAAAJAAAABgAAAEUAAAAAAAAAkA4AAJIAAACTAAAAHAAAAB0AAAADAAAAAAAAAKgOAACUAAAAlQAAAEEAAABCAAAAFQAAABgAAACWAAAAEAAAABQAAAAcAAAARgAAAEQAAABHAAAAAAAAALAOAABJAAAAlwAAABAAAAAAAAAA8A4AADcAAACYAAAAHQAAAAEAAAAAAAAA4A4AADcAAACZAAAAHQAAAAIAAAAAAAAA0A4AACcAAACaAAAACAAAAEgAAAACAAAABQAAAAYAAAAAAAAAwA4AAAsAAACbAAAAEQAAAAsAAAAAAAAAAA8AAJwAAACdAAAAHgAAAB8AAAD8////AA8AAJ4AAACfAAAAIAAAAAAAAABADwAANwAAAKAAAAAhAAAAAQAAAAAAAAAwDwAANwAAAKEAAAAhAAAAAgAAAAAAAAAgDwAAGQAAAKIAAAASAAAADAAAAAAAAABQDwAASQAAAKMAAAATAAAAAAAAAGAPAABJAAAApAAAABQAAAAAAAAAcA8AAJIAAAClAAAAHAAAAB0AAAAEAAAAAAAAAIAPAACmAAAApwAAAAoAAAAHAAAASQAAAAAAAACQDwAAqAAAAKkAAAASAAAAAAAAAKAPAACqAAAAqwAAAAsAAAAIAAAASgAAAAAAAADQDwAAkgAAAKwAAAAeAAAAHwAAAAUAAAAAAAAAwA8AAJIAAACtAAAAIAAAACEAAAAGAAAAAAAAALAPAACSAAAArgAAABwAAAAdAAAABwAAAAAAAADgDwAArwAAALAAAAAMAAAACQAAAEsAAAAAAAAA8A8AACcAAACxAAAACAAAAEwAAAACAAAABQAAAAYAAAAAAAAAABAAALIAAACzAAAADQAAAAoAAABNAAAAAAAAABAQAAAnAAAAtAAAACIAAAARAAAAAgAAAAUAAAAGAAAAAAAAACAQAAC1AAAAtgAAACIAAAAJAAAAAQAAAAEAAABOAAAALQAAAAUAAAAuAAAADAAAABIAAAAFAAAALwAAABMAAAANAAAATwAAALcAAAAAAAAAMBAAAC8AAAC4AAAAIwAAAAkAAAABAAAAAQAAAFAAAAAOAAAABgAAADAAAABRAAAABwAAAAQAAAAxAAAAFAAAAA0AAAAjAAAAJAAAAAMAAAAkAAAACAAAABEAAAAMAAAAAAAAAEAQAAAvAAAAuQAAACMAAAAJAAAAAQAAAAEAAABQAAAADgAAAAYAAAAyAAAAUgAAAAcAAAAEAAAAMQAAABQAAAANAAAAIwAAACQAAAADAAAAJAAAAAgAAAARAAAADAAAAAAAAABQEAAALwAAALoAAAAjAAAACQAAAAEAAAABAAAAUAAAAA4AAAAGAAAAMwAAAFMAAAAHAAAABAAAADEAAAAUAAAADQAAACMAAAAkAAAAAwAAACQAAAAIAAAAEQAAAAwAAAAAAAAAYBAAAC8AAAC7AAAAJQAAAAkAAAABAAAAAQAAABAAAAAOAAAABwAAADQAAAAMAAAAEwAAAAYAAAAQAAAABQAAAA0AAAAlAAAAJgAAAAMAAAAmAAAACAAAABEAAAAMAAAAAAAAAHAQAAC8AAAAvQAAACcAAAAJAAAAAQAAAAEAAABUAAAANQAAAAgAAAA2AAAADAAAAAQAAAACAAAANwAAABUAAAANAAAAKAAAACcAAAAoAAAAVQAAAFYAAAAAAAAAgBAAAL4AAAC/AAAAKQAAAAAAAACYEAAAvgAAAMAAAAAqAAAAAAAAAKgQAAC+AAAAwQAAACsAAAAAAAAAuBAAAMIAAADDAAAAJwAAAAkAAAABAAAAAQAAAFcAAAA1AAAACAAAADgAAAAMAAAABAAAAAIAAAANAAAABAAAAA0AAAApAAAAJwAAACgAAAAAAAAAyBAAADcAAADEAAAAKgAAAAAAAADYEAAAxQAAAMYAAAArAAAAAAAAAOgQAADHAAAAyAAAACwAAAAJAAAAAQAAAAEAAABYAAAAOQAAAAkAAAA6AAAADAAAAAQAAAACAAAAOwAAABYAAAANAAAALQAAAAAAAAD4EAAAOwAAAMkAAAAjAAAACQAAAAEAAAABAAAAEAAAAA4AAAAKAAAAAQAAAAwAAAAHAAAABAAAABAAAAAFAAAADQAAABAAAAAsAAAAAwAAAC4AAAAIAAAAEQAAAAwAAAAHAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAwEQAALwAAAMoAAAAjAAAACQAAAAEAAAABAAAAEAAAAA4AAAABAAAAAQAAAAwAAAAHAAAABAAAABAAAAAFAAAADQAAABAAAAABAAAAAwAAAAEAAAAIAAAAEQAAAAwAAAAAAAAAQBEAAMsAAADMAAAALwAAAAkAAAABAAAAAQAAAFkAAAAOAAAACgAAADwAAAAMAAAABwAAAAQAAAA9AAAAFwAAAA0AAAAtAAAALgAAAAMAAAAwAAAACAAAABEAAAAMAAAABwAAAD4AAAA/AAAAMQAAAC8AAABAAAAAMgAAAAIAAAABAAAAAAAAAGARAAAvAAAAzQAAADMAAAAJAAAAAQAAAAEAAABaAAAADgAAAAsAAABBAAAAWwAAABQAAAAEAAAAQgAAABgAAAANAAAAEAAAADAAAAADAAAANAAAAAgAAAARAAAADAAAAAAAAABwEQAALwAAAM4AAAAzAAAACQAAAAEAAAABAAAAWgAAAA4AAAALAAAAQwAAAFsAAAAUAAAABAAAAEIAAAAYAAAADQAAABAAAAAwAAAAAwAAADQAAAAIAAAAEQAAAAwAAAAAAAAAgBEAAC8AAADPAAAAMwAAAAkAAAABAAAAAQAAAFoAAAAOAAAACwAAAEQAAABbAAAAFAAAAAQAAABCAAAAGAAAAA0AAAAQAAAAMAAAAAMAAAA0AAAACAAAABEAAAAMAAAAAAAAAJARAAA7AAAA0AAAAC8AAAAJAAAAAQAAAAEAAABcAAAARQAAAAoAAABGAAAADAAAAAcAAAAEAAAAEAAAAAUAAAANAAAAMQAAADIAAAADAAAANQAAAAgAAAARAAAADAAAAAcAAABHAAAASAAAADYAAAAzAAAASQAAADcAAAADAAAAAAAAAKARAADFAAAA0QAAADgAAAAAAAAAwBEAADsAAADSAAAAOQAAAAkAAAABAAAAAQAAAF0AAAAOAAAADAAAAEoAAAAMAAAAFQAAAAQAAAAQAAAABQAAAA0AAAA0AAAANQAAAAMAAAA6AAAACAAAAEsAAAA2AAAABwAAAEwAAABNAAAAOwAAADcAAABOAAAAPAAAAAQAAAA4AAAAAAAAANARAADTAAAA1AAAABMAAABPAAAAGQAAAF4AAABfAAAAFAAAAAAAAADwEQAAxQAAANUAAAA9AAAAAAAAAOARAADFAAAA1gAAAD4AAAAAAAAAABIAANcAAADYAAAAPwAAAAkAAAABAAAAAQAAAGAAAABQAAAADQAAAFEAAAAMAAAABAAAAAIAAAANAAAABAAAAA0AAABAAAAADQAAAAAAAAAQEgAALwAAANkAAABBAAAACQAAAAEAAAABAAAAYQAAAA4AAAAOAAAAUgAAAGIAAAAWAAAABAAAAFMAAAAaAAAADQAAADkAAAA6AAAAAwAAAEIAAAAIAAAAEQAAAAwAAAAHAAAAAAAAACASAAAvAAAA2gAAAEEAAAAJAAAAAQAAAAEAAABhAAAADgAAAA4AAABUAAAAYgAAABYAAAAEAAAAUwAAABoAAAANAAAAOQAAADsAAAADAAAAQwAAAAgAAAARAAAADAAAAAgAAAAAAAAAMBIAAC8AAADbAAAAQQAAAAkAAAABAAAAAQAAAGEAAAAOAAAADgAAAFUAAABiAAAAFgAAAAQAAABTAAAAGgAAAA0AAAA5AAAAPAAAAAMAAABEAAAACAAAABEAAAAMAAAACQAAAAAAAABAEgAA3AAAAN0AAABFAAAAAQAAAAIAAABjAAAAZAAAAFYAAABlAAAAZgAAAFcAAAA9AAAAPgAAAFgAAAAbAAAAAAAAAFASAADeAAAA3wAAAAEAAAA/AAAADgAAAEYAAAACAAAARwAAAGcAAABZAAAAWgAAAEAAAABoAAAA4AAAAAAAAABgEgAA3gAAAOEAAAABAAAAPwAAAA4AAABGAAAAAgAAAEcAAABnAAAAWQAAAFoAAABAAAAAaAAAAOAAAAAAAAAAeBIAAOIAAADjAAAAHAAAABUAAABBAAAAWwAAAFwAAABdAAAAQgAAAF4AAABDAAAAaQAAAEQAAAAdAAAAXwAAAGoAAABrAAAAAAAAAJgSAADkAAAA5QAAAB4AAAAWAAAARQAAAGAAAABhAAAAYgAAAEYAAABjAAAARwAAAGwAAABIAAAAHwAAAGQAAABtAAAAbgAAAAAAAACoEgAAeQAAAOYAAAAVAAAAAAAAALgSAAB5AAAA5wAAABYAAAAAAAAAyBIAAOgAAADpAAAAAgAAAEkAAAAPAAAASAAAAAMAAABJAAAAbwAAAGUAAABmAAAASgAAAHAAAADqAAAAAAAAANgSAAAnAAAA6wAAAEsAAABxAAAAAgAAAAUAAAAGAAAAAAAAAOgSAAAnAAAA7AAAAAgAAAByAAAAAgAAAAUAAAAGAAAAAAAAAPgSAAAnAAAA7QAAAAgAAABzAAAAAgAAAAUAAAAGAAAAAAAAABATAADuAAAA7wAAABMAAABPAAAAGQAAAF4AAABfAAAAAAAAACgTAAA3AAAA8AAAACEAAAABAAAAAAAAADgTAADxAAAA8gAAAAEAAAAAAAAASBMAAJIAAADzAAAATAAAAE0AAAAIAAAAAAAAAGATAADxAAAA9AAAAAIAAAAAAAAAcBMAAG8AAAD1AAAAAgAAAAAAAACAEwAAkgAAAPYAAABOAAAATwAAAAkAAAAAAAAAkBMAAG8AAAD3AAAAAwAAAAAAAACgEwAA+AAAAPkAAAAQAAAAAAAAAMgTAAD6AAAA+wAAABEAAAALAAAAdAAAAAAAAADYEwAA/AAAAP0AAAASAAAADAAAAHUAAAAAAAAA6BMAAPgAAAD+AAAAEwAAAAAAAAD4EwAA+AAAAP8AAAAUAAAAAAAAAAgUAAAAAQAAAQEAACAAAAAhAAAAZwAAAAAAAAAQFAAAAgEAAAMBAAAAAAAAGBQAAAQBAAAFAQAARQAAAAEAAAACAAAAYwAAAGQAAABWAAAAdgAAAHcAAABXAAAAPQAAAD4AAABYAAAAGwAAAAxwAAD/////BQAAAAAAAAAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAACMAAACJcgAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAOBQAAAYBAAAHAQAACAEAAAkBAAAkAAAABAAAABUAAABKAAAAAAAAAGAUAAAGAQAACgEAAAgBAAAJAQAAJAAAAAUAAAAWAAAASwAAAAAAAACQFAAABgEAAAsBAAAIAQAACQEAACQAAAAGAAAAFwAAAEwAAAB7IHZhciBzZWxmID0gTW9kdWxlWydnZXRDYWNoZSddKE1vZHVsZVsnRGVidWdEcmF3ZXInXSlbJDBdOyBpZiAoIXNlbGYuaGFzT3duUHJvcGVydHkoJ2dldERlYnVnTW9kZScpKSB0aHJvdyAnYSBKU0ltcGxlbWVudGF0aW9uIG11c3QgaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMsIHlvdSBmb3Jnb3QgRGVidWdEcmF3ZXI6OmdldERlYnVnTW9kZS4nOyByZXR1cm4gc2VsZlsnZ2V0RGVidWdNb2RlJ10oKTsgfQB7IHZhciBzZWxmID0gTW9kdWxlWydnZXRDYWNoZSddKE1vZHVsZVsnRGVidWdEcmF3ZXInXSlbJDBdOyBpZiAoIXNlbGYuaGFzT3duUHJvcGVydHkoJ3NldERlYnVnTW9kZScpKSB0aHJvdyAnYSBKU0ltcGxlbWVudGF0aW9uIG11c3QgaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMsIHlvdSBmb3Jnb3QgRGVidWdEcmF3ZXI6OnNldERlYnVnTW9kZS4nOyBzZWxmWydzZXREZWJ1Z01vZGUnXSgkMSk7IH0AeyB2YXIgc2VsZiA9IE1vZHVsZVsnZ2V0Q2FjaGUnXShNb2R1bGVbJ0RlYnVnRHJhd2VyJ10pWyQwXTsgaWYgKCFzZWxmLmhhc093blByb3BlcnR5KCdkcmF3M2RUZXh0JykpIHRocm93ICdhIEpTSW1wbGVtZW50YXRpb24gbXVzdCBpbXBsZW1lbnQgYWxsIGZ1bmN0aW9ucywgeW91IGZvcmdvdCBEZWJ1Z0RyYXdlcjo6ZHJhdzNkVGV4dC4nOyBzZWxmWydkcmF3M2RUZXh0J10oJDEsJDIpOyB9AHsgdmFyIHNlbGYgPSBNb2R1bGVbJ2dldENhY2hlJ10oTW9kdWxlWydEZWJ1Z0RyYXdlciddKVskMF07IGlmICghc2VsZi5oYXNPd25Qcm9wZXJ0eSgncmVwb3J0RXJyb3JXYXJuaW5nJykpIHRocm93ICdhIEpTSW1wbGVtZW50YXRpb24gbXVzdCBpbXBsZW1lbnQgYWxsIGZ1bmN0aW9ucywgeW91IGZvcmdvdCBEZWJ1Z0RyYXdlcjo6cmVwb3J0RXJyb3JXYXJuaW5nLic7IHNlbGZbJ3JlcG9ydEVycm9yV2FybmluZyddKCQxKTsgfQB7IHZhciBzZWxmID0gTW9kdWxlWydnZXRDYWNoZSddKE1vZHVsZVsnRGVidWdEcmF3ZXInXSlbJDBdOyBpZiAoIXNlbGYuaGFzT3duUHJvcGVydHkoJ2RyYXdDb250YWN0UG9pbnQnKSkgdGhyb3cgJ2EgSlNJbXBsZW1lbnRhdGlvbiBtdXN0IGltcGxlbWVudCBhbGwgZnVuY3Rpb25zLCB5b3UgZm9yZ290IERlYnVnRHJhd2VyOjpkcmF3Q29udGFjdFBvaW50Lic7IHNlbGZbJ2RyYXdDb250YWN0UG9pbnQnXSgkMSwkMiwkMywkNCwkNSk7IH0AeyB2YXIgc2VsZiA9IE1vZHVsZVsnZ2V0Q2FjaGUnXShNb2R1bGVbJ0RlYnVnRHJhd2VyJ10pWyQwXTsgaWYgKCFzZWxmLmhhc093blByb3BlcnR5KCdkcmF3TGluZScpKSB0aHJvdyAnYSBKU0ltcGxlbWVudGF0aW9uIG11c3QgaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMsIHlvdSBmb3Jnb3QgRGVidWdEcmF3ZXI6OmRyYXdMaW5lLic7IHNlbGZbJ2RyYXdMaW5lJ10oJDEsJDIsJDMpOyB9ADExRGVidWdEcmF3ZXIAMTJidElEZWJ1Z0RyYXcAeyB2YXIgc2VsZiA9IE1vZHVsZVsnZ2V0Q2FjaGUnXShNb2R1bGVbJ0NvbmNyZXRlQ29udGFjdFJlc3VsdENhbGxiYWNrJ10pWyQwXTsgaWYgKCFzZWxmLmhhc093blByb3BlcnR5KCdhZGRTaW5nbGVSZXN1bHQnKSkgdGhyb3cgJ2EgSlNJbXBsZW1lbnRhdGlvbiBtdXN0IGltcGxlbWVudCBhbGwgZnVuY3Rpb25zLCB5b3UgZm9yZ290IENvbmNyZXRlQ29udGFjdFJlc3VsdENhbGxiYWNrOjphZGRTaW5nbGVSZXN1bHQuJzsgcmV0dXJuIHNlbGZbJ2FkZFNpbmdsZVJlc3VsdCddKCQxLCQyLCQzLCQ0LCQ1LCQ2LCQ3KTsgfQAyOUNvbmNyZXRlQ29udGFjdFJlc3VsdENhbGxiYWNrAE4xNmJ0Q29sbGlzaW9uV29ybGQyMUNvbnRhY3RSZXN1bHRDYWxsYmFja0UATjE2YnRDb2xsaXNpb25Xb3JsZDI0Q2xvc2VzdFJheVJlc3VsdENhbGxiYWNrRQBOMTZidENvbGxpc2lvbldvcmxkMTdSYXlSZXN1bHRDYWxsYmFja0UAMTlidEdob3N0UGFpckNhbGxiYWNrADI1YnRPdmVybGFwcGluZ1BhaXJDYWxsYmFjawAyMGJ0RGVmYXVsdE1vdGlvblN0YXRlADEzYnRNb3Rpb25TdGF0ZQAxOGJ0VmVoaWNsZVJheWNhc3RlcgBOMTZidENvbGxpc2lvbldvcmxkMjdDbG9zZXN0Q29udmV4UmVzdWx0Q2FsbGJhY2tFAE4xNmJ0Q29sbGlzaW9uV29ybGQyMENvbnZleFJlc3VsdENhbGxiYWNrRQAyM2J0RGVmYXVsdFNvZnRCb2R5U29sdmVyADE2YnRTb2Z0Qm9keVNvbHZlcgA0MWJ0U29mdEJvZHlSaWdpZEJvZHlDb2xsaXNpb25Db25maWd1cmF0aW9uAE4zNWJ0U29mdEJvZHlDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtMTdTd2FwcGVkQ3JlYXRlRnVuY0UAMzBidENvbGxpc2lvbkFsZ29yaXRobUNyZWF0ZUZ1bmMATjM1YnRTb2Z0Qm9keUNvbmNhdmVDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFAE4yOWJ0U29mdFJpZ2lkQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBOMjhidFNvZnRTb2Z0Q29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBTb2Z0Qm9keU1hdGVyaWFsRGF0YQBTb2Z0Qm9keU5vZGVEYXRhAFNvZnRCb2R5TGlua0RhdGEAU29mdEJvZHlGYWNlRGF0YQBTb2Z0Qm9keVRldHJhRGF0YQBTb2Z0UmlnaWRBbmNob3JEYXRhAGZsb2F0AFNvZnRCb2R5UG9zZURhdGEAU29mdEJvZHlDbHVzdGVyRGF0YQBpbnQAYnRTb2Z0Qm9keUpvaW50RGF0YQBidFNvZnRCb2R5RmxvYXREYXRhADEwYnRTb2Z0Qm9keQBOMTBidFNvZnRCb2R5MTVSYXlGcm9tVG9DYXN0ZXJFAE42YnREYnZ0OElDb2xsaWRlRQBOMTBidFNvZnRCb2R5NUpvaW50RQBOMTBidFNvZnRCb2R5NkNKb2ludEUAU29mdEJvZHkAMjRidFNvZnRCb2R5Q29sbGlzaW9uU2hhcGUAVXBkYXRlQ2x1c3RlcnMAU29mdEJvZHkgYXBwbHlGb3JjZXMAQXBwbHlDbHVzdGVycwBidENvbnZleEludGVybmFsU2hhcGVEYXRhAFNPRlRDTFVTVEVSADI3YnRTb2Z0Q2x1c3RlckNvbGxpc2lvblNoYXBlAE4xNWJ0U29mdENvbGxpZGVyczEyQ29sbGlkZUNMX1JTRQBOMTVidFNvZnRDb2xsaWRlcnMxMUNsdXN0ZXJCYXNlRQBOMTVidFNvZnRDb2xsaWRlcnMxM0NvbGxpZGVTREZfUlNFAE4xNWJ0U29mdENvbGxpZGVyczEyQ29sbGlkZVZGX1NTRQBOMTVidFNvZnRDb2xsaWRlcnMxMkNvbGxpZGVDTF9TU0UAMjlidFNvZnRSaWdpZENvbGxpc2lvbkFsZ29yaXRobQAyMGJ0Q29sbGlzaW9uQWxnb3JpdGhtAFRyaWFuZ2xlADE1YnRUcmlhbmdsZVNoYXBlAE4xMmJ0Q29udmV4Q2FzdDEwQ2FzdFJlc3VsdEUAWk4zNWJ0U29mdEJvZHlDb25jYXZlQ29sbGlzaW9uQWxnb3JpdGhtMjFjYWxjdWxhdGVUaW1lT2ZJbXBhY3RFUDE3YnRDb2xsaXNpb25PYmplY3RTMV9SSzE2YnREaXNwYXRjaGVySW5mb1AxNmJ0TWFuaWZvbGRSZXN1bHRFMzFMb2NhbFRyaWFuZ2xlU3BoZXJlQ2FzdENhbGxiYWNrADI2YnRTb2Z0Qm9keVRyaWFuZ2xlQ2FsbGJhY2sAMzVidFNvZnRCb2R5Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobQBzb2x2ZVNvZnRDb25zdHJhaW50cwBwcmVkaWN0VW5jb25zdHJhaW50TW90aW9uU29mdEJvZHkAcmF5VGVzdAAyM2J0U29mdFNpbmdsZVJheUNhbGxiYWNrADIzYnRCcm9hZHBoYXNlUmF5Q2FsbGJhY2sAMjRidEJyb2FkcGhhc2VBYWJiQ2FsbGJhY2sAMjRidFNvZnRSaWdpZER5bmFtaWNzV29ybGQAMjhidFNvZnRTb2Z0Q29sbGlzaW9uQWxnb3JpdGhtAGJ0UmlnaWRCb2R5RmxvYXREYXRhADExYnRSaWdpZEJvZHkAaW50ZXJuYWxTaW5nbGVTdGVwU2ltdWxhdGlvbgB1cGRhdGVBY3Rpb25zAGNyZWF0ZVByZWRpY3RpdmVDb250YWN0cwByZWxlYXNlIHByZWRpY3RpdmUgY29udGFjdCBtYW5pZm9sZHMAcHJlZGljdGl2ZSBjb252ZXhTd2VlcFRlc3QAMzRidENsb3Nlc3ROb3RNZUNvbnZleFJlc3VsdENhbGxiYWNrAHVwZGF0ZUFjdGl2YXRpb25TdGF0ZQBzb2x2ZUNvbnN0cmFpbnRzAGNhbGN1bGF0ZVNpbXVsYXRpb25Jc2xhbmRzAGludGVncmF0ZVRyYW5zZm9ybXMAQ0NEIG1vdGlvbiBjbGFtcGluZwBhcHBseSBzcGVjdWxhdGl2ZSBjb250YWN0IHJlc3RpdHV0aW9uAHByZWRpY3RVbmNvbnN0cmFpbnRNb3Rpb24Ac3luY2hyb25pemVNb3Rpb25TdGF0ZXMAc3RlcFNpbXVsYXRpb24AYnREeW5hbWljc1dvcmxkRmxvYXREYXRhAGRlYnVnRHJhd1dvcmxkADIzYnREaXNjcmV0ZUR5bmFtaWNzV29ybGQAMTVidER5bmFtaWNzV29ybGQAMjdJbnBsYWNlU29sdmVySXNsYW5kQ2FsbGJhY2sATjI1YnRTaW11bGF0aW9uSXNsYW5kTWFuYWdlcjE0SXNsYW5kQ2FsbGJhY2tFADE3YnRGaXhlZENvbnN0cmFpbnQAYnRHZW5lcmljNkRvZkNvbnN0cmFpbnREYXRhADIzYnRHZW5lcmljNkRvZkNvbnN0cmFpbnQAYnRHZW5lcmljNkRvZlNwcmluZ0NvbnN0cmFpbnREYXRhADI5YnRHZW5lcmljNkRvZlNwcmluZ0NvbnN0cmFpbnQAYnRQb2ludDJQb2ludENvbnN0cmFpbnRGbG9hdERhdGEAMjNidFBvaW50MlBvaW50Q29uc3RyYWludABidFR5cGVkQ29uc3RyYWludEZsb2F0RGF0YQAxN2J0VHlwZWRDb25zdHJhaW50ADEzYnRUeXBlZE9iamVjdABidFNsaWRlckNvbnN0cmFpbnREYXRhADE4YnRTbGlkZXJDb25zdHJhaW50AGJ0Q29uZVR3aXN0Q29uc3RyYWludERhdGEAMjFidENvbmVUd2lzdENvbnN0cmFpbnQAYnRIaW5nZUNvbnN0cmFpbnRGbG9hdERhdGEAMTdidEhpbmdlQ29uc3RyYWludABzb2x2ZUdyb3VwQ2FjaGVGcmllbmRseUl0ZXJhdGlvbnMAc29sdmVHcm91cENhY2hlRnJpZW5kbHlTZXR1cABzb2x2ZUdyb3VwADM1YnRTZXF1ZW50aWFsSW1wdWxzZUNvbnN0cmFpbnRTb2x2ZXIAMThidENvbnN0cmFpbnRTb2x2ZXIAMTZidFJheWNhc3RWZWhpY2xlADE3YnRBY3Rpb25JbnRlcmZhY2UAMjVidERlZmF1bHRWZWhpY2xlUmF5Y2FzdGVyADQzYnRLaW5lbWF0aWNDbG9zZXN0Tm90TWVDb252ZXhSZXN1bHRDYWxsYmFjawAzMGJ0S2luZW1hdGljQ2hhcmFjdGVyQ29udHJvbGxlcgAzMGJ0Q2hhcmFjdGVyQ29udHJvbGxlckludGVyZmFjZQAyMmJ0U3Vic2ltcGxleENvbnZleENhc3QAMTJidENvbnZleENhc3QAYnRDb2xsaXNpb25PYmplY3RGbG9hdERhdGEAMTdidENvbGxpc2lvbk9iamVjdAAxM2J0R2hvc3RPYmplY3QAMjRidFBhaXJDYWNoaW5nR2hvc3RPYmplY3QAMjNidENvbGxpc2lvblBhaXJDYWxsYmFjawAxN2J0T3ZlcmxhcENhbGxiYWNrADIxYnRDb2xsaXNpb25EaXNwYXRjaGVyADMxYnREZWZhdWx0Q29sbGlzaW9uQ29uZmlndXJhdGlvbgAyNGJ0Q29sbGlzaW9uQ29uZmlndXJhdGlvbgBOMzFidENvbnZleFBsYW5lQ29sbGlzaW9uQWxnb3JpdGhtMTBDcmVhdGVGdW5jRQBOMjZidEJveEJveENvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UATjM0YnRTcGhlcmVUcmlhbmdsZUNvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UATjMyYnRTcGhlcmVTcGhlcmVDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFAE4xNmJ0RW1wdHlBbGdvcml0aG0xMENyZWF0ZUZ1bmNFAE4yOGJ0Q29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0xN1N3YXBwZWRDcmVhdGVGdW5jRQBOMzZidENvbXBvdW5kQ29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFAE4yOGJ0Q29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0xMENyZWF0ZUZ1bmNFAE4zM2J0Q29udmV4Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobTE3U3dhcHBlZENyZWF0ZUZ1bmNFAE4zM2J0Q29udmV4Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobTEwQ3JlYXRlRnVuY0UAMjVidFNpbXVsYXRpb25Jc2xhbmRNYW5hZ2VyAGlzbGFuZFVuaW9uRmluZEFuZFF1aWNrU29ydABwcm9jZXNzSXNsYW5kcwAzMWJ0Q29udmV4UGxhbmVDb2xsaXNpb25BbGdvcml0aG0AWk4zM2J0Q29udmV4Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobTIxY2FsY3VsYXRlVGltZU9mSW1wYWN0RVAxN2J0Q29sbGlzaW9uT2JqZWN0UzFfUksxNmJ0RGlzcGF0Y2hlckluZm9QMTZidE1hbmlmb2xkUmVzdWx0RTMxTG9jYWxUcmlhbmdsZVNwaGVyZUNhc3RDYWxsYmFjawAyNGJ0Q29udmV4VHJpYW5nbGVDYWxsYmFjawAzM2J0Q29udmV4Q29uY2F2ZUNvbGxpc2lvbkFsZ29yaXRobQAyNmJ0Qm94Qm94Q29sbGlzaW9uQWxnb3JpdGhtADE2YnRNYW5pZm9sZFJlc3VsdABOMzZidERpc2NyZXRlQ29sbGlzaW9uRGV0ZWN0b3JJbnRlcmZhY2U2UmVzdWx0RQBwZXJmb3JtRGlzY3JldGVDb2xsaXNpb25EZXRlY3Rpb24AZGlzcGF0Y2hBbGxDb2xsaXNpb25QYWlycwBaTjE2YnRDb2xsaXNpb25Xb3JsZDIxcmF5VGVzdFNpbmdsZUludGVybmFsRVJLMTFidFRyYW5zZm9ybVMyX1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMTdSYXlSZXN1bHRDYWxsYmFja0VFMTVMb2NhbEluZm9BZGRlcjIAWk4xNmJ0Q29sbGlzaW9uV29ybGQyMXJheVRlc3RTaW5nbGVJbnRlcm5hbEVSSzExYnRUcmFuc2Zvcm1TMl9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzE3UmF5UmVzdWx0Q2FsbGJhY2tFRTlSYXlUZXN0ZXIAWk4xNmJ0Q29sbGlzaW9uV29ybGQyMXJheVRlc3RTaW5nbGVJbnRlcm5hbEVSSzExYnRUcmFuc2Zvcm1TMl9QSzI0YnRDb2xsaXNpb25PYmplY3RXcmFwcGVyUk5TXzE3UmF5UmVzdWx0Q2FsbGJhY2tFRTI5QnJpZGdlVHJpYW5nbGVSYXljYXN0Q2FsbGJhY2tfMABaTjE2YnRDb2xsaXNpb25Xb3JsZDIxcmF5VGVzdFNpbmdsZUludGVybmFsRVJLMTFidFRyYW5zZm9ybVMyX1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMTdSYXlSZXN1bHRDYWxsYmFja0VFMjlCcmlkZ2VUcmlhbmdsZVJheWNhc3RDYWxsYmFjawAxOWJ0U2luZ2xlUmF5Q2FsbGJhY2sAMTdEZWJ1Z0RyYXdjYWxsYmFjawBjYWxjdWxhdGVPdmVybGFwcGluZ1BhaXJzAHVwZGF0ZUFhYmJzAAFPdmVyZmxvdyBpbiBBQUJCLCBvYmplY3QgcmVtb3ZlZCBmcm9tIHNpbXVsYXRpb24ASWYgeW91IGNhbiByZXByb2R1Y2UgdGhpcywgcGxlYXNlIGVtYWlsIGJ1Z3NAY29udGludW91c3BoeXNpY3MuY29tCgBQbGVhc2UgaW5jbHVkZSBhYm92ZSBpbmZvcm1hdGlvbiwgeW91ciBQbGF0Zm9ybSwgdmVyc2lvbiBvZiBPUy4KAFRoYW5rcy4KADE2YnRDb2xsaXNpb25Xb3JsZABjb252ZXhTd2VlcENvbXBvdW5kAFpOMTZidENvbGxpc2lvbldvcmxkMjVvYmplY3RRdWVyeVNpbmdsZUludGVybmFsRVBLMTNidENvbnZleFNoYXBlUksxMWJ0VHJhbnNmb3JtUzVfUEsyNGJ0Q29sbGlzaW9uT2JqZWN0V3JhcHBlclJOU18yMENvbnZleFJlc3VsdENhbGxiYWNrRWZFMTRMb2NhbEluZm9BZGRlcgBaTjE2YnRDb2xsaXNpb25Xb3JsZDI1b2JqZWN0UXVlcnlTaW5nbGVJbnRlcm5hbEVQSzEzYnRDb252ZXhTaGFwZVJLMTFidFRyYW5zZm9ybVM1X1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMjBDb252ZXhSZXN1bHRDYWxsYmFja0VmRTMyQnJpZGdlVHJpYW5nbGVDb252ZXhjYXN0Q2FsbGJhY2tfMABaTjE2YnRDb2xsaXNpb25Xb3JsZDI1b2JqZWN0UXVlcnlTaW5nbGVJbnRlcm5hbEVQSzEzYnRDb252ZXhTaGFwZVJLMTFidFRyYW5zZm9ybVM1X1BLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJSTlNfMjBDb252ZXhSZXN1bHRDYWxsYmFja0VmRTMyQnJpZGdlVHJpYW5nbGVDb252ZXhjYXN0Q2FsbGJhY2sAY29udmV4U3dlZXBUZXN0ADIxYnRTaW5nbGVTd2VlcENhbGxiYWNrADIzYnRCcmlkZ2VkTWFuaWZvbGRSZXN1bHQAMjNidFNpbmdsZUNvbnRhY3RDYWxsYmFjawAzNGJ0U3BoZXJlVHJpYW5nbGVDb2xsaXNpb25BbGdvcml0aG0AMjRidFBlcnR1cmJlZENvbnRhY3RSZXN1bHQAWk4yM2J0Q29udmV4Q29udmV4QWxnb3JpdGhtMTZwcm9jZXNzQ29sbGlzaW9uRVBLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJTMl9SSzE2YnREaXNwYXRjaGVySW5mb1AxNmJ0TWFuaWZvbGRSZXN1bHRFMjFidFdpdGhvdXRNYXJnaW5SZXN1bHQAWk4yM2J0Q29udmV4Q29udmV4QWxnb3JpdGhtMTZwcm9jZXNzQ29sbGlzaW9uRVBLMjRidENvbGxpc2lvbk9iamVjdFdyYXBwZXJTMl9SSzE2YnREaXNwYXRjaGVySW5mb1AxNmJ0TWFuaWZvbGRSZXN1bHRFMTNidER1bW15UmVzdWx0ADIzYnRDb252ZXhDb252ZXhBbGdvcml0aG0ATjIzYnRDb252ZXhDb252ZXhBbGdvcml0aG0xMENyZWF0ZUZ1bmNFADIyYnRDb21wb3VuZExlYWZDYWxsYmFjawAyOGJ0Q29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0AMzBidENvbXBvdW5kQ29tcG91bmRMZWFmQ2FsbGJhY2sAMzZidENvbXBvdW5kQ29tcG91bmRDb2xsaXNpb25BbGdvcml0aG0AYnRDb21wb3VuZFNoYXBlQ2hpbGREYXRhAGJ0Q29tcG91bmRTaGFwZURhdGEAQ29tcG91bmQAMTVidENvbXBvdW5kU2hhcGUAYnRDb25lU2hhcGVEYXRhAENvbmUAMTFidENvbmVTaGFwZQBDb25lWgAxMmJ0Q29uZVNoYXBlWgBDb25lWAAxMmJ0Q29uZVNoYXBlWABTUEhFUkUAMTNidFNwaGVyZVNoYXBlAFpOSzIyYnRCdmhUcmlhbmdsZU1lc2hTaGFwZTE5cHJvY2Vzc0FsbFRyaWFuZ2xlc0VQMThidFRyaWFuZ2xlQ2FsbGJhY2tSSzlidFZlY3RvcjNTNF9FMjFNeU5vZGVPdmVybGFwQ2FsbGJhY2sAMjFidE5vZGVPdmVybGFwQ2FsbGJhY2sAYnRUcmlhbmdsZU1lc2hTaGFwZURhdGEAQlZIVFJJQU5HTEVNRVNIADIyYnRCdmhUcmlhbmdsZU1lc2hTaGFwZQBaTjIyYnRCdmhUcmlhbmdsZU1lc2hTaGFwZTE0cGVyZm9ybVJheWNhc3RFUDE4YnRUcmlhbmdsZUNhbGxiYWNrUks5YnRWZWN0b3IzUzRfRTIxTXlOb2RlT3ZlcmxhcENhbGxiYWNrAFpOMjJidEJ2aFRyaWFuZ2xlTWVzaFNoYXBlMTdwZXJmb3JtQ29udmV4Y2FzdEVQMThidFRyaWFuZ2xlQ2FsbGJhY2tSSzlidFZlY3RvcjNTNF9TNF9TNF9FMjFNeU5vZGVPdmVybGFwQ2FsbGJhY2sAMjFTdXBwb3J0VmVydGV4Q2FsbGJhY2sAWk5LMTlidFRyaWFuZ2xlTWVzaFNoYXBlMTlwcm9jZXNzQWxsVHJpYW5nbGVzRVAxOGJ0VHJpYW5nbGVDYWxsYmFja1JLOWJ0VmVjdG9yM1M0X0UxNkZpbHRlcmVkQ2FsbGJhY2sAVFJJQU5HTEVNRVNIADE5YnRUcmlhbmdsZU1lc2hTaGFwZQBidFN0YXRpY1BsYW5lU2hhcGVEYXRhAFNUQVRJQ1BMQU5FADE4YnRTdGF0aWNQbGFuZVNoYXBlADIzYnRQb2x5aGVkcmFsQ29udmV4U2hhcGUAMzRidFBvbHloZWRyYWxDb252ZXhBYWJiQ2FjaGluZ1NoYXBlAGJ0Q29sbGlzaW9uU2hhcGVEYXRhADE2YnRDb2xsaXNpb25TaGFwZQAxM2J0Q29udmV4U2hhcGUAMjFidENvbnZleEludGVybmFsU2hhcGUAYnRDb252ZXhIdWxsU2hhcGVEYXRhAENvbnZleAAxN2J0Q29udmV4SHVsbFNoYXBlADE4YnRUcmlhbmdsZUNhbGxiYWNrADMxYnRJbnRlcm5hbFRyaWFuZ2xlSW5kZXhDYWxsYmFjawBidENhcHN1bGVTaGFwZURhdGEAQ2Fwc3VsZVNoYXBlADE0YnRDYXBzdWxlU2hhcGUAQ2Fwc3VsZVgAMTVidENhcHN1bGVTaGFwZVgAQ2Fwc3VsZVoAMTVidENhcHN1bGVTaGFwZVoAMjZMb2NhbFN1cHBvcnRWZXJ0ZXhDYWxsYmFjawBDb252ZXhUcmltZXNoADI1YnRDb252ZXhUcmlhbmdsZU1lc2hTaGFwZQAxNGJ0Q29uY2F2ZVNoYXBlAEJveAAxMGJ0Qm94U2hhcGUAMTRidE9wdGltaXplZEJ2aABaTjE0YnRPcHRpbWl6ZWRCdmg1YnVpbGRFUDIzYnRTdHJpZGluZ01lc2hJbnRlcmZhY2ViUks5YnRWZWN0b3IzUzRfRTIwTm9kZVRyaWFuZ2xlQ2FsbGJhY2sAWk4xNGJ0T3B0aW1pemVkQnZoNWJ1aWxkRVAyM2J0U3RyaWRpbmdNZXNoSW50ZXJmYWNlYlJLOWJ0VmVjdG9yM1M0X0UyOVF1YW50aXplZE5vZGVUcmlhbmdsZUNhbGxiYWNrAEhFSUdIVEZJRUxEADI1YnRIZWlnaHRmaWVsZFRlcnJhaW5TaGFwZQBidEN5bGluZGVyU2hhcGVEYXRhAEN5bGluZGVyWQAxNWJ0Q3lsaW5kZXJTaGFwZQBDeWxpbmRlclgAMTZidEN5bGluZGVyU2hhcGVYAEN5bGluZGVyWgAxNmJ0Q3lsaW5kZXJTaGFwZVoAMTRidFRyaWFuZ2xlTWVzaAAyMGJ0QXhpc1N3ZWVwM0ludGVybmFsSXRFADIxYnRCcm9hZHBoYXNlSW50ZXJmYWNlADEyYnRBeGlzU3dlZXAzADE1YnROdWxsUGFpckNhY2hlADIyYnRPdmVybGFwcGluZ1BhaXJDYWNoZQBaTjI4YnRIYXNoZWRPdmVybGFwcGluZ1BhaXJDYWNoZTE5Y2xlYW5Qcm94eUZyb21QYWlyc0VQMTdidEJyb2FkcGhhc2VQcm94eVAxMmJ0RGlzcGF0Y2hlckUxN0NsZWFuUGFpckNhbGxiYWNrAFpOMjhidEhhc2hlZE92ZXJsYXBwaW5nUGFpckNhY2hlMzdyZW1vdmVPdmVybGFwcGluZ1BhaXJzQ29udGFpbmluZ1Byb3h5RVAxN2J0QnJvYWRwaGFzZVByb3h5UDEyYnREaXNwYXRjaGVyRTE4UmVtb3ZlUGFpckNhbGxiYWNrADI4YnRIYXNoZWRPdmVybGFwcGluZ1BhaXJDYWNoZQAxOGJ0RGJ2dFRyZWVDb2xsaWRlcgAyMEJyb2FkcGhhc2VBYWJiVGVzdGVyADE5QnJvYWRwaGFzZVJheVRlc3RlcgAxNmJ0RGJ2dEJyb2FkcGhhc2UAMTJidERpc3BhdGNoZXIAYnRPcHRpbWl6ZWRCdmhOb2RlRGF0YQBidFF1YW50aXplZEJ2aE5vZGVEYXRhAGJ0QnZoU3VidHJlZUluZm9EYXRhAGJ0UXVhbnRpemVkQnZoRmxvYXREYXRhADE0YnRRdWFudGl6ZWRCdmgAMjVidFRyaWFuZ2xlUmF5Y2FzdENhbGxiYWNrADI4YnRUcmlhbmdsZUNvbnZleGNhc3RDYWxsYmFjawBaTjMzYnRNaW5rb3dza2lQZW5ldHJhdGlvbkRlcHRoU29sdmVyMTJjYWxjUGVuRGVwdGhFUjIyYnRWb3Jvbm9pU2ltcGxleFNvbHZlclBLMTNidENvbnZleFNoYXBlUzRfUksxMWJ0VHJhbnNmb3JtUzdfUjlidFZlY3RvcjNTOV9TOV9QMTJidElEZWJ1Z0RyYXdFMjBidEludGVybWVkaWF0ZVJlc3VsdAAzM2J0TWlua293c2tpUGVuZXRyYXRpb25EZXB0aFNvbHZlcgAzMGJ0Q29udmV4UGVuZXRyYXRpb25EZXB0aFNvbHZlcgAzMGJ0R2prRXBhUGVuZXRyYXRpb25EZXB0aFNvbHZlcgAxNmJ0UG9pbnRDb2xsZWN0b3IAMTVidEdqa0NvbnZleENhc3QAMjdidENvbnRpbnVvdXNDb252ZXhDb2xsaXNpb24AMTdidEdqa1BhaXJEZXRlY3RvcgAzNmJ0RGlzY3JldGVDb2xsaXNpb25EZXRlY3RvckludGVyZmFjZQAzMGJ0QWN0aXZhdGluZ0NvbGxpc2lvbkFsZ29yaXRobQAxNmJ0RW1wdHlBbGdvcml0aG0AMzJidFNwaGVyZVNwaGVyZUNvbGxpc2lvbkFsZ29yaXRobQAxNmJ0Qm94Qm94RGV0ZWN0b3IAMjJTcGhlcmVUcmlhbmdsZURldGVjdG9yADIzYnRIYXNoZWRTaW1wbGVQYWlyQ2FjaGUAMThidENvbnZleFBvbHloZWRyb24AMjZidFRyaWFuZ2xlSW5kZXhWZXJ0ZXhBcnJheQBidEludEluZGV4RGF0YQBidFNob3J0SW50SW5kZXhUcmlwbGV0RGF0YQBidENoYXJJbmRleFRyaXBsZXREYXRhAGJ0VmVjdG9yM0Zsb2F0RGF0YQBidFZlY3RvcjNEb3VibGVEYXRhAGJ0TWVzaFBhcnREYXRhAGJ0U3RyaWRpbmdNZXNoSW50ZXJmYWNlRGF0YQAyM2J0U3RyaWRpbmdNZXNoSW50ZXJmYWNlAFJvb3QALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOAC4AdGVybWluYXRpbmcgd2l0aCAlcyBleGNlcHRpb24gb2YgdHlwZSAlczogJXMAdGVybWluYXRpbmcgd2l0aCAlcyBleGNlcHRpb24gb2YgdHlwZSAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGZvcmVpZ24gZXhjZXB0aW9uAHRlcm1pbmF0aW5nAHVuY2F1Z2h0AFN0OWV4Y2VwdGlvbgBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQBTdDl0eXBlX2luZm8ATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQBwdGhyZWFkX29uY2UgZmFpbHVyZSBpbiBfX2N4YV9nZXRfZ2xvYmFsc19mYXN0KCkAY2Fubm90IGNyZWF0ZSBwdGhyZWFkIGtleSBmb3IgX19jeGFfZ2V0X2dsb2JhbHMoKQBjYW5ub3QgemVybyBvdXQgdGhyZWFkIHZhbHVlIGZvciBfX2N4YV9nZXRfZ2xvYmFscygpAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZABOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTdfX3BiYXNlX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTIxX192bWlfY2xhc3NfdHlwZV9pbmZvRQ=="; function Pa(){return!!Pa.Vf}var Qa=0,Ra=[],Sa={};function Ta(){var a=Qa;if(!a)return ra=0;var b=Sa[a],e=b.type;if(!e)return ra=0,a|0;var f=Array.prototype.slice.call(arguments);d.___cxa_is_pointer_type(e);Ta.buffer||(Ta.buffer=Ua(4));xa[Ta.buffer>>2]=a;a=Ta.buffer;for(var g=0;g<f.length;g++)if(f[g]&&d.___cxa_can_catch(f[g],e,a))return a=xa[a>>2],b.Aa.push(a),ra=f[g],a|0;a=xa[a>>2];ra=e;return a|0}var Va=[null,[],[]]; function Wa(a,b){var e=Va[a];assert(e);0===b||10===b?((1===a?pa:qa)(ua(e,0)),e.length=0):e.push(b)}var Xa=0;function Ya(){Xa+=4;return xa[Xa-4>>2]}var Za={},$a={},ab=1;function bb(a,b){bb.pa||(bb.pa={});a in bb.pa||(d.dynCall_v(b),bb.pa[a]=1)}var cb=!1;function oa(a){for(var b=[],e=0;e<a.length;e++){var f=a[e];255<f&&(cb&&assert(!1,"Character code "+f+" ("+String.fromCharCode(f)+") at offset "+e+" not in 0x00-0xFF."),f&=255);b.push(String.fromCharCode(f))}return b.join("")} var db="function"===typeof atob?atob:function(a){var b="",e=0;a=a.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(e++));var g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(e++));var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(e++));var A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a.charAt(e++));f=f<<2|g>>4; g=(g&15)<<4|n>>2;var Q=(n&3)<<6|A;b+=String.fromCharCode(f);64!==n&&(b+=String.fromCharCode(g));64!==A&&(b+=String.fromCharCode(Q))}while(e<a.length);return b}; function la(a){if(String.prototype.startsWith?a.startsWith(Ma):0===a.indexOf(Ma)){a=a.slice(Ma.length);if("boolean"===typeof ea&&ea){try{var b=Buffer.from(a,"base64")}catch(n){b=new Buffer(a,"base64")}var e=new Uint8Array(b.buffer,b.byteOffset,b.byteLength)}else try{var f=db(a),g=new Uint8Array(f.length);for(b=0;b<f.length;++b)g[b]=f.charCodeAt(b);e=g}catch(n){throw Error("Converting base64 string to bytes failed.");}return e}} var eb={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity}; d.Ba={a:na,b:assert,c:function(a){ra=a},d:function(){return ra},e:za,f:Pa,g:function(a){var b=Sa[a];b&&!b.Ca&&(b.Ca=!0,Pa.Vf--);b&&(b.Yf=!1);Ra.push(a);a:{if(a&&!Sa[a])for(n in Sa){b=+n;for(var e=Sa[b].Aa,f=e.length,g=0;g<f;g++)if(e[g]===a){var n=b;break a}}n=a}n&&Sa[n].Xf++;return a},h:Ta,i:function(a){try{return fb(a)}catch(b){}},j:function(){sa=!0;throw"Pure virtual function called!";},k:function(){},l:function(a){Qa||(Qa=a);throw a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."; },m:function(a){d.___errno_location&&(xa[d.___errno_location()>>2]=a);return a},n:function(a,b){Xa=b;try{var e=Za.Ea();Ya();var f=Ya(),g=Ya(),n=Ya();(void 0).Wf(e,f,n);xa[g>>2]=e.position;e.nd&&0===f&&0===n&&(e.nd=null);return 0}catch(A){return na(A),-A.ya}},o:function(a,b){Xa=b;try{var e=Ya(),f=Ya(),g=Ya();for(b=a=0;b<g;b++){for(var n=xa[f+8*b>>2],A=xa[f+(8*b+4)>>2],Q=0;Q<A;Q++)Wa(e,wa[n+Q]);a+=A}return a}catch(ha){return na(ha),-ha.ya}},p:function(a,b){Xa=b;try{var e=Za.Ea();(void 0).close(e);return 0}catch(f){return na(f), -f.ya}},q:function(){d.abort()},r:function(a,b,e,f,g,n,A,Q,ha){return Na[a](b,e,f,g,n,A,Q,ha)},s:function(a,b){return Na[a](b)},t:function(a,b,e){return Na[a](b,e)},u:function(a,b,e,f){return Na[a](b,e,f)},v:function(a,b,e,f,g,n,A){return Na[a](b,e,f,g,n,A)},w:function(a,b,e,f,g){return Na[a](b,e,f,g)},x:function(){return Aa},y:function(a,b,e){wa.set(wa.subarray(b,b+e),a)},z:function(){za()},A:function(a){var b=Date.now();xa[a>>2]=b/1E3|0;xa[a+4>>2]=b%1E3*1E3|0;return 0},B:function(){na("trap!")}, C:function(a){return $a[a]||0},D:function(a){if(0==a)return 22;xa[a>>2]=ab;$a[ab]=0;ab++;return 0},E:bb,F:function(a,b){if(!(a in $a))return 22;$a[a]=b;return 0},G:function(){var a=d._fflush;a&&a(0);Va[1].length&&Wa(1,10);Va[2].length&&Wa(2,10)},H:29344,I:29584};// EMSCRIPTEN_START_ASM var h=(/** @suppress {uselessCode} */ function(global,env,buffer) { "use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.H|0;var j=env.I|0;var k=0;var l=0;var m=0;var n=0;var o=global.NaN,p=global.Infinity;var q=0,r=0,s=0,t=0,u=0.0;var v=global.Math.floor;var w=global.Math.abs;var x=global.Math.sqrt;var y=global.Math.pow;var z=global.Math.cos;var A=global.Math.sin;var B=global.Math.tan;var C=global.Math.acos;var D=global.Math.asin;var E=global.Math.atan;var F=global.Math.atan2;var G=global.Math.exp;var H=global.Math.log;var I=global.Math.ceil;var J=global.Math.imul;var K=global.Math.min;var L=global.Math.max;var M=global.Math.clz32;var N=env.a;var O=env.b;var P=env.c;var Q=env.d;var R=env.e;var S=env.f;var T=env.g;var U=env.h;var V=env.i;var W=env.j;var X=env.k;var Y=env.l;var Z=env.m;var _=env.n;var $=env.o;var aa=env.p;var ba=env.q;var ca=env.r;var da=env.s;var ea=env.t;var fa=env.u;var ga=env.v;var ha=env.w;var ia=env.x;var ja=env.y;var ka=env.z;var la=env.A;var ma=env.B;var na=env.C;var oa=env.D;var pa=env.E;var qa=env.F;var ra=env.G;var sa=29600;var ta=5272480;var ua=0.0; // EMSCRIPTEN_START_FUNCS function te(b,d){b=b|0;d=+d;var e=0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0.0;r=sa;sa=sa+16|0;Ki(16515);e=c[b+232>>2]|0;if((e|0)>0){q=0;do{p=c[(c[b+240>>2]|0)+(q<<2)>>2]|0;if(!(c[p+204>>2]&3)){n=+g[p+444>>2];h=+y(+(1.0-n),+d);i=+g[p+312>>2]*h;g[p+312>>2]=i;f=h*+g[p+316>>2];g[p+316>>2]=f;h=h*+g[p+320>>2];g[p+320>>2]=h;o=+g[p+448>>2];k=+y(+(1.0-o),+d);j=+g[p+328>>2]*k;g[p+328>>2]=j;l=k*+g[p+332>>2];g[p+332>>2]=l;k=k*+g[p+336>>2];g[p+336>>2]=k;do if(a[p+452>>0]|0){if(j*j+l*l+k*k<+g[p+464>>2]?i*i+f*f+h*h<+g[p+460>>2]:0){s=+g[p+456>>2];g[p+328>>2]=j*s;g[p+332>>2]=l*s;g[p+336>>2]=k*s;g[p+312>>2]=i*s;g[p+316>>2]=f*s;g[p+320>>2]=h*s;f=f*s;m=h*s;j=j*s;l=l*s;k=k*s;i=i*s}else m=h;h=+x(+(i*i+f*f+m*m));do if(h<n)if(h>.004999999888241291){g[p+312>>2]=i-i*(1.0/h)*.004999999888241291;g[p+316>>2]=f-f*(1.0/h)*.004999999888241291;g[p+320>>2]=m-m*(1.0/h)*.004999999888241291;break}else{c[p+312>>2]=0;c[p+312+4>>2]=0;c[p+312+8>>2]=0;c[p+312+12>>2]=0;break}while(0);f=+x(+(j*j+l*l+k*k));if(f<o)if(f>.004999999888241291){g[p+328>>2]=j-j*(1.0/f)*.004999999888241291;g[p+332>>2]=l-l*(1.0/f)*.004999999888241291;g[p+336>>2]=k-k*(1.0/f)*.004999999888241291;break}else{c[p+328>>2]=0;c[p+328+4>>2]=0;c[p+328+8>>2]=0;c[p+328+12>>2]=0;break}}while(0);jg(p+4|0,+g[p+312>>2],+g[p+316>>2],+g[p+320>>2],p+328|0,d,p+68|0);e=c[b+232>>2]|0}q=q+1|0}while((q|0)<(e|0))}e=c[3084]|0;b=(c[e+16>>2]|0)+-1|0;c[e+16>>2]=b;if(b|0){sa=r;return}do if(c[e+4>>2]|0){la(r|0,0)|0;b=c[7181]|0;g[e+8>>2]=+g[e+8>>2]+ +(((c[r+4>>2]|0)-(c[b+4>>2]|0)+(((c[r>>2]|0)-(c[b>>2]|0)|0)*1e6|0)-(c[e+12>>2]|0)|0)>>>0)/1.0e3;if(!(c[e+16>>2]|0)){e=c[3084]|0;break}else{sa=r;return}}while(0);c[3084]=c[e+20>>2];sa=r;return}function ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0,n=0.0;if(!(c[a>>2]|0)){c[a>>2]=d;c[d+32>>2]=0;return}f=c[b+40>>2]|0;if(!f)l=b;else{e=+g[d>>2]+ +g[d+16>>2];j=+g[d+4>>2]+ +g[d+20>>2];k=+g[d+8>>2]+ +g[d+24>>2];do{m=c[b+36>>2]|0;n=+w(+(e-(+g[m>>2]+ +g[m+16>>2])))+ +w(+(j-(+g[m+4>>2]+ +g[m+20>>2])))+ +w(+(k-(+g[m+8>>2]+ +g[m+24>>2])));b=c[b+36+((!(n<+w(+(e-(+g[f>>2]+ +g[f+16>>2])))+ +w(+(j-(+g[f+4>>2]+ +g[f+20>>2])))+ +w(+(k-(+g[f+8>>2]+ +g[f+24>>2]))))&1)<<2)>>2]|0;f=c[b+40>>2]|0}while((f|0)!=0);l=b}m=l+32|0;h=c[m>>2]|0;b=c[a+4>>2]|0;if(!b){c[7182]=(c[7182]|0)+1;b=xb(63)|0;if(!b)b=0;else{c[(b+4+15&-16)+-4>>2]=b;b=b+4+15&-16}f=b;i=f+44|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(i|0))}else c[a+4>>2]=0;c[b+32>>2]=h;c[b+36>>2]=0;f=b+40|0;c[f>>2]=0;n=+g[d>>2];k=+g[l>>2];g[b>>2]=n<k?n:k;k=+g[d+16>>2];n=+g[l+16>>2];g[b+16>>2]=k>n?k:n;n=+g[d+4>>2];k=+g[l+4>>2];g[b+4>>2]=n<k?n:k;k=+g[d+20>>2];n=+g[l+20>>2];g[b+20>>2]=k>n?k:n;n=+g[d+8>>2];k=+g[l+8>>2];g[b+8>>2]=n<k?n:k;k=+g[d+24>>2];n=+g[l+24>>2];g[b+24>>2]=k>n?k:n;if(!h){c[b+36>>2]=l;c[m>>2]=b;c[f>>2]=d;c[d+32>>2]=b;c[a>>2]=b;return}c[h+36+(((c[(c[m>>2]|0)+40>>2]|0)==(l|0)&1)<<2)>>2]=b;c[b+36>>2]=l;c[m>>2]=b;c[f>>2]=d;c[d+32>>2]=b;f=b;e=+g[b>>2];while(1){b=h+4|0;if(((((+g[h>>2]<=e?+g[b>>2]<=+g[f+4>>2]:0)?+g[h+8>>2]<=+g[f+8>>2]:0)?+g[h+16>>2]>=+g[f+16>>2]:0)?+g[h+20>>2]>=+g[f+20>>2]:0)?+g[h+24>>2]>=+g[f+24>>2]:0){b=21;break}a=c[h+36>>2]|0;d=c[h+40>>2]|0;k=+g[a>>2];e=+g[d>>2];e=k<e?k:e;g[h>>2]=e;k=+g[a+16>>2];n=+g[d+16>>2];g[h+16>>2]=k>n?k:n;n=+g[a+4>>2];k=+g[d+4>>2];g[b>>2]=n<k?n:k;k=+g[a+20>>2];n=+g[d+20>>2];g[h+20>>2]=k>n?k:n;n=+g[a+8>>2];k=+g[d+8>>2];g[h+8>>2]=n<k?n:k;k=+g[a+24>>2];n=+g[d+24>>2];g[h+24>>2]=k>n?k:n;b=c[h+32>>2]|0;if(!b){b=21;break}else{f=h;h=b}}if((b|0)==21)return}function ve(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[b+16>>2]=c[a+4>>2];c[b+20>>2]=c[a+8>>2];c[b+24>>2]=c[a+12>>2];c[b+28>>2]=c[a+16>>2];c[b+32>>2]=c[a+20>>2];c[b+36>>2]=c[a+24>>2];c[b+40>>2]=c[a+28>>2];c[b+44>>2]=c[a+32>>2];c[b+48>>2]=c[a+36>>2];c[b+52>>2]=c[a+40>>2];c[b+56>>2]=c[a+44>>2];c[b+60>>2]=c[a+48>>2];c[b+64>>2]=c[a+52>>2];c[b+68>>2]=c[a+56>>2];c[b+72>>2]=c[a+60>>2];c[b+76>>2]=c[a+64>>2];c[b+80>>2]=c[a+68>>2];c[b+84>>2]=c[a+72>>2];c[b+88>>2]=c[a+76>>2];c[b+92>>2]=c[a+80>>2];c[b+96>>2]=c[a+84>>2];c[b+100>>2]=c[a+88>>2];c[b+104>>2]=c[a+92>>2];c[b+108>>2]=c[a+96>>2];c[b+112>>2]=c[a+100>>2];c[b+116>>2]=c[a+104>>2];c[b+120>>2]=c[a+108>>2];c[b+124>>2]=c[a+112>>2];c[b+128>>2]=c[a+116>>2];c[b+132>>2]=c[a+120>>2];c[b+136>>2]=c[a+124>>2];c[b+140>>2]=c[a+128>>2];c[b+144>>2]=c[a+132>>2];c[b+148>>2]=c[a+136>>2];c[b+152>>2]=c[a+140>>2];c[b+156>>2]=c[a+144>>2];c[b+160>>2]=c[a+148>>2];c[b+164>>2]=c[a+152>>2];c[b+168>>2]=c[a+156>>2];c[b+172>>2]=c[a+160>>2];c[b+176>>2]=c[a+164>>2];c[b+180>>2]=c[a+168>>2];c[b+184>>2]=c[a+172>>2];c[b+188>>2]=c[a+176>>2];c[b+224>>2]=c[a+180>>2];c[b+192>>2]=c[a+184>>2];c[b>>2]=0;c[b+4>>2]=Ha[c[(c[d>>2]|0)+28>>2]&31](d,c[a+192>>2]|0)|0;c[b+8>>2]=0;c[b+228>>2]=c[a+204>>2];c[b+232>>2]=c[a+208>>2];c[b+236>>2]=c[a+212>>2];c[b+240>>2]=c[a+216>>2];c[b+196>>2]=c[a+220>>2];c[b+200>>2]=c[a+224>>2];c[b+204>>2]=c[a+232>>2];c[b+208>>2]=c[a+228>>2];c[b+244>>2]=c[a+236>>2];e=Ha[c[(c[d>>2]|0)+40>>2]&31](d,a)|0;f=Ha[c[(c[d>>2]|0)+28>>2]&31](d,e)|0;c[b+12>>2]=f;if(!f){f=a+244|0;f=c[f>>2]|0;d=b+212|0;c[d>>2]=f;d=a+248|0;d=c[d>>2]|0;f=b+216|0;c[f>>2]=d;f=a+252|0;f=c[f>>2]|0;d=b+220|0;c[d>>2]=f;d=a+256|0;d=c[d>>2]|0;f=b+248|0;c[f>>2]=d;return 17495}Va[c[(c[d>>2]|0)+48>>2]&127](d,e);f=a+244|0;f=c[f>>2]|0;d=b+212|0;c[d>>2]=f;d=a+248|0;d=c[d>>2]|0;f=b+216|