From 0c106729c08e1e5be53d810e59bba56835148869 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Wed, 19 Oct 2016 09:36:44 +0000 Subject: [PATCH] #1341: * move all javascript external libraries into include/lib * move all css into include/css/ * move all icons into include/icons/ git-svn-id: https://xpra.org/svn/Xpra/trunk@14195 3bb7dfac-3a0b-4e04-842a-767bc560f471 --- src/html5/connect.html | 2 +- src/html5/{include => css}/spinner.css | 0 src/html5/{include => icons}/close.png | Bin src/html5/{include => icons}/maximize.png | Bin src/html5/{include => icons}/minimize.png | Bin src/html5/{include => icons}/noicon.png | Bin src/html5/include/broadway/Decoder.js | 872 ----------------- .../include/{ => lib}/aurora/aurora-xpra.js | 0 src/html5/include/{ => lib}/aurora/aurora.js | 0 src/html5/include/{ => lib}/aurora/mp3.js | 0 src/html5/include/{ => lib}/bencode.js | 0 src/html5/include/{ => lib}/broadway/AUTHORS | 0 src/html5/include/lib/broadway/Decoder.js | 896 ++++++++++++++++++ src/html5/include/{ => lib}/broadway/LICENSE | 0 src/html5/include/{ => lib}/deflate.min.js | 0 src/html5/include/{ => lib}/forge.min.js | 0 src/html5/include/{ => lib}/inflate.min.js | 0 src/html5/include/{ => lib}/jquery.min.js | 0 .../{ => lib}/jquery.throttle-debounce.min.js | 0 src/html5/include/{ => lib}/jqueryui.min.js | 0 src/html5/include/{ => lib}/lz4.min.js | 0 src/html5/include/{ => lib}/websock.js | 0 src/html5/include/{ => lib}/wsworker_check.js | 0 src/html5/include/xpra_client.js | 2 +- src/html5/include/xpra_protocol.js | 10 +- src/html5/include/xpra_window.js | 6 +- src/html5/index.html | 26 +- 27 files changed, 919 insertions(+), 895 deletions(-) rename src/html5/{include => css}/spinner.css (100%) rename src/html5/{include => icons}/close.png (100%) rename src/html5/{include => icons}/maximize.png (100%) rename src/html5/{include => icons}/minimize.png (100%) rename src/html5/{include => icons}/noicon.png (100%) delete mode 100644 src/html5/include/broadway/Decoder.js rename src/html5/include/{ => lib}/aurora/aurora-xpra.js (100%) rename src/html5/include/{ => lib}/aurora/aurora.js (100%) rename src/html5/include/{ => lib}/aurora/mp3.js (100%) rename src/html5/include/{ => lib}/bencode.js (100%) rename src/html5/include/{ => lib}/broadway/AUTHORS (100%) create mode 100644 src/html5/include/lib/broadway/Decoder.js rename src/html5/include/{ => lib}/broadway/LICENSE (100%) rename src/html5/include/{ => lib}/deflate.min.js (100%) rename src/html5/include/{ => lib}/forge.min.js (100%) rename src/html5/include/{ => lib}/inflate.min.js (100%) rename src/html5/include/{ => lib}/jquery.min.js (100%) rename src/html5/include/{ => lib}/jquery.throttle-debounce.min.js (100%) rename src/html5/include/{ => lib}/jqueryui.min.js (100%) rename src/html5/include/{ => lib}/lz4.min.js (100%) rename src/html5/include/{ => lib}/websock.js (100%) rename src/html5/include/{ => lib}/wsworker_check.js (100%) diff --git a/src/html5/connect.html b/src/html5/connect.html index 1d6366f1d9..39eb05cbf5 100644 --- a/src/html5/connect.html +++ b/src/html5/connect.html @@ -20,7 +20,7 @@ - + diff --git a/src/html5/include/spinner.css b/src/html5/css/spinner.css similarity index 100% rename from src/html5/include/spinner.css rename to src/html5/css/spinner.css diff --git a/src/html5/include/close.png b/src/html5/icons/close.png similarity index 100% rename from src/html5/include/close.png rename to src/html5/icons/close.png diff --git a/src/html5/include/maximize.png b/src/html5/icons/maximize.png similarity index 100% rename from src/html5/include/maximize.png rename to src/html5/icons/maximize.png diff --git a/src/html5/include/minimize.png b/src/html5/icons/minimize.png similarity index 100% rename from src/html5/include/minimize.png rename to src/html5/icons/minimize.png diff --git a/src/html5/include/noicon.png b/src/html5/icons/noicon.png similarity index 100% rename from src/html5/include/noicon.png rename to src/html5/icons/noicon.png diff --git a/src/html5/include/broadway/Decoder.js b/src/html5/include/broadway/Decoder.js deleted file mode 100644 index ac1548bab5..0000000000 --- a/src/html5/include/broadway/Decoder.js +++ /dev/null @@ -1,872 +0,0 @@ -// universal module definition -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define([], factory); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(); - } else { - // Browser globals (root is window) - root.Decoder = factory(); - } -}(this, function () { - "use strict"; - - var global; - - function initglobal(){ - global = this; - if (!global){ - if (typeof window != "undefined"){ - global = window; - }else if (self != "undefined"){ - global = self; - }; - }; - }; - initglobal(); - - - - function error(message) { - console.error(message); - console.trace(); - }; - - - function assert(condition, message) { - if (!condition) { - error(message); - }; - }; - - - var getModule = function(_broadwayOnHeadersDecoded, _broadwayOnPictureDecoded){ - - var windowBak; - if (typeof window != 'undefined'){ - windowBak = window; - }; - var window = { - _broadwayOnHeadersDecoded: _broadwayOnHeadersDecoded, - _broadwayOnPictureDecoded: _broadwayOnPictureDecoded - }; - - /* - - The reason why this is all packed into one file is that this file can also function as worker. - you can integrate the file into your build system and provide the original file to be loaded into a worker. - - */ - - -function d(a){throw a;}var g=void 0,i=!0,k=null,m=!1;function n(){return function(){}}var p;p||(p=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var aa={},r;for(r in p)p.hasOwnProperty(r)&&(aa[r]=p[r]);var t="object"===typeof process&&"function"===typeof require,ba="object"===typeof window,ca="function"===typeof importScripts,da=!ba&&!t&&!ca; -if(t){p.print||(p.print=function(a){process.stdout.write(a+"\n")});p.printErr||(p.printErr=function(a){process.stderr.write(a+"\n")});var fa=require("fs"),ga=require("path");p.read=function(a,b){var a=ga.normalize(a),c=fa.readFileSync(a);!c&&a!=ga.resolve(a)&&(a=path.join(__dirname,"..","src",a),c=fa.readFileSync(a));c&&!b&&(c=c.toString());return c};p.readBinary=function(a){return p.read(a,i)};p.load=function(a){ha(read(a))};p.thisProgram=1 0) var gc = undefined")):ba||ca?(p.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,m);b.send(k);return b.responseText},"undefined"!=typeof arguments&&(p.arguments=arguments),"undefined"!==typeof console?(p.print||(p.print=function(a){console.log(a)}),p.printErr||(p.printErr=function(a){console.log(a)})):p.print||(p.print= -n()),ba?window.Module=p:p.load=importScripts):d("Unknown runtime environment. Where are we?");function ha(a){eval.call(k,a)}!p.load&&p.read&&(p.load=function(a){ha(p.read(a))});p.print||(p.print=n());p.printErr||(p.printErr=p.print);p.arguments||(p.arguments=[]);p.thisProgram||(p.thisProgram="./this.program");p.print=p.print;p.fa=p.printErr;p.preRun=[];p.postRun=[];for(r in aa)aa.hasOwnProperty(r)&&(p[r]=aa[r]); -var z={Yd:function(a){ja=a},xd:function(){return ja},Tb:function(){return y},Sb:function(a){y=a},oc:function(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?z.ia:"i"===a[0]?(a=parseInt(a.substr(1)),w(0===a%8),a/8):0}},vd:function(a){return Math.max(z.oc(a),z.ia)},Qf:16,ng:function(a,b,c){return!c&&("i64"==a||"double"==a)?8:!a?Math.min(b,8):Math.min(b||(a?z.vd(a):0), -z.ia)},Fa:function(a,b,c){return c&&c.length?(c.splice||(c=Array.prototype.slice.call(c)),c.splice(0,0,b),p["dynCall_"+a].apply(k,c)):p["dynCall_"+a].call(k,b)},eb:[],Vc:function(a){for(var b=0;b=F&&A("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+F+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.");return b},ub:function(a,b){return Math.ceil(a/(b?b:16))*(b?b:16)},Fg:function(a,b,c){return c?+(a>>>0)+4294967296*+(b>>>0):+(a>>>0)+4294967296* -+(b|0)},Pc:8,ia:4,Rf:0};p.Runtime=z;z.addFunction=z.Vc;z.removeFunction=z.Sd;var H=m,la,ma,ja;function w(a,b){a||A("Assertion failed: "+b)}function na(a){var b=p["_"+a];if(!b)try{b=eval("_"+a)}catch(c){}w(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}var oa,pa; -(function(){function a(a){a=a.toString().match(e).slice(1);return{arguments:a[0],body:a[1],returnValue:a[2]}}var b={stackSave:function(){z.Tb()},stackRestore:function(){z.Sb()},arrayToC:function(a){var b=z.pb(a.length);qa(a,b);return b},stringToC:function(a){var b=0;a!==k&&(a!==g&&0!==a)&&(b=z.pb((a.length<<2)+1),ra(a,b));return b}},c={string:b.stringToC,array:b.arrayToC};pa=function(a,b,e,f){var h=na(a),s=[],a=0;if(f)for(var v=0;v>0]=b;break;case "i8":I[a>>0]=b;break;case "i16":J[a>>1]=b;break;case "i32":K[a>>2]=b;break;case "i64":ma=[b>>>0,(la=b,1<=+ta(la)?0>>0:~~+xa((la-+(~~la>>>0))/4294967296)>>>0:0)];K[a>>2]=ma[0];K[a+4>>2]=ma[1];break;case "float":ya[a>>2]=b;break;case "double":za[a>>3]=b;break;default:A("invalid type for setValue: "+c)}}p.setValue=sa; -function Aa(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return I[a>>0];case "i8":return I[a>>0];case "i16":return J[a>>1];case "i32":return K[a>>2];case "i64":return K[a>>2];case "float":return ya[a>>2];case "double":return za[a>>3];default:A("invalid type for setValue: "+b)}return k}p.getValue=Aa;var L=2,Ba=4;p.ALLOC_NORMAL=0;p.ALLOC_STACK=1;p.ALLOC_STATIC=L;p.ALLOC_DYNAMIC=3;p.ALLOC_NONE=Ba; -function M(a,b,c,e){var f,h;"number"===typeof a?(f=i,h=a):(f=m,h=a.length);var j="string"===typeof b?b:k,c=c==Ba?e:[Ca,z.pb,z.Ec,z.bb][c===g?L:c](Math.max(h,j?1:b.length));if(f){e=c;w(0==(c&3));for(a=c+(h&-4);e>2]=0;for(a=c+h;e>0]=0;return c}if("i8"===j)return a.subarray||a.slice?N.set(a,c):N.set(new Uint8Array(a),c),c;for(var e=0,l,u;e>0];if(128<=e)c=i;else if(0==e&&!b)break;f++;if(b&&f==b)break}b||(b=f);var h="";if(!c){for(;0>0],h+=c.nb(e);return h}p.Pointer_stringify=ka;p.UTF16ToString=function(a){for(var b=0,c="";;){var e=J[a+2*b>>1];if(0==e)return c;++b;c+=String.fromCharCode(e)}}; -p.stringToUTF16=function(a,b){for(var c=0;c>1]=a.charCodeAt(c);J[b+2*a.length>>1]=0};p.UTF32ToString=function(a){for(var b=0,c="";;){var e=K[a+4*b>>2];if(0==e)return c;++b;65536<=e?(e-=65536,c+=String.fromCharCode(55296|e>>10,56320|e&1023)):c+=String.fromCharCode(e)}};p.stringToUTF32=function(a,b){for(var c=0,e=0;e=f)var h=a.charCodeAt(++e),f=65536+((f&1023)<<10)|h&1023;K[b+4*c>>2]=f;++c}K[b+4*c>>2]=0}; -function Da(a){function b(c,e,f){var e=e||Infinity,h="",j=[],s;if("N"===a[l]){l++;"K"===a[l]&&l++;for(s=[];"E"!==a[l];)if("S"===a[l]){l++;var C=a.indexOf("_",l);s.push(q[a.substring(l,C)||0]||"?");l=C+1}else if("C"===a[l])s.push(s[s.length-1]),l+=2;else{var C=parseInt(a.substr(l)),P=C.toString().length;if(!C||!P){l--;break}var sb=a.substr(l+P,C);s.push(sb);q.push(sb);l+=P+C}l++;s=s.join("::");e--;if(0===e)return c?[s]:s}else if(("K"===a[l]||x&&"L"===a[l])&&l++,C=parseInt(a.substr(l)))P=C.toString().length, -s=a.substr(l+P,C),l+=P+C;x=m;"I"===a[l]?(l++,C=b(i),P=b(i,1,i),h+=P[0]+" "+s+"<"+C.join(", ")+">"):h=s;a:for(;lO?2*O:O+16777216; -O!==F&&(p.fa("increasing TOTAL_MEMORY to "+O+" to be compliant with the asm.js spec"),F=O);w("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"JS engine does not provide full typed array support");var Q=new ArrayBuffer(F);I=new Int8Array(Q);J=new Int16Array(Q);K=new Int32Array(Q);N=new Uint8Array(Q);Ga=new Uint16Array(Q);Ha=new Uint32Array(Q);ya=new Float32Array(Q);za=new Float64Array(Q);K[0]=255;w(255===N[0]&&0===N[3],"Typed arrays 2 must be run on a little-endian system"); -p.HEAP=g;p.buffer=Q;p.HEAP8=I;p.HEAP16=J;p.HEAP32=K;p.HEAPU8=N;p.HEAPU16=Ga;p.HEAPU32=Ha;p.HEAPF32=ya;p.HEAPF64=za;function Na(a){for(;0>0]=a[c],c+=1}p.writeStringToMemory=ra;function qa(a,b){for(var c=0;c>0]=a[c]}p.writeArrayToMemory=qa; -p.writeAsciiToMemory=function(a,b,c){for(var e=0;e>0]=a.charCodeAt(e);c||(I[b+a.length>>0]=0)};if(!Math.imul||-5!==Math.imul(4294967295,5))Math.imul=function(a,b){var c=a&65535,e=b&65535;return c*e+((a>>>16)*e+c*(b>>>16)<<16)|0};Math.vg=Math.imul;var ta=Math.abs,xa=Math.ceil,wa=Math.floor,va=Math.min,S=0,Wa=k,Xa=k;function Ya(){S++;p.monitorRunDependencies&&p.monitorRunDependencies(S)}p.addRunDependency=Ya; -function Za(){S--;p.monitorRunDependencies&&p.monitorRunDependencies(S);if(0==S&&(Wa!==k&&(clearInterval(Wa),Wa=k),Xa)){var a=Xa;Xa=k;a()}}p.removeRunDependency=Za;p.preloadedImages={};p.preloadedAudios={};var T=k,Ia=8,D=Ia+7808;R.push(); -M([0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,0,0,0,0,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,0,0,0,0,10,0,0,0,13,0,0,0,16,0,0,0,11,0,0,0,14,0,0,0,18,0,0,0,13,0,0,0,16,0,0,0,20,0,0,0,14,0,0,0,18,0,0,0,23,0,0,0,16,0,0,0,20,0,0,0,25,0,0,0,18,0,0,0,23,0,0,0,29,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0, -0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,34,0,0,0,35,0,0,0,35,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,37,0,0,0,37,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,39,0,0,0,39,0,0,0,39,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,128,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,4,0,0, -0,5,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,12,0,0,0,13,0,0,0,10,0,0,0,11,0,0,0,14,0,0,0,15,0,0,0,47,31,15,0,23,27,29,30,7,11,13,14,39,43,45,46,16,3,5,10,12,19,21,26,28,35,37,42,44,1,2,4,8,17,18,20,24,6,9,22,25,32,33,34,36,40,38,41,0,16,1,2,4,8,32,3,5,10,12,15,47,7,11,13,14,6,9,31,35,37,42,44,33,34,36,40,39,43,45,46,17,18,20,24,19,21,26,28,23,27,29,30,22,25,38,41,17,1,0,0,0,0,0,0,34,18,1,1,0,0,0,0,50,34,18,2,0,0,0,0,67,51,34,34,18,18,2,2,83,67,51,35,18,18,2,2,19,35,67,51,99,83,2,2,0, -0,101,85,68,68,52,52,35,35,35,35,19,19,19,19,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,249,233,217,200,200,184,184,167,167,167,167,151,151,151,151,134,134,134,134,134,134,134,134,118,118,118,118,118,118,118,118,230,214,198,182,165,165,149,149,132,132,132,132,116,116,116,116,100,100,100,100,84,84,84,84,67,67,67,67,67,67,67,67,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,19,19,19,19,19,19,19,19,3,3,3,3,3,3,3,3,214,182,197,197,165,165,149,149,132,132,132,132,84,84,84,84,68,68,68,68,4,4,4,4,115,115,115,115, -115,115,115,115,99,99,99,99,99,99,99,99,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,19,19,19,19,19,19,19,19,197,181,165,5,148,148,116,116,52,52,36,36,131,131,131,131,99,99,99,99,83,83,83,83,67,67,67,67,19,19,19,19,181,149,164,164,132,132,36,36,20,20,4,4,115,115,115,115,99,99,99,99,83,83,83,83,67,67,67,67,51,51,51,51,166,6,21,21,132,132,132,132,147,147,147,147,147,147,147,147,115,115,115,115,115,115,115,115,99,99,99,99,99,99,99,99,83,83,83,83,83,83,83,83,67,67,67,67,67,67,67,67,51,51,51,51,51, -51,51,51,35,35,35,35,35,35,35,35,150,6,21,21,116,116,116,116,131,131,131,131,131,131,131,131,99,99,99,99,99,99,99,99,67,67,67,67,67,67,67,67,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,134,6,37,37,20,20,20,20,115,115,115,115,115,115,115,115,99,99,99,99,99,99,99,99,51,51,51,51,51,51,51,51,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,22,6,117,117,36,36,36,36,83,83,83,83,83,83,83,83,98,98,98,98,98, -98,98,98,98,98,98,98,98,98,98,98,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,21,5,100,100,35,35,35,35,82,82,82,82,82,82,82,82,66,66,66,66,66,66,66,66,50,50,50,50,50,50,50,50,4,20,35,35,51,51,83,83,65,65,65,65,65,65,65,65,4,20,67,67,34,34,34,34,49,49,49,49,49,49,49,49,3,19,50,50,33,33,33,33,2,18,33,33,0,0,0,0,0,0,0,0,0,0,102,32,38,16,6,8,101,24,101,24,67,16,67,16,67,16,67,16,67,16,67,16,67,16,67,16,34,8,34,8,34,8,34,8,34,8,34,8,34,8,34,8,34,8,34, -8,34,8,34,8,34,8,34,8,34,8,34,8,0,0,0,0,0,0,0,0,106,64,74,48,42,40,10,32,105,56,105,56,73,40,73,40,41,32,41,32,9,24,9,24,104,48,104,48,104,48,104,48,72,32,72,32,72,32,72,32,40,24,40,24,40,24,40,24,8,16,8,16,8,16,8,16,103,40,103,40,103,40,103,40,103,40,103,40,103,40,103,40,71,24,71,24,71,24,71,24,71,24,71,24,71,24,71,24,110,96,78,88,46,80,14,80,110,88,78,80,46,72,14,72,13,64,13,64,77,72,77,72,45,64,45,64,13,56,13,56,109,80,109,80,77,64,77,64,45,56,45,56,13,48,13,48,107,72,107,72,107,72,107,72,107, -72,107,72,107,72,107,72,75,56,75,56,75,56,75,56,75,56,75,56,75,56,75,56,43,48,43,48,43,48,43,48,43,48,43,48,43,48,43,48,11,40,11,40,11,40,11,40,11,40,11,40,11,40,11,40,0,0,0,0,47,104,47,104,16,128,80,128,48,128,16,120,112,128,80,120,48,120,16,112,112,120,80,112,48,112,16,104,111,112,111,112,79,104,79,104,47,96,47,96,15,96,15,96,111,104,111,104,79,96,79,96,47,88,47,88,15,88,15,88,0,0,0,0,0,0,0,0,102,56,70,32,38,32,6,16,102,48,70,24,38,24,6,8,101,40,101,40,37,16,37,16,100,32,100,32,100,32,100,32,100, -24,100,24,100,24,100,24,67,16,67,16,67,16,67,16,67,16,67,16,67,16,67,16,0,0,0,0,0,0,0,0,105,72,73,56,41,56,9,48,8,40,8,40,72,48,72,48,40,48,40,48,8,32,8,32,103,64,103,64,103,64,103,64,71,40,71,40,71,40,71,40,39,40,39,40,39,40,39,40,7,24,7,24,7,24,7,24,0,0,0,0,109,120,109,120,110,128,78,128,46,128,14,128,46,120,14,120,78,120,46,112,77,112,77,112,13,112,13,112,109,112,109,112,77,104,77,104,45,104,45,104,13,104,13,104,109,104,109,104,77,96,77,96,45,96,45,96,13,96,13,96,12,88,12,88,12,88,12,88,76,88, -76,88,76,88,76,88,44,88,44,88,44,88,44,88,12,80,12,80,12,80,12,80,108,96,108,96,108,96,108,96,76,80,76,80,76,80,76,80,44,80,44,80,44,80,44,80,12,72,12,72,12,72,12,72,107,88,107,88,107,88,107,88,107,88,107,88,107,88,107,88,75,72,75,72,75,72,75,72,75,72,75,72,75,72,75,72,43,72,43,72,43,72,43,72,43,72,43,72,43,72,43,72,11,64,11,64,11,64,11,64,11,64,11,64,11,64,11,64,107,80,107,80,107,80,107,80,107,80,107,80,107,80,107,80,75,64,75,64,75,64,75,64,75,64,75,64,75,64,75,64,43,64,43,64,43,64,43,64,43,64,43, -64,43,64,43,64,11,56,11,56,11,56,11,56,11,56,11,56,11,56,11,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,24,70,56,38,56,6,16,102,72,70,48,38,48,6,8,37,40,37,40,69,40,69,40,37,32,37,32,69,32,69,32,37,24,37,24,101,64,101,64,69,24,69,24,37,16,37,16,100,56,100,56,100,56,100,56,100,48,100,48,100,48,100,48,100,40,100,40,100,40,100,40,100,32,100,32,100,32,100,32,100,24,100,24,100,24,100,24,68,16,68,16,68,16,68,16,36,8,36,8,36,8,36,8,4,0,4,0,4,0,4,0,0,0,10,128,106,128,74,128,42,128,10,120,106,120,74,120,42,120,10, -112,106,112,74,112,42,112,10,104,41,104,41,104,9,96,9,96,73,104,73,104,41,96,41,96,9,88,9,88,105,104,105,104,73,96,73,96,41,88,41,88,9,80,9,80,104,96,104,96,104,96,104,96,72,88,72,88,72,88,72,88,40,80,40,80,40,80,40,80,8,72,8,72,8,72,8,72,104,88,104,88,104,88,104,88,72,80,72,80,72,80,72,80,40,72,40,72,40,72,40,72,8,64,8,64,8,64,8,64,7,56,7,56,7,56,7,56,7,56,7,56,7,56,7,56,7,48,7,48,7,48,7,48,7,48,7,48,7,48,7,48,71,72,71,72,71,72,71,72,71,72,71,72,71,72,71,72,7,40,7,40,7,40,7,40,7,40,7,40,7,40,7,40, -103,80,103,80,103,80,103,80,103,80,103,80,103,80,103,80,71,64,71,64,71,64,71,64,71,64,71,64,71,64,71,64,39,64,39,64,39,64,39,64,39,64,39,64,39,64,39,64,7,32,7,32,7,32,7,32,7,32,7,32,7,32,7,32,6,8,38,8,0,0,6,0,6,16,38,16,70,16,0,0,6,24,38,24,70,24,102,24,6,32,38,32,70,32,102,32,6,40,38,40,70,40,102,40,6,48,38,48,70,48,102,48,6,56,38,56,70,56,102,56,6,64,38,64,70,64,102,64,6,72,38,72,70,72,102,72,6,80,38,80,70,80,102,80,6,88,38,88,70,88,102,88,6,96,38,96,70,96,102,96,6,104,38,104,70,104,102,104,6,112, -38,112,70,112,102,112,6,120,38,120,70,120,102,120,6,128,38,128,70,128,102,128,0,0,67,16,2,0,2,0,33,8,33,8,33,8,33,8,103,32,103,32,72,32,40,32,71,24,71,24,39,24,39,24,6,32,6,32,6,32,6,32,6,24,6,24,6,24,6,24,6,16,6,16,6,16,6,16,102,24,102,24,102,24,102,24,38,16,38,16,38,16,38,16,6,8,6,8,6,8,6,8,3,0,0,0,15,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,3, -0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,19,0,0,0,1,0,0,0,18,0,0,0,0,0,0,0,17,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,23,0,0,0,1,0,0,0,22,0,0,0,0,0,0,0,21,0,0,0,4,0,0,0,20,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,4,0,0,0,1,0,0,0,255,0,0,0,4,0,0,0,1,0,0,0,15,0,0,0,2,0,0,0,10,0,0,0,4,0,0,0,5,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,9,0,0,0,255,0,0,0,12,0,0,0,4,0,0,0,7,0,0,0,255,0,0,0,2,0,0,0,4,0,0,0,13,0,0,0,255,0,0,0,8,0,0,0,1,0,0,0,19,0,0,0,2,0,0,0,18,0,0,0,4,0, -0,0,17,0,0,0,255,0,0,0,16,0,0,0,1,0,0,0,23,0,0,0,2,0,0,0,22,0,0,0,4,0,0,0,21,0,0,0,255,0,0,0,20,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,7,0,0,0,4,0,0,0,12,0,0,0,4,0,0,0,13,0,0,0,1,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,4,0,0,0,16,0,0,0,4,0,0,0,17,0,0,0,1,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,4,0,0,0,20,0,0,0,4,0,0,0,21,0,0,0,0, -0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,8,0,0,0,0,0,0,0,15,0,0,0,4,0,0,0,10,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,12,0,0,0,4,0,0,0,11,0,0,0,4,0,0,0,14,0,0,0,0,0,0,0,17,0,0,0,4,0,0,0,16,0,0,0,0,0,0,0,19,0,0,0,4,0,0,0,18,0,0,0,0,0,0,0,21,0,0,0,4,0,0,0,20,0,0,0,0,0,0,0,23,0,0,0,4,0,0,0,22,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,8,0,0,0,12,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0, -12,0,0,0,8,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,12,0,0,0,12,0,0,0,8,0,0,0,8,0,0,0,12,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108, -109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234, -235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, -255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,15,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,3,0,0,0,15,0,0,0,0,0,0,0,5,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,3,0,0,0,15,0,0,0,1,0,0,0,10,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,3,0,0,0,15,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,4,0,0,0,1,0,0,0,255,0, -0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,7,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,13,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,3,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0, -0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,9,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,12,0,0,0,1,0,0,0,14,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,255,0,0,0,4,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,4,0,0,0,1,0,0,0,255,0,0,0,4,0,0,0,2,0,0,0,10,0,0, -0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,2,0,0,0,10,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,15,0,0,0,2,0,0,0,10,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,15,0,0,0,2,0,0,0,10,0,0,0,4,0,0,0,5,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,255,0,0,0,12,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0, -0,0,4,0,0,0,9,0,0,0,255,0,0,0,12,0,0,0,255,0,0,0,2,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,2,0,0,0,255,0,0,0,8,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,7,0,0,0,255,0,0,0,2,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,7,0,0,0,255,0,0,0,2,0,0,0,4,0,0,0,13,0,0,0,255,0,0,0,8,0,0,0,1,0,0,0,10,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,4,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,255,0, -0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,14,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,4,0,0,0,4,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0, -0,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,6,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,12,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,7,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,7,0,0,0,4,0,0,0,12,0,0,0,4,0,0,0,13,0,0,0,0,0,0,0,5,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0, -0,0,0,7,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,3,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,0,0,0,0,13,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0, -0,0,255,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,15,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,8,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,8,0,0,0,0,0,0,0,15,0,0,0,4,0,0,0,10,0,0,0,4,0,0,0,9,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,11,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,12,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,12,0,0,0,4,0,0,0,11,0,0,0,4,0,0,0,14,0,0, -0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,5,6,7,8,9,10,12,13,15,17,20,22,25,28,32,36,40,45,50,56,63,71,80,90,101,113,127,144,162,182,203,226,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,3,3,3,3,4,4,4,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,1,1,2,1,2,3,1,2,3,2,2,3,2,2,4,2,3,4,2,3,4,3,3,5,3,4,6,3,4,6,4,5,7,4,5,8,4,6,9,5,7,10,6,8,11,6,8,13,7,10,14,8,11,16,9,12,18,10,13,20,11,15,23,13,17,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,69,67,79,68,69,82,32,73,78,73,84,73,65,76,73,90,65,84,73,79,78,32,70,65,73,76,69,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",Ba,z.Pc);var $a=z.ub(M(12,"i8",L),8);w(0==$a%8); -var U={O:1,Q:2,Ef:3,De:4,ha:5,Zb:6,be:7,$e:8,V:9,oe:10,Ca:11,Of:11,Mc:12,qb:13,ye:14,mf:15,ga:16,Xb:17,Oc:18,Qa:19,Sa:20,pa:21,B:22,Ve:23,Lc:24,Nc:25,Lf:26,ze:27,hf:28,Ua:29,Bf:30,Oe:31,uf:32,ve:33,yf:34,df:42,Be:43,pe:44,Fe:45,Ge:46,He:47,Ne:48,Mf:49,Ye:50,Ee:51,te:35,af:37,ge:52,je:53,Pf:54,We:55,ke:56,le:57,ue:35,me:59,kf:60,Ze:61,If:62,jf:63,ef:64,ff:65,Af:66,bf:67,ee:68,Ff:69,qe:70,vf:71,Qe:72,we:73,ie:74,qf:76,he:77,zf:78,Ie:79,Je:80,Me:81,Le:82,Ke:83,lf:38,sb:39,Re:36,rb:40,Ta:95,tf:96,se:104, -Xe:105,fe:97,xf:91,of:88,gf:92,Cf:108,Wb:111,ce:98,re:103,Ue:101,Se:100,Jf:110,Ae:112,Yb:113,Jc:115,Hc:114,Ic:89,Pe:90,wf:93,Df:94,de:99,Te:102,Kc:106,Ra:107,Kf:109,Nf:87,xe:122,Gf:116,pf:95,cf:123,Ce:84,rf:75,ne:125,nf:131,sf:130,Hf:86},ab={"0":"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes", -12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func", -34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange", -53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)", -74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required", -90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected", -107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},bb=0;function V(a){return K[bb>>2]=a} -function cb(a,b){for(var c=0,e=a.length-1;0<=e;e--){var f=a[e];"."===f?a.splice(e,1):".."===f?(a.splice(e,1),c++):c&&(a.splice(e,1),c--)}if(b)for(;c--;c)a.unshift("..");return a}function db(a){var b="/"===a.charAt(0),c="/"===a.substr(-1),a=cb(a.split("/").filter(function(a){return!!a}),!b).join("/");!a&&!b&&(a=".");a&&c&&(a+="/");return(b?"/":"")+a} -function eb(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1),a=b[0],b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b}function W(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}function fb(){var a=Array.prototype.slice.call(arguments,0);return db(a.join("/"))}function X(a,b){return db(a+"/"+b)} -function gb(){for(var a="",b=m,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:B.yb();"string"!==typeof b&&d(new TypeError("Arguments to path.resolve must be strings"));if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=cb(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."} -function hb(a,b){function c(a){for(var b=0;bc?[]:a.slice(b,c-b+1)}for(var a=gb(a).substr(1),b=gb(b).substr(1),e=c(a.split("/")),f=c(b.split("/")),h=Math.min(e.length,f.length),j=h,l=0;la.k.length)&&(a.k=Y.ud(a),a.q=a.k.length);if(!a.k||a.k.subarray){var c=a.k?a.k.buffer.byteLength:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)|0),0!=c&&(b=Math.max(b,256)),c=a.k,a.k=new Uint8Array(b),0b)a.k.length=b;else for(;a.k.length=a.g.q)return 0;a=Math.min(a.g.q-f,e);w(0<=a);if(8b&&d(new B.e(U.B));return b},Ea:function(a,b,c){Y.lc(a.g,b+c);a.g.q=Math.max(a.g.q,b+c)},Ja:function(a,b,c,e,f,h,j){B.isFile(a.g.mode)||d(new B.e(U.Qa));c=a.g.k;if(!(j&2)&&(c.buffer===b||c.buffer=== -b.buffer))a=m,e=c.byteOffset;else{if(0>>0)%B.T.length},tc:function(a){var b=B.Fb(a.parent.id,a.name);a.ma=B.T[b];B.T[b]=a},uc:function(a){var b=B.Fb(a.parent.id,a.name);if(B.T[b]===a)B.T[b]=a.ma;else for(b=B.T[b];b;){if(b.ma===a){b.ma=a.ma;break}b=b.ma}},aa:function(a,b){var c=B.Gd(a);c&&d(new B.e(c,a));for(c=B.T[B.Fb(a.id,b)];c;c=c.ma){var e=c.name;if(c.parent.id===a.id&&e===b)return c}return B.ra(a,b)},createNode:function(a,b,c,e){B.Va||(B.Va=function(a,b,c,e){a|| -(a=this);this.parent=a;this.F=a.F;this.Ka=k;this.id=B.Jd++;this.name=b;this.mode=c;this.n={};this.p={};this.ob=e},B.Va.prototype={},Object.defineProperties(B.Va.prototype,{M:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Dd:{get:function(){return B.J(this.mode)}},Gb:{get:function(){return B.ib(this.mode)}}}));a=new B.Va(a,b,c,e);B.tc(a);return a}, -zb:function(a){B.uc(a)},jb:function(a){return a===a.parent},ka:function(a){return!!a.Ka},isFile:function(a){return 32768===(a&61440)},J:function(a){return 16384===(a&61440)},Ia:function(a){return 40960===(a&61440)},ib:function(a){return 8192===(a&61440)},Bd:function(a){return 24576===(a&61440)},Cd:function(a){return 4096===(a&61440)},Ed:function(a){return 49152===(a&49152)},rd:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218}, -wc:function(a){var b=B.rd[a];"undefined"===typeof b&&d(Error("Unknown file open mode: "+a));return b},sd:function(a){var b=["r","w","rw"][a&2097155];a&512&&(b+="w");return b},na:function(a,b){return B.vc?0:-1!==b.indexOf("r")&&!(a.mode&292)||-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73)?U.qb:0},Gd:function(a){var b=B.na(a,"x");return b?b:!a.n.ra?U.qb:0},Jb:function(a,b){try{return B.aa(a,b),U.Xb}catch(c){}return B.na(a,"wx")},kb:function(a,b,c){var e;try{e=B.aa(a,b)}catch(f){return f.cb}if(a= -B.na(a,"wx"))return a;if(c){if(!B.J(e.mode))return U.Sa;if(B.jb(e)||B.da(e)===B.yb())return U.ga}else if(B.J(e.mode))return U.pa;return 0},Hd:function(a,b){return!a?U.Q:B.Ia(a.mode)?U.rb:B.J(a.mode)&&(0!==(b&2097155)||b&512)?U.pa:B.na(a,B.sd(b))},Qc:4096,Kd:function(a,b){for(var b=b||B.Qc,c=a||0;c<=b;c++)if(!B.oa[c])return c;d(new B.e(U.Lc))},qa:function(a){return B.oa[a]},fc:function(a,b,c){B.Wa||(B.Wa=n(),B.Wa.prototype={},Object.defineProperties(B.Wa.prototype,{object:{get:function(){return this.g}, -set:function(a){this.g=a}},yg:{get:function(){return 1!==(this.D&2097155)}},zg:{get:function(){return 0!==(this.D&2097155)}},xg:{get:function(){return this.D&1024}}}));var e=new B.Wa,f;for(f in a)e[f]=a[f];a=e;b=B.Kd(b,c);a.C=b;return B.oa[b]=a},dd:function(a){B.oa[a]=k},pc:function(a){return B.oa[a-1]},Eb:function(a){return a?a.C+1:0},bd:{open:function(a){a.p=B.td(a.g.ob).p;a.p.open&&a.p.open(a)},$:function(){d(new B.e(U.Ua))}},Ib:function(a){return a>>8},Gg:function(a){return a&255},la:function(a, -b){return a<<8|b},Ob:function(a,b){B.ic[a]={p:b}},td:function(a){return B.ic[a]},nc:function(a){for(var b=[],a=[a];a.length;){var c=a.pop();b.push(c);a.push.apply(a,c.La)}return b},Fc:function(a,b){function c(a){if(a){if(!c.pd)return c.pd=i,b(a)}else++f>=e.length&&b(k)}"function"===typeof a&&(b=a,a=m);var e=B.nc(B.root.F),f=0;e.forEach(function(b){if(!b.type.Fc)return c(k);b.type.Fc(b,a,c)})},F:function(a,b,c){var e="/"===c,f=!c,h;e&&B.root&&d(new B.e(U.ga));!e&&!f&&(h=B.u(c,{Bb:m}),c=h.path,h=h.g, -B.ka(h)&&d(new B.e(U.ga)),B.J(h.mode)||d(new B.e(U.Sa)));b={type:a,Kg:b,Id:c,La:[]};a=a.F(b);a.F=b;b.root=a;e?B.root=a:h&&(h.Ka=b,h.F&&h.F.La.push(b));return a},Qg:function(a){a=B.u(a,{Bb:m});B.ka(a.g)||d(new B.e(U.B));var a=a.g,b=a.Ka,c=B.nc(b);Object.keys(B.T).forEach(function(a){for(a=B.T[a];a;){var b=a.ma;-1!==c.indexOf(a.F)&&B.zb(a);a=b}});a.Ka=k;b=a.F.La.indexOf(b);w(-1!==b);a.F.La.splice(b,1)},ra:function(a,b){return a.n.ra(a,b)},ba:function(a,b,c){var e=B.u(a,{parent:i}).g,a=W(a);(!a||"."=== -a||".."===a)&&d(new B.e(U.B));var f=B.Jb(e,a);f&&d(new B.e(f));e.n.ba||d(new B.e(U.O));return e.n.ba(e,a,b,c)},create:function(a,b){b=(b!==g?b:438)&4095;b|=32768;return B.ba(a,b,0)},ea:function(a,b){b=(b!==g?b:511)&1023;b|=16384;return B.ba(a,b,0)},lb:function(a,b,c){"undefined"===typeof c&&(c=b,b=438);return B.ba(a,b|8192,c)},ca:function(a,b){gb(a)||d(new B.e(U.Q));var c=B.u(b,{parent:i}).g;c||d(new B.e(U.Q));var e=W(b),f=B.Jb(c,e);f&&d(new B.e(f));c.n.ca||d(new B.e(U.O));return c.n.ca(c,e,a)},rename:function(a, -b){var c=eb(a),e=eb(b),f=W(a),h=W(b),j,l,u;try{j=B.u(a,{parent:i}),l=j.g,j=B.u(b,{parent:i}),u=j.g}catch(q){d(new B.e(U.ga))}(!l||!u)&&d(new B.e(U.Q));l.F!==u.F&&d(new B.e(U.Oc));j=B.aa(l,f);e=hb(a,e);"."!==e.charAt(0)&&d(new B.e(U.B));e=hb(b,c);"."!==e.charAt(0)&&d(new B.e(U.sb));var x;try{x=B.aa(u,h)}catch(s){}if(j!==x){c=B.J(j.mode);(f=B.kb(l,f,c))&&d(new B.e(f));(f=x?B.kb(u,h,c):B.Jb(u,h))&&d(new B.e(f));l.n.rename||d(new B.e(U.O));(B.ka(j)||x&&B.ka(x))&&d(new B.e(U.ga));u!==l&&(f=B.na(l,"w"))&& -d(new B.e(f));try{B.H.willMovePath&&B.H.willMovePath(a,b)}catch(v){console.log("FS.trackingDelegate['willMovePath']('"+a+"', '"+b+"') threw an exception: "+v.message)}B.uc(j);try{l.n.rename(j,u,h)}catch(G){d(G)}finally{B.tc(j)}try{if(B.H.onMovePath)B.H.onMovePath(a,b)}catch(ua){console.log("FS.trackingDelegate['onMovePath']('"+a+"', '"+b+"') threw an exception: "+ua.message)}}},Oa:function(a){var b=B.u(a,{parent:i}).g,c=W(a),e=B.aa(b,c),f=B.kb(b,c,i);f&&d(new B.e(f));b.n.Oa||d(new B.e(U.O));B.ka(e)&& -d(new B.e(U.ga));try{B.H.willDeletePath&&B.H.willDeletePath(a)}catch(h){console.log("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+h.message)}b.n.Oa(b,c);B.zb(e);try{if(B.H.onDeletePath)B.H.onDeletePath(a)}catch(j){console.log("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+j.message)}},Na:function(a){a=B.u(a,{R:i}).g;a.n.Na||d(new B.e(U.Sa));return a.n.Na(a)},za:function(a){var b=B.u(a,{parent:i}).g,c=W(a),e=B.aa(b,c),f=B.kb(b,c,m);f&&(f===U.pa&&(f=U.O), -d(new B.e(f)));b.n.za||d(new B.e(U.O));B.ka(e)&&d(new B.e(U.ga));try{B.H.willDeletePath&&B.H.willDeletePath(a)}catch(h){console.log("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+h.message)}b.n.za(b,c);B.zb(e);try{if(B.H.onDeletePath)B.H.onDeletePath(a)}catch(j){console.log("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+j.message)}},ta:function(a){(a=B.u(a).g)||d(new B.e(U.Q));a.n.ta||d(new B.e(U.B));return a.n.ta(a)},Dc:function(a,b){var c=B.u(a,{R:!b}).g; -c||d(new B.e(U.Q));c.n.S||d(new B.e(U.O));return c.n.S(c)},Eg:function(a){return B.Dc(a,i)},Ya:function(a,b,c){a="string"===typeof a?B.u(a,{R:!c}).g:a;a.n.I||d(new B.e(U.O));a.n.I(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})},Bg:function(a,b){B.Ya(a,b,i)},jg:function(a,b){var c=B.qa(a);c||d(new B.e(U.V));B.Ya(c.g,b)},dc:function(a,b,c,e){a="string"===typeof a?B.u(a,{R:!e}).g:a;a.n.I||d(new B.e(U.O));a.n.I(a,{timestamp:Date.now()})},Cg:function(a,b,c){B.dc(a,b,c,i)},kg:function(a,b,c){(a=B.qa(a))|| -d(new B.e(U.V));B.dc(a.g,b,c)},truncate:function(a,b){0>b&&d(new B.e(U.B));var c;c="string"===typeof a?B.u(a,{R:i}).g:a;c.n.I||d(new B.e(U.O));B.J(c.mode)&&d(new B.e(U.pa));B.isFile(c.mode)||d(new B.e(U.B));var e=B.na(c,"w");e&&d(new B.e(e));c.n.I(c,{size:b,timestamp:Date.now()})},mg:function(a,b){var c=B.qa(a);c||d(new B.e(U.V));0===(c.D&2097155)&&d(new B.e(U.B));B.truncate(c.g,b)},Rg:function(a,b,c){a=B.u(a,{R:i}).g;a.n.I(a,{timestamp:Math.max(b,c)})},open:function(a,b,c,e,f){""===a&&d(new B.e(U.Q)); -var b="string"===typeof b?B.wc(b):b,c=b&64?("undefined"===typeof c?438:c)&4095|32768:0,h;if("object"===typeof a)h=a;else{a=db(a);try{h=B.u(a,{R:!(b&131072)}).g}catch(j){}}var l=m;b&64&&(h?b&128&&d(new B.e(U.Xb)):(h=B.ba(a,c,0),l=i));h||d(new B.e(U.Q));B.ib(h.mode)&&(b&=-513);l||(c=B.Hd(h,b))&&d(new B.e(c));b&512&&B.truncate(h,0);b&=-641;e=B.fc({g:h,path:B.da(h),D:b,seekable:i,position:0,p:h.p,$d:[],error:m},e,f);e.p.open&&e.p.open(e);p.logReadFiles&&!(b&1)&&(B.Mb||(B.Mb={}),a in B.Mb||(B.Mb[a]=1, -p.printErr("read file: "+a)));try{B.H.onOpenFile&&(f=0,1!==(b&2097155)&&(f|=B.Gc.yc.Rc),0!==(b&2097155)&&(f|=B.Gc.yc.Sc),B.H.onOpenFile(a,f))}catch(u){console.log("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+u.message)}return e},close:function(a){try{a.p.close&&a.p.close(a)}catch(b){d(b)}finally{B.dd(a.C)}},$:function(a,b,c){(!a.seekable||!a.p.$)&&d(new B.e(U.Ua));a.position=a.p.$(a,b,c);a.$d=[];return a.position},M:function(a,b,c,e,f){(0>e||0>f)&&d(new B.e(U.B));1===(a.D& -2097155)&&d(new B.e(U.V));B.J(a.g.mode)&&d(new B.e(U.pa));a.p.M||d(new B.e(U.B));var h=i;"undefined"===typeof f?(f=a.position,h=m):a.seekable||d(new B.e(U.Ua));b=a.p.M(a,b,c,e,f);h||(a.position+=b);return b},write:function(a,b,c,e,f,h){(0>e||0>f)&&d(new B.e(U.B));0===(a.D&2097155)&&d(new B.e(U.V));B.J(a.g.mode)&&d(new B.e(U.pa));a.p.write||d(new B.e(U.B));a.D&1024&&B.$(a,0,2);var j=i;"undefined"===typeof f?(f=a.position,j=m):a.seekable||d(new B.e(U.Ua));b=a.p.write(a,b,c,e,f,h);j||(a.position+=b); -try{if(a.path&&B.H.onWriteToFile)B.H.onWriteToFile(a.path)}catch(l){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+l.message)}return b},Ea:function(a,b,c){(0>b||0>=c)&&d(new B.e(U.B));0===(a.D&2097155)&&d(new B.e(U.V));!B.isFile(a.g.mode)&&!B.J(node.mode)&&d(new B.e(U.Qa));a.p.Ea||d(new B.e(U.Ta));a.p.Ea(a,b,c)},Ja:function(a,b,c,e,f,h,j){1===(a.D&2097155)&&d(new B.e(U.qb));a.p.Ja||d(new B.e(U.Qa));return a.p.Ja(a,b,c,e,f,h,j)},Ha:function(a,b,c){a.p.Ha||d(new B.e(U.Nc)); -return a.p.Ha(a,b,c)},Mg:function(a,b){b=b||{};b.D=b.D||"r";b.encoding=b.encoding||"binary";"utf8"!==b.encoding&&"binary"!==b.encoding&&d(Error('Invalid encoding type "'+b.encoding+'"'));var c,e=B.open(a,b.D),f=B.Dc(a).size,h=new Uint8Array(f);B.M(e,h,0,f,0);if("utf8"===b.encoding){c="";for(var j=new z.Da,l=0;l>2]=B.Eb(a);w(0===a.C,"invalid handle for stdin ("+a.C+")");a=B.open("/dev/stdout","w");K[pb>>2]=B.Eb(a);w(1===a.C,"invalid handle for stdout ("+a.C+")");a=B.open("/dev/stderr","w");K[qb>>2]=B.Eb(a);w(2===a.C,"invalid handle for stderr ("+a.C+")")},jc:function(){B.e||(B.e=function(a,b){this.g=b;this.Xd=function(a){this.cb=a;for(var b in U)if(U[b]=== -a){this.code=b;break}};this.Xd(a);this.message=ab[a]},B.e.prototype=Error(),[U.Q].forEach(function(a){B.Db[a]=new B.e(a);B.Db[a].stack=""}))},Zd:function(){B.jc();B.T=Array(4096);B.F(Y,{},"/");B.fd();B.ed()},Ga:function(a,b,c){w(!B.Ga.hb,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");B.Ga.hb=i;B.jc();p.stdin=a||p.stdin;p.stdout=b||p.stdout;p.stderr= -c||p.stderr;B.od()},Qd:function(){B.Ga.hb=m;for(var a=0;athis.length-1||0>a)){var b=a%this.cd;return this.yd(a/ -this.cd|0)[b]}};h.prototype.Wd=function(a){this.yd=a};h.prototype.bc=function(){var a=new XMLHttpRequest;a.open("HEAD",c,m);a.send(k);200<=a.status&&300>a.status||304===a.status||d(Error("Couldn't load "+c+". Status: "+a.status));var b=Number(a.getResponseHeader("Content-length")),e,f=1048576;if(!((e=a.getResponseHeader("Accept-Ranges"))&&"bytes"===e))f=b;var h=this;h.Wd(function(a){var e=a*f,j=(a+1)*f-1,j=Math.min(j,b-1);if("undefined"===typeof h.Za[a]){var l=h.Za;e>j&&d(Error("invalid range ("+ -e+", "+j+") or no bytes requested!"));j>b-1&&d(Error("only "+b+" bytes available! programmer error!"));var q=new XMLHttpRequest;q.open("GET",c,m);b!==f&&q.setRequestHeader("Range","bytes="+e+"-"+j);"undefined"!=typeof Uint8Array&&(q.responseType="arraybuffer");q.overrideMimeType&&q.overrideMimeType("text/plain; charset=x-user-defined");q.send(k);200<=q.status&&300>q.status||304===q.status||d(Error("Couldn't load "+c+". Status: "+q.status));e=q.response!==g?new Uint8Array(q.response||[]):Va(q.responseText|| -"",i);l[a]=e}"undefined"===typeof h.Za[a]&&d(Error("doXHR failed!"));return h.Za[a]});this.Uc=b;this.Tc=f;this.Hb=i};if("undefined"!==typeof XMLHttpRequest){ca||d("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var j=new h;Object.defineProperty(j,"length",{get:function(){this.Hb||this.bc();return this.Uc}});Object.defineProperty(j,"chunkSize",{get:function(){this.Hb||this.bc();return this.Tc}});j={Gb:m,k:j}}else j={Gb:m,url:c}; -var l=B.gd(a,b,j,e,f);j.k?l.k=j.k:j.url&&(l.k=k,l.url=j.url);Object.defineProperty(l,"usedBytes",{get:function(){return this.k.length}});var u={};Object.keys(l.p).forEach(function(a){var b=l.p[a];u[a]=function(){B.mc(l)||d(new B.e(U.ha));return b.apply(k,arguments)}});u.M=function(a,b,c,e,f){B.mc(l)||d(new B.e(U.ha));a=a.g.k;if(f>=a.length)return 0;e=Math.min(a.length-f,e);w(0<=e);if(a.slice)for(var h=0;h>h-6&63,h=h-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[q]}2==h?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(e&3)<<4],c+="=="):4==h&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(e&15)<<2],c+="="); -s.src="data:audio/x-"+b.substr(-3)+";base64,"+c;f(s)}};s.src=l;p.noExitRuntime=i;setTimeout(function(){H||f(s)},1E4)}else return h()}});var v=p.canvas;v&&(v.Pb=v.requestPointerLock||v.mozRequestPointerLock||v.webkitRequestPointerLock||v.msRequestPointerLock||n(),v.kc=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||n(),v.kc=v.kc.bind(document),document.addEventListener("pointerlockchange",q,m),document.addEventListener("mozpointerlockchange", -q,m),document.addEventListener("webkitpointerlockchange",q,m),document.addEventListener("mspointerlockchange",q,m),p.elementPointerLock&&v.addEventListener("click",function(a){!rb&&v.Pb&&(v.Pb(),a.preventDefault())},m))}var G=b?gb(X(a,b)):a;Ya();"string"==typeof c?yb(c,function(a){x(a)},j):x(c)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},Ub:function(){return"EM_FS_"+window.location.pathname},Vb:20,Ba:"FILE_DATA",Og:function(a,b,c){var b= -b||n(),c=c||n(),e=B.indexedDB();try{var f=e.open(B.Ub(),B.Vb)}catch(h){return c(h)}f.Ld=function(){console.log("creating db");f.result.createObjectStore(B.Ba)};f.onsuccess=function(){var e=f.result.transaction([B.Ba],"readwrite"),h=e.objectStore(B.Ba),u=0,q=0,x=a.length;a.forEach(function(a){a=h.put(B.vb(a).object.k,a);a.onsuccess=function(){u++;u+q==x&&(0==q?b():c())};a.onerror=function(){q++;u+q==x&&(0==q?b():c())}});e.onerror=c};f.onerror=c},Dg:function(a,b,c){var b=b||n(),c=c||n(),e=B.indexedDB(); -try{var f=e.open(B.Ub(),B.Vb)}catch(h){return c(h)}f.Ld=c;f.onsuccess=function(){var e=f.result;try{var h=e.transaction([B.Ba],"readonly")}catch(u){c(u);return}var q=h.objectStore(B.Ba),x=0,s=0,v=a.length;a.forEach(function(a){var e=q.get(a);e.onsuccess=function(){B.vb(a).Ab&&B.za(a);B.xb(eb(a),W(a),e.result,i,i,i);x++;x+s==v&&(0==s?b():c())};e.onerror=function(){s++;x+s==v&&(0==s?b():c())}});h.onerror=c};f.onerror=c}};function zb(){d("TODO")} -var Z={F:function(){p.websocket=p.websocket&&"object"===typeof p.websocket?p.websocket:{};p.websocket.tb={};p.websocket.on=function(a,b){"function"===typeof b&&(this.tb[a]=b);return this};p.websocket.P=function(a,b){"function"===typeof this.tb[a]&&this.tb[a].call(this,b)};return B.createNode(k,"/",16895,0)},nd:function(a,b,c){c&&w(1==b==(6==c));a={qd:a,type:b,protocol:c,G:k,error:k,Ma:{},Kb:[],ua:[],wa:Z.L};b=Z.mb();c=B.createNode(Z.root,b,49152,0);c.va=a;b=B.fc({path:b,g:c,D:B.wc("r+"),seekable:m, -p:Z.p});a.A=b;return a},wd:function(a){a=B.qa(a);return!a||!B.Ed(a.g.mode)?k:a.g.va},p:{zc:function(a){a=a.g.va;return a.wa.zc(a)},Ha:function(a,b,c){a=a.g.va;return a.wa.Ha(a,b,c)},M:function(a,b,c,e){a=a.g.va;e=a.wa.Rd(a,e);if(!e)return 0;b.set(e.buffer,c);return e.buffer.length},write:function(a,b,c,e){a=a.g.va;return a.wa.Vd(a,b,c,e)},close:function(a){a=a.g.va;a.wa.close(a)}},mb:function(){Z.mb.gc||(Z.mb.gc=0);return"socket["+Z.mb.gc++ +"]"},L:{$a:function(a,b,c){var e;"object"===typeof b&&(e= -b,c=b=k);if(e)e._socket?(b=e._socket.remoteAddress,c=e._socket.remotePort):((c=/ws[s]?:\/\/([^:]+):(\d+)/.exec(e.url))||d(Error("WebSocket URL must be in the format ws(s)://address:port")),b=c[1],c=parseInt(c[2],10));else try{var f=p.websocket&&"object"===typeof p.websocket,h="ws:#".replace("#","//");f&&"string"===typeof p.websocket.url&&(h=p.websocket.url);if("ws://"===h||"wss://"===h)var j=b.split("/"),h=h+j[0]+":"+c+"/"+j.slice(1).join("/");j="binary";f&&"string"===typeof p.websocket.subprotocol&& -(j=p.websocket.subprotocol);var j=j.replace(/^ +| +$/g,"").split(/ *, */),l=t?{protocol:j.toString()}:j;e=new (t?require("ws"):window.WebSocket)(h,l);e.binaryType="arraybuffer"}catch(u){d(new B.e(U.Yb))}b={W:b,port:c,o:e,ab:[]};Z.L.$b(a,b);Z.L.zd(a,b);2===a.type&&"undefined"!==typeof a.ya&&b.ab.push(new Uint8Array([255,255,255,255,112,111,114,116,(a.ya&65280)>>8,a.ya&255]));return b},gb:function(a,b,c){return a.Ma[b+":"+c]},$b:function(a,b){a.Ma[b.W+":"+b.port]=b},Bc:function(a,b){delete a.Ma[b.W+ -":"+b.port]},zd:function(a,b){function c(){p.websocket.P("open",a.A.C);try{for(var c=b.ab.shift();c;)b.o.send(c),c=b.ab.shift()}catch(e){b.o.close()}}function e(c){w("string"!==typeof c&&c.byteLength!==g);var c=new Uint8Array(c),e=f;f=m;e&&10===c.length&&255===c[0]&&255===c[1]&&255===c[2]&&255===c[3]&&112===c[4]&&111===c[5]&&114===c[6]&&116===c[7]?(c=c[8]<<8|c[9],Z.L.Bc(a,b),b.port=c,Z.L.$b(a,b)):(a.ua.push({W:b.W,port:b.port,data:c}),p.websocket.P("message",a.A.C))}var f=i;t?(b.o.on("open",c),b.o.on("message", -function(a,b){b.binary&&e((new Uint8Array(a)).buffer)}),b.o.on("close",function(){p.websocket.P("close",a.A.C)}),b.o.on("error",function(){a.error=U.Wb;p.websocket.P("error",[a.A.C,a.error,"ECONNREFUSED: Connection refused"])})):(b.o.onopen=c,b.o.onclose=function(){p.websocket.P("close",a.A.C)},b.o.onmessage=function(a){e(a.data)},b.o.onerror=function(){a.error=U.Wb;p.websocket.P("error",[a.A.C,a.error,"ECONNREFUSED: Connection refused"])})},zc:function(a){if(1===a.type&&a.G)return a.Kb.length?65: -0;var b=0,c=1===a.type?Z.L.gb(a,a.Y,a.Z):k;if(a.ua.length||!c||c&&c.o.readyState===c.o.Pa||c&&c.o.readyState===c.o.CLOSED)b|=65;if(!c||c&&c.o.readyState===c.o.OPEN)b|=4;if(c&&c.o.readyState===c.o.Pa||c&&c.o.readyState===c.o.CLOSED)b|=16;return b},Ha:function(a,b,c){switch(b){case 21531:return b=0,a.ua.length&&(b=a.ua[0].data.length),K[c>>2]=b,0;default:return U.B}},close:function(a){if(a.G){try{a.G.close()}catch(b){}a.G=k}for(var c=Object.keys(a.Ma),e=0;e>0]=c;if(-1==Ab(Cb(b),Eb.Cc,1)){if(c=B.pc(b))c.error=i;return-1}return c}function Fb(a){Fb.$c||(E=E+4095&-4096,Fb.$c=i,w(z.bb),Fb.Wc=z.bb,z.bb=function(){A("cannot dynamically allocate, sbrk now has control")});var b=E;0!=a&&Fb.Wc(a);return b}p._memset=Gb;function Hb(a,b,c){window._broadwayOnPictureDecoded(a,b,c)}p._broadwayOnPictureDecoded=Hb;function Ib(){window._broadwayOnHeadersDecoded()}p._broadwayOnHeadersDecoded=Ib; -function Jb(a,b){Kb=a;Lb=b;if(!Mb)return 1;0==a?(Nb=function(){setTimeout(Ob,b)},Pb="timeout"):1==a&&(Nb=function(){Qb(Ob)},Pb="rAF");return 0} -function Rb(a,b,c,e){p.noExitRuntime=i;w(!Mb,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Mb=a;Sb=e;var f=Tb;Ob=function(){if(!H)if(0=bc;)bc+=1E3/60;b=Math.max(bc-b,0);setTimeout(a,b)}function Qb(a){"undefined"===typeof window?cc(a):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||cc),window.requestAnimationFrame(a))} -function xb(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]} -function yb(a,b,c){function e(){c?c():d('Loading data file "'+a+'" failed.')}var f=new XMLHttpRequest;f.open("GET",a,i);f.responseType="arraybuffer";f.onload=function(){if(200==f.status||0==f.status&&f.response){var c=f.response;w(c,'Loading data file "'+a+'" failed (no arrayBuffer).');b(new Uint8Array(c));Za()}else e()};f.onerror=e;f.send(k);Ya()}var dc=[];function ec(){var a=p.canvas;dc.forEach(function(b){b(a.width,a.height)})} -function fc(a,b,c){b&&c?(a.ae=b,a.Ad=c):(b=a.ae,c=a.Ad);var e=b,f=c;p.forcedAspectRatio&&0>2]=0;R.unshift({ja:n()});Qa.push({ja:n()});var lb=new z.Da;t&&(require("fs"),process.platform.match(/^win/));R.push({ja:function(){Z.root=B.F(Z,{},k)}}); -Eb.Cc=M([0],"i8",L); -p.requestFullScreen=function(a,b){function c(){Yb=m;var a=e.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===a?(e.cc=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen|| -n(),e.cc=e.cc.bind(document),$b&&e.Pb(),Yb=i,ac&&("undefined"!=typeof SDL&&(a=Ha[SDL.screen+0*z.ia>>2],K[SDL.screen+0*z.ia>>2]=a|8388608),ec())):(a.parentNode.insertBefore(e,a),a.parentNode.removeChild(a),ac&&("undefined"!=typeof SDL&&(a=Ha[SDL.screen+0*z.ia>>2],K[SDL.screen+0*z.ia>>2]=a&-8388609),ec()));if(p.onFullScreen)p.onFullScreen(Yb);fc(e)}$b=a;ac=b;"undefined"===typeof $b&&($b=i);"undefined"===typeof ac&&(ac=m);var e=p.canvas;Zb||(Zb=i,document.addEventListener("fullscreenchange",c,m),document.addEventListener("mozfullscreenchange", -c,m),document.addEventListener("webkitfullscreenchange",c,m),document.addEventListener("MSFullscreenChange",c,m));var f=document.createElement("div");e.parentNode.insertBefore(f,e);f.appendChild(e);f.Td=f.requestFullScreen||f.mozRequestFullScreen||f.msRequestFullscreen||(f.webkitRequestFullScreen?function(){f.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:k);f.Td()};p.requestAnimationFrame=function(a){Qb(a)};p.setCanvasSize=function(a,b,c){fc(p.canvas,a,b);c||ec()}; -p.pauseMainLoop=function(){Nb=k;Tb++};p.resumeMainLoop=function(){Tb++;var a=Kb,b=Lb,c=Mb;Mb=k;Rb(c,0,m,Sb);Jb(a,b)};p.getUserMedia=function(){window.qc||(window.qc=navigator.getUserMedia||navigator.mozGetUserMedia);window.qc(g)};Ja=y=z.ub(D);Ka=Ja+Ma;La=E=z.ub(Ka);w(La>2],a=Db(a,b);return 0>a?a:0>Eb(10,b)?-1:a+1},_fflush:n(),_fputc:Eb,_send:function(a,b,c){return!Z.wd(a)?(V(U.V),-1):Ab(a,b,c)},_pwrite:function(a,b,c,e){a=B.qa(a);if(!a)return V(U.V),-1;try{return B.write(a,I,b,c,e)}catch(f){return B.sc(f),-1}},_fputs:Db,_emscripten_set_main_loop:Rb, -_abort:function(){p.abort()},___setErrNo:V,_sbrk:Fb,_mkport:zb,_emscripten_set_main_loop_timing:Jb,_emscripten_memcpy_big:function(a,b,c){N.set(N.subarray(b,b+c),a);return a},_fileno:Cb,_broadwayOnHeadersDecoded:Ib,_write:Ab,_time:function(a){var b=Date.now()/1E3|0;a&&(K[a>>2]=b);return b},_sysconf:function(a){switch(a){case 30:return 4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809; -case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32; -case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"===typeof navigator?navigator.hardwareConcurrency||1:1}V(U.B);return-1}, -___errno_location:function(){return bb},STACKTOP:y,STACK_MAX:Ka,tempDoublePtr:$a,ABORT:H,NaN:NaN,Infinity:Infinity};// EMSCRIPTEN_START_ASM -var $=(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.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=0;var n=0;var o=0;var p=0;var q=+env.NaN,r=+env.Infinity;var s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0;var B=0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=global.Math.floor;var M=global.Math.abs;var N=global.Math.sqrt;var O=global.Math.pow;var P=global.Math.cos;var Q=global.Math.sin;var R=global.Math.tan;var S=global.Math.acos;var T=global.Math.asin;var U=global.Math.atan;var V=global.Math.atan2;var W=global.Math.exp;var X=global.Math.log;var Y=global.Math.ceil;var Z=global.Math.imul;var _=env.abort;var $=env.assert;var aa=env.min;var ba=env.invoke_viiiii;var ca=env._broadwayOnPictureDecoded;var da=env._puts;var ea=env._fflush;var fa=env._fputc;var ga=env._send;var ha=env._pwrite;var ia=env._fputs;var ja=env._emscripten_set_main_loop;var ka=env._abort;var la=env.___setErrNo;var ma=env._sbrk;var na=env._mkport;var oa=env._emscripten_set_main_loop_timing;var pa=env._emscripten_memcpy_big;var qa=env._fileno;var ra=env._broadwayOnHeadersDecoded;var sa=env._write;var ta=env._time;var ua=env._sysconf;var va=env.___errno_location;var wa=0.0; -// EMSCRIPTEN_START_FUNCS -function ya(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function za(){return i|0}function Aa(a){a=a|0;i=a}function Ba(a,b){a=a|0;b=b|0;if(!m){m=a;n=b}}function Ca(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Da(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Ea(a){a=a|0;B=a}function Fa(){return B|0}function Ga(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;g=i;h=d[8+b>>0]|0;j=d[64+b>>0]|0;b=c[120+(j*12|0)>>2]<>2]<>2]<>2]=Z(c[a>>2]|0,b)|0;a:do if(!(f&65436)){if(f&98){e=a+4|0;h=Z(c[e>>2]|0,k)|0;j=a+20|0;m=Z(c[j>>2]|0,b)|0;n=a+24|0;o=Z(c[n>>2]|0,k)|0;p=c[a>>2]|0;q=(h>>1)-o|0;r=h+(o>>1)|0;o=m+p+32|0;h=o+r>>6;c[a>>2]=h;s=p-m+32|0;m=s+q>>6;c[e>>2]=m;e=s-q>>6;c[a+8>>2]=e;q=o-r>>6;c[a+12>>2]=q;c[a+48>>2]=h;c[a+32>>2]=h;c[a+16>>2]=h;c[a+52>>2]=m;c[a+36>>2]=m;c[j>>2]=m;c[a+56>>2]=e;c[a+40>>2]=e;c[n>>2]=e;c[a+60>>2]=q;c[a+44>>2]=q;c[a+28>>2]=q;if((h+512|0)>>>0>1023|(m+512|0)>>>0>1023|(e+512|0)>>>0>1023|(q+512|0)>>>0>1023)t=1;else break;i=g;return t|0}q=(c[a>>2]|0)+32>>6;if((q+512|0)>>>0>1023){t=1;i=g;return t|0}else{c[a+60>>2]=q;c[a+56>>2]=q;c[a+52>>2]=q;c[a+48>>2]=q;c[a+44>>2]=q;c[a+40>>2]=q;c[a+36>>2]=q;c[a+32>>2]=q;c[a+28>>2]=q;c[a+24>>2]=q;c[a+20>>2]=q;c[a+16>>2]=q;c[a+12>>2]=q;c[a+8>>2]=q;c[a+4>>2]=q;c[a>>2]=q;break}}else{q=a+4|0;e=a+56|0;m=a+60|0;h=c[m>>2]|0;n=Z(c[q>>2]|0,k)|0;c[e>>2]=Z(c[e>>2]|0,k)|0;c[m>>2]=Z(h,l)|0;h=a+8|0;m=c[h>>2]|0;e=a+16|0;j=Z(c[a+20>>2]|0,b)|0;r=Z(c[e>>2]|0,l)|0;o=a+12|0;s=c[o>>2]|0;p=Z(c[a+32>>2]|0,k)|0;u=Z(c[a+24>>2]|0,k)|0;v=c[a+28>>2]|0;w=Z(c[a+48>>2]|0,l)|0;x=Z(c[a+36>>2]|0,k)|0;y=c[a+44>>2]|0;z=Z(c[a+40>>2]|0,l)|0;A=Z(c[a+52>>2]|0,k)|0;B=c[a>>2]|0;C=j+B|0;D=B-j|0;j=(n>>1)-u|0;B=(u>>1)+n|0;n=B+C|0;c[a>>2]=n;c[q>>2]=j+D;c[h>>2]=D-j;c[o>>2]=C-B;B=Z(k,v+m|0)|0;C=Z(m-v|0,k)|0;v=(r>>1)-w|0;m=(w>>1)+r|0;r=m+B|0;c[e>>2]=r;c[a+20>>2]=v+C;c[a+24>>2]=C-v;c[a+28>>2]=B-m;m=Z(b,y+s|0)|0;B=Z(s-y|0,b)|0;y=(p>>1)-A|0;s=(A>>1)+p|0;p=s+m|0;c[a+32>>2]=p;c[a+36>>2]=y+B;c[a+40>>2]=B-y;c[a+44>>2]=m-s;s=a+56|0;m=c[s>>2]|0;y=m+x|0;B=x-m|0;m=a+60|0;x=c[m>>2]|0;A=(z>>1)-x|0;v=(x>>1)+z|0;z=v+y|0;c[a+48>>2]=z;c[a+52>>2]=A+B;c[s>>2]=B-A;c[m>>2]=y-v;v=n;n=p;p=r;r=z;z=a;y=3;while(1){m=(p>>1)-r|0;A=(r>>1)+p|0;B=n+v+32|0;s=B+A>>6;c[z>>2]=s;x=v-n+32|0;C=x+m>>6;c[z+16>>2]=C;e=x-m>>6;c[z+32>>2]=e;m=B-A>>6;c[z+48>>2]=m;if((s+512|0)>>>0>1023|(C+512|0)>>>0>1023){t=1;E=14;break}if((e+512|0)>>>0>1023|(m+512|0)>>>0>1023){t=1;E=14;break}m=z+4|0;if(!y)break a;v=c[m>>2]|0;n=c[z+36>>2]|0;p=c[z+20>>2]|0;r=c[z+52>>2]|0;z=m;y=y+-1|0}if((E|0)==14){i=g;return t|0}}while(0);t=0;i=g;return t|0}function Ha(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;e=i;f=a[64+d>>0]|0;g=a[8+d>>0]|0;h=b+8|0;j=c[h>>2]|0;k=c[b+20>>2]|0;l=b+16|0;m=c[l>>2]|0;n=b+32|0;o=c[n>>2]|0;p=b+12|0;q=c[p>>2]|0;r=c[b+24>>2]|0;s=c[b+28>>2]|0;t=b+48|0;u=c[t>>2]|0;v=c[b+36>>2]|0;w=c[b+40>>2]|0;x=c[b+44>>2]|0;y=c[b+52>>2]|0;z=c[b>>2]|0;A=k+z|0;B=z-k|0;k=b+4|0;z=c[k>>2]|0;C=z-r|0;D=r+z|0;z=D+A|0;c[b>>2]=z;r=C+B|0;c[k>>2]=r;E=B-C|0;c[h>>2]=E;h=A-D|0;c[p>>2]=h;p=s+j|0;D=j-s|0;s=m-u|0;j=u+m|0;m=j+p|0;c[l>>2]=m;u=s+D|0;c[b+20>>2]=u;A=D-s|0;c[b+24>>2]=A;s=p-j|0;c[b+28>>2]=s;j=x+q|0;p=q-x|0;x=o-y|0;q=y+o|0;o=q+j|0;c[b+32>>2]=o;y=x+p|0;c[b+36>>2]=y;D=p-x|0;c[b+40>>2]=D;x=j-q|0;c[b+44>>2]=x;q=b+56|0;j=c[q>>2]|0;p=j+v|0;C=v-j|0;j=b+60|0;v=c[j>>2]|0;B=w-v|0;F=v+w|0;w=F+p|0;c[b+48>>2]=w;v=B+C|0;c[b+52>>2]=v;G=C-B|0;c[q>>2]=G;q=p-F|0;c[j>>2]=q;j=g&255;g=c[120+((f&255)*12|0)>>2]|0;if(d>>>0>11){f=g<>2]=Z(C+F|0,f)|0;c[l>>2]=Z(B+p|0,f)|0;c[n>>2]=Z(p-B|0,f)|0;c[t>>2]=Z(F-C|0,f)|0;C=y+r|0;F=r-y|0;B=u-v|0;p=v+u|0;c[k>>2]=Z(p+C|0,f)|0;c[b+20>>2]=Z(B+F|0,f)|0;c[b+36>>2]=Z(F-B|0,f)|0;c[b+52>>2]=Z(C-p|0,f)|0;p=D+E|0;C=E-D|0;B=A-G|0;F=G+A|0;c[b+8>>2]=Z(F+p|0,f)|0;c[b+24>>2]=Z(B+C|0,f)|0;c[b+40>>2]=Z(C-B|0,f)|0;c[b+56>>2]=Z(p-F|0,f)|0;F=x+h|0;p=h-x|0;B=s-q|0;C=q+s|0;c[b+12>>2]=Z(C+F|0,f)|0;c[b+28>>2]=Z(B+p|0,f)|0;c[b+44>>2]=Z(p-B|0,f)|0;c[b+60>>2]=Z(F-C|0,f)|0;i=e;return}else{f=(d+-6|0)>>>0<6?1:2;d=2-j|0;j=o+z|0;C=z-o|0;o=m-w|0;z=w+m|0;c[b>>2]=(Z(z+j|0,g)|0)+f>>d;c[l>>2]=(Z(o+C|0,g)|0)+f>>d;c[n>>2]=(Z(C-o|0,g)|0)+f>>d;c[t>>2]=(Z(j-z|0,g)|0)+f>>d;z=y+r|0;j=r-y|0;y=u-v|0;r=v+u|0;c[k>>2]=(Z(r+z|0,g)|0)+f>>d;c[b+20>>2]=(Z(y+j|0,g)|0)+f>>d;c[b+36>>2]=(Z(j-y|0,g)|0)+f>>d;c[b+52>>2]=(Z(z-r|0,g)|0)+f>>d;r=D+E|0;z=E-D|0;D=A-G|0;E=G+A|0;c[b+8>>2]=(Z(E+r|0,g)|0)+f>>d;c[b+24>>2]=(Z(D+z|0,g)|0)+f>>d;c[b+40>>2]=(Z(z-D|0,g)|0)+f>>d;c[b+56>>2]=(Z(r-E|0,g)|0)+f>>d;E=x+h|0;r=h-x|0;x=s-q|0;h=q+s|0;c[b+12>>2]=(Z(h+E|0,g)|0)+f>>d;c[b+28>>2]=(Z(x+r|0,g)|0)+f>>d;c[b+44>>2]=(Z(r-x|0,g)|0)+f>>d;c[b+60>>2]=(Z(E-h|0,g)|0)+f>>d;i=e;return}}function Ia(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=c[120+((d[64+b>>0]|0)*12|0)>>2]|0;if(b>>>0>5){f=e<<(d[8+b>>0]|0)+-1;g=0}else{f=e;g=1}e=c[a>>2]|0;b=a+8|0;h=c[b>>2]|0;i=h+e|0;j=e-h|0;h=a+4|0;e=c[h>>2]|0;k=a+12|0;l=c[k>>2]|0;m=e-l|0;n=l+e|0;c[a>>2]=(Z(n+i|0,f)|0)>>g;c[h>>2]=(Z(i-n|0,f)|0)>>g;c[b>>2]=(Z(m+j|0,f)|0)>>g;c[k>>2]=(Z(j-m|0,f)|0)>>g;m=a+16|0;j=c[m>>2]|0;k=a+24|0;b=c[k>>2]|0;n=b+j|0;i=j-b|0;b=a+20|0;j=c[b>>2]|0;h=a+28|0;a=c[h>>2]|0;e=j-a|0;l=a+j|0;c[m>>2]=(Z(l+n|0,f)|0)>>g;c[b>>2]=(Z(n-l|0,f)|0)>>g;c[k>>2]=(Z(e+i|0,f)|0)>>g;c[h>>2]=(Z(i-e|0,f)|0)>>g;return}function Ja(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=i;d=1<>>1;if(!((e|0)!=0&(e&a|0)==0)){g=d;break}else f=d}i=c;return g|0}function Ka(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=8-(c[a+8>>2]|0)|0;e=jb(a,d)|0;if((e|0)==-1){f=1;i=b;return f|0}f=(e|0)!=(c[400+(d+-1<<2)>>2]|0)&1;i=b;return f|0}function La(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;d=c[a+12>>2]<<3;e=c[a+16>>2]|0;f=d-e|0;if((d|0)==(e|0)){g=0;i=b;return g|0}if(f>>>0>8){g=1;i=b;return g|0}else{g=((kb(a)|0)>>>(32-f|0)|0)!=(1<>2]|0;g=d;do{g=g+1|0;if(g>>>0>=b>>>0)break}while((c[a+(g<<2)>>2]|0)!=(f|0));i=e;return ((g|0)==(b|0)?0:g)|0}function Na(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a+4>>2]|0;e=(b>>>0)%(d>>>0)|0;f=b-e|0;b=Z(c[a+8>>2]|0,d)|0;d=c[a>>2]|0;c[a+12>>2]=d+((f<<8)+(e<<4));g=(e<<3)+(b<<8)+(f<<6)|0;c[a+16>>2]=d+g;c[a+20>>2]=d+(g+(b<<6));return}function Oa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if((c|0)<(a|0))d=a;else d=(c|0)>(b|0)?b:c;return d|0}function Pa(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;h=i;a:do if(((e>>>0>3?(a[b>>0]|0)==0:0)?(a[b+1>>0]|0)==0:0)?(j=a[b+2>>0]|0,(j&255)<2):0){b:do if((e|0)!=3){k=j;l=-3;m=3;n=b+3|0;o=2;while(1){if(k<<24>>24)if(k<<24>>24==1&o>>>0>1){p=m;q=0;r=0;s=n;t=0;break}else u=0;else u=o+1|0;v=m+1|0;if((v|0)==(e|0))break b;k=a[n>>0]|0;l=~m;m=v;n=n+1|0;o=u}while(1){o=a[s>>0]|0;n=p+1|0;k=o<<24>>24!=0;w=(k&1^1)+t|0;q=o<<24>>24==3&(w|0)==2?1:q;if(o<<24>>24==1&w>>>0>1){x=14;break}if(k){y=w>>>0>2?1:r;z=0}else{y=r;z=w}if((n|0)==(e|0)){x=18;break}else{p=n;r=y;s=s+1|0;t=z}}if((x|0)==14){n=l+p-w|0;c[f+12>>2]=n;A=n;B=q;C=m;D=r;E=w-(w>>>0<3?w:3)|0;break a}else if((x|0)==18){n=l+e-z|0;c[f+12>>2]=n;A=n;B=q;C=m;D=y;E=z;break a}}while(0);c[g>>2]=e;F=1;i=h;return F|0}else x=19;while(0);if((x|0)==19){c[f+12>>2]=e;A=e;B=1;C=0;D=0;E=0}e=b+C|0;c[f>>2]=e;c[f+4>>2]=e;c[f+8>>2]=0;c[f+16>>2]=0;b=f+12|0;c[g>>2]=E+C+A;if(D){F=1;i=h;return F|0}if(!B){F=0;i=h;return F|0}B=c[b>>2]|0;D=e;A=e;e=0;c:while(1){C=B;G=D;E=e;while(1){g=C;C=C+-1|0;if(!g){x=31;break c}H=a[G>>0]|0;if((E|0)!=2){I=E;break}if(H<<24>>24!=3){x=29;break}if(!C){F=1;x=32;break c}g=G+1|0;if((d[g>>0]|0)>3){F=1;x=32;break c}else{G=g;E=0}}if((x|0)==29){x=0;if((H&255)<3){F=1;x=32;break}else I=2}a[A>>0]=H;B=C;D=G+1|0;A=A+1|0;e=H<<24>>24==0?I+1|0:0}if((x|0)==31){c[b>>2]=A-G+(c[b>>2]|0);F=0;i=h;return F|0}else if((x|0)==32){i=h;return F|0}return 0}function Qa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;d=i;i=i+16|0;e=d;ld(b,0,92);f=jb(a,8)|0;a:do if((((f|0)!=-1?(c[b>>2]=f,jb(a,1)|0,jb(a,1)|0,(jb(a,1)|0)!=-1):0)?(jb(a,5)|0)!=-1:0)?(g=jb(a,8)|0,(g|0)!=-1):0){h=b+4|0;c[h>>2]=g;g=b+8|0;j=nb(a,g)|0;if(!j)if((c[g>>2]|0)>>>0<=31){g=nb(a,e)|0;if(!g){k=c[e>>2]|0;if(k>>>0<=12){c[b+12>>2]=1<>2]|0;if(l>>>0<=2){c[b+16>>2]=l;b:do if((l|0)==1){m=jb(a,1)|0;if((m|0)==-1){n=1;break a}c[b+24>>2]=(m|0)==1&1;m=ob(a,b+28|0)|0;if(m){n=m;break a}m=ob(a,b+32|0)|0;if(m){n=m;break a}m=b+36|0;o=nb(a,m)|0;if(o){n=o;break a}o=c[m>>2]|0;if(o>>>0>255){n=1;break a}if(!o){c[b+40>>2]=0;break}p=id(o<<2)|0;o=b+40|0;c[o>>2]=p;if(!p){n=65535;break a}if(c[m>>2]|0){q=p;p=0;while(1){r=ob(a,q+(p<<2)|0)|0;s=p+1|0;if(r){n=r;break a}if(s>>>0>=(c[m>>2]|0)>>>0)break b;q=c[o>>2]|0;p=s}}}else if(!l){p=nb(a,e)|0;if(p){n=p;break a}p=c[e>>2]|0;if(p>>>0>12){n=1;break a}c[b+20>>2]=1<>2]|0)>>>0<=16?(o=jb(a,1)|0,(o|0)!=-1):0){c[b+48>>2]=(o|0)==1&1;o=nb(a,e)|0;if(!o){q=b+52|0;c[q>>2]=(c[e>>2]|0)+1;m=nb(a,e)|0;if(!m){s=b+56|0;c[s>>2]=(c[e>>2]|0)+1;r=jb(a,1)|0;if((!((r|0)==0|(r|0)==-1)?(jb(a,1)|0)!=-1:0)?(r=jb(a,1)|0,(r|0)!=-1):0){t=(r|0)==1;c[b+60>>2]=t&1;if(t){t=b+64|0;r=nb(a,t)|0;if(r){n=r;break}r=b+68|0;u=nb(a,r)|0;if(u){n=u;break}u=b+72|0;v=nb(a,u)|0;if(v){n=v;break}v=b+76|0;w=nb(a,v)|0;if(w){n=w;break}w=c[q>>2]|0;if((c[t>>2]|0)>((w<<3)+~c[r>>2]|0)){n=1;break}r=c[s>>2]|0;if((c[u>>2]|0)>((r<<3)+~c[v>>2]|0)){n=1;break}else{x=w;y=r}}else{x=c[q>>2]|0;y=c[s>>2]|0}s=Z(y,x)|0;do switch(c[h>>2]|0){case 11:{z=396;A=345600;B=58;break}case 12:{z=396;A=912384;B=58;break}case 13:{z=396;A=912384;B=58;break}case 20:{z=396;A=912384;B=58;break}case 21:{z=792;A=1824768;B=58;break}case 22:{z=1620;A=3110400;B=58;break}case 30:{z=1620;A=3110400;B=58;break}case 31:{z=3600;A=6912e3;B=58;break}case 32:{z=5120;A=7864320;B=58;break}case 40:{z=8192;A=12582912;B=58;break}case 41:{z=8192;A=12582912;B=58;break}case 42:{z=8704;A=13369344;B=58;break}case 50:{z=22080;A=42393600;B=58;break}case 51:{z=36864;A=70778880;B=58;break}case 10:{z=99;A=152064;B=58;break}default:B=60}while(0);do if((B|0)==58){if(z>>>0>>0){B=60;break}h=(A>>>0)/((s*384|0)>>>0)|0;q=h>>>0<16?h:16;c[e>>2]=q;h=c[l>>2]|0;if(h>>>0>q>>>0){C=h;B=61}else D=q}while(0);if((B|0)==60){c[e>>2]=2147483647;C=c[l>>2]|0;B=61}if((B|0)==61){c[e>>2]=C;D=C}s=b+88|0;c[s>>2]=D;q=jb(a,1)|0;if((q|0)==-1){n=1;break}h=(q|0)==1;c[b+80>>2]=h&1;do if(h){q=id(952)|0;r=b+84|0;c[r>>2]=q;if(!q){n=65535;break a}w=Hc(a,q)|0;if(w){n=w;break a}w=c[r>>2]|0;if(!(c[w+920>>2]|0))break;r=c[w+948>>2]|0;if((c[w+944>>2]|0)>>>0>r>>>0){n=1;break a}if(r>>>0<(c[l>>2]|0)>>>0){n=1;break a}if(r>>>0>(c[s>>2]|0)>>>0){n=1;break a}c[s>>2]=(r|0)==0?1:r}while(0);Ka(a)|0;n=0}else n=1}else n=m}else n=o}else n=1;else n=p}else n=1}else n=k}else n=1}else n=g}else n=1;else n=j}else n=1;while(0);i=d;return n|0}function Ra(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;d=i;if((c[a>>2]|0)!=(c[b>>2]|0)){e=1;i=d;return e|0}if((c[a+4>>2]|0)!=(c[b+4>>2]|0)){e=1;i=d;return e|0}if((c[a+12>>2]|0)!=(c[b+12>>2]|0)){e=1;i=d;return e|0}f=c[a+16>>2]|0;if((f|0)!=(c[b+16>>2]|0)){e=1;i=d;return e|0}if((c[a+44>>2]|0)!=(c[b+44>>2]|0)){e=1;i=d;return e|0}if((c[a+48>>2]|0)!=(c[b+48>>2]|0)){e=1;i=d;return e|0}if((c[a+52>>2]|0)!=(c[b+52>>2]|0)){e=1;i=d;return e|0}if((c[a+56>>2]|0)!=(c[b+56>>2]|0)){e=1;i=d;return e|0}g=c[a+60>>2]|0;if((g|0)!=(c[b+60>>2]|0)){e=1;i=d;return e|0}if((c[a+80>>2]|0)!=(c[b+80>>2]|0)){e=1;i=d;return e|0}a:do if(!f){if((c[a+20>>2]|0)!=(c[b+20>>2]|0)){e=1;i=d;return e|0}}else if((f|0)==1){if((c[a+24>>2]|0)!=(c[b+24>>2]|0)){e=1;i=d;return e|0}if((c[a+28>>2]|0)!=(c[b+28>>2]|0)){e=1;i=d;return e|0}if((c[a+32>>2]|0)!=(c[b+32>>2]|0)){e=1;i=d;return e|0}h=c[a+36>>2]|0;if((h|0)!=(c[b+36>>2]|0)){e=1;i=d;return e|0}if(h){j=c[a+40>>2]|0;k=c[b+40>>2]|0;l=0;while(1){if((c[j+(l<<2)>>2]|0)!=(c[k+(l<<2)>>2]|0)){e=1;break}l=l+1|0;if(l>>>0>=h>>>0)break a}i=d;return e|0}}while(0);if(g){if((c[a+64>>2]|0)!=(c[b+64>>2]|0)){e=1;i=d;return e|0}if((c[a+68>>2]|0)!=(c[b+68>>2]|0)){e=1;i=d;return e|0}if((c[a+72>>2]|0)!=(c[b+72>>2]|0)){e=1;i=d;return e|0}if((c[a+76>>2]|0)!=(c[b+76>>2]|0)){e=1;i=d;return e|0}}e=0;i=d;return e|0}function Sa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=i;i=i+16|0;e=d+4|0;f=d;ld(b,0,72);g=nb(a,b)|0;if(g){h=g;i=d;return h|0}if((c[b>>2]|0)>>>0>255){h=1;i=d;return h|0}g=b+4|0;j=nb(a,g)|0;if(j){h=j;i=d;return h|0}if((c[g>>2]|0)>>>0>31){h=1;i=d;return h|0}if(jb(a,1)|0){h=1;i=d;return h|0}g=jb(a,1)|0;if((g|0)==-1){h=1;i=d;return h|0}c[b+8>>2]=(g|0)==1&1;g=nb(a,e)|0;if(g){h=g;i=d;return h|0}g=(c[e>>2]|0)+1|0;j=b+12|0;c[j>>2]=g;if(g>>>0>8){h=1;i=d;return h|0}a:do if(g>>>0>1){k=b+16|0;l=nb(a,k)|0;if(l){h=l;i=d;return h|0}l=c[k>>2]|0;if(l>>>0>6){h=1;i=d;return h|0}switch(l|0){case 6:{l=nb(a,e)|0;if(l){h=l;i=d;return h|0}l=(c[e>>2]|0)+1|0;k=b+40|0;c[k>>2]=l;m=id(l<<2)|0;l=b+44|0;c[l>>2]=m;if(!m){h=65535;i=d;return h|0}m=c[432+((c[j>>2]|0)+-1<<2)>>2]|0;if(!(c[k>>2]|0))break a;else n=0;while(1){o=jb(a,m)|0;c[(c[l>>2]|0)+(n<<2)>>2]=o;n=n+1|0;if(o>>>0>=(c[j>>2]|0)>>>0){h=1;break}if(n>>>0>=(c[k>>2]|0)>>>0)break a}i=d;return h|0}case 5:case 4:case 3:{k=jb(a,1)|0;if((k|0)==-1){h=1;i=d;return h|0}c[b+32>>2]=(k|0)==1&1;k=nb(a,e)|0;if(!k){c[b+36>>2]=(c[e>>2]|0)+1;break a}else{h=k;i=d;return h|0}break}case 0:{k=id(c[j>>2]<<2)|0;l=b+20|0;c[l>>2]=k;if(!k){h=65535;i=d;return h|0}if(!(c[j>>2]|0))break a;else p=0;while(1){k=nb(a,e)|0;if(k){h=k;break}c[(c[l>>2]|0)+(p<<2)>>2]=(c[e>>2]|0)+1;p=p+1|0;if(p>>>0>=(c[j>>2]|0)>>>0)break a}i=d;return h|0}case 2:{l=b+24|0;c[l>>2]=id((c[j>>2]<<2)+-4|0)|0;k=id((c[j>>2]<<2)+-4|0)|0;m=b+28|0;c[m>>2]=k;if((c[l>>2]|0)==0|(k|0)==0){h=65535;i=d;return h|0}if((c[j>>2]|0)==1)break a;else q=0;while(1){k=nb(a,e)|0;if(k){h=k;r=46;break}c[(c[l>>2]|0)+(q<<2)>>2]=c[e>>2];k=nb(a,e)|0;if(k){h=k;r=46;break}c[(c[m>>2]|0)+(q<<2)>>2]=c[e>>2];q=q+1|0;if(q>>>0>=((c[j>>2]|0)+-1|0)>>>0)break a}if((r|0)==46){i=d;return h|0}break}default:break a}}while(0);r=nb(a,e)|0;if(r){h=r;i=d;return h|0}r=c[e>>2]|0;if(r>>>0>31){h=1;i=d;return h|0}c[b+48>>2]=r+1;r=nb(a,e)|0;if(r){h=r;i=d;return h|0}if((c[e>>2]|0)>>>0>31){h=1;i=d;return h|0}if(jb(a,1)|0){h=1;i=d;return h|0}if((jb(a,2)|0)>>>0>2){h=1;i=d;return h|0}e=ob(a,f)|0;if(e){h=e;i=d;return h|0}e=(c[f>>2]|0)+26|0;if(e>>>0>51){h=1;i=d;return h|0}c[b+52>>2]=e;e=ob(a,f)|0;if(e){h=e;i=d;return h|0}if(((c[f>>2]|0)+26|0)>>>0>51){h=1;i=d;return h|0}e=ob(a,f)|0;if(e){h=e;i=d;return h|0}e=c[f>>2]|0;if((e+12|0)>>>0>24){h=1;i=d;return h|0}c[b+56>>2]=e;e=jb(a,1)|0;if((e|0)==-1){h=1;i=d;return h|0}c[b+60>>2]=(e|0)==1&1;e=jb(a,1)|0;if((e|0)==-1){h=1;i=d;return h|0}c[b+64>>2]=(e|0)==1&1;e=jb(a,1)|0;if((e|0)==-1){h=1;i=d;return h|0}c[b+68>>2]=(e|0)==1&1;Ka(a)|0;h=0;i=d;return h|0}function Ta(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;g=i;i=i+32|0;h=g+20|0;j=g+16|0;k=g+12|0;l=g+8|0;m=g+4|0;n=g;ld(b,0,988);o=Z(c[d+56>>2]|0,c[d+52>>2]|0)|0;p=nb(a,m)|0;if(p){q=p;i=g;return q|0}p=c[m>>2]|0;c[b>>2]=p;if(p>>>0>=o>>>0){q=1;i=g;return q|0}p=nb(a,m)|0;if(p){q=p;i=g;return q|0}p=c[m>>2]|0;r=b+4|0;c[r>>2]=p;if((p|0)==5|(p|0)==0)s=5;else if(!((p|0)==7|(p|0)==2)){q=1;i=g;return q|0}if((s|0)==5){if((c[f>>2]|0)==5){q=1;i=g;return q|0}if(!(c[d+44>>2]|0)){q=1;i=g;return q|0}}p=nb(a,m)|0;if(p){q=p;i=g;return q|0}p=c[m>>2]|0;c[b+8>>2]=p;if((p|0)!=(c[e>>2]|0)){q=1;i=g;return q|0}p=d+12|0;t=c[p>>2]|0;u=0;while(1)if(!(t>>>u))break;else u=u+1|0;t=jb(a,u+-1|0)|0;if((t|0)==-1){q=1;i=g;return q|0}u=(c[f>>2]|0)==5;if(u&(t|0)!=0){q=1;i=g;return q|0}c[b+12>>2]=t;if(u){u=nb(a,m)|0;if(u){q=u;i=g;return q|0}u=c[m>>2]|0;c[b+16>>2]=u;if(u>>>0>65535){q=1;i=g;return q|0}}u=d+16|0;t=c[u>>2]|0;if(!t){v=d+20|0;w=c[v>>2]|0;x=0;while(1)if(!(w>>>x))break;else x=x+1|0;w=jb(a,x+-1|0)|0;if((w|0)==-1){q=1;i=g;return q|0}x=b+20|0;c[x>>2]=w;do if(c[e+8>>2]|0){w=ob(a,n)|0;if(!w){c[b+24>>2]=c[n>>2];break}else{q=w;i=g;return q|0}}while(0);if((c[f>>2]|0)==5){w=c[x>>2]|0;if(w>>>0>(c[v>>2]|0)>>>1>>>0){q=1;i=g;return q|0}v=c[b+24>>2]|0;if((w|0)!=(((v|0)>0?0:0-v|0)|0)){q=1;i=g;return q|0}}y=c[u>>2]|0}else y=t;if((y|0)==1?(c[d+24>>2]|0)==0:0){y=ob(a,n)|0;if(y){q=y;i=g;return q|0}y=b+28|0;c[y>>2]=c[n>>2];do if(c[e+8>>2]|0){t=ob(a,n)|0;if(!t){c[b+32>>2]=c[n>>2];break}else{q=t;i=g;return q|0}}while(0);if((c[f>>2]|0)==5?(t=c[y>>2]|0,y=(c[d+32>>2]|0)+t+(c[b+32>>2]|0)|0,(((t|0)<(y|0)?t:y)|0)!=0):0){q=1;i=g;return q|0}}if(c[e+68>>2]|0){y=nb(a,m)|0;if(y){q=y;i=g;return q|0}y=c[m>>2]|0;c[b+36>>2]=y;if(y>>>0>127){q=1;i=g;return q|0}}y=c[r>>2]|0;if((y|0)==5|(y|0)==0){t=jb(a,1)|0;if((t|0)==-1){q=1;i=g;return q|0}c[b+40>>2]=t;do if(!t){u=c[e+48>>2]|0;if(u>>>0>16){q=1;i=g;return q|0}else{c[b+44>>2]=u;break}}else{u=nb(a,m)|0;if(u){q=u;i=g;return q|0}u=c[m>>2]|0;if(u>>>0>15){q=1;i=g;return q|0}else{c[b+44>>2]=u+1;break}}while(0);z=c[r>>2]|0}else z=y;do if((z|0)==5|(z|0)==0){y=c[b+44>>2]|0;r=c[p>>2]|0;t=jb(a,1)|0;if((t|0)==-1){q=1;i=g;return q|0}c[b+68>>2]=t;if(t){t=0;a:while(1){if(t>>>0>y>>>0){q=1;s=110;break}u=nb(a,l)|0;if(u){q=u;s=110;break}u=c[l>>2]|0;if(u>>>0>3){q=1;s=110;break}c[b+(t*12|0)+72>>2]=u;do if(u>>>0<2){v=nb(a,k)|0;if(v){q=v;s=110;break a}v=c[k>>2]|0;if(v>>>0>=r>>>0){q=1;s=110;break a}c[b+(t*12|0)+76>>2]=v+1}else{if((u|0)!=2)break;v=nb(a,k)|0;if(v){q=v;s=110;break a}c[b+(t*12|0)+80>>2]=c[k>>2]}while(0);if((c[l>>2]|0)==3){s=61;break}else t=t+1|0}if((s|0)==61){if(!t)q=1;else break;i=g;return q|0}else if((s|0)==110){i=g;return q|0}}}while(0);do if(c[f+4>>2]|0){l=c[d+44>>2]|0;k=(c[f>>2]|0)==5;p=jb(a,1)|0;z=(p|0)==-1;if(k){if(z){q=1;i=g;return q|0}c[b+276>>2]=p;k=jb(a,1)|0;if((k|0)==-1){q=1;i=g;return q|0}c[b+280>>2]=k;if((l|0)!=0|(k|0)==0)break;else q=1;i=g;return q|0}if(z){q=1;i=g;return q|0}c[b+284>>2]=p;if(p){p=(l<<1)+2|0;z=0;k=0;r=0;y=0;u=0;while(1){if(z>>>0>p>>>0){q=1;s=110;break}v=nb(a,j)|0;if(v){q=v;s=110;break}v=c[j>>2]|0;if(v>>>0>6){q=1;s=110;break}c[b+(z*20|0)+288>>2]=v;if((v&-3|0)==1){w=nb(a,h)|0;if(w){q=w;s=110;break}c[b+(z*20|0)+292>>2]=(c[h>>2]|0)+1;A=c[j>>2]|0}else A=v;if((A|0)==2){v=nb(a,h)|0;if(v){q=v;s=110;break}c[b+(z*20|0)+296>>2]=c[h>>2];B=c[j>>2]|0}else B=A;if((B|0)==3|(B|0)==6){v=nb(a,h)|0;if(v){q=v;s=110;break}c[b+(z*20|0)+300>>2]=c[h>>2];C=c[j>>2]|0}else C=B;if((C|0)==4){v=nb(a,h)|0;if(v){q=v;s=110;break}v=c[h>>2]|0;if(v>>>0>l>>>0){q=1;s=110;break}if(!v)c[b+(z*20|0)+304>>2]=65535;else c[b+(z*20|0)+304>>2]=v+-1;D=c[j>>2]|0;E=r+1|0}else{D=C;E=r}y=((D|0)==5&1)+y|0;k=((D|0)!=0&D>>>0<4&1)+k|0;u=((D|0)==6&1)+u|0;if(!D){s=90;break}else{z=z+1|0;r=E}}if((s|0)==90){if(E>>>0>1|y>>>0>1|u>>>0>1){q=1;i=g;return q|0}if((k|0)!=0&(y|0)!=0)q=1;else break;i=g;return q|0}else if((s|0)==110){i=g;return q|0}}}while(0);s=ob(a,n)|0;if(s){q=s;i=g;return q|0}s=c[n>>2]|0;c[b+48>>2]=s;E=s+(c[e+52>>2]|0)|0;c[n>>2]=E;if(E>>>0>51){q=1;i=g;return q|0}do if(c[e+60>>2]|0){E=nb(a,m)|0;if(E){q=E;i=g;return q|0}E=c[m>>2]|0;c[b+52>>2]=E;if(E>>>0>2){q=1;i=g;return q|0}if((E|0)==1)break;E=ob(a,n)|0;if(E){q=E;i=g;return q|0}E=c[n>>2]|0;if((E+6|0)>>>0>12){q=1;i=g;return q|0}c[b+56>>2]=E<<1;E=ob(a,n)|0;if(E){q=E;i=g;return q|0}E=c[n>>2]|0;if((E+6|0)>>>0>12){q=1;i=g;return q|0}else{c[b+60>>2]=E<<1;break}}while(0);do if((c[e+12>>2]|0)>>>0>1?((c[e+16>>2]|0)+-3|0)>>>0<3:0){n=e+36|0;E=c[n>>2]|0;s=(((o>>>0)%(E>>>0)|0|0)==0?1:2)+((o>>>0)/(E>>>0)|0)|0;E=0;while(1){F=E+1|0;if(!(-1<>2]=y;if((y|0)==-1){q=1;i=g;return q|0}c[b+64>>2]=y;k=c[n>>2]|0;if(y>>>0>(((o+-1+k|0)>>>0)/(k>>>0)|0)>>>0)q=1;else break;i=g;return q|0}while(0);q=0;i=g;return q|0}function Ua(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;i=i+32|0;e=d+20|0;f=d;c[f+0>>2]=c[a+0>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];a=nb(f,e)|0;if(!a){g=nb(f,e)|0;if(!g){h=nb(f,e)|0;if(!h){f=c[e>>2]|0;if(f>>>0>255)j=1;else{c[b>>2]=f;j=0}}else j=h}else j=g}else j=a;i=d;return j|0}function Va(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|0;f=e+20|0;g=e;c[g+0>>2]=c[a+0>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[g+16>>2]=c[a+16>>2];a=nb(g,f)|0;if(a){h=a;i=e;return h|0}a=nb(g,f)|0;if(a){h=a;i=e;return h|0}a=nb(g,f)|0;if(!a)j=0;else{h=a;i=e;return h|0}while(1)if(!(b>>>j))break;else j=j+1|0;b=jb(g,j+-1|0)|0;if((b|0)==-1){h=1;i=e;return h|0}c[d>>2]=b;h=0;i=e;return h|0}function Wa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+32|0;g=f+20|0;h=f;if((d|0)!=5){j=1;i=f;return j|0};c[h+0>>2]=c[a+0>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];a=nb(h,g)|0;if(a){j=a;i=f;return j|0}a=nb(h,g)|0;if(a){j=a;i=f;return j|0}a=nb(h,g)|0;if(!a)k=0;else{j=a;i=f;return j|0}while(1)if(!(b>>>k))break;else k=k+1|0;if((jb(h,k+-1|0)|0)==-1){j=1;i=f;return j|0}j=nb(h,e)|0;i=f;return j|0}function Xa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+32|0;g=f+20|0;h=f;c[h+0>>2]=c[a+0>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];a=nb(h,g)|0;if(a){j=a;i=f;return j|0}a=nb(h,g)|0;if(a){j=a;i=f;return j|0}a=nb(h,g)|0;if(a){j=a;i=f;return j|0}a=c[b+12>>2]|0;k=0;while(1)if(!(a>>>k))break;else k=k+1|0;if((jb(h,k+-1|0)|0)==-1){j=1;i=f;return j|0}if((d|0)==5?(d=nb(h,g)|0,(d|0)!=0):0){j=d;i=f;return j|0}d=c[b+20>>2]|0;b=0;while(1)if(!(d>>>b))break;else b=b+1|0;d=jb(h,b+-1|0)|0;if((d|0)==-1){j=1;i=f;return j|0}c[e>>2]=d;j=0;i=f;return j|0}function Ya(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+32|0;g=f+20|0;h=f;c[h+0>>2]=c[a+0>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];a=nb(h,g)|0;if(a){j=a;i=f;return j|0}a=nb(h,g)|0;if(a){j=a;i=f;return j|0}a=nb(h,g)|0;if(a){j=a;i=f;return j|0}a=c[b+12>>2]|0;k=0;while(1)if(!(a>>>k))break;else k=k+1|0;if((jb(h,k+-1|0)|0)==-1){j=1;i=f;return j|0}if((d|0)==5?(d=nb(h,g)|0,(d|0)!=0):0){j=d;i=f;return j|0}d=c[b+20>>2]|0;b=0;while(1)if(!(d>>>b))break;else b=b+1|0;if((jb(h,b+-1|0)|0)==-1){j=1;i=f;return j|0}j=ob(h,e)|0;i=f;return j|0}function Za(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+32|0;h=g+20|0;j=g;c[j+0>>2]=c[a+0>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[j+16>>2]=c[a+16>>2];a=nb(j,h)|0;if(a){k=a;i=g;return k|0}a=nb(j,h)|0;if(a){k=a;i=g;return k|0}a=nb(j,h)|0;if(a){k=a;i=g;return k|0}a=c[b+12>>2]|0;b=0;while(1)if(!(a>>>b))break;else b=b+1|0;if((jb(j,b+-1|0)|0)==-1){k=1;i=g;return k|0}if((d|0)==5?(d=nb(j,h)|0,(d|0)!=0):0){k=d;i=g;return k|0}d=ob(j,f)|0;if(d){k=d;i=g;return k|0}if((e|0)!=0?(e=ob(j,f+4|0)|0,(e|0)!=0):0){k=e;i=g;return k|0}k=0;i=g;return k|0}function _a(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;f=i;i=i+32|0;g=f+24|0;h=f+20|0;j=f;c[j+0>>2]=c[b+0>>2];c[j+4>>2]=c[b+4>>2];c[j+8>>2]=c[b+8>>2];c[j+12>>2]=c[b+12>>2];c[j+16>>2]=c[b+16>>2];b=nb(j,g)|0;if(b){k=b;i=f;return k|0}b=nb(j,g)|0;if(b){k=b;i=f;return k|0}b=nb(j,g)|0;if(b){k=b;i=f;return k|0}b=c[d+12>>2]|0;l=0;while(1)if(!(b>>>l))break;else l=l+1|0;if((jb(j,l+-1|0)|0)==-1){k=1;i=f;return k|0}l=nb(j,g)|0;if(l){k=l;i=f;return k|0}l=d+16|0;b=c[l>>2]|0;if(!b){m=c[d+20>>2]|0;n=0;while(1)if(!(m>>>n))break;else n=n+1|0;if((jb(j,n+-1|0)|0)==-1){k=1;i=f;return k|0}if((c[e+8>>2]|0)!=0?(n=ob(j,h)|0,(n|0)!=0):0){k=n;i=f;return k|0}o=c[l>>2]|0}else o=b;if((o|0)==1?(c[d+24>>2]|0)==0:0){d=ob(j,h)|0;if(d){k=d;i=f;return k|0}if((c[e+8>>2]|0)!=0?(d=ob(j,h)|0,(d|0)!=0):0){k=d;i=f;return k|0}}if((c[e+68>>2]|0)!=0?(e=nb(j,g)|0,(e|0)!=0):0){k=e;i=f;return k|0}e=jb(j,1)|0;c[a>>2]=e;k=(e|0)==-1&1;i=f;return k|0}function $a(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;f=i;i=i+448|0;g=f+8|0;h=f+4|0;j=f;k=g+(0-g&15)|0;g=c[b+3376>>2]|0;l=c[e>>2]|0;c[h>>2]=0;m=b+1192|0;c[m>>2]=(c[m>>2]|0)+1;n=b+1200|0;c[n>>2]=0;o=b+12|0;c[j>>2]=(c[e+48>>2]|0)+(c[(c[o>>2]|0)+52>>2]|0);p=e+36|0;q=b+1212|0;r=e+52|0;s=e+56|0;t=e+60|0;u=e+4|0;v=e+44|0;e=b+1220|0;w=b+1172|0;x=b+1176|0;y=g+12|0;z=l;l=0;A=0;while(1){B=c[q>>2]|0;if((c[p>>2]|0)==0?(c[B+(z*216|0)+196>>2]|0)!=0:0){C=1;D=22;break}E=c[(c[o>>2]|0)+56>>2]|0;F=c[r>>2]|0;G=c[s>>2]|0;H=c[t>>2]|0;c[B+(z*216|0)+4>>2]=c[m>>2];c[B+(z*216|0)+8>>2]=F;c[B+(z*216|0)+12>>2]=G;c[B+(z*216|0)+16>>2]=H;c[B+(z*216|0)+24>>2]=E;E=c[u>>2]|0;if((E|0)!=2?!((E|0)==7|(A|0)!=0):0){E=nb(a,h)|0;if(E){C=E;D=22;break}E=c[h>>2]|0;if(E>>>0>((c[x>>2]|0)-z|0)>>>0){C=1;D=22;break}if(!E)I=0;else{ld(y,0,164);c[g>>2]=0;I=1}}else I=A;E=c[h>>2]|0;if(!E){B=bb(a,g,(c[q>>2]|0)+(z*216|0)|0,c[u>>2]|0,c[v>>2]|0)|0;if(!B)J=0;else{C=B;D=22;break}}else{c[h>>2]=E+-1;J=I}E=gb((c[q>>2]|0)+(z*216|0)|0,g,d,e,j,z,c[(c[o>>2]|0)+64>>2]|0,k)|0;if(E){C=E;D=22;break}l=((c[(c[q>>2]|0)+(z*216|0)+196>>2]|0)==1&1)+l|0;if(!(La(a)|0))K=(c[h>>2]|0)!=0;else K=1;E=c[u>>2]|0;if((E|0)==7|(E|0)==2)c[n>>2]=z;z=Ma(c[w>>2]|0,c[x>>2]|0,z)|0;if(!((z|0)!=0|K^1)){C=1;D=22;break}if(!K){D=20;break}else A=J}if((D|0)==20){J=b+1196|0;b=(c[J>>2]|0)+l|0;if(b>>>0>(c[x>>2]|0)>>>0){C=1;i=f;return C|0}c[J>>2]=b;C=0;i=f;return C|0}else if((D|0)==22){i=f;return C|0}return 0}function ab(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;d=i;e=c[a+1192>>2]|0;f=c[a+1200>>2]|0;g=a+1212|0;a:do if(!f)h=b;else{j=a+16|0;k=f;l=0;while(1){m=k;do{m=m+-1|0;if(m>>>0<=b>>>0){h=m;break a}}while((c[(c[g>>2]|0)+(m*216|0)+4>>2]|0)!=(e|0));l=l+1|0;n=c[(c[j>>2]|0)+52>>2]|0;if(l>>>0>=(n>>>0>10?n:10)>>>0){h=m;break}else k=m}}while(0);b=a+1172|0;f=a+1176|0;a=h;while(1){h=c[g>>2]|0;if((c[h+(a*216|0)+4>>2]|0)!=(e|0)){o=11;break}k=h+(a*216|0)+196|0;h=c[k>>2]|0;if(!h){o=11;break}c[k>>2]=h+-1;a=Ma(c[b>>2]|0,c[f>>2]|0,a)|0;if(!a){o=11;break}}if((o|0)==11){i=d;return}}function bb(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;h=i;i=i+32|0;j=h+20|0;k=h+16|0;l=h+12|0;m=h+8|0;n=h+4|0;o=h;ld(d,0,2088);p=nb(a,n)|0;q=c[n>>2]|0;do if((f|0)==2|(f|0)==7){r=q+6|0;if(r>>>0>31|(p|0)!=0){s=1;i=h;return s|0}else{c[d>>2]=r;t=r;break}}else{r=q+1|0;if(r>>>0>31|(p|0)!=0){s=1;i=h;return s|0}else{c[d>>2]=r;t=r;break}}while(0);a:do if((t|0)!=31){b:do if(t>>>0>=6){p=(t|0)!=6;q=p&1;if(!q){c[k>>2]=0;f=0;while(1){r=kb(a)|0;c[j>>2]=r;u=r>>>31;c[d+(f<<2)+12>>2]=u;if(!u){c[d+(f<<2)+76>>2]=r>>>28&7;v=r<<4;w=1}else{v=r<<1;w=0}r=f|1;u=v>>>31;c[d+(r<<2)+12>>2]=u;if(!u){c[d+(r<<2)+76>>2]=v>>>28&7;x=v<<4;y=w+1|0}else{x=v<<1;y=w}u=r+1|0;r=x>>>31;c[d+(u<<2)+12>>2]=r;if(!r){c[d+(u<<2)+76>>2]=x>>>28&7;z=x<<4;A=y+1|0}else{z=x<<1;A=y}u=f|3;r=z>>>31;c[d+(u<<2)+12>>2]=r;if(!r){c[d+(u<<2)+76>>2]=z>>>28&7;B=z<<4;C=A+1|0}else{B=z<<1;C=A}r=u+1|0;D=B>>>31;c[d+(r<<2)+12>>2]=D;if(!D){c[d+(r<<2)+76>>2]=B>>>28&7;E=B<<4;F=C+1|0}else{E=B<<1;F=C}r=u+2|0;D=E>>>31;c[d+(r<<2)+12>>2]=D;if(!D){c[d+(r<<2)+76>>2]=E>>>28&7;G=E<<4;H=F+1|0}else{G=E<<1;H=F}r=u+3|0;u=G>>>31;c[d+(r<<2)+12>>2]=u;if(!u){c[d+(r<<2)+76>>2]=G>>>28&7;I=G<<4;J=H+1|0}else{I=G<<1;J=H}r=f|7;u=I>>>31;c[d+(r<<2)+12>>2]=u;if(!u){c[d+(r<<2)+76>>2]=I>>>28&7;K=I<<4;L=J+1|0}else{K=I<<1;L=J}c[j>>2]=K;if((lb(a,(L*3|0)+8|0)|0)==-1){M=k;N=j;O=1;P=68;break b}r=(c[k>>2]|0)+1|0;c[k>>2]=r;if((r|0)<2)f=f+8|0;else{P=52;break}}}else if((q|0)==1)P=52;if((P|0)==52){f=(nb(a,j)|0)!=0;r=c[j>>2]|0;if(f|r>>>0>3){M=k;N=j;O=1;P=68;break}c[d+140>>2]=r}if(p){r=c[d>>2]|0;f=r+-7|0;u=f>>>2;c[d+4>>2]=(f>>>0>11?u+268435453|0:u)<<4|(r>>>0>18?15:0)}else{Q=q;P=70}}else{if((t|0)==0|(t|0)==1){R=k;S=j}else if(!((t|0)==3|(t|0)==2)){r=0;do{u=(nb(a,l)|0)!=0;f=c[l>>2]|0;if(u|f>>>0>3){s=1;P=95;break}c[d+(r<<2)+176>>2]=f;r=r+1|0}while(r>>>0<4);if((P|0)==95){i=h;return s|0}c:do if(g>>>0>1&(t|0)!=5){r=g>>>0>2&1;q=0;while(1){if(qb(a,l,r)|0){s=1;P=95;break}p=c[l>>2]|0;if(p>>>0>=g>>>0){s=1;P=95;break}c[d+(q<<2)+192>>2]=p;q=q+1|0;if(q>>>0>=4){T=0;break c}}if((P|0)==95){i=h;return s|0}}else T=0;while(0);d:while(1){q=c[d+(T<<2)+176>>2]|0;if(!q)U=0;else if((q|0)==2|(q|0)==1)U=1;else U=3;c[l>>2]=U;q=0;while(1){r=ob(a,m)|0;if(r){s=r;P=95;break d}b[d+(T<<4)+(q<<2)+208>>1]=c[m>>2];r=ob(a,m)|0;if(r){s=r;P=95;break d}b[d+(T<<4)+(q<<2)+210>>1]=c[m>>2];r=c[l>>2]|0;c[l>>2]=r+-1;if(!r)break;else q=q+1|0}T=T+1|0;if(T>>>0>=4){Q=2;P=70;break b}}if((P|0)==95){i=h;return s|0}}else{R=k;S=j}if(g>>>0>1){if((t|0)==3|(t|0)==2)V=1;else if((t|0)==0|(t|0)==1)V=0;else V=3;q=g>>>0>2&1;r=V;p=0;while(1){if(qb(a,j,q)|0){M=R;N=S;O=1;P=68;break b}f=c[j>>2]|0;if(f>>>0>=g>>>0){M=R;N=S;O=1;P=68;break b}c[d+(p<<2)+144>>2]=f;if(!r)break;else{r=r+-1|0;p=p+1|0}}}if((t|0)==3|(t|0)==2){W=1;X=0}else if((t|0)==0|(t|0)==1){W=0;X=0}else{W=3;X=0}while(1){p=ob(a,k)|0;if(p){M=R;N=S;O=p;P=68;break b}b[d+(X<<2)+160>>1]=c[k>>2];p=ob(a,k)|0;if(p){M=R;N=S;O=p;P=68;break b}b[d+(X<<2)+162>>1]=c[k>>2];if(!W){Q=2;P=70;break}else{W=W+-1|0;X=X+1|0}}}while(0);if((P|0)==68){s=O;i=h;return s|0}do if((P|0)==70){p=pb(a,n,(Q|0)==0&1)|0;if(!p){r=c[n>>2]|0;c[d+4>>2]=r;if(!r)break a;else break}else{s=p;i=h;return s|0}}while(0);p=(ob(a,o)|0)!=0;r=c[o>>2]|0;if(p|(r|0)<-26|(r|0)>25){s=1;i=h;return s|0}c[d+8>>2]=r;r=c[d+4>>2]|0;p=d+272|0;if((c[d>>2]|0)>>>0>=7){q=rb(a,d+1864|0,ib(e,0,p)|0,16)|0;if(!(q&15)){b[d+320>>1]=q>>>4&255;Y=0;P=77}else Z=q}else{Y=1;P=77}e:do if((P|0)==77){q=0;f=r;u=3;while(1){D=f;f=f>>>1;if(!(D&1))_=q+4|0;else{D=q;$=3;while(1){aa=ib(e,D,p)|0;if(Y){ba=rb(a,d+(D<<6)+328|0,aa,16)|0;c[d+(D<<2)+1992>>2]=ba>>>16;ca=ba}else{ba=rb(a,d+(D<<6)+332|0,aa,15)|0;c[d+(D<<2)+1992>>2]=ba>>>15;ca=ba}if(ca&15){Z=ca;break e}b[d+(D<<1)+272>>1]=ca>>>4&255;ba=D+1|0;if(!$){_=ba;break}else{D=ba;$=$+-1|0}}}if(!u)break;else{q=_;u=u+-1|0}}if(f&3){u=rb(a,d+1928|0,-1,4)|0;if(u&15){Z=u;break}b[d+322>>1]=u>>>4&255;u=rb(a,d+1944|0,-1,4)|0;if(u&15){Z=u;break}b[d+324>>1]=u>>>4&255}if(!(f&2))Z=0;else{u=_;q=7;while(1){$=rb(a,d+(u<<6)+332|0,ib(e,u,p)|0,15)|0;if($&15){Z=$;break e}b[d+(u<<1)+272>>1]=$>>>4&255;c[d+(u<<2)+1992>>2]=$>>>15;if(!q){Z=0;break}else{u=u+1|0;q=q+-1|0}}}}while(0);c[a+16>>2]=((c[a+4>>2]|0)-(c[a>>2]|0)<<3)+(c[a+8>>2]|0);if(Z){s=Z;i=h;return s|0}}else{while(1){if(mb(a)|0)break;if(jb(a,1)|0){s=1;P=95;break}}if((P|0)==95){i=h;return s|0}p=0;r=d+328|0;while(1){q=jb(a,8)|0;c[n>>2]=q;if((q|0)==-1){s=1;break}c[r>>2]=q;p=p+1|0;if(p>>>0>=384)break a;else r=r+4|0}i=h;return s|0}while(0);s=0;i=h;return s|0}function cb(a){a=a|0;var b=0;if(a>>>0<6)b=2;else b=(a|0)!=6&1;return b|0}function db(a){a=a|0;var b=0,c=0;b=i;if((a|0)==0|(a|0)==1)c=1;else if((a|0)==3|(a|0)==2)c=2;else c=4;i=b;return c|0}function eb(a){a=a|0;var b=0,c=0;b=i;if(!a)c=1;else if((a|0)==2|(a|0)==1)c=2;else c=4;i=b;return c|0}function fb(a){a=a|0;return a+1&3|0}function gb(d,e,f,g,h,j,k,l){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;m=i;n=c[e>>2]|0;c[d>>2]=n;o=d+196|0;c[o>>2]=(c[o>>2]|0)+1;Na(f,j);if((n|0)==31){p=d+28|0;c[d+20>>2]=0;if((c[o>>2]|0)>>>0>1){b[p>>1]=16;b[d+30>>1]=16;b[d+32>>1]=16;b[d+34>>1]=16;b[d+36>>1]=16;b[d+38>>1]=16;b[d+40>>1]=16;b[d+42>>1]=16;b[d+44>>1]=16;b[d+46>>1]=16;b[d+48>>1]=16;b[d+50>>1]=16;b[d+52>>1]=16;b[d+54>>1]=16;b[d+56>>1]=16;b[d+58>>1]=16;b[d+60>>1]=16;b[d+62>>1]=16;b[d+64>>1]=16;b[d+66>>1]=16;b[d+68>>1]=16;b[d+70>>1]=16;b[d+72>>1]=16;b[d+74>>1]=16;q=0;i=m;return q|0}o=23;r=e+328|0;s=l;t=p;while(1){b[t>>1]=16;a[s>>0]=c[r>>2];a[s+1>>0]=c[r+4>>2];a[s+2>>0]=c[r+8>>2];a[s+3>>0]=c[r+12>>2];a[s+4>>0]=c[r+16>>2];a[s+5>>0]=c[r+20>>2];a[s+6>>0]=c[r+24>>2];a[s+7>>0]=c[r+28>>2];a[s+8>>0]=c[r+32>>2];a[s+9>>0]=c[r+36>>2];a[s+10>>0]=c[r+40>>2];a[s+11>>0]=c[r+44>>2];a[s+12>>0]=c[r+48>>2];a[s+13>>0]=c[r+52>>2];a[s+14>>0]=c[r+56>>2];a[s+15>>0]=c[r+60>>2];if(!o)break;else{o=o+-1|0;r=r+64|0;s=s+16|0;t=t+2|0}}vc(f,l);q=0;i=m;return q|0}t=d+28|0;if(n){kd(t,e+272|0,54);s=c[e+8>>2]|0;r=c[h>>2]|0;do if(s){o=r+s|0;c[h>>2]=o;if((o|0)<0){p=o+52|0;c[h>>2]=p;u=p;break}if((o|0)>51){p=o+-52|0;c[h>>2]=p;u=p}else u=o}else u=r;while(0);r=d+20|0;c[r>>2]=u;s=e+328|0;o=e+1992|0;a:do if((c[d>>2]|0)>>>0<7){p=s;v=o;w=15;x=t;while(1){if(b[x>>1]|0){if(Ga(p,c[r>>2]|0,0,c[v>>2]|0)|0){q=1;break}}else c[p>>2]=16777215;y=p+64|0;z=x+2|0;A=v+4|0;if(!w){B=y;C=A;D=z;break a}else{p=y;v=A;w=w+-1|0;x=z}}i=m;return q|0}else{if(!(b[d+76>>1]|0)){E=s;F=o;G=464;H=15;I=t}else{Ha(e+1864|0,u);E=s;F=o;G=464;H=15;I=t}while(1){x=c[e+(c[G>>2]<<2)+1864>>2]|0;G=G+4|0;c[E>>2]=x;if((x|0)==0?(b[I>>1]|0)==0:0)c[E>>2]=16777215;else J=18;if((J|0)==18?(J=0,(Ga(E,c[r>>2]|0,1,c[F>>2]|0)|0)!=0):0){q=1;break}x=E+64|0;w=I+2|0;v=F+4|0;if(!H){B=x;C=v;D=w;break a}else{E=x;F=v;H=H+-1|0;I=w}}i=m;return q|0}while(0);I=c[192+((Oa(0,51,(c[d+24>>2]|0)+(c[r>>2]|0)|0)|0)<<2)>>2]|0;if((b[d+78>>1]|0)==0?(b[d+80>>1]|0)==0:0){K=B;L=e+1928|0;M=C;N=7;O=D}else{r=e+1928|0;Ia(r,I);K=B;L=r;M=C;N=7;O=D}while(1){D=c[L>>2]|0;L=L+4|0;c[K>>2]=D;if((D|0)==0?(b[O>>1]|0)==0:0)c[K>>2]=16777215;else J=31;if((J|0)==31?(J=0,(Ga(K,I,1,c[M>>2]|0)|0)!=0):0){q=1;J=39;break}if(!N)break;else{K=K+64|0;M=M+4|0;N=N+-1|0;O=O+2|0}}if((J|0)==39){i=m;return q|0}if(n>>>0>=6){n=Nb(d,e,f,j,k,l)|0;if(n){q=n;i=m;return q|0}}else J=37}else{ld(t,0,54);c[d+20>>2]=c[h>>2];J=37}if((J|0)==37?(J=Tb(d,e,g,j,f,l)|0,(J|0)!=0):0){q=J;i=m;return q|0}q=0;i=m;return q|0}function hb(a){a=a|0;return a|0}function ib(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;h=vb(e)|0;j=wb(e)|0;e=a[h+4>>0]|0;k=a[j+4>>0]|0;l=(c[j>>2]|0)==4;if((c[h>>2]|0)==4){h=b[f+((e&255)<<1)>>1]|0;if(l){m=h+1+(b[f+((k&255)<<1)>>1]|0)>>1;i=g;return m|0}j=d+204|0;if(!(zb(d,c[j>>2]|0)|0)){m=h;i=g;return m|0}m=h+1+(b[(c[j>>2]|0)+((k&255)<<1)+28>>1]|0)>>1;i=g;return m|0}if(l){l=b[f+((k&255)<<1)>>1]|0;f=d+200|0;if(!(zb(d,c[f>>2]|0)|0)){m=l;i=g;return m|0}m=l+1+(b[(c[f>>2]|0)+((e&255)<<1)+28>>1]|0)>>1;i=g;return m|0}f=d+200|0;if(!(zb(d,c[f>>2]|0)|0)){n=0;o=0}else{n=b[(c[f>>2]|0)+((e&255)<<1)+28>>1]|0;o=1}e=d+204|0;if(!(zb(d,c[e>>2]|0)|0)){m=n;i=g;return m|0}d=b[(c[e>>2]|0)+((k&255)<<1)+28>>1]|0;if(!o){m=d;i=g;return m|0}m=n+1+d>>1;i=g;return m|0}function jb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=kb(a)|0;f=a+16|0;g=(c[f>>2]|0)+b|0;c[f>>2]=g;c[a+8>>2]=g&7;if(g>>>0>c[a+12>>2]<<3>>>0){h=-1;i=d;return h|0}c[a+4>>2]=(c[a>>2]|0)+(g>>>3);h=e>>>(32-b|0);i=d;return h|0}function kb(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;b=i;e=c[a+4>>2]|0;f=(c[a+12>>2]<<3)-(c[a+16>>2]|0)|0;if((f|0)>31){g=c[a+8>>2]|0;h=(d[e+1>>0]|0)<<16|(d[e>>0]|0)<<24|(d[e+2>>0]|0)<<8|(d[e+3>>0]|0);if(!g){j=h;i=b;return j|0}j=(d[e+4>>0]|0)>>>(8-g|0)|h<>2]|0;a=g+24|0;h=(d[e>>0]|0)<0){l=e;m=k;n=h;o=a}else{j=h;i=b;return j|0}while(1){l=l+1|0;o=o+-8|0;h=(d[l>>0]|0)<>2]|0)+b|0;c[e>>2]=f;c[a+8>>2]=f&7;if(f>>>0>c[a+12>>2]<<3>>>0){g=-1;i=d;return g|0}c[a+4>>2]=(c[a>>2]|0)+(f>>>3);g=0;i=d;return g|0}function mb(a){a=a|0;return (c[a+8>>2]|0)==0|0}function nb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;e=kb(a)|0;do if((e|0)>=0){if(e>>>0>1073741823){if((lb(a,3)|0)==-1){f=1;break}c[b>>2]=(e>>>29&1)+1;f=0;break}if(e>>>0>536870911){if((lb(a,5)|0)==-1){f=1;break}c[b>>2]=(e>>>27&3)+3;f=0;break}if(e>>>0>268435455){if((lb(a,7)|0)==-1){f=1;break}c[b>>2]=(e>>>25&7)+7;f=0;break}g=Ja(e,28)|0;h=g+4|0;if((h|0)!=32){lb(a,g+5|0)|0;g=jb(a,h)|0;if((g|0)==-1){f=1;break}c[b>>2]=(1<>2]=0;lb(a,32)|0;if((jb(a,1)|0)==1?(g=kb(a)|0,(lb(a,32)|0)!=-1):0)if(!g){c[b>>2]=-1;f=0;break}else if((g|0)==1){c[b>>2]=-1;f=1;break}else{f=1;break}else f=1}else{lb(a,1)|0;c[b>>2]=0;f=0}while(0);i=d;return f|0}function ob(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;e=d;c[e>>2]=0;f=nb(a,e)|0;a=c[e>>2]|0;e=(f|0)==0;if((a|0)==-1)if(e)g=1;else{c[b>>2]=-2147483648;g=0}else if(e){e=(a+1|0)>>>1;c[b>>2]=(a&1|0)!=0?e:0-e|0;g=0}else g=1;i=d;return g|0}function pb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;if(nb(a,g)|0){h=1;i=f;return h|0}a=c[g>>2]|0;if(a>>>0>47){h=1;i=f;return h|0}c[b>>2]=d[((e|0)==0?576:528)+a>>0];h=0;i=f;return h|0}function qb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;if(!d){d=jb(a,1)|0;c[b>>2]=d;if((d|0)==-1)f=1;else{c[b>>2]=d^1;f=0}}else f=nb(a,b)|0;i=e;return f|0}function rb(a,b,f,g){a=a|0;b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0;h=i;i=i+128|0;j=h+64|0;k=h;l=kb(a)|0;m=l>>>16;do if(f>>>0<2)if((l|0)>=0){if(l>>>0>201326591){n=e[1264+(l>>>26<<1)>>1]|0;o=25;break}if(l>>>0>16777215){n=e[1328+(l>>>22<<1)>>1]|0;o=25;break}if(l>>>0>2097151){n=e[1424+((l>>>18)+-8<<1)>>1]|0;o=25;break}else{n=e[1536+(m<<1)>>1]|0;o=25;break}}else p=1;else if(f>>>0<4){if((l|0)<0){p=(m&16384|0)!=0?2:2082;break}if(l>>>0>268435455){n=e[1600+(l>>>26<<1)>>1]|0;o=25;break}if(l>>>0>33554431){n=e[1664+(l>>>23<<1)>>1]|0;o=25;break}else{n=e[1728+(l>>>18<<1)>>1]|0;o=25;break}}else{if(f>>>0<8){q=l>>>26;if((q+-8|0)>>>0<56){n=e[1984+(q<<1)>>1]|0;o=25;break}n=e[2112+(l>>>22<<1)>>1]|0;o=25;break}if(f>>>0<17){n=e[2368+(l>>>26<<1)>>1]|0;o=25;break}q=l>>>29;if(q){n=e[2496+(q<<1)>>1]|0;o=25;break}n=e[2512+(l>>>24<<1)>>1]|0;o=25;break}while(0);if((o|0)==25)if(!n){r=1;i=h;return r|0}else p=n;n=p&31;f=l<>>11&31;if(m>>>0>g>>>0){r=1;i=h;return r|0}q=p>>>5&63;do if(m){if(!q){s=l;t=f;u=0}else{do if(l>>>0>>0)if((lb(a,n)|0)==-1){r=1;i=h;return r|0}else{v=32;w=kb(a)|0;break}else{v=l;w=f}while(0);p=w>>>(32-q|0);x=w<>2]=(z&p|0)!=0?-1:1;z=z>>>1;y=y+1|0}while((z|0)!=0);s=v-q|0;t=x;u=y}z=q>>>0<3;a:do if(u>>>0>>0){p=s;A=t;B=u;C=m>>>0>10&z&1;b:while(1){if(p>>>0<16){if((lb(a,32-p|0)|0)==-1){r=1;o=127;break}D=32;E=kb(a)|0}else{D=p;E=A}do if((E|0)>=0)if(E>>>0<=1073741823)if(E>>>0<=536870911)if(E>>>0<=268435455)if(E>>>0<=134217727)if(E>>>0<=67108863)if(E>>>0<=33554431)if(E>>>0<=16777215)if(E>>>0<=8388607)if(E>>>0>4194303){F=9;o=59}else{if(E>>>0>2097151){F=10;o=59;break}if(E>>>0>1048575){F=11;o=59;break}if(E>>>0>524287){F=12;o=59;break}if(E>>>0>262143){F=13;o=59;break}if(E>>>0>131071){G=14;H=E<<15;I=D+-15|0;J=C;K=(C|0)!=0?C:4}else{if(E>>>0<65536){r=1;o=127;break b}G=15;H=E<<16;I=D+-16|0;J=(C|0)!=0?C:1;K=12}L=G<>>0

>>0){if((lb(a,32-N|0)|0)==-1){r=1;o=127;break}Z=32;_=kb(a)|0}else{Z=N;_=M}U=Z-P|0;V=_<>>(32-P|0))+L|0;X=O;Y=Q}T=(B|0)==(q|0)&z?W+2|0:W;S=(T+2|0)>>>1;R=Y?1:X;c[j+(B<<2)>>2]=(T&1|0)==0?S:0-S|0;B=B+1|0;if(B>>>0>=m>>>0){$=U;aa=V;break a}else{p=U;A=V;C=((S|0)>(3<>>0<6&1)+R|0}}if((o|0)==127){i=h;return r|0}}else{$=s;aa=t}while(0);if(m>>>0>>0){do if($>>>0<9)if((lb(a,32-$|0)|0)==-1){r=1;i=h;return r|0}else{ba=32;ca=kb(a)|0;break}else{ba=$;ca=aa}while(0);z=ca>>>23;c:do if((g|0)==4)if((ca|0)>=0)if((m|0)!=3)if(ca>>>0<=1073741823)if((m|0)==2)da=34;else da=ca>>>0>536870911?35:51;else da=18;else da=17;else da=1;else{do switch(m|0){case 8:{ea=d[1056+(ca>>>26)>>0]|0;break}case 12:{ea=d[1232+(ca>>>28)>>0]|0;break}case 13:{ea=d[1248+(ca>>>29)>>0]|0;break}case 14:{ea=d[1256+(ca>>>30)>>0]|0;break}case 6:{ea=d[928+(ca>>>26)>>0]|0;break}case 7:{ea=d[992+(ca>>>26)>>0]|0;break}case 3:{ea=d[800+(ca>>>26)>>0]|0;break}case 4:{ea=d[864+(ca>>>27)>>0]|0;break}case 9:{ea=d[1120+(ca>>>26)>>0]|0;break}case 10:{ea=d[1184+(ca>>>27)>>0]|0;break}case 5:{ea=d[896+(ca>>>27)>>0]|0;break}case 1:{if(ca>>>0>268435455)ea=d[672+(ca>>>27)>>0]|0;else ea=d[704+z>>0]|0;break}case 2:{ea=d[736+(ca>>>26)>>0]|0;break}case 11:{ea=d[1216+(ca>>>28)>>0]|0;break}default:{da=ca>>31&16|1;break c}}while(0);if(!ea){r=1;i=h;return r|0}else da=ea}while(0);z=da&15;fa=ba-z|0;ga=ca<>>4&15}else{fa=$;ga=aa;ha=0}z=m+-1|0;y=(z|0)==0;if(y){c[b+(ha<<2)>>2]=c[j+(z<<2)>>2];ia=fa;ja=1<>2]=1;oa=ka;pa=la;qa=0}else{if(ka>>>0<11){if((lb(a,32-ka|0)|0)==-1){r=1;o=127;break}ra=32;sa=kb(a)|0}else{ra=ka;sa=la}switch(na|0){case 2:{ta=d[632+(sa>>>30)>>0]|0;break}case 3:{ta=d[640+(sa>>>30)>>0]|0;break}case 4:{ta=d[648+(sa>>>29)>>0]|0;break}case 1:{ta=d[624+(sa>>>31)>>0]|0;break}case 5:{ta=d[656+(sa>>>29)>>0]|0;break}case 6:{ta=d[664+(sa>>>29)>>0]|0;break}default:{do if(sa>>>0<=536870911)if(sa>>>0<=268435455)if(sa>>>0<=134217727)if(sa>>>0<=67108863)if(sa>>>0<=33554431)if(sa>>>0>16777215)ua=184;else{if(sa>>>0>8388607){ua=201;break}if(sa>>>0>4194303){ua=218;break}ua=sa>>>0<2097152?0:235}else ua=167;else ua=150;else ua=133;else ua=116;else ua=sa>>>29<<4^115;while(0);if((ua>>>4&15)>>>0>na>>>0){r=1;o=127;break d}else ta=ua}}if(!ta){r=1;o=127;break}x=ta&15;C=ta>>>4&15;c[k+(ma<<2)>>2]=C+1;oa=ra-x|0;pa=sa<>>0>=z>>>0){o=122;break}else{ka=oa;la=pa;na=qa}}if((o|0)==122){c[b+(qa<<2)>>2]=c[j+(z<<2)>>2];C=1<>2]|0)+C|0;p=1<>2]=c[j+(x<<2)>>2];if(!x){ia=oa;ja=p;break}else{x=x+-1|0;A=p}}}else if((o|0)==127){i=h;return r|0}}else{ia=l;ja=0}while(0);if(lb(a,32-ia|0)|0){r=1;i=h;return r|0}r=ja<<16|m<<4;i=h;return r|0}function sb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;a:do if((jb(a,1)|0)!=-1?(e=b+4|0,c[e>>2]=jb(a,2)|0,f=jb(a,5)|0,c[b>>2]=f,(f+-2|0)>>>0>=3):0){switch(f|0){case 6:case 9:case 10:case 11:case 12:{if(c[e>>2]|0){g=1;break a}break}case 5:case 7:case 8:{if(!(c[e>>2]|0)){g=1;break a}switch(f|0){case 6:case 9:case 10:case 11:case 12:{g=1;break a;break}default:{}}break}default:{}}g=0}else g=1;while(0);i=d;return g|0}function tb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;e=i;if(!d){i=e;return}f=b+-1|0;g=1-b|0;h=~b;j=0;k=0;l=0;while(1){m=(j|0)!=0;if(m)c[a+(k*216|0)+200>>2]=a+((k+-1|0)*216|0);else c[a+(k*216|0)+200>>2]=0;n=(l|0)!=0;if(n){c[a+(k*216|0)+204>>2]=a+((k-b|0)*216|0);if(j>>>0>>0)c[a+(k*216|0)+208>>2]=a+((g+k|0)*216|0);else o=10}else{c[a+(k*216|0)+204>>2]=0;o=10}if((o|0)==10){o=0;c[a+(k*216|0)+208>>2]=0}if(n&m)c[a+(k*216|0)+212>>2]=a+((k+h|0)*216|0);else c[a+(k*216|0)+212>>2]=0;m=j+1|0;n=(m|0)==(b|0);k=k+1|0;if((k|0)==(d|0))break;else{j=n?0:m;l=(n&1)+l|0}}i=e;return}function ub(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;switch(b|0){case 2:{e=c[a+208>>2]|0;break}case 3:{e=c[a+212>>2]|0;break}case 1:{e=c[a+204>>2]|0;break}case 0:{e=c[a+200>>2]|0;break}case 4:{e=a;break}default:e=0}i=d;return e|0}function vb(a){a=a|0;return 3152+(a<<3)|0}function wb(a){a=a|0;return 2960+(a<<3)|0}function xb(a){a=a|0;return 2768+(a<<3)|0}function yb(a){a=a|0;return 2576+(a<<3)|0}function zb(a,b){a=a|0;b=b|0;var d=0;d=i;if(!b){i=d;return 0}else{i=d;return (c[a+4>>2]|0)==(c[b+4>>2]|0)|0}return 0}function Ab(a){a=a|0;var b=0;b=i;ld(a,0,3388);c[a+8>>2]=32;c[a+4>>2]=256;c[a+1332>>2]=1;i=b;return}function Bb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;e=c[b+8>>2]|0;f=a+(e<<2)+20|0;g=c[f>>2]|0;do if(!g){h=id(92)|0;c[f>>2]=h;if(!h){j=65535;i=d;return j|0}}else{h=a+8|0;if((e|0)!=(c[h>>2]|0)){jd(c[g+40>>2]|0);c[(c[f>>2]|0)+40>>2]=0;jd(c[(c[f>>2]|0)+84>>2]|0);c[(c[f>>2]|0)+84>>2]=0;break}k=a+16|0;if(Ra(b,c[k>>2]|0)|0){jd(c[(c[f>>2]|0)+40>>2]|0);c[(c[f>>2]|0)+40>>2]=0;jd(c[(c[f>>2]|0)+84>>2]|0);c[(c[f>>2]|0)+84>>2]=0;c[h>>2]=33;c[a+4>>2]=257;c[k>>2]=0;c[a+12>>2]=0;break}k=b+40|0;jd(c[k>>2]|0);c[k>>2]=0;k=b+84|0;jd(c[k>>2]|0);c[k>>2]=0;j=0;i=d;return j|0}while(0);a=(c[f>>2]|0)+0|0;f=b+0|0;b=a+92|0;do{c[a>>2]=c[f>>2];a=a+4|0;f=f+4|0}while((a|0)<(b|0));j=0;i=d;return j|0}function Cb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;d=i;e=c[b>>2]|0;f=a+(e<<2)+148|0;g=c[f>>2]|0;do if(!g){h=id(72)|0;c[f>>2]=h;if(!h){j=65535;i=d;return j|0}}else{h=a+4|0;if((e|0)!=(c[h>>2]|0)){jd(c[g+20>>2]|0);c[(c[f>>2]|0)+20>>2]=0;jd(c[(c[f>>2]|0)+24>>2]|0);c[(c[f>>2]|0)+24>>2]=0;jd(c[(c[f>>2]|0)+28>>2]|0);c[(c[f>>2]|0)+28>>2]=0;jd(c[(c[f>>2]|0)+44>>2]|0);c[(c[f>>2]|0)+44>>2]=0;break}if((c[b+4>>2]|0)==(c[a+8>>2]|0))k=g;else{c[h>>2]=257;k=c[f>>2]|0}jd(c[k+20>>2]|0);c[(c[f>>2]|0)+20>>2]=0;jd(c[(c[f>>2]|0)+24>>2]|0);c[(c[f>>2]|0)+24>>2]=0;jd(c[(c[f>>2]|0)+28>>2]|0);c[(c[f>>2]|0)+28>>2]=0;jd(c[(c[f>>2]|0)+44>>2]|0);c[(c[f>>2]|0)+44>>2]=0}while(0);k=(c[f>>2]|0)+0|0;f=b+0|0;b=k+72|0;do{c[k>>2]=c[f>>2];k=k+4|0;f=f+4|0}while((k|0)<(b|0));j=0;i=d;return j|0}function Db(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=i;f=a+(b<<2)+148|0;g=c[f>>2]|0;if(!g){h=1;i=e;return h|0}j=c[g+4>>2]|0;k=c[a+(j<<2)+20>>2]|0;if(!k){h=1;i=e;return h|0}l=Kb(g,k)|0;if(l){h=l;i=e;return h|0}l=a+4|0;k=c[l>>2]|0;do if((k|0)!=256){g=a+3380|0;if(!(c[g>>2]|0)){if((k|0)==(b|0))break;m=a+8|0;if((j|0)==(c[m>>2]|0)){c[l>>2]=b;c[a+12>>2]=c[f>>2];break}if(!d){h=1;i=e;return h|0}else{c[l>>2]=b;n=c[f>>2]|0;c[a+12>>2]=n;o=c[n+4>>2]|0;c[m>>2]=o;m=c[a+(o<<2)+20>>2]|0;c[a+16>>2]=m;o=c[m+52>>2]|0;n=c[m+56>>2]|0;c[a+1176>>2]=Z(n,o)|0;c[a+1340>>2]=o;c[a+1344>>2]=n;c[g>>2]=1;break}}c[g>>2]=0;g=a+1212|0;jd(c[g>>2]|0);c[g>>2]=0;n=a+1172|0;jd(c[n>>2]|0);c[n>>2]=0;o=a+1176|0;c[g>>2]=id((c[o>>2]|0)*216|0)|0;m=id(c[o>>2]<<2)|0;c[n>>2]=m;n=c[g>>2]|0;if((n|0)==0|(m|0)==0){h=65535;i=e;return h|0}ld(n,0,(c[o>>2]|0)*216|0);n=a+16|0;tb(c[g>>2]|0,c[(c[n>>2]|0)+52>>2]|0,c[o>>2]|0);o=c[n>>2]|0;do if((c[a+1216>>2]|0)==0?(c[o+16>>2]|0)!=2:0){if(((c[o+80>>2]|0)!=0?(n=c[o+84>>2]|0,(c[n+920>>2]|0)!=0):0)?(c[n+944>>2]|0)==0:0){p=1;break}p=0}else p=1;while(0);n=Z(c[o+56>>2]|0,c[o+52>>2]|0)|0;g=nc(a+1220|0,n,c[o+88>>2]|0,c[o+44>>2]|0,c[o+12>>2]|0,p)|0;if(g){h=g;i=e;return h|0}}else{c[l>>2]=b;g=c[f>>2]|0;c[a+12>>2]=g;n=c[g+4>>2]|0;c[a+8>>2]=n;g=c[a+(n<<2)+20>>2]|0;c[a+16>>2]=g;n=c[g+52>>2]|0;m=c[g+56>>2]|0;c[a+1176>>2]=Z(m,n)|0;c[a+1340>>2]=n;c[a+1344>>2]=m;c[a+3380>>2]=1}while(0);h=0;i=e;return h|0}function Eb(a){a=a|0;var b=0,d=0,e=0;b=i;c[a+1196>>2]=0;c[a+1192>>2]=0;d=c[a+1176>>2]|0;if(!d){i=b;return}e=c[a+1212>>2]|0;a=0;do{c[e+(a*216|0)+4>>2]=0;c[e+(a*216|0)+196>>2]=0;a=a+1|0}while(a>>>0>>0);i=b;return}function Fb(a){a=a|0;return (c[a+1188>>2]|0)==0|0}function Gb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;if(!(c[a+1404>>2]|0)){if((c[a+1196>>2]|0)==(c[a+1176>>2]|0)){d=1;i=b;return d|0}}else{e=c[a+1176>>2]|0;if(!e){d=1;i=b;return d|0}f=c[a+1212>>2]|0;a=0;g=0;do{g=((c[f+(a*216|0)+196>>2]|0)!=0&1)+g|0;a=a+1|0}while(a>>>0>>0);if((g|0)==(e|0)){d=1;i=b;return d|0}}d=0;i=b;return d|0}function Hb(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=c[a+16>>2]|0;Lb(c[a+1172>>2]|0,c[a+12>>2]|0,b,c[e+52>>2]|0,c[e+56>>2]|0);i=d;return}function Ib(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;f=i;i=i+32|0;g=f+24|0;h=f+20|0;j=f+16|0;k=f+12|0;l=f+8|0;m=f;c[e>>2]=0;switch(c[b>>2]|0){case 6:case 7:case 8:case 9:case 10:case 11:case 13:case 14:case 15:case 16:case 17:case 18:{c[e>>2]=1;n=0;i=f;return n|0}case 5:case 1:{o=d+1300|0;p=d+1332|0;if(c[p>>2]|0){c[e>>2]=1;c[p>>2]=0}p=Ua(a,g)|0;if(p){n=p;i=f;return n|0}p=c[d+(c[g>>2]<<2)+148>>2]|0;if(!p){n=65520;i=f;return n|0}g=c[p+4>>2]|0;q=c[d+(g<<2)+20>>2]|0;if(!q){n=65520;i=f;return n|0}r=c[d+8>>2]|0;if(!((r|0)==32|(g|0)==(r|0))?(c[b>>2]|0)!=5:0){n=65520;i=f;return n|0}r=c[d+1304>>2]|0;g=c[b+4>>2]|0;if((r|0)!=(g|0)?(r|0)==0|(g|0)==0:0)c[e>>2]=1;g=(c[b>>2]|0)==5;if((c[o>>2]|0)==5){if(!g)s=16}else if(g)s=16;if((s|0)==16)c[e>>2]=1;s=q+12|0;if(Va(a,c[s>>2]|0,h)|0){n=1;i=f;return n|0}g=d+1308|0;r=c[h>>2]|0;if((c[g>>2]|0)!=(r|0)){c[g>>2]=r;c[e>>2]=1}if((c[b>>2]|0)==5){if(Wa(a,c[s>>2]|0,5,j)|0){n=1;i=f;return n|0}if((c[o>>2]|0)==5){s=d+1312|0;r=c[s>>2]|0;g=c[j>>2]|0;if((r|0)==(g|0)){t=r;u=s}else{c[e>>2]=1;t=g;u=s}}else{t=c[j>>2]|0;u=d+1312|0}c[u>>2]=t}t=c[q+16>>2]|0;if(!t){if(Xa(a,q,c[b>>2]|0,k)|0){n=1;i=f;return n|0}u=d+1316|0;j=c[k>>2]|0;if((c[u>>2]|0)!=(j|0)){c[u>>2]=j;c[e>>2]=1}if(c[p+8>>2]|0){j=Ya(a,q,c[b>>2]|0,l)|0;if(j){n=j;i=f;return n|0}j=d+1320|0;u=c[l>>2]|0;if((c[j>>2]|0)!=(u|0)){c[j>>2]=u;c[e>>2]=1}}}else if((t|0)==1?(c[q+24>>2]|0)==0:0){t=p+8|0;p=Za(a,q,c[b>>2]|0,c[t>>2]|0,m)|0;if(p){n=p;i=f;return n|0}p=d+1324|0;q=c[m>>2]|0;if((c[p>>2]|0)!=(q|0)){c[p>>2]=q;c[e>>2]=1}if((c[t>>2]|0)!=0?(t=d+1328|0,d=c[m+4>>2]|0,(c[t>>2]|0)!=(d|0)):0){c[t>>2]=d;c[e>>2]=1}}e=b;b=c[e+4>>2]|0;d=o;c[d>>2]=c[e>>2];c[d+4>>2]=b;n=0;i=f;return n|0}default:{n=0;i=f;return n|0}}return 0}function Jb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;d=0;while(1){e=c[a+(d<<2)+148>>2]|0;if(((e|0)!=0?(f=c[a+(c[e+4>>2]<<2)+20>>2]|0,(f|0)!=0):0)?(Kb(e,f)|0)==0:0){g=0;h=6;break}d=d+1|0;if(d>>>0>=256){g=1;h=6;break}}if((h|0)==6){i=b;return g|0}return 0}function Kb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;d=i;e=c[b+52>>2]|0;f=Z(c[b+56>>2]|0,e)|0;b=c[a+12>>2]|0;a:do if(b>>>0>1){g=c[a+16>>2]|0;if((g|0)==2){h=c[a+24>>2]|0;j=c[a+28>>2]|0;k=0;while(1){l=c[h+(k<<2)>>2]|0;m=c[j+(k<<2)>>2]|0;if(!(l>>>0<=m>>>0&m>>>0>>0)){n=1;o=15;break}k=k+1|0;if(((l>>>0)%(e>>>0)|0)>>>0>((m>>>0)%(e>>>0)|0)>>>0){n=1;o=15;break}if(k>>>0>=(b+-1|0)>>>0)break a}if((o|0)==15){i=d;return n|0}}else if(!g){k=c[a+20>>2]|0;j=0;while(1){if((c[k+(j<<2)>>2]|0)>>>0>f>>>0){n=1;break}j=j+1|0;if(j>>>0>=b>>>0)break a}i=d;return n|0}else{if((g+-3|0)>>>0<3){if((c[a+36>>2]|0)>>>0>f>>>0)n=1;else break;i=d;return n|0}if((g|0)!=6)break;if((c[a+40>>2]|0)>>>0>>0)n=1;else break;i=d;return n|0}}while(0);n=0;i=d;return n|0}function Lb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;g=i;h=Z(f,e)|0;j=c[b+12>>2]|0;if((j|0)==1){ld(a,0,h<<2);i=g;return}k=c[b+16>>2]|0;if((k+-3|0)>>>0<3){l=Z(c[b+36>>2]|0,d)|0;d=l>>>0>>0?l:h;if((k&-2|0)==4){m=(c[b+32>>2]|0)==0?d:h-d|0;n=d}else{m=0;n=d}}else{m=0;n=0}switch(k|0){case 0:{k=c[b+20>>2]|0;d=0;l=0;a:while(1){o=l>>>0>>0;p=d;while(1){if(p>>>0>>0&o)break;if(o)p=0;else break a}o=k+(p<<2)|0;q=c[o>>2]|0;b:do if(!q)r=0;else{s=q;t=0;while(1){u=t+l|0;if(u>>>0>=h>>>0){r=s;break b}c[a+(u<<2)>>2]=p;t=t+1|0;u=c[o>>2]|0;if(t>>>0>=u>>>0){r=u;break}else s=u}}while(0);d=p+1|0;l=r+l|0}i=g;return}case 1:{if(!h){i=g;return}else v=0;do{c[a+(v<<2)>>2]=((((Z((v>>>0)/(e>>>0)|0,j)|0)>>>1)+((v>>>0)%(e>>>0)|0)|0)>>>0)%(j>>>0)|0;v=v+1|0}while((v|0)!=(h|0));i=g;return}case 3:{v=c[b+32>>2]|0;if(h){l=0;do{c[a+(l<<2)>>2]=1;l=l+1|0}while((l|0)!=(h|0))}l=(e-v|0)>>>1;r=(f-v|0)>>>1;if(!n){i=g;return}d=v<<1;k=d+-1|0;o=e+-1|0;q=1-d|0;d=f+-1|0;s=r;t=0;u=l;w=l;x=r;y=l;l=v+-1|0;z=r;r=v;while(1){v=a+((Z(z,e)|0)+y<<2)|0;A=(c[v>>2]|0)==1;B=A&1;if(A)c[v>>2]=0;do if(!((l|0)==-1&(y|0)==(u|0))){if((l|0)==1&(y|0)==(w|0)){v=w+1|0;A=(v|0)<(o|0)?v:o;C=s;D=u;E=A;F=x;G=A;H=0;I=z;J=q;break}if((r|0)==-1&(z|0)==(x|0)){A=x+-1|0;v=(A|0)>0?A:0;C=s;D=u;E=w;F=v;G=y;H=q;I=v;J=0;break}if((r|0)==1&(z|0)==(s|0)){v=s+1|0;A=(v|0)<(d|0)?v:d;C=A;D=u;E=w;F=x;G=y;H=k;I=A;J=0;break}else{C=s;D=u;E=w;F=x;G=y+l|0;H=l;I=z+r|0;J=r;break}}else{A=u+-1|0;v=(A|0)>0?A:0;C=s;D=v;E=w;F=x;G=v;H=0;I=z;J=k}while(0);t=B+t|0;if(t>>>0>=n>>>0)break;else{s=C;u=D;w=E;x=F;y=G;l=H;z=I;r=J}}i=g;return}case 5:{J=c[b+32>>2]|0;if(!e){i=g;return}r=(f|0)==0;I=1-J|0;z=0;H=0;while(1){if(r)K=H;else{l=0;G=H;while(1){y=a+((Z(l,e)|0)+z<<2)|0;c[y>>2]=G>>>0>>0?J:I;l=l+1|0;if((l|0)==(f|0))break;else G=G+1|0}K=H+f|0}z=z+1|0;if((z|0)==(e|0))break;else H=K}i=g;return}case 4:{K=c[b+32>>2]|0;if(!h){i=g;return}H=1-K|0;z=0;do{c[a+(z<<2)>>2]=z>>>0>>0?K:H;z=z+1|0}while((z|0)!=(h|0));i=g;return}case 2:{z=c[b+24>>2]|0;H=c[b+28>>2]|0;K=j+-1|0;if(h){m=0;do{c[a+(m<<2)>>2]=K;m=m+1|0}while((m|0)!=(h|0))}if(!K){i=g;return}K=j+-2|0;while(1){j=c[z+(K<<2)>>2]|0;m=(j>>>0)/(e>>>0)|0;f=(j>>>0)%(e>>>0)|0;j=c[H+(K<<2)>>2]|0;I=(j>>>0)/(e>>>0)|0;J=(j>>>0)%(e>>>0)|0;if(m>>>0<=I>>>0){j=f>>>0>J>>>0;r=m;do{if(!j){m=Z(r,e)|0;G=f;do{c[a+(G+m<<2)>>2]=K;G=G+1|0}while(G>>>0<=J>>>0)}r=r+1|0}while(r>>>0<=I>>>0)}if(!K)break;else K=K+-1|0}i=g;return}default:{if(!h){i=g;return}K=c[b+44>>2]|0;b=0;do{c[a+(b<<2)>>2]=c[K+(b<<2)>>2];b=b+1|0}while((b|0)!=(h|0));i=g;return}}}function Mb(){return 3472}function Nb(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;h=i;i=i+80|0;j=h+32|0;k=h;Ob(d,j,k,e);if((cb(c[a>>2]|0)|0)==1){e=Pb(a,g,b+328|0,j,k,f)|0;if(e){l=e;i=h;return l|0}}else{e=Qb(a,g,b,j,k,f)|0;if(e){l=e;i=h;return l|0}}e=Rb(a,g+256|0,b+1352|0,j+21|0,k+16|0,c[b+140>>2]|0,f)|0;if(e){l=e;i=h;return l|0}if((c[a+196>>2]|0)>>>0>1){l=0;i=h;return l|0}vc(d,g);l=0;i=h;return l|0}function Ob(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;g=i;if(!f){i=g;return}h=c[b+4>>2]|0;j=Z(c[b+8>>2]|0,h)|0;k=(f>>>0)/(h>>>0)|0;l=Z(k,h)|0;m=f-l|0;n=h<<4;o=c[b>>2]|0;p=(m<<4)+(Z(h<<8,k)|0)|0;q=(k|0)!=0;if(q){r=p-(n|1)|0;a[d>>0]=a[o+r>>0]|0;a[d+1>>0]=a[o+(r+1)>>0]|0;a[d+2>>0]=a[o+(r+2)>>0]|0;a[d+3>>0]=a[o+(r+3)>>0]|0;a[d+4>>0]=a[o+(r+4)>>0]|0;a[d+5>>0]=a[o+(r+5)>>0]|0;a[d+6>>0]=a[o+(r+6)>>0]|0;a[d+7>>0]=a[o+(r+7)>>0]|0;a[d+8>>0]=a[o+(r+8)>>0]|0;a[d+9>>0]=a[o+(r+9)>>0]|0;a[d+10>>0]=a[o+(r+10)>>0]|0;a[d+11>>0]=a[o+(r+11)>>0]|0;a[d+12>>0]=a[o+(r+12)>>0]|0;a[d+13>>0]=a[o+(r+13)>>0]|0;a[d+14>>0]=a[o+(r+14)>>0]|0;a[d+15>>0]=a[o+(r+15)>>0]|0;a[d+16>>0]=a[o+(r+16)>>0]|0;a[d+17>>0]=a[o+(r+17)>>0]|0;a[d+18>>0]=a[o+(r+18)>>0]|0;a[d+19>>0]=a[o+(r+19)>>0]|0;a[d+20>>0]=a[o+(r+20)>>0]|0;s=d+21|0}else s=d;d=(l|0)!=(f|0);if(d){f=p+-1|0;a[e>>0]=a[o+f>>0]|0;p=f+n|0;a[e+1>>0]=a[o+p>>0]|0;f=p+n|0;a[e+2>>0]=a[o+f>>0]|0;p=f+n|0;a[e+3>>0]=a[o+p>>0]|0;f=p+n|0;a[e+4>>0]=a[o+f>>0]|0;p=f+n|0;a[e+5>>0]=a[o+p>>0]|0;f=p+n|0;a[e+6>>0]=a[o+f>>0]|0;p=f+n|0;a[e+7>>0]=a[o+p>>0]|0;f=p+n|0;a[e+8>>0]=a[o+f>>0]|0;p=f+n|0;a[e+9>>0]=a[o+p>>0]|0;f=p+n|0;a[e+10>>0]=a[o+f>>0]|0;p=f+n|0;a[e+11>>0]=a[o+p>>0]|0;f=p+n|0;a[e+12>>0]=a[o+f>>0]|0;p=f+n|0;a[e+13>>0]=a[o+p>>0]|0;f=p+n|0;a[e+14>>0]=a[o+f>>0]|0;a[e+15>>0]=a[o+(f+n)>>0]|0;t=e+16|0}else t=e;e=h<<3&2147483640;n=c[b>>2]|0;b=(Z(k<<3,e)|0)+(j<<8)+(m<<3)|0;if(q){q=b-(e|1)|0;a[s>>0]=a[n+q>>0]|0;a[s+1>>0]=a[n+(q+1)>>0]|0;a[s+2>>0]=a[n+(q+2)>>0]|0;a[s+3>>0]=a[n+(q+3)>>0]|0;a[s+4>>0]=a[n+(q+4)>>0]|0;a[s+5>>0]=a[n+(q+5)>>0]|0;a[s+6>>0]=a[n+(q+6)>>0]|0;a[s+7>>0]=a[n+(q+7)>>0]|0;a[s+8>>0]=a[n+(q+8)>>0]|0;m=q+(j<<6)|0;a[s+9>>0]=a[n+m>>0]|0;a[s+10>>0]=a[n+(m+1)>>0]|0;a[s+11>>0]=a[n+(m+2)>>0]|0;a[s+12>>0]=a[n+(m+3)>>0]|0;a[s+13>>0]=a[n+(m+4)>>0]|0;a[s+14>>0]=a[n+(m+5)>>0]|0;a[s+15>>0]=a[n+(m+6)>>0]|0;a[s+16>>0]=a[n+(m+7)>>0]|0;a[s+17>>0]=a[n+(m+8)>>0]|0}if(!d){i=g;return}d=b+-1|0;a[t>>0]=a[n+d>>0]|0;b=d+e|0;a[t+1>>0]=a[n+b>>0]|0;d=b+e|0;a[t+2>>0]=a[n+d>>0]|0;b=d+e|0;a[t+3>>0]=a[n+b>>0]|0;d=b+e|0;a[t+4>>0]=a[n+d>>0]|0;b=d+e|0;a[t+5>>0]=a[n+b>>0]|0;d=b+e|0;a[t+6>>0]=a[n+d>>0]|0;b=d+e|0;a[t+7>>0]=a[n+b>>0]|0;d=b+(e+((j<<6)-(h<<6)))|0;a[t+8>>0]=a[n+d>>0]|0;h=d+e|0;a[t+9>>0]=a[n+h>>0]|0;d=h+e|0;a[t+10>>0]=a[n+d>>0]|0;h=d+e|0;a[t+11>>0]=a[n+h>>0]|0;d=h+e|0;a[t+12>>0]=a[n+d>>0]|0;h=d+e|0;a[t+13>>0]=a[n+h>>0]|0;d=h+e|0;a[t+14>>0]=a[n+d>>0]|0;a[t+15>>0]=a[n+(d+e)>>0]|0;i=g;return}function Pb(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;k=i;l=b+200|0;m=zb(b,c[l>>2]|0)|0;n=(j|0)!=0;if((m|0)!=0&n){j=(cb(c[c[l>>2]>>2]|0)|0)==2;o=j?0:m}else o=m;m=b+204|0;j=zb(b,c[m>>2]|0)|0;if((j|0)!=0&n){l=(cb(c[c[m>>2]>>2]|0)|0)==2;p=l?0:j}else p=j;j=b+212|0;l=zb(b,c[j>>2]|0)|0;if((l|0)!=0&n){n=(cb(c[c[j>>2]>>2]|0)|0)==2;q=n?0:l}else q=l;l=fb(c[b>>2]|0)|0;if(!l){if(!p){r=1;i=k;return r|0}b=g+1|0;n=g+2|0;j=g+3|0;m=g+4|0;s=g+5|0;t=g+6|0;u=g+7|0;v=g+8|0;w=g+9|0;x=g+10|0;y=g+11|0;z=g+12|0;A=g+13|0;B=g+14|0;C=g+15|0;D=g+16|0;E=e;F=0;while(1){a[E>>0]=a[b>>0]|0;a[E+1>>0]=a[n>>0]|0;a[E+2>>0]=a[j>>0]|0;a[E+3>>0]=a[m>>0]|0;a[E+4>>0]=a[s>>0]|0;a[E+5>>0]=a[t>>0]|0;a[E+6>>0]=a[u>>0]|0;a[E+7>>0]=a[v>>0]|0;a[E+8>>0]=a[w>>0]|0;a[E+9>>0]=a[x>>0]|0;a[E+10>>0]=a[y>>0]|0;a[E+11>>0]=a[z>>0]|0;a[E+12>>0]=a[A>>0]|0;a[E+13>>0]=a[B>>0]|0;a[E+14>>0]=a[C>>0]|0;a[E+15>>0]=a[D>>0]|0;F=F+1|0;if((F|0)==16)break;else E=E+16|0}}else if((l|0)==1)if(!o){r=1;i=k;return r|0}else{E=e;F=0;while(1){D=h+F|0;a[E>>0]=a[D>>0]|0;a[E+1>>0]=a[D>>0]|0;a[E+2>>0]=a[D>>0]|0;a[E+3>>0]=a[D>>0]|0;a[E+4>>0]=a[D>>0]|0;a[E+5>>0]=a[D>>0]|0;a[E+6>>0]=a[D>>0]|0;a[E+7>>0]=a[D>>0]|0;a[E+8>>0]=a[D>>0]|0;a[E+9>>0]=a[D>>0]|0;a[E+10>>0]=a[D>>0]|0;a[E+11>>0]=a[D>>0]|0;a[E+12>>0]=a[D>>0]|0;a[E+13>>0]=a[D>>0]|0;a[E+14>>0]=a[D>>0]|0;a[E+15>>0]=a[D>>0]|0;F=F+1|0;if((F|0)==16)break;else E=E+16|0}}else if((l|0)==2){l=g+1|0;E=(o|0)!=0;F=(p|0)!=0;do if(!(E&F)){if(E){G=((d[h>>0]|0)+8+(d[h+1>>0]|0)+(d[h+2>>0]|0)+(d[h+3>>0]|0)+(d[h+4>>0]|0)+(d[h+5>>0]|0)+(d[h+6>>0]|0)+(d[h+7>>0]|0)+(d[h+8>>0]|0)+(d[h+9>>0]|0)+(d[h+10>>0]|0)+(d[h+11>>0]|0)+(d[h+12>>0]|0)+(d[h+13>>0]|0)+(d[h+14>>0]|0)+(d[h+15>>0]|0)|0)>>>4;break}if(F)G=((d[l>>0]|0)+8+(d[g+2>>0]|0)+(d[g+3>>0]|0)+(d[g+4>>0]|0)+(d[g+5>>0]|0)+(d[g+6>>0]|0)+(d[g+7>>0]|0)+(d[g+8>>0]|0)+(d[g+9>>0]|0)+(d[g+10>>0]|0)+(d[g+11>>0]|0)+(d[g+12>>0]|0)+(d[g+13>>0]|0)+(d[g+14>>0]|0)+(d[g+15>>0]|0)+(d[g+16>>0]|0)|0)>>>4;else G=128}else{D=0;C=0;do{B=D;D=D+1|0;C=(d[g+D>>0]|0)+C+(d[h+B>>0]|0)|0}while((D|0)!=16);G=(C+16|0)>>>5}while(0);qd(e|0,G&255|0,256)|0}else{if(!((o|0)!=0&(p|0)!=0&(q|0)!=0)){r=1;i=k;return r|0}q=d[g+16>>0]|0;p=d[h+15>>0]|0;o=d[g>>0]|0;G=(((d[g+9>>0]|0)-(d[g+7>>0]|0)+((d[g+10>>0]|0)-(d[g+6>>0]|0)<<1)+(((d[g+11>>0]|0)-(d[g+5>>0]|0)|0)*3|0)+((d[g+12>>0]|0)-(d[g+4>>0]|0)<<2)+(((d[g+13>>0]|0)-(d[g+3>>0]|0)|0)*5|0)+(((d[g+14>>0]|0)-(d[g+2>>0]|0)|0)*6|0)+(((d[g+15>>0]|0)-(d[g+1>>0]|0)|0)*7|0)+(q-o<<3)|0)*5|0)+32>>6;g=(((d[h+8>>0]|0)-(d[h+6>>0]|0)+(p-o<<3)+((d[h+9>>0]|0)-(d[h+5>>0]|0)<<1)+(((d[h+10>>0]|0)-(d[h+4>>0]|0)|0)*3|0)+((d[h+11>>0]|0)-(d[h+3>>0]|0)<<2)+(((d[h+12>>0]|0)-(d[h+2>>0]|0)|0)*5|0)+(((d[h+13>>0]|0)-(d[h+1>>0]|0)|0)*6|0)+(((d[h+14>>0]|0)-(d[h>>0]|0)|0)*7|0)|0)*5|0)+32>>6;h=(p+q<<4)+16|0;q=0;do{p=h+(Z(q+-7|0,g)|0)|0;o=q<<4;l=0;do{F=p+(Z(l+-7|0,G)|0)>>5;if((F|0)<0)H=0;else H=(F|0)>255?-1:F&255;a[e+(l+o)>>0]=H;l=l+1|0}while((l|0)!=16);q=q+1|0}while((q|0)!=16)}Sb(e,f,0);Sb(e,f+64|0,1);Sb(e,f+128|0,2);Sb(e,f+192|0,3);Sb(e,f+256|0,4);Sb(e,f+320|0,5);Sb(e,f+384|0,6);Sb(e,f+448|0,7);Sb(e,f+512|0,8);Sb(e,f+576|0,9);Sb(e,f+640|0,10);Sb(e,f+704|0,11);Sb(e,f+768|0,12);Sb(e,f+832|0,13);Sb(e,f+896|0,14);Sb(e,f+960|0,15);r=0;i=k;return r|0}function Qb(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0;k=i;l=(j|0)!=0;j=0;a:while(1){m=vb(j)|0;n=c[m+4>>2]|0;o=ub(b,c[m>>2]|0)|0;m=zb(b,o)|0;if((m|0)!=0&l){p=(cb(c[o>>2]|0)|0)==2;q=p?0:m}else q=m;m=wb(j)|0;p=c[m+4>>2]|0;r=ub(b,c[m>>2]|0)|0;m=zb(b,r)|0;if((m|0)!=0&l){s=(cb(c[r>>2]|0)|0)==2;t=s?0:m}else t=m;m=(q|0)!=0;s=(t|0)!=0;u=m&s;if(u){if(!(cb(c[o>>2]|0)|0))v=d[o+(n&255)+82>>0]|0;else v=2;if(!(cb(c[r>>2]|0)|0))w=d[r+(p&255)+82>>0]|0;else w=2;x=v>>>0>>0?v:w}else x=2;if(!(c[f+(j<<2)+12>>2]|0)){p=c[f+(j<<2)+76>>2]|0;y=(p>>>0>=x>>>0&1)+p|0}else y=x;a[b+j+82>>0]=y;p=c[(xb(j)|0)>>2]|0;r=ub(b,p)|0;p=zb(b,r)|0;if((p|0)!=0&l){n=(cb(c[r>>2]|0)|0)==2;z=n?0:p}else z=p;p=c[(yb(j)|0)>>2]|0;n=ub(b,p)|0;p=zb(b,n)|0;if((p|0)!=0&l){r=(cb(c[n>>2]|0)|0)==2;A=r?0:p}else A=p;p=c[3344+(j<<2)>>2]|0;r=c[3408+(j<<2)>>2]|0;n=(1285>>>j&1|0)!=0;if(n){B=h+r|0;C=h+(r+1)|0;D=h+(r+2)|0;E=h+(r+3)|0}else{o=(r<<4)+p|0;B=e+(o+-1)|0;C=e+(o+15)|0;D=e+(o+31)|0;E=e+(o+47)|0}o=a[B>>0]|0;F=a[C>>0]|0;G=a[D>>0]|0;H=a[E>>0]|0;do if(!(51>>>j&1)){I=r+-1|0;J=(I<<4)+p|0;K=a[e+J>>0]|0;L=a[e+(J+1)>>0]|0;M=a[e+(J+2)>>0]|0;N=a[e+(J+3)>>0]|0;O=a[e+(J+4)>>0]|0;P=a[e+(J+5)>>0]|0;Q=a[e+(J+6)>>0]|0;R=a[e+(J+7)>>0]|0;if(n){S=Q;T=N;U=O;V=P;W=K;X=R;Y=L;_=M;$=h+I|0;break}else{S=Q;T=N;U=O;V=P;W=K;X=R;Y=L;_=M;$=e+(J+-1)|0;break}}else{S=a[g+(p+7)>>0]|0;T=a[g+(p+4)>>0]|0;U=a[g+(p+5)>>0]|0;V=a[g+(p+6)>>0]|0;W=a[g+(p+1)>>0]|0;X=a[g+(p+8)>>0]|0;Y=a[g+(p+2)>>0]|0;_=a[g+(p+3)>>0]|0;$=g+p|0}while(0);n=a[$>>0]|0;switch(y|0){case 5:{if(!(u&(A|0)!=0)){aa=1;ba=51;break a}J=n&255;M=W&255;L=(M+1+J|0)>>>1&255;R=Y&255;K=(R+2+(M<<1)+J|0)>>>2;P=o&255;O=M+2|0;N=(O+P+(J<<1)|0)>>>2;Q=(R+1+M|0)>>>1&255;M=_&255;I=((R<<1)+M+O|0)>>>2;O=(M+1+R|0)>>>1&255;ca=T&255;da=F&255;ea=L;fa=N&255;ga=(da+2+(P<<1)+J|0)>>>2&255;ha=Q;ia=O;ja=(ca+1+M|0)>>>1&255;ka=K&255;la=I&255;ma=(ca+2+R+(M<<1)|0)>>>2&255;na=L;oa=Q;pa=O;qa=I<<24|(P+2+(G&255)+(da<<1)|0)>>>2&255|K<<16&16711680|N<<8&65280;break}case 1:{if(!m){aa=1;ba=51;break a}N=Z(o&255,16843009)|0;K=Z(F&255,16843009)|0;da=Z(G&255,16843009)|0;ea=N&255;fa=K&255;ga=da&255;ha=N>>>8&255;ia=N>>>16&255;ja=N>>>24&255;ka=K>>>8&255;la=K>>>16&255;ma=K>>>24&255;na=da>>>8&255;oa=da>>>16&255;pa=da>>>24&255;qa=Z(H&255,16843009)|0;break}case 6:{if(!(u&(A|0)!=0)){aa=1;ba=51;break a}da=n&255;K=o&255;N=K+1|0;P=(N+da|0)>>>1&255;I=F&255;O=((K<<1)+2+I+da|0)>>>2&255;Q=(N+I|0)>>>1&255;N=G&255;L=K+2|0;K=(L+(I<<1)+N|0)>>>2;M=(I+1+N|0)>>>1;R=H&255;ca=W&255;J=(L+ca+(da<<1)|0)>>>2&255;L=Y&255;ea=P;fa=Q;ga=M&255;ha=J;ia=(L+2+(ca<<1)+da|0)>>>2&255;ja=((_&255)+2+(L<<1)+ca|0)>>>2&255;ka=O;la=P;ma=J;na=K&255;oa=Q;pa=O;qa=K<<24|M<<16&16711680|(N+1+R|0)>>>1&255|I+2+(N<<1)+R<<6&65280;break}case 7:{if(!t){aa=1;ba=51;break a}R=(z|0)==0;N=W&255;I=Y&255;M=_&255;K=(M+1+I|0)>>>1&255;O=T&255;Q=O+1|0;J=(Q+M|0)>>>1&255;P=(R?T:U)&255;ca=(Q+P|0)>>>1&255;Q=M+2|0;L=O+2|0;da=(L+I+(M<<1)|0)>>>2;M=(Q+(O<<1)+P|0)>>>2;O=(R?T:V)&255;ra=(L+O+(P<<1)|0)>>>2;ea=(I+1+N|0)>>>1&255;fa=(Q+N+(I<<1)|0)>>>2&255;ga=K;ha=K;ia=J;ja=ca;ka=da&255;la=M&255;ma=ra&255;na=J;oa=ca;pa=(P+1+O|0)>>>1&255;qa=ra<<16&16711680|da&255|(P+2+((R?T:S)&255)+(O<<1)|0)>>>2<<24|M<<8&65280;break}case 2:{do if(!u){if(m){sa=((o&255)+2+(F&255)+(G&255)+(H&255)|0)>>>2;break}if(s)sa=((T&255)+2+(_&255)+(Y&255)+(W&255)|0)>>>2;else sa=128}else sa=((o&255)+4+(F&255)+(G&255)+(H&255)+(T&255)+(_&255)+(Y&255)+(W&255)|0)>>>3;while(0);s=Z(sa&255,16843009)|0;M=s&255;O=s>>>8&255;R=s>>>16&255;P=s>>>24&255;ea=M;fa=M;ga=M;ha=O;ia=R;ja=P;ka=O;la=R;ma=P;na=O;oa=R;pa=P;qa=s;break}case 3:{if(!t){aa=1;ba=51;break a}s=(z|0)==0;P=Y&255;R=_&255;O=R+2|0;M=T&255;da=M+2|0;ra=(da+P+(R<<1)|0)>>>2&255;R=(s?T:U)&255;ca=(O+(M<<1)+R|0)>>>2&255;M=(s?T:V)&255;J=(da+M+(R<<1)|0)>>>2;da=J&255;K=(s?T:S)&255;I=(R+2+K+(M<<1)|0)>>>2;R=I&255;N=(s?T:X)&255;s=(M+2+N+(K<<1)|0)>>>2;ea=(O+(W&255)+(P<<1)|0)>>>2&255;fa=ra;ga=ca;ha=ra;ia=ca;ja=da;ka=ca;la=da;ma=R;na=da;oa=R;pa=s&255;qa=(K+2+(N*3|0)|0)>>>2<<24|J&255|I<<8&65280|s<<16&16711680;break}case 0:{if(!t){aa=1;ba=51;break a}ea=W;fa=W;ga=W;ha=Y;ia=_;ja=T;ka=Y;la=_;ma=T;na=Y;oa=_;pa=T;qa=(_&255)<<16|(T&255)<<24|(Y&255)<<8|W&255;break}case 4:{if(!(u&(A|0)!=0)){aa=1;ba=51;break a}s=W&255;I=n&255;J=o&255;N=s+2|0;K=(N+J+(I<<1)|0)>>>2;R=K&255;da=Y&255;ca=I+2|0;I=((s<<1)+da+ca|0)>>>2&255;s=_&255;ra=((da<<1)+s+N|0)>>>2&255;N=F&255;P=(N+(J<<1)+ca|0)>>>2;ca=P&255;O=G&255;M=(J+2+(N<<1)+O|0)>>>2;ea=R;fa=ca;ga=M&255;ha=I;ia=ra;ja=((T&255)+2+da+(s<<1)|0)>>>2&255;ka=R;la=I;ma=ra;na=ca;oa=R;pa=I;qa=(N+2+(O<<1)+(H&255)|0)>>>2&255|M<<8&65280|K<<24|P<<16&16711680;break}default:{if(!m){aa=1;ba=51;break a}P=o&255;K=F&255;M=G&255;O=(K+1+M|0)>>>1&255;N=H&255;I=(K+2+(M<<1)+N|0)>>>2&255;R=(M+1+N|0)>>>1&255;ca=(M+2+(N*3|0)|0)>>>2&255;ea=(P+1+K|0)>>>1&255;fa=O;ga=R;ha=(P+2+(K<<1)+M|0)>>>2&255;ia=O;ja=I;ka=I;la=R;ma=ca;na=ca;oa=H;pa=H;qa=N<<8|N|N<<16|N<<24}}N=(r<<4)+p|0;c[e+N>>2]=(ia&255)<<16|(ja&255)<<24|(ha&255)<<8|ea&255;c[e+(N+16)>>2]=(la&255)<<16|(ma&255)<<24|(ka&255)<<8|fa&255;c[e+(N+32)>>2]=(oa&255)<<16|(pa&255)<<24|(na&255)<<8|ga&255;c[e+(N+48)>>2]=qa;Sb(e,f+(j<<6)+328|0,j);j=j+1|0;if(j>>>0>=16){aa=0;ba=51;break}}if((ba|0)==51){i=k;return aa|0}return 0}function Rb(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;l=i;m=b+200|0;n=zb(b,c[m>>2]|0)|0;o=(k|0)!=0;if((n|0)!=0&o){k=(cb(c[c[m>>2]>>2]|0)|0)==2;p=k?0:n}else p=n;n=b+204|0;k=zb(b,c[n>>2]|0)|0;if((k|0)!=0&o){m=(cb(c[c[n>>2]>>2]|0)|0)==2;q=m?0:k}else q=k;k=b+212|0;m=zb(b,c[k>>2]|0)|0;if((m|0)!=0&o){o=(cb(c[c[k>>2]>>2]|0)|0)==2;r=o?0:m}else r=m;m=(p|0)!=0;o=(q|0)!=0;k=m&o;b=k&(r|0)!=0;r=(p|0)==0;p=(q|0)==0;q=g;g=16;n=0;s=e;e=h;h=f;while(1){if((j|0)==1){if(r){t=1;u=29;break}else{v=s;w=8;x=e}while(1){w=w+-1|0;a[v>>0]=a[x>>0]|0;a[v+1>>0]=a[x>>0]|0;a[v+2>>0]=a[x>>0]|0;a[v+3>>0]=a[x>>0]|0;a[v+4>>0]=a[x>>0]|0;a[v+5>>0]=a[x>>0]|0;a[v+6>>0]=a[x>>0]|0;a[v+7>>0]=a[x>>0]|0;if(!w)break;else{v=v+8|0;x=x+1|0}}}else if(!j){f=q+1|0;do if(!k){if(o){y=((d[f>>0]|0)+2+(d[q+2>>0]|0)+(d[q+3>>0]|0)+(d[q+4>>0]|0)|0)>>>2;z=((d[q+5>>0]|0)+2+(d[q+6>>0]|0)+(d[q+7>>0]|0)+(d[q+8>>0]|0)|0)>>>2;break}if(m){A=((d[e>>0]|0)+2+(d[e+1>>0]|0)+(d[e+2>>0]|0)+(d[e+3>>0]|0)|0)>>>2;y=A;z=A}else{y=128;z=128}}else{y=((d[f>>0]|0)+4+(d[q+2>>0]|0)+(d[q+3>>0]|0)+(d[q+4>>0]|0)+(d[e>>0]|0)+(d[e+1>>0]|0)+(d[e+2>>0]|0)+(d[e+3>>0]|0)|0)>>>3;z=((d[q+5>>0]|0)+2+(d[q+6>>0]|0)+(d[q+7>>0]|0)+(d[q+8>>0]|0)|0)>>>2}while(0);A=y&255;B=z&255;qd(s|0,A|0,4)|0;qd(s+4|0,B|0,4)|0;qd(s+8|0,A|0,4)|0;qd(s+12|0,B|0,4)|0;qd(s+16|0,A|0,4)|0;qd(s+20|0,B|0,4)|0;C=s+32|0;qd(s+24|0,A|0,4)|0;qd(s+28|0,B|0,4)|0;if(m){B=d[e+4>>0]|0;A=d[e+5>>0]|0;D=d[e+6>>0]|0;E=d[e+7>>0]|0;F=(B+2+A+D+E|0)>>>2;if(o){G=F;H=(B+4+A+D+E+(d[q+5>>0]|0)+(d[q+6>>0]|0)+(d[q+7>>0]|0)+(d[q+8>>0]|0)|0)>>>3}else{G=F;H=F}}else if(o){G=((d[f>>0]|0)+2+(d[q+2>>0]|0)+(d[q+3>>0]|0)+(d[q+4>>0]|0)|0)>>>2;H=((d[q+5>>0]|0)+2+(d[q+6>>0]|0)+(d[q+7>>0]|0)+(d[q+8>>0]|0)|0)>>>2}else{G=128;H=128}F=G&255;E=H&255;qd(C|0,F|0,4)|0;qd(s+36|0,E|0,4)|0;qd(s+40|0,F|0,4)|0;qd(s+44|0,E|0,4)|0;qd(s+48|0,F|0,4)|0;qd(s+52|0,E|0,4)|0;qd(s+56|0,F|0,4)|0;qd(s+60|0,E|0,4)|0}else if((j|0)==2){if(p){t=1;u=29;break}else{I=q;J=s;K=8}while(1){I=I+1|0;K=K+-1|0;a[J>>0]=a[I>>0]|0;a[J+8>>0]=a[I>>0]|0;a[J+16>>0]=a[I>>0]|0;a[J+24>>0]=a[I>>0]|0;a[J+32>>0]=a[I>>0]|0;a[J+40>>0]=a[I>>0]|0;a[J+48>>0]=a[I>>0]|0;a[J+56>>0]=a[I>>0]|0;if(!K)break;else J=J+1|0}}else{if(!b){t=1;u=29;break}f=d[q+8>>0]|0;E=d[e+7>>0]|0;F=d[q>>0]|0;C=(((d[q+5>>0]|0)-(d[q+3>>0]|0)+((d[q+6>>0]|0)-(d[q+2>>0]|0)<<1)+(((d[q+7>>0]|0)-(d[q+1>>0]|0)|0)*3|0)+(f-F<<2)|0)*17|0)+16>>5;D=(((d[e+4>>0]|0)-(d[e+2>>0]|0)+(E-F<<2)+((d[e+5>>0]|0)-(d[e+1>>0]|0)<<1)+(((d[e+6>>0]|0)-(d[e>>0]|0)|0)*3|0)|0)*17|0)+16>>5;F=Z(C,-3)|0;A=(E+f<<4)+16+(Z(D,-3)|0)|0;f=s;E=8;while(1){E=E+-1|0;B=A+F|0;a[f>>0]=a[(B>>5)+3984>>0]|0;L=B+C|0;a[f+1>>0]=a[(L>>5)+3984>>0]|0;B=L+C|0;a[f+2>>0]=a[(B>>5)+3984>>0]|0;L=B+C|0;a[f+3>>0]=a[(L>>5)+3984>>0]|0;B=L+C|0;a[f+4>>0]=a[(B>>5)+3984>>0]|0;L=B+C|0;a[f+5>>0]=a[(L>>5)+3984>>0]|0;B=L+C|0;a[f+6>>0]=a[(B>>5)+3984>>0]|0;a[f+7>>0]=a[(B+C>>5)+3984>>0]|0;if(!E)break;else{A=A+D|0;f=f+8|0}}}Sb(s,h,g);f=g|1;Sb(s,h+64|0,f);Sb(s,h+128|0,f+1|0);Sb(s,h+192|0,g|3);n=n+1|0;if(n>>>0>=2){t=0;u=29;break}else{q=q+9|0;g=g+4|0;s=s+64|0;e=e+8|0;h=h+256|0}}if((u|0)==29){i=l;return t|0}return 0}function Sb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;h=c[e>>2]|0;if((h|0)==16777215){i=g;return}j=f>>>0<16;k=j?16:8;l=j?f:f&3;f=(Z(c[3408+(l<<2)>>2]|0,k)|0)+(c[3344+(l<<2)>>2]|0)|0;l=b+f|0;j=c[e+4>>2]|0;m=b+(f+1)|0;n=d[m>>0]|0;a[l>>0]=a[3472+(h+512+(d[l>>0]|0))>>0]|0;l=c[e+8>>2]|0;h=b+(f+2)|0;o=d[h>>0]|0;a[m>>0]=a[3472+(j+512+n)>>0]|0;n=b+(f+3)|0;j=a[3472+((c[e+12>>2]|0)+512+(d[n>>0]|0))>>0]|0;a[h>>0]=a[3472+(l+512+o)>>0]|0;a[n>>0]=j;j=f+k|0;f=b+j|0;n=c[e+20>>2]|0;o=b+(j+1)|0;l=d[o>>0]|0;a[f>>0]=a[3472+((c[e+16>>2]|0)+512+(d[f>>0]|0))>>0]|0;f=c[e+24>>2]|0;h=b+(j+2)|0;m=d[h>>0]|0;a[o>>0]=a[3472+(n+512+l)>>0]|0;l=b+(j+3)|0;n=a[3472+((c[e+28>>2]|0)+512+(d[l>>0]|0))>>0]|0;a[h>>0]=a[3472+(f+512+m)>>0]|0;a[l>>0]=n;n=j+k|0;j=b+n|0;l=c[e+36>>2]|0;m=b+(n+1)|0;f=d[m>>0]|0;a[j>>0]=a[3472+((c[e+32>>2]|0)+512+(d[j>>0]|0))>>0]|0;j=c[e+40>>2]|0;h=b+(n+2)|0;o=d[h>>0]|0;a[m>>0]=a[3472+(l+512+f)>>0]|0;f=b+(n+3)|0;l=a[3472+((c[e+44>>2]|0)+512+(d[f>>0]|0))>>0]|0;a[h>>0]=a[3472+(j+512+o)>>0]|0;a[f>>0]=l;l=n+k|0;k=b+l|0;n=c[e+52>>2]|0;f=b+(l+1)|0;o=d[f>>0]|0;a[k>>0]=a[3472+((c[e+48>>2]|0)+512+(d[k>>0]|0))>>0]|0;k=c[e+56>>2]|0;j=b+(l+2)|0;h=d[j>>0]|0;a[f>>0]=a[3472+(n+512+o)>>0]|0;o=b+(l+3)|0;l=a[3472+((c[e+60>>2]|0)+512+(d[o>>0]|0))>>0]|0;a[j>>0]=a[3472+(k+512+h)>>0]|0;a[o>>0]=l;i=g;return}function Tb(a,f,g,h,j,k){a=a|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0;l=i;i=i+80|0;m=l+72|0;n=l+64|0;o=l+60|0;p=l+68|0;q=l+24|0;r=l;s=c[j+4>>2]|0;t=(h>>>0)/(s>>>0)|0;u=t<<4;v=h-(Z(t,s)|0)<<4;c[r+4>>2]=s;c[r+8>>2]=c[j+8>>2];s=c[a>>2]|0;do if((s|0)==3){t=b[f+160>>1]|0;w=b[f+162>>1]|0;x=c[f+144>>2]|0;y=a+4|0;z=c[y>>2]|0;A=c[a+200>>2]|0;c[q>>2]=0;B=q+4|0;c[B>>2]=-1;C=q+8|0;b[q+10>>1]=0;b[C>>1]=0;if(((A|0)!=0?(c[A+4>>2]|0)==(z|0):0)?(D=c[A>>2]|0,c[q>>2]=1,D>>>0<6):0){D=A+152|0;E=e[D>>1]|e[D+2>>1]<<16;D=c[A+104>>2]|0;c[B>>2]=D;c[C>>2]=E;F=D}else F=-1;if((F|0)==(x|0)){D=c[C>>2]|0;c[n>>2]=D;G=D}else{D=c[a+204>>2]|0;E=q+12|0;c[E>>2]=0;A=q+16|0;c[A>>2]=-1;H=q+20|0;b[q+22>>1]=0;b[H>>1]=0;I=(D|0)==0;if((!I?(c[D+4>>2]|0)==(z|0):0)?(J=c[D>>2]|0,c[E>>2]=1,J>>>0<6):0){J=D+172|0;E=e[J>>1]|e[J+2>>1]<<16;c[A>>2]=c[D+108>>2];c[H>>2]=E}E=q+24|0;c[E>>2]=0;H=q+28|0;c[H>>2]=-1;A=q+32|0;J=q+34|0;b[J>>1]=0;b[A>>1]=0;if(!I?(c[D+4>>2]|0)==(z|0):0){I=c[D>>2]|0;c[E>>2]=1;if(I>>>0<6){I=D+188|0;K=e[I>>1]|e[I+2>>1]<<16;c[H>>2]=c[D+112>>2];c[A>>2]=K}}else L=79;if((((L|0)==79?(K=c[a+212>>2]|0,c[E>>2]=0,c[H>>2]=-1,b[J>>1]=0,b[A>>1]=0,(K|0)!=0):0)?(c[K+4>>2]|0)==(z|0):0)?(z=c[K>>2]|0,c[E>>2]=1,z>>>0<6):0){z=K+192|0;E=e[z>>1]|e[z+2>>1]<<16;c[H>>2]=c[K+112>>2];c[A>>2]=E}Ub(n,q,x);G=c[n>>2]|0}E=(G&65535)+(t&65535)|0;t=(G>>>16)+(w&65535)|0;if(((E<<16>>16)+8192|0)>>>0>16383){M=1;i=l;return M|0}if(((t<<16>>16)+2048|0)>>>0>4095){M=1;i=l;return M|0}w=kc(g,x)|0;if(!w){M=1;i=l;return M|0}A=a+132|0;K=a+136|0;H=a+140|0;z=a+144|0;J=a+164|0;D=a+168|0;I=a+172|0;N=a+176|0;b[a+176>>1]=E;b[a+178>>1]=t;t=e[N>>1]|e[N+2>>1]<<16;b[I>>1]=t;b[I+2>>1]=t>>>16;b[D>>1]=t;b[D+2>>1]=t>>>16;b[J>>1]=t;b[J+2>>1]=t>>>16;b[z>>1]=t;b[z+2>>1]=t>>>16;b[H>>1]=t;b[H+2>>1]=t>>>16;b[K>>1]=t;b[K+2>>1]=t>>>16;b[A>>1]=t;b[A+2>>1]=t>>>16;c[a+100>>2]=x;c[a+108>>2]=x;A=a+116|0;c[A>>2]=w;c[a+124>>2]=w;w=b[f+164>>1]|0;K=b[f+166>>1]|0;H=c[f+148>>2]|0;z=c[y>>2]|0;y=c[a+208>>2]|0;J=q+24|0;c[J>>2]=0;D=q+28|0;c[D>>2]=-1;I=q+32|0;N=q+34|0;b[N>>1]=0;b[I>>1]=0;if((y|0)!=0?(c[y+4>>2]|0)==(z|0):0){E=c[y>>2]|0;c[J>>2]=1;if(E>>>0<6){E=y+172|0;O=e[E>>1]|e[E+2>>1]<<16;E=c[y+108>>2]|0;c[D>>2]=E;c[I>>2]=O;P=E}else P=-1}else{E=c[a+204>>2]|0;c[J>>2]=0;c[D>>2]=-1;b[N>>1]=0;b[I>>1]=0;if(((E|0)!=0?(c[E+4>>2]|0)==(z|0):0)?(N=c[E>>2]|0,c[J>>2]=1,N>>>0<6):0){N=E+176|0;J=e[N>>1]|e[N+2>>1]<<16;N=c[E+108>>2]|0;c[D>>2]=N;c[I>>2]=J;P=N}else P=-1}if((P|0)==(H|0)){N=c[I>>2]|0;c[n>>2]=N;Q=N}else{c[q>>2]=1;c[B>>2]=x;c[C>>2]=t;t=c[a+204>>2]|0;C=q+12|0;c[C>>2]=0;x=q+16|0;c[x>>2]=-1;B=q+20|0;b[q+22>>1]=0;b[B>>1]=0;if(((t|0)!=0?(c[t+4>>2]|0)==(z|0):0)?(z=c[t>>2]|0,c[C>>2]=1,z>>>0<6):0){z=t+188|0;C=e[z>>1]|e[z+2>>1]<<16;c[x>>2]=c[t+112>>2];c[B>>2]=C}Ub(n,q,H);Q=c[n>>2]|0}C=(Q&65535)+(w&65535)|0;w=(Q>>>16)+(K&65535)|0;if(((C<<16>>16)+8192|0)>>>0>16383){M=1;i=l;return M|0}if(((w<<16>>16)+2048|0)>>>0>4095){M=1;i=l;return M|0}K=kc(g,H)|0;if(!K){M=1;i=l;return M|0}else{B=a+148|0;t=a+152|0;x=a+156|0;z=a+160|0;N=a+180|0;I=a+184|0;J=a+188|0;D=a+192|0;b[a+192>>1]=C;b[a+194>>1]=w;w=e[D>>1]|e[D+2>>1]<<16;b[J>>1]=w;b[J+2>>1]=w>>>16;b[I>>1]=w;b[I+2>>1]=w>>>16;b[N>>1]=w;b[N+2>>1]=w>>>16;b[z>>1]=w;b[z+2>>1]=w>>>16;b[x>>1]=w;b[x+2>>1]=w>>>16;b[t>>1]=w;b[t+2>>1]=w>>>16;b[B>>1]=w;b[B+2>>1]=w>>>16;c[a+104>>2]=H;c[a+112>>2]=H;H=a+120|0;c[H>>2]=K;c[a+128>>2]=K;c[r>>2]=c[A>>2];fc(k,a+132|0,r,v,u,0,0,8,16);c[r>>2]=c[H>>2];fc(k,B,r,v,u,8,0,8,16);break}}else if((s|0)==2){B=b[f+160>>1]|0;H=b[f+162>>1]|0;A=c[f+144>>2]|0;K=a+4|0;w=c[K>>2]|0;t=c[a+204>>2]|0;x=q+12|0;c[x>>2]=0;z=q+16|0;c[z>>2]=-1;N=q+20|0;b[q+22>>1]=0;b[N>>1]=0;if(((t|0)!=0?(c[t+4>>2]|0)==(w|0):0)?(I=c[t>>2]|0,c[x>>2]=1,I>>>0<6):0){I=t+172|0;J=e[I>>1]|e[I+2>>1]<<16;I=c[t+108>>2]|0;c[z>>2]=I;c[N>>2]=J;R=I}else R=-1;if((R|0)==(A|0)){I=c[N>>2]|0;c[o>>2]=I;S=I}else{I=c[a+200>>2]|0;c[q>>2]=0;J=q+4|0;c[J>>2]=-1;t=q+8|0;b[q+10>>1]=0;b[t>>1]=0;if(((I|0)!=0?(c[I+4>>2]|0)==(w|0):0)?(D=c[I>>2]|0,c[q>>2]=1,D>>>0<6):0){D=I+152|0;C=e[D>>1]|e[D+2>>1]<<16;c[J>>2]=c[I+104>>2];c[t>>2]=C}C=c[a+208>>2]|0;t=q+24|0;c[t>>2]=0;I=q+28|0;c[I>>2]=-1;J=q+32|0;D=q+34|0;b[D>>1]=0;b[J>>1]=0;if((C|0)!=0?(c[C+4>>2]|0)==(w|0):0){E=c[C>>2]|0;c[t>>2]=1;if(E>>>0<6){E=C+172|0;O=e[E>>1]|e[E+2>>1]<<16;c[I>>2]=c[C+108>>2];c[J>>2]=O}}else L=42;if((((L|0)==42?(O=c[a+212>>2]|0,c[t>>2]=0,c[I>>2]=-1,b[D>>1]=0,b[J>>1]=0,(O|0)!=0):0)?(c[O+4>>2]|0)==(w|0):0)?(w=c[O>>2]|0,c[t>>2]=1,w>>>0<6):0){w=O+192|0;t=e[w>>1]|e[w+2>>1]<<16;c[I>>2]=c[O+112>>2];c[J>>2]=t}Ub(o,q,A);S=c[o>>2]|0}t=(S&65535)+(B&65535)|0;B=(S>>>16)+(H&65535)|0;if(((t<<16>>16)+8192|0)>>>0>16383){M=1;i=l;return M|0}if(((B<<16>>16)+2048|0)>>>0>4095){M=1;i=l;return M|0}H=kc(g,A)|0;if(!H){M=1;i=l;return M|0}J=a+132|0;O=a+136|0;I=a+140|0;w=a+144|0;D=a+148|0;C=a+152|0;E=a+156|0;y=a+160|0;b[a+160>>1]=t;b[a+162>>1]=B;B=e[y>>1]|e[y+2>>1]<<16;b[E>>1]=B;b[E+2>>1]=B>>>16;b[C>>1]=B;b[C+2>>1]=B>>>16;b[D>>1]=B;b[D+2>>1]=B>>>16;b[w>>1]=B;b[w+2>>1]=B>>>16;b[I>>1]=B;b[I+2>>1]=B>>>16;b[O>>1]=B;b[O+2>>1]=B>>>16;b[J>>1]=B;b[J+2>>1]=B>>>16;c[a+100>>2]=A;c[a+104>>2]=A;J=a+116|0;c[J>>2]=H;c[a+120>>2]=H;H=b[f+164>>1]|0;O=b[f+166>>1]|0;I=c[f+148>>2]|0;w=c[K>>2]|0;K=c[a+200>>2]|0;c[q>>2]=0;D=q+4|0;c[D>>2]=-1;C=q+8|0;b[q+10>>1]=0;b[C>>1]=0;E=(K|0)==0;if((!E?(c[K+4>>2]|0)==(w|0):0)?(y=c[K>>2]|0,c[q>>2]=1,y>>>0<6):0){y=K+184|0;t=e[y>>1]|e[y+2>>1]<<16;y=c[K+112>>2]|0;c[D>>2]=y;c[C>>2]=t;T=y}else T=-1;if((T|0)==(I|0)){y=c[C>>2]|0;c[o>>2]=y;U=y}else{c[x>>2]=1;c[z>>2]=A;c[N>>2]=B;B=q+24|0;c[B>>2]=0;N=q+28|0;c[N>>2]=-1;A=q+32|0;b[q+34>>1]=0;b[A>>1]=0;if((!E?(c[K+4>>2]|0)==(w|0):0)?(w=c[K>>2]|0,c[B>>2]=1,w>>>0<6):0){w=K+160|0;B=e[w>>1]|e[w+2>>1]<<16;c[N>>2]=c[K+104>>2];c[A>>2]=B}Ub(o,q,I);U=c[o>>2]|0}B=(U&65535)+(H&65535)|0;H=(U>>>16)+(O&65535)|0;if(((B<<16>>16)+8192|0)>>>0>16383){M=1;i=l;return M|0}if(((H<<16>>16)+2048|0)>>>0>4095){M=1;i=l;return M|0}O=kc(g,I)|0;if(!O){M=1;i=l;return M|0}else{A=a+164|0;K=a+168|0;N=a+172|0;w=a+176|0;E=a+180|0;z=a+184|0;x=a+188|0;y=a+192|0;b[a+192>>1]=B;b[a+194>>1]=H;H=e[y>>1]|e[y+2>>1]<<16;b[x>>1]=H;b[x+2>>1]=H>>>16;b[z>>1]=H;b[z+2>>1]=H>>>16;b[E>>1]=H;b[E+2>>1]=H>>>16;b[w>>1]=H;b[w+2>>1]=H>>>16;b[N>>1]=H;b[N+2>>1]=H>>>16;b[K>>1]=H;b[K+2>>1]=H>>>16;b[A>>1]=H;b[A+2>>1]=H>>>16;c[a+108>>2]=I;c[a+112>>2]=I;I=a+124|0;c[I>>2]=O;c[a+128>>2]=O;c[r>>2]=c[J>>2];fc(k,a+132|0,r,v,u,0,0,16,8);c[r>>2]=c[I>>2];fc(k,A,r,v,u,0,8,16,8);break}}else if((s|0)==1|(s|0)==0){A=c[f+144>>2]|0;I=c[a+4>>2]|0;J=c[a+200>>2]|0;c[q>>2]=0;O=q+4|0;c[O>>2]=-1;H=q+8|0;b[q+10>>1]=0;b[H>>1]=0;if((J|0)!=0?(c[J+4>>2]|0)==(I|0):0){K=c[J>>2]|0;c[q>>2]=1;if(K>>>0<6){K=J+152|0;N=e[K>>1]|e[K+2>>1]<<16;K=c[J+104>>2]|0;c[O>>2]=K;c[H>>2]=N;V=1;W=K}else{V=1;W=-1}}else{V=0;W=-1}K=c[a+204>>2]|0;N=q+12|0;c[N>>2]=0;O=q+16|0;c[O>>2]=-1;J=q+20|0;b[q+22>>1]=0;b[J>>1]=0;if((K|0)!=0?(c[K+4>>2]|0)==(I|0):0){w=c[K>>2]|0;c[N>>2]=1;if(w>>>0<6){w=K+172|0;N=e[w>>1]|e[w+2>>1]<<16;w=c[K+108>>2]|0;c[O>>2]=w;c[J>>2]=N;X=1;Y=w}else{X=1;Y=-1}}else{X=0;Y=-1}do if(!s)if(!((V|0)==0|(X|0)==0)){if((W|0)==0?(c[H>>2]|0)==0:0){_=0;$=0;break}if((Y|0)==0?(c[J>>2]|0)==0:0){_=0;$=0}else L=16}else{_=0;$=0}else L=16;while(0);if((L|0)==16){J=b[f+160>>1]|0;H=b[f+162>>1]|0;w=c[a+208>>2]|0;N=q+24|0;c[N>>2]=0;O=q+28|0;c[O>>2]=-1;K=q+32|0;E=q+34|0;b[E>>1]=0;b[K>>1]=0;if((w|0)!=0?(c[w+4>>2]|0)==(I|0):0){z=c[w>>2]|0;c[N>>2]=1;if(z>>>0<6){z=w+172|0;x=e[z>>1]|e[z+2>>1]<<16;c[O>>2]=c[w+108>>2];c[K>>2]=x}}else L=20;if((((L|0)==20?(x=c[a+212>>2]|0,c[N>>2]=0,c[O>>2]=-1,b[E>>1]=0,b[K>>1]=0,(x|0)!=0):0)?(c[x+4>>2]|0)==(I|0):0)?(E=c[x>>2]|0,c[N>>2]=1,E>>>0<6):0){E=x+192|0;N=e[E>>1]|e[E+2>>1]<<16;c[O>>2]=c[x+112>>2];c[K>>2]=N}Ub(p,q,A);N=(e[p>>1]|0)+(J&65535)|0;J=(e[p+2>>1]|0)+(H&65535)|0;if(((N<<16>>16)+8192|0)>>>0>16383){M=1;i=l;return M|0}if(((J<<16>>16)+2048|0)>>>0>4095){M=1;i=l;return M|0}else{_=N&65535;$=J&65535}}J=kc(g,A)|0;if(!J){M=1;i=l;return M|0}else{N=a+132|0;H=a+136|0;K=a+140|0;x=a+144|0;O=a+148|0;E=a+152|0;w=a+156|0;z=a+160|0;y=a+164|0;B=a+168|0;C=a+172|0;t=a+176|0;D=a+180|0;aa=a+184|0;ba=a+188|0;ca=a+192|0;b[a+192>>1]=_;b[a+194>>1]=$;da=e[ca>>1]|e[ca+2>>1]<<16;b[ba>>1]=da;b[ba+2>>1]=da>>>16;b[aa>>1]=da;b[aa+2>>1]=da>>>16;b[D>>1]=da;b[D+2>>1]=da>>>16;b[t>>1]=da;b[t+2>>1]=da>>>16;b[C>>1]=da;b[C+2>>1]=da>>>16;b[B>>1]=da;b[B+2>>1]=da>>>16;b[y>>1]=da;b[y+2>>1]=da>>>16;b[z>>1]=da;b[z+2>>1]=da>>>16;b[w>>1]=da;b[w+2>>1]=da>>>16;b[E>>1]=da;b[E+2>>1]=da>>>16;b[O>>1]=da;b[O+2>>1]=da>>>16;b[x>>1]=da;b[x+2>>1]=da>>>16;b[K>>1]=da;b[K+2>>1]=da>>>16;b[H>>1]=da;b[H+2>>1]=da>>>16;b[N>>1]=da;b[N+2>>1]=da>>>16;c[a+100>>2]=A;c[a+104>>2]=A;c[a+108>>2]=A;c[a+112>>2]=A;c[a+116>>2]=J;c[a+120>>2]=J;c[a+124>>2]=J;c[a+128>>2]=J;c[r>>2]=J;fc(k,a+132|0,r,v,u,0,0,16,16);break}}else{J=a+4|0;da=q+4|0;N=q+8|0;H=q+10|0;K=q+12|0;x=q+16|0;O=q+20|0;E=q+22|0;w=q+24|0;z=q+28|0;y=q+32|0;B=q+34|0;C=m+2|0;t=0;a:while(1){D=f+(t<<2)+176|0;aa=eb(c[D>>2]|0)|0;ba=f+(t<<2)+192|0;c[a+(t<<2)+100>>2]=c[ba>>2];ca=kc(g,c[ba>>2]|0)|0;c[a+(t<<2)+116>>2]=ca;if(!ca){M=1;L=146;break}if(aa){ca=t<<2;ea=a+(ca<<2)+132|0;fa=a+(ca<<2)+134|0;ga=ca|1;ha=a+(ga<<2)+132|0;ia=a+(ga<<2)+134|0;ga=ca|2;ja=a+(ga<<2)+132|0;ka=a+(ga<<2)+134|0;ga=ca|3;la=a+(ga<<2)+132|0;ma=a+(ga<<2)+134|0;ga=0;do{na=b[f+(t<<4)+(ga<<2)+208>>1]|0;oa=b[f+(t<<4)+(ga<<2)+210>>1]|0;pa=hb(c[D>>2]|0)|0;qa=c[ba>>2]|0;ra=ub(a,c[6288+(t<<7)+(pa<<5)+(ga<<3)>>2]|0)|0;sa=c[J>>2]|0;ta=d[6288+(t<<7)+(pa<<5)+(ga<<3)+4>>0]|0;c[q>>2]=0;c[da>>2]=-1;b[H>>1]=0;b[N>>1]=0;if(((ra|0)!=0?(c[ra+4>>2]|0)==(sa|0):0)?(sa=c[ra>>2]|0,c[q>>2]=1,sa>>>0<6):0){sa=ra+(ta<<2)+132|0;ua=e[sa>>1]|e[sa+2>>1]<<16;c[da>>2]=c[ra+(ta>>>2<<2)+100>>2];c[N>>2]=ua}ua=ub(a,c[5776+(t<<7)+(pa<<5)+(ga<<3)>>2]|0)|0;ta=c[J>>2]|0;ra=d[5776+(t<<7)+(pa<<5)+(ga<<3)+4>>0]|0;c[K>>2]=0;c[x>>2]=-1;b[E>>1]=0;b[O>>1]=0;if(((ua|0)!=0?(c[ua+4>>2]|0)==(ta|0):0)?(ta=c[ua>>2]|0,c[K>>2]=1,ta>>>0<6):0){ta=ua+(ra<<2)+132|0;sa=e[ta>>1]|e[ta+2>>1]<<16;c[x>>2]=c[ua+(ra>>>2<<2)+100>>2];c[O>>2]=sa}sa=ub(a,c[5264+(t<<7)+(pa<<5)+(ga<<3)>>2]|0)|0;ra=c[J>>2]|0;ua=d[5264+(t<<7)+(pa<<5)+(ga<<3)+4>>0]|0;c[w>>2]=0;c[z>>2]=-1;b[B>>1]=0;b[y>>1]=0;if((sa|0)!=0?(c[sa+4>>2]|0)==(ra|0):0){ra=c[sa>>2]|0;c[w>>2]=1;if(ra>>>0<6){ra=sa+(ua<<2)+132|0;ta=e[ra>>1]|e[ra+2>>1]<<16;c[z>>2]=c[sa+(ua>>>2<<2)+100>>2];c[y>>2]=ta}}else L=122;if((((L|0)==122?(L=0,ta=ub(a,c[4752+(t<<7)+(pa<<5)+(ga<<3)>>2]|0)|0,ua=c[J>>2]|0,sa=d[4752+(t<<7)+(pa<<5)+(ga<<3)+4>>0]|0,c[w>>2]=0,c[z>>2]=-1,b[B>>1]=0,b[y>>1]=0,(ta|0)!=0):0)?(c[ta+4>>2]|0)==(ua|0):0)?(ua=c[ta>>2]|0,c[w>>2]=1,ua>>>0<6):0){ua=ta+(sa<<2)+132|0;ra=e[ua>>1]|e[ua+2>>1]<<16;c[z>>2]=c[ta+(sa>>>2<<2)+100>>2];c[y>>2]=ra}Ub(m,q,qa);qa=(e[m>>1]|0)+(na&65535)|0;na=qa&65535;ra=(e[C>>1]|0)+(oa&65535)|0;oa=ra&65535;if(((qa<<16>>16)+8192|0)>>>0>16383){M=1;L=146;break a}if(((ra<<16>>16)+2048|0)>>>0>4095){M=1;L=146;break a}if((pa|0)==1){ra=(ga<<1)+ca|0;b[a+(ra<<2)+132>>1]=na;b[a+(ra<<2)+134>>1]=oa;qa=ra|1;b[a+(qa<<2)+132>>1]=na;b[a+(qa<<2)+134>>1]=oa}else if((pa|0)==2){qa=ga+ca|0;b[a+(qa<<2)+132>>1]=na;b[a+(qa<<2)+134>>1]=oa;ra=qa+2|0;b[a+(ra<<2)+132>>1]=na;b[a+(ra<<2)+134>>1]=oa}else if((pa|0)==3){ra=ga+ca|0;b[a+(ra<<2)+132>>1]=na;b[a+(ra<<2)+134>>1]=oa}else if(!pa){b[ea>>1]=na;b[fa>>1]=oa;b[ha>>1]=na;b[ia>>1]=oa;b[ja>>1]=na;b[ka>>1]=oa;b[la>>1]=na;b[ma>>1]=oa}ga=ga+1|0}while(ga>>>0>>0)}t=t+1|0;if(t>>>0>=4){L=135;break}}if((L|0)==135){t=0;do{c[r>>2]=c[a+(t<<2)+116>>2];C=hb(c[f+(t<<2)+176>>2]|0)|0;y=t<<3&8;z=t>>>0<2?0:8;if(!C)fc(k,a+(t<<2<<2)+132|0,r,v,u,y,z,8,8);else if((C|0)==1){w=t<<2;fc(k,a+(w<<2)+132|0,r,v,u,y,z,8,4);fc(k,a+((w|2)<<2)+132|0,r,v,u,y,z|4,8,4)}else if((C|0)==2){C=t<<2;fc(k,a+(C<<2)+132|0,r,v,u,y,z,4,8);fc(k,a+((C|1)<<2)+132|0,r,v,u,y|4,z,4,8)}else{C=t<<2;fc(k,a+(C<<2)+132|0,r,v,u,y,z,4,4);w=y|4;fc(k,a+((C|1)<<2)+132|0,r,v,u,w,z,4,4);B=z|4;fc(k,a+((C|2)<<2)+132|0,r,v,u,y,B,4,4);fc(k,a+((C|3)<<2)+132|0,r,v,u,w,B,4,4)}t=t+1|0}while((t|0)!=4)}else if((L|0)==146){i=l;return M|0}}while(0);if((c[a+196>>2]|0)>>>0>1){M=0;i=l;return M|0}if(!(c[a>>2]|0)){vc(j,k);M=0;i=l;return M|0}else{wc(j,h,k,f+328|0);M=0;i=l;return M|0}return 0}function Ub(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;g=i;if(((c[d+12>>2]|0)==0?(c[d+24>>2]|0)==0:0)?(c[d>>2]|0)!=0:0){h=d+8|0;j=e[h>>1]|e[h+2>>1]<<16;b[a>>1]=j;b[a+2>>1]=j>>>16;i=g;return}j=(c[d+4>>2]|0)==(f|0);h=(c[d+16>>2]|0)==(f|0);if(((h&1)+(j&1)+((c[d+28>>2]|0)==(f|0)&1)|0)==1){if(j){j=d+8|0;f=e[j>>1]|e[j+2>>1]<<16;b[a>>1]=f;b[a+2>>1]=f>>>16;i=g;return}if(h){h=d+20|0;f=e[h>>1]|e[h+2>>1]<<16;b[a>>1]=f;b[a+2>>1]=f>>>16;i=g;return}else{f=d+32|0;h=e[f>>1]|e[f+2>>1]<<16;b[a>>1]=h;b[a+2>>1]=h>>>16;i=g;return}}h=b[d+8>>1]|0;f=h<<16>>16;j=b[d+20>>1]|0;k=j<<16>>16;l=b[d+32>>1]|0;if(j<<16>>16>h<<16>>16){m=k;n=f}else{m=f;n=(k|0)<(f|0)?k:f}if((m|0)<(l|0))o=m;else o=(n|0)>(l|0)?n:l;b[a>>1]=o;o=b[d+10>>1]|0;l=o<<16>>16;n=b[d+22>>1]|0;m=n<<16>>16;f=b[d+34>>1]|0;if(n<<16>>16>o<<16>>16){p=m;q=l}else{p=l;q=(m|0)<(l|0)?m:l}if((p|0)<(f|0))r=p;else r=(q|0)>(f|0)?q:f;b[a+2>>1]=r;i=g;return}function Vb(b,c,e,f,g,h,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;m=i;i=i+144|0;n=m;if((e|0)>=0?!((e+1+k|0)>>>0>g>>>0|(f|0)<0|(l+f|0)>>>0>h>>>0):0){o=h;p=b;q=g;r=e;s=f}else{t=k+1|0;Wb(b,n,e,f,g,h,t,l,t);Wb(b+(Z(h,g)|0)|0,n+(Z(t,l)|0)|0,e,f,g,h,t,l,t);o=l;p=n;q=t;r=0;s=0}t=8-j|0;n=l>>>1;l=(n|0)==0;h=k>>>1;g=(h|0)==0;f=16-k|0;e=(q<<1)-k|0;k=q+1|0;b=q+2|0;u=h<<1;if(l){i=m;return}v=c;w=p+((Z(s,q)|0)+r)|0;x=n;while(1){if(g){y=v;z=w}else{A=v+u|0;B=v;C=w;D=h;while(1){E=d[C>>0]|0;F=d[C+k>>0]|0;G=C;C=C+2|0;H=d[G+1>>0]|0;a[B+8>>0]=(((Z(F,j)|0)+(Z(d[G+q>>0]|0,t)|0)<<3)+32|0)>>>6;a[B>>0]=(((Z(H,j)|0)+(Z(E,t)|0)<<3)+32|0)>>>6;E=d[C>>0]|0;a[B+9>>0]=(((Z(d[G+b>>0]|0,j)|0)+(Z(F,t)|0)<<3)+32|0)>>>6;a[B+1>>0]=(((Z(E,j)|0)+(Z(H,t)|0)<<3)+32|0)>>>6;D=D+-1|0;if(!D)break;else B=B+2|0}y=A;z=w+u|0}x=x+-1|0;if(!x)break;else{v=y+f|0;w=z+e|0}}if(l){i=m;return}l=c+64|0;c=p+((Z(o+s|0,q)|0)+r)|0;r=n;while(1){if(g){I=l;J=c}else{n=l+u|0;s=l;o=c;p=h;while(1){z=d[o>>0]|0;w=d[o+k>>0]|0;y=o;o=o+2|0;v=d[y+1>>0]|0;a[s+8>>0]=(((Z(w,j)|0)+(Z(d[y+q>>0]|0,t)|0)<<3)+32|0)>>>6;a[s>>0]=(((Z(v,j)|0)+(Z(z,t)|0)<<3)+32|0)>>>6;z=d[o>>0]|0;a[s+9>>0]=(((Z(d[y+b>>0]|0,j)|0)+(Z(w,t)|0)<<3)+32|0)>>>6;a[s+1>>0]=(((Z(z,j)|0)+(Z(v,t)|0)<<3)+32|0)>>>6;p=p+-1|0;if(!p)break;else s=s+2|0}I=n;J=c+u|0}r=r+-1|0;if(!r)break;else{l=I+f|0;c=J+e|0}}i=m;return}function Wb(a,b,c,d,e,f,g,h,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;k=i;l=g+c|0;m=h+d|0;n=(c|0)<0|(l|0)>(e|0)?2:1;o=(m|0)<0?0-h|0:d;d=(l|0)<0?0-g|0:c;c=(o|0)>(f|0)?f:o;o=(d|0)>(e|0)?e:d;d=o+g|0;l=c+h|0;if((o|0)>0)p=a+o|0;else p=a;if((c|0)>0)q=p+(Z(c,e)|0)|0;else q=p;p=(o|0)<0?0-o|0:0;o=(d|0)>(e|0)?d-e|0:0;d=g-p-o|0;g=0-c|0;a=(c|0)<0?g:0;c=l-f|0;r=(l|0)>(f|0)?c:0;l=h-a|0;s=l-r|0;if(!a)t=b;else{a=h+-1-((m|0)>0?m:0)|0;u=~f;v=(a|0)>(u|0)?a:u;u=~v;a=Z(v+((u|0)>0?u:0)+1|0,j)|0;u=b;v=g;while(1){xa[n&3](q,u,p,d,o);v=v+-1|0;if(!v)break;else u=u+j|0}t=b+a|0}if((l|0)==(r|0)){w=t;x=q}else{l=h+-1|0;a=l-((m|0)>0?m:0)|0;m=~f;b=(a|0)>(m|0)?a:m;m=l-b|0;l=~b;a=h+f+-1-((m|0)<(f|0)?f:m)-b-((l|0)>0?l:0)|0;l=Z(a,j)|0;b=Z(a,e)|0;a=t;m=q;f=s;while(1){xa[n&3](m,a,p,d,o);f=f+-1|0;if(!f)break;else{a=a+j|0;m=m+e|0}}w=t+l|0;x=q+b|0}b=x+(0-e)|0;if(!r){i=k;return}else{y=c;z=w}while(1){xa[n&3](b,z,p,d,o);y=y+-1|0;if(!y)break;else z=z+j|0}i=k;return} -function Xb(b,c,e,f,g,h,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;m=i;i=i+144|0;n=m;if(((e|0)>=0?!((k+e|0)>>>0>g>>>0|(f|0)<0):0)?(f+1+l|0)>>>0<=h>>>0:0){o=h;p=b;q=g;r=e;s=f}else{t=l+1|0;Wb(b,n,e,f,g,h,k,t,k);Wb(b+(Z(h,g)|0)|0,n+(Z(t,k)|0)|0,e,f,g,h,k,t,k);o=t;p=n;q=k;r=0;s=0}n=8-j|0;t=l>>>1;l=(t|0)==0;h=k>>>1;g=(h|0)==0;f=16-k|0;e=q<<1;b=e-k|0;k=e|1;u=q+1|0;v=h<<1;if(l){i=m;return}w=c;x=p+((Z(s,q)|0)+r)|0;y=t;while(1){if(g){z=w;A=x}else{B=w+v|0;C=w;D=x;E=h;while(1){F=d[D+q>>0]|0;G=d[D>>0]|0;a[C+8>>0]=(((Z(F,n)|0)+(Z(d[D+e>>0]|0,j)|0)<<3)+32|0)>>>6;a[C>>0]=(((Z(G,n)|0)+(Z(F,j)|0)<<3)+32|0)>>>6;F=d[D+u>>0]|0;G=d[D+1>>0]|0;a[C+9>>0]=(((Z(F,n)|0)+(Z(d[D+k>>0]|0,j)|0)<<3)+32|0)>>>6;a[C+1>>0]=(((Z(G,n)|0)+(Z(F,j)|0)<<3)+32|0)>>>6;E=E+-1|0;if(!E)break;else{C=C+2|0;D=D+2|0}}z=B;A=x+v|0}y=y+-1|0;if(!y)break;else{w=z+f|0;x=A+b|0}}if(l){i=m;return}l=c+64|0;c=p+((Z(o+s|0,q)|0)+r)|0;r=t;while(1){if(g){H=l;I=c}else{t=l+v|0;s=l;o=c;p=h;while(1){A=d[o+q>>0]|0;x=d[o>>0]|0;a[s+8>>0]=(((Z(A,n)|0)+(Z(d[o+e>>0]|0,j)|0)<<3)+32|0)>>>6;a[s>>0]=(((Z(x,n)|0)+(Z(A,j)|0)<<3)+32|0)>>>6;A=d[o+u>>0]|0;x=d[o+1>>0]|0;a[s+9>>0]=(((Z(A,n)|0)+(Z(d[o+k>>0]|0,j)|0)<<3)+32|0)>>>6;a[s+1>>0]=(((Z(x,n)|0)+(Z(A,j)|0)<<3)+32|0)>>>6;p=p+-1|0;if(!p)break;else{s=s+2|0;o=o+2|0}}H=t;I=c+v|0}r=r+-1|0;if(!r)break;else{l=H+f|0;c=I+b|0}}i=m;return}function Yb(b,c,e,f,g,h,j,k,l,m){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;n=i;i=i+176|0;o=n;if(((e|0)>=0?!((e+1+l|0)>>>0>g>>>0|(f|0)<0):0)?(f+1+m|0)>>>0<=h>>>0:0){p=h;q=b;r=g;s=e;t=f}else{u=l+1|0;v=m+1|0;Wb(b,o,e,f,g,h,u,v,u);Wb(b+(Z(h,g)|0)|0,o+(Z(v,u)|0)|0,e,f,g,h,u,v,u);p=v;q=o;r=u;s=0;t=0}u=8-j|0;o=8-k|0;v=m>>>1;m=(v|0)==0;h=r<<1;g=l>>>1;f=(g|0)==0;e=16-l|0;b=h-l|0;l=r+1|0;w=h|1;x=r+2|0;y=h+2|0;z=g<<1;A=0;do{if(!m){B=c+(A<<6)|0;C=q+((Z((Z(A,p)|0)+t|0,r)|0)+s)|0;D=v;while(1){E=d[C+r>>0]|0;if(f){F=B;G=C}else{H=B+z|0;I=B;J=C;K=(Z(E,k)|0)+(Z(d[C>>0]|0,o)|0)|0;L=(Z(d[C+h>>0]|0,k)|0)+(Z(E,o)|0)|0;E=g;while(1){M=d[J+l>>0]|0;N=(Z(M,k)|0)+(Z(d[J+1>>0]|0,o)|0)|0;O=(Z(d[J+w>>0]|0,k)|0)+(Z(M,o)|0)|0;M=((Z(K,u)|0)+32+(Z(N,j)|0)|0)>>>6;a[I+8>>0]=((Z(L,u)|0)+32+(Z(O,j)|0)|0)>>>6;a[I>>0]=M;M=J;J=J+2|0;P=d[M+x>>0]|0;K=(Z(P,k)|0)+(Z(d[J>>0]|0,o)|0)|0;L=(Z(d[M+y>>0]|0,k)|0)+(Z(P,o)|0)|0;P=((Z(N,u)|0)+32+(Z(K,j)|0)|0)>>>6;a[I+9>>0]=((Z(O,u)|0)+32+(Z(L,j)|0)|0)>>>6;a[I+1>>0]=P;E=E+-1|0;if(!E)break;else I=I+2|0}F=H;G=C+z|0}D=D+-1|0;if(!D)break;else{B=F+e|0;C=G+b|0}}}A=A+1|0}while((A|0)!=2);i=n;return}function Zb(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;l=i;i=i+448|0;m=l;if(((e|0)>=0?!((j+e|0)>>>0>g>>>0|(f|0)<0):0)?(f+5+k|0)>>>0<=h>>>0:0){n=b;o=g;p=e;q=f}else{Wb(b,m,e,f,g,h,j,k+5|0,j);n=m;o=j;p=0;q=0}m=p+o+(Z(q,o)|0)|0;q=k>>>2;if(!q){i=l;return}k=(j|0)==0;p=(o<<2)-j|0;h=64-j|0;g=0-o|0;f=g<<1;e=o<<1;b=q;q=c;c=n+m|0;r=n+(m+(o*5|0))|0;while(1){if(k){s=q;t=c;u=r}else{m=q+j|0;n=j;v=q;w=c;x=r;while(1){y=d[x+f>>0]|0;z=d[x+g>>0]|0;A=d[x+o>>0]|0;B=d[x>>0]|0;C=A+y|0;D=d[w+e>>0]|0;a[v+48>>0]=a[((d[x+e>>0]|0)+16-C-(C<<2)+D+((B+z|0)*20|0)>>5)+3984>>0]|0;C=D+B|0;E=d[w+o>>0]|0;a[v+32>>0]=a[(A+16-C-(C<<2)+E+((z+y|0)*20|0)>>5)+3984>>0]|0;C=E+z|0;A=d[w>>0]|0;a[v+16>>0]=a[(B+16-C-(C<<2)+A+((D+y|0)*20|0)>>5)+3984>>0]|0;C=A+y|0;a[v>>0]=a[(z+16-C-(C<<2)+(d[w+g>>0]|0)+((E+D|0)*20|0)>>5)+3984>>0]|0;n=n+-1|0;if(!n)break;else{v=v+1|0;w=w+1|0;x=x+1|0}}s=m;t=c+j|0;u=r+j|0}b=b+-1|0;if(!b)break;else{q=s+h|0;c=t+p|0;r=u+p|0}}i=l;return}function _b(b,c,e,f,g,h,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;m=i;i=i+448|0;n=m;if(((e|0)>=0?!((j+e|0)>>>0>g>>>0|(f|0)<0):0)?(f+5+k|0)>>>0<=h>>>0:0){o=b;p=g;q=e;r=f}else{Wb(b,n,e,f,g,h,j,k+5|0,j);o=n;p=j;q=0;r=0}n=q+p+(Z(r,p)|0)|0;r=k>>>2;if(!r){i=m;return}k=(j|0)==0;q=(p<<2)-j|0;h=64-j|0;g=0-p|0;f=g<<1;e=p<<1;b=r;r=c;c=o+n|0;s=o+(n+(Z(p,l+2|0)|0))|0;l=o+(n+(p*5|0))|0;while(1){if(k){t=r;u=c;v=s;w=l}else{n=s+j|0;o=r+j|0;x=j;y=r;z=c;A=s;B=l;while(1){C=d[B+f>>0]|0;D=d[B+g>>0]|0;E=d[B+p>>0]|0;F=d[B>>0]|0;G=E+C|0;H=d[z+e>>0]|0;a[y+48>>0]=((d[((d[B+e>>0]|0)+16-G-(G<<2)+H+((F+D|0)*20|0)>>5)+3984>>0]|0)+1+(d[A+e>>0]|0)|0)>>>1;G=H+F|0;I=d[z+p>>0]|0;a[y+32>>0]=((d[(E+16-G-(G<<2)+I+((D+C|0)*20|0)>>5)+3984>>0]|0)+1+(d[A+p>>0]|0)|0)>>>1;G=I+D|0;E=d[z>>0]|0;a[y+16>>0]=((d[(F+16-G-(G<<2)+E+((H+C|0)*20|0)>>5)+3984>>0]|0)+1+(d[A>>0]|0)|0)>>>1;G=E+C|0;a[y>>0]=((d[(D+16-G-(G<<2)+(d[z+g>>0]|0)+((I+H|0)*20|0)>>5)+3984>>0]|0)+1+(d[A+g>>0]|0)|0)>>>1;x=x+-1|0;if(!x)break;else{y=y+1|0;z=z+1|0;A=A+1|0;B=B+1|0}}t=o;u=c+j|0;v=n;w=l+j|0}b=b+-1|0;if(!b)break;else{r=t+h|0;c=u+q|0;s=v+q|0;l=w+q|0}}i=m;return}function $b(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;l=i;i=i+448|0;m=l;if((e|0)>=0?!((e+5+j|0)>>>0>g>>>0|(f|0)<0|(k+f|0)>>>0>h>>>0):0){n=b;o=g;p=e;q=f}else{r=j+5|0;Wb(b,m,e,f,g,h,r,k,r);n=m;o=r;p=0;q=0}if(!k){i=l;return}r=j>>>2;m=(r|0)==0;h=o-j|0;g=16-j|0;j=r<<2;f=c;c=n+(p+5+(Z(q,o)|0))|0;o=k;while(1){if(m){s=f;t=c}else{k=f+j|0;q=f;p=c;n=d[c+-1>>0]|0;e=d[c+-2>>0]|0;b=d[c+-3>>0]|0;u=d[c+-4>>0]|0;v=d[c+-5>>0]|0;w=r;while(1){x=u+n|0;y=u;u=d[p>>0]|0;a[q>>0]=a[(v+16-x-(x<<2)+u+((b+e|0)*20|0)>>5)+3984>>0]|0;x=u+b|0;z=b;b=d[p+1>>0]|0;a[q+1>>0]=a[(y+16-x-(x<<2)+b+((e+n|0)*20|0)>>5)+3984>>0]|0;x=b+e|0;y=e;e=d[p+2>>0]|0;a[q+2>>0]=a[(z+16-x-(x<<2)+e+((u+n|0)*20|0)>>5)+3984>>0]|0;x=e+n|0;z=d[p+3>>0]|0;a[q+3>>0]=a[(y+16-x-(x<<2)+z+((b+u|0)*20|0)>>5)+3984>>0]|0;w=w+-1|0;if(!w)break;else{x=n;q=q+4|0;p=p+4|0;n=z;v=x}}s=k;t=c+j|0}o=o+-1|0;if(!o)break;else{f=s+g|0;c=t+h|0}}i=l;return}function ac(b,c,e,f,g,h,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;m=i;i=i+448|0;n=m;if((e|0)>=0?!((e+5+j|0)>>>0>g>>>0|(f|0)<0|(k+f|0)>>>0>h>>>0):0){o=b;p=g;q=e;r=f}else{s=j+5|0;Wb(b,n,e,f,g,h,s,k,s);o=n;p=s;q=0;r=0}if(!k){i=m;return}s=j>>>2;n=(s|0)==0;h=p-j|0;g=16-j|0;j=(l|0)!=0;l=s<<2;f=c;c=o+(q+5+(Z(r,p)|0))|0;p=k;while(1){if(n){t=f;u=c}else{k=f+l|0;r=f;q=c;o=d[c+-1>>0]|0;e=d[c+-2>>0]|0;b=d[c+-3>>0]|0;v=d[c+-4>>0]|0;w=d[c+-5>>0]|0;x=s;while(1){y=v+o|0;z=v;v=d[q>>0]|0;a[r>>0]=((j?e:b)+1+(d[(w+16-y-(y<<2)+v+((b+e|0)*20|0)>>5)+3984>>0]|0)|0)>>>1;y=v+b|0;A=b;b=d[q+1>>0]|0;a[r+1>>0]=((j?o:e)+1+(d[(z+16-y-(y<<2)+b+((e+o|0)*20|0)>>5)+3984>>0]|0)|0)>>>1;y=b+e|0;z=e;e=d[q+2>>0]|0;a[r+2>>0]=((j?v:o)+1+(d[(A+16-y-(y<<2)+e+((v+o|0)*20|0)>>5)+3984>>0]|0)|0)>>>1;y=e+o|0;A=d[q+3>>0]|0;a[r+3>>0]=((j?b:v)+1+(d[(z+16-y-(y<<2)+A+((b+v|0)*20|0)>>5)+3984>>0]|0)|0)>>>1;x=x+-1|0;if(!x)break;else{y=o;r=r+4|0;q=q+4|0;o=A;w=y}}t=k;u=c+l|0}p=p+-1|0;if(!p)break;else{f=t+g|0;c=u+h|0}}i=m;return}function bc(b,c,e,f,g,h,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;m=i;i=i+448|0;n=m;if(((e|0)>=0?!((e+5+j|0)>>>0>g>>>0|(f|0)<0):0)?(f+5+k|0)>>>0<=h>>>0:0){o=b;p=g;q=e;r=f}else{s=j+5|0;Wb(b,n,e,f,g,h,s,k+5|0,s);o=n;p=s;q=0;r=0}s=(Z(r,p)|0)+q|0;q=(l&1|2)+p+s|0;r=o+q|0;if(!k){i=m;return}n=j>>>2;h=(n|0)==0;g=p-j|0;f=16-j|0;e=n<<2;b=c;c=o+((Z(p,l>>>1&1|2)|0)+5+s)|0;s=k;while(1){if(h){t=b;u=c}else{l=b+e|0;v=b;w=c;x=d[c+-1>>0]|0;y=d[c+-2>>0]|0;z=d[c+-3>>0]|0;A=d[c+-4>>0]|0;B=d[c+-5>>0]|0;C=n;while(1){D=A+x|0;E=A;A=d[w>>0]|0;a[v>>0]=a[(B+16-D-(D<<2)+A+((z+y|0)*20|0)>>5)+3984>>0]|0;D=A+z|0;F=z;z=d[w+1>>0]|0;a[v+1>>0]=a[(E+16-D-(D<<2)+z+((y+x|0)*20|0)>>5)+3984>>0]|0;D=z+y|0;E=y;y=d[w+2>>0]|0;a[v+2>>0]=a[(F+16-D-(D<<2)+y+((A+x|0)*20|0)>>5)+3984>>0]|0;D=y+x|0;F=d[w+3>>0]|0;a[v+3>>0]=a[(E+16-D-(D<<2)+F+((z+A|0)*20|0)>>5)+3984>>0]|0;C=C+-1|0;if(!C)break;else{D=x;v=v+4|0;w=w+4|0;x=F;B=D}}t=l;u=c+e|0}s=s+-1|0;if(!s)break;else{b=t+f|0;c=u+g|0}}g=k>>>2;if(!g){i=m;return}u=(j|0)==0;c=(p<<2)-j|0;b=64-j|0;s=0-p|0;e=s<<1;n=p<<1;h=t+(f-(k<<4))|0;k=r;r=o+(q+(p*5|0))|0;q=g;while(1){if(u){G=h;H=k;I=r}else{g=h+j|0;o=h;f=k;t=r;B=j;while(1){x=d[t+e>>0]|0;w=d[t+s>>0]|0;v=d[t+p>>0]|0;C=d[t>>0]|0;A=v+x|0;z=d[f+n>>0]|0;y=o+48|0;a[y>>0]=((d[((d[t+n>>0]|0)+16-A-(A<<2)+z+((C+w|0)*20|0)>>5)+3984>>0]|0)+1+(d[y>>0]|0)|0)>>>1;y=z+C|0;A=d[f+p>>0]|0;D=o+32|0;a[D>>0]=((d[(v+16-y-(y<<2)+A+((w+x|0)*20|0)>>5)+3984>>0]|0)+1+(d[D>>0]|0)|0)>>>1;D=d[f>>0]|0;y=A+w|0;v=o+16|0;a[v>>0]=((d[(C+16-y-(y<<2)+D+((z+x|0)*20|0)>>5)+3984>>0]|0)+1+(d[v>>0]|0)|0)>>>1;v=D+x|0;a[o>>0]=((d[(w+16-v-(v<<2)+(d[f+s>>0]|0)+((A+z|0)*20|0)>>5)+3984>>0]|0)+1+(d[o>>0]|0)|0)>>>1;B=B+-1|0;if(!B)break;else{o=o+1|0;f=f+1|0;t=t+1|0}}G=g;H=k+j|0;I=r+j|0}q=q+-1|0;if(!q)break;else{h=G+b|0;k=H+c|0;r=I+c|0}}i=m;return}function cc(b,e,f,g,h,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;m=i;i=i+1792|0;n=m+1344|0;o=m;if(((f|0)>=0?!((f+5+k|0)>>>0>h>>>0|(g|0)<0):0)?(g+5+l|0)>>>0<=j>>>0:0){p=l+5|0;q=b;r=h;s=f+5|0;t=g}else{u=k+5|0;v=l+5|0;Wb(b,n,f,g,h,j,u,v,u);p=v;q=n;r=u;s=5;t=0}if(p){u=k>>>2;n=(u|0)==0;v=r-k|0;j=u<<2;h=o;g=q+(s+(Z(t,r)|0))|0;r=p;while(1){if(n){w=h;x=g}else{p=h+(j<<2)|0;t=h;s=g;q=d[g+-1>>0]|0;f=d[g+-2>>0]|0;b=d[g+-3>>0]|0;y=d[g+-4>>0]|0;z=d[g+-5>>0]|0;A=u;while(1){B=y+q|0;C=y;y=d[s>>0]|0;c[t>>2]=z-B-(B<<2)+y+((b+f|0)*20|0);B=y+b|0;D=b;b=d[s+1>>0]|0;c[t+4>>2]=C-B+b-(B<<2)+((f+q|0)*20|0);B=b+f|0;C=f;f=d[s+2>>0]|0;c[t+8>>2]=D-B+f-(B<<2)+((y+q|0)*20|0);B=f+q|0;D=d[s+3>>0]|0;c[t+12>>2]=C-B+D-(B<<2)+((b+y|0)*20|0);A=A+-1|0;if(!A)break;else{B=q;t=t+16|0;s=s+4|0;q=D;z=B}}w=p;x=g+j|0}r=r+-1|0;if(!r)break;else{h=w;g=x+v|0}}}v=l>>>2;if(!v){i=m;return}l=(k|0)==0;x=64-k|0;g=k*3|0;w=0-k|0;h=w<<1;r=k<<1;j=e;e=o+(k<<2)|0;u=o+(k*6<<2)|0;o=v;while(1){if(l){E=j;F=e;G=u}else{v=j+k|0;n=j;z=e;q=u;s=k;while(1){t=c[q+(h<<2)>>2]|0;A=c[q+(w<<2)>>2]|0;y=c[q+(k<<2)>>2]|0;b=c[q>>2]|0;f=y+t|0;B=c[z+(r<<2)>>2]|0;a[n+48>>0]=a[((c[q+(r<<2)>>2]|0)+512-f-(f<<2)+B+((b+A|0)*20|0)>>10)+3984>>0]|0;f=B+b|0;D=c[z+(k<<2)>>2]|0;a[n+32>>0]=a[(y+512-f-(f<<2)+D+((A+t|0)*20|0)>>10)+3984>>0]|0;f=c[z>>2]|0;y=D+A|0;a[n+16>>0]=a[(b+512-y-(y<<2)+f+((B+t|0)*20|0)>>10)+3984>>0]|0;y=f+t|0;a[n>>0]=a[(A+512-y-(y<<2)+(c[z+(w<<2)>>2]|0)+((D+B|0)*20|0)>>10)+3984>>0]|0;s=s+-1|0;if(!s)break;else{n=n+1|0;z=z+4|0;q=q+4|0}}E=v;F=e+(k<<2)|0;G=u+(k<<2)|0}o=o+-1|0;if(!o)break;else{j=E+x|0;e=F+(g<<2)|0;u=G+(g<<2)|0}}i=m;return}function dc(b,e,f,g,h,j,k,l,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;n=i;i=i+1792|0;o=n+1344|0;p=n;if(((f|0)>=0?!((f+5+k|0)>>>0>h>>>0|(g|0)<0):0)?(g+5+l|0)>>>0<=j>>>0:0){q=l+5|0;r=b;s=h;t=f+5|0;u=g}else{v=k+5|0;w=l+5|0;Wb(b,o,f,g,h,j,v,w,v);q=w;r=o;s=v;t=5;u=0}if(q){v=k>>>2;o=(v|0)==0;w=s-k|0;j=v<<2;h=p;g=r+(t+(Z(u,s)|0))|0;s=q;while(1){if(o){x=h;y=g}else{q=h+(j<<2)|0;u=h;t=g;r=d[g+-1>>0]|0;f=d[g+-2>>0]|0;b=d[g+-3>>0]|0;z=d[g+-4>>0]|0;A=d[g+-5>>0]|0;B=v;while(1){C=z+r|0;D=z;z=d[t>>0]|0;c[u>>2]=A-C-(C<<2)+z+((b+f|0)*20|0);C=z+b|0;E=b;b=d[t+1>>0]|0;c[u+4>>2]=D-C+b-(C<<2)+((f+r|0)*20|0);C=b+f|0;D=f;f=d[t+2>>0]|0;c[u+8>>2]=E-C+f-(C<<2)+((z+r|0)*20|0);C=f+r|0;E=d[t+3>>0]|0;c[u+12>>2]=D-C+E-(C<<2)+((b+z|0)*20|0);B=B+-1|0;if(!B)break;else{C=r;u=u+16|0;t=t+4|0;r=E;A=C}}x=q;y=g+j|0}s=s+-1|0;if(!s)break;else{h=x;g=y+w|0}}}w=l>>>2;if(!w){i=n;return}l=(k|0)==0;y=64-k|0;g=k*3|0;x=0-k|0;h=x<<1;s=k<<1;j=e;e=p+(k<<2)|0;v=p+((Z(m+2|0,k)|0)+k<<2)|0;m=p+(k*6<<2)|0;p=w;while(1){if(l){F=j;G=e;H=v;I=m}else{w=v+(k<<2)|0;o=j+k|0;A=j;r=e;t=v;u=m;B=k;while(1){z=c[u+(h<<2)>>2]|0;b=c[u+(x<<2)>>2]|0;f=c[u+(k<<2)>>2]|0;C=c[u>>2]|0;E=f+z|0;D=c[r+(s<<2)>>2]|0;a[A+48>>0]=((d[((c[u+(s<<2)>>2]|0)+512-E-(E<<2)+D+((C+b|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[t+(s<<2)>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;E=D+C|0;J=c[r+(k<<2)>>2]|0;a[A+32>>0]=((d[(f+512-E-(E<<2)+J+((b+z|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[t+(k<<2)>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;E=c[r>>2]|0;f=J+b|0;a[A+16>>0]=((d[(C+512-f-(f<<2)+E+((D+z|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[t>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;f=E+z|0;a[A>>0]=((d[(b+512-f-(f<<2)+(c[r+(x<<2)>>2]|0)+((J+D|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[t+(x<<2)>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;B=B+-1|0;if(!B)break;else{A=A+1|0;r=r+4|0;t=t+4|0;u=u+4|0}}F=o;G=e+(k<<2)|0;H=w;I=m+(k<<2)|0}p=p+-1|0;if(!p)break;else{j=F+y|0;e=G+(g<<2)|0;v=H+(g<<2)|0;m=I+(g<<2)|0}}i=n;return}function ec(b,e,f,g,h,j,k,l,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;n=i;i=i+1792|0;o=n+1344|0;p=n;q=k+5|0;if(((f|0)>=0?!((f+5+k|0)>>>0>h>>>0|(g|0)<0):0)?(g+5+l|0)>>>0<=j>>>0:0){r=b;s=h;t=f;u=g}else{Wb(b,o,f,g,h,j,q,l+5|0,q);r=o;s=q;t=0;u=0}o=t+s+(Z(u,s)|0)|0;u=l>>>2;if(u){t=(q|0)==0;j=(s<<2)-k+-5|0;h=q*3|0;g=0-s|0;f=g<<1;b=s<<1;v=q<<1;w=-5-k|0;x=p+(q<<2)|0;y=r+o|0;z=r+(o+(s*5|0))|0;o=u;while(1){if(t){A=x;B=y;C=z}else{u=x+(q<<2)|0;r=x;D=y;E=z;F=q;while(1){G=d[E+f>>0]|0;H=d[E+g>>0]|0;I=d[E+s>>0]|0;J=d[E>>0]|0;K=I+G|0;L=d[D+b>>0]|0;c[r+(v<<2)>>2]=(d[E+b>>0]|0)-K-(K<<2)+L+((J+H|0)*20|0);K=L+J|0;M=d[D+s>>0]|0;c[r+(q<<2)>>2]=I-K+M-(K<<2)+((H+G|0)*20|0);K=d[D>>0]|0;I=M+H|0;c[r>>2]=J-I+K-(I<<2)+((L+G|0)*20|0);I=K+G|0;c[r+(w<<2)>>2]=H-I+(d[D+g>>0]|0)-(I<<2)+((M+L|0)*20|0);F=F+-1|0;if(!F)break;else{r=r+4|0;D=D+1|0;E=E+1|0}}A=u;B=y+q|0;C=z+q|0}o=o+-1|0;if(!o)break;else{x=A+(h<<2)|0;y=B+j|0;z=C+j|0}}}if(!l){i=n;return}j=k>>>2;C=(j|0)==0;z=16-k|0;k=j<<2;B=e;e=p+(m+2<<2)|0;m=p+20|0;p=l;while(1){if(C){N=B;O=e;P=m}else{l=e+(k<<2)|0;y=B;h=e;A=m;x=c[m+-4>>2]|0;o=c[m+-8>>2]|0;q=c[m+-12>>2]|0;g=c[m+-16>>2]|0;w=c[m+-20>>2]|0;s=j;while(1){b=g+x|0;v=g;g=c[A>>2]|0;a[y>>0]=((d[(w+512-b-(b<<2)+g+((q+o|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[h>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;b=g+q|0;f=q;q=c[A+4>>2]|0;a[y+1>>0]=((d[(v+512-b-(b<<2)+q+((o+x|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[h+4>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;b=q+o|0;v=o;o=c[A+8>>2]|0;a[y+2>>0]=((d[(f+512-b-(b<<2)+o+((g+x|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[h+8>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;b=o+x|0;f=c[A+12>>2]|0;a[y+3>>0]=((d[(v+512-b-(b<<2)+f+((q+g|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[h+12>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;s=s+-1|0;if(!s)break;else{b=x;y=y+4|0;h=h+16|0;A=A+16|0;x=f;w=b}}N=B+k|0;O=l;P=m+(k<<2)|0}p=p+-1|0;if(!p)break;else{B=N+z|0;e=O+20|0;m=P+20|0}}i=n;return}function fc(a,d,e,f,g,h,j,k,l){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;m=i;n=a+((j<<4)+h)|0;o=b[d>>1]|0;p=d+2|0;q=b[p>>1]|0;r=e+4|0;s=c[r>>2]<<4;t=e+8|0;u=c[t>>2]<<4;v=h+f|0;f=v+(o>>2)|0;w=j+g|0;g=w+(q>>2)|0;do switch(c[6800+((o&3)<<4)+((q&3)<<2)>>2]|0){case 7:{bc(c[e>>2]|0,n,f+-2|0,g+-2|0,s,u,k,l,2);break}case 11:{dc(c[e>>2]|0,n,f+-2|0,g+-2|0,s,u,k,l,1);break}case 8:{$b(c[e>>2]|0,n,f+-2|0,g,s,u,k,l);break}case 0:{Wb(c[e>>2]|0,n,f,g,s,u,k,l,16);break}case 3:{_b(c[e>>2]|0,n,f,g+-2|0,s,u,k,l,1);break}case 4:{ac(c[e>>2]|0,n,f+-2|0,g,s,u,k,l,0);break}case 13:{bc(c[e>>2]|0,n,f+-2|0,g+-2|0,s,u,k,l,1);break}case 10:{cc(c[e>>2]|0,n,f+-2|0,g+-2|0,s,u,k,l);break}case 14:{ec(c[e>>2]|0,n,f+-2|0,g+-2|0,s,u,k,l,1);break}case 6:{ec(c[e>>2]|0,n,f+-2|0,g+-2|0,s,u,k,l,0);break}case 2:{Zb(c[e>>2]|0,n,f,g+-2|0,s,u,k,l);break}case 12:{ac(c[e>>2]|0,n,f+-2|0,g,s,u,k,l,1);break}case 1:{_b(c[e>>2]|0,n,f,g+-2|0,s,u,k,l,0);break}case 5:{bc(c[e>>2]|0,n,f+-2|0,g+-2|0,s,u,k,l,0);break}case 9:{dc(c[e>>2]|0,n,f+-2|0,g+-2|0,s,u,k,l,0);break}default:bc(c[e>>2]|0,n,f+-2|0,g+-2|0,s,u,k,l,3)}while(0);u=(h>>>1)+256+(j>>>1<<3)|0;j=a+u|0;h=c[r>>2]|0;r=h<<3;s=c[t>>2]|0;t=s<<3;g=b[d>>1]|0;d=(g>>3)+(v>>>1)|0;v=b[p>>1]|0;p=(v>>3)+(w>>>1)|0;w=g&7;g=v&7;v=k>>>1;k=l>>>1;l=c[e>>2]|0;e=Z(h<<8,s)|0;s=l+e|0;h=(w|0)!=0;f=(g|0)!=0;if(h&f){Yb(s,j,d,p,r,t,w,g,v,k);i=m;return}if(h){Vb(s,j,d,p,r,t,w,v,k);i=m;return}if(f){Xb(s,j,d,p,r,t,g,v,k);i=m;return}else{Wb(s,j,d,p,r,t,v,k,8);Wb(l+((Z(t,r)|0)+e)|0,a+(u+64)|0,d,p,r,t,v,k,8);i=m;return}}function gc(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;if(!d)h=c;else{qd(c|0,a[b>>0]|0,d|0)|0;h=c+d|0}if(!e){j=h;k=b}else{d=h+e|0;c=e;l=h;h=b;while(1){a[l>>0]=a[h>>0]|0;c=c+-1|0;if(!c)break;else{l=l+1|0;h=h+1|0}}j=d;k=b+e|0}if(!f){i=g;return}qd(j|0,a[k+-1>>0]|0,f|0)|0;i=g;return}function hc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;e=i;kd(b,a,d);i=e;return}function ic(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;f=i;g=c[a+40>>2]|0;if(g){h=c[a>>2]|0;j=a+32|0;k=0;do{if(((c[h+(k*40|0)+20>>2]|0)+-1|0)>>>0<2){l=c[h+(k*40|0)+12>>2]|0;if(l>>>0>d>>>0)m=l-(c[j>>2]|0)|0;else m=l;c[h+(k*40|0)+8>>2]=m}k=k+1|0}while((k|0)!=(g|0))}if(!(c[b>>2]|0)){n=0;i=f;return n|0}g=c[b+4>>2]|0;if(g>>>0>=3){n=0;i=f;return n|0}k=a+32|0;m=a+24|0;h=a+4|0;j=g;g=d;l=0;while(1){a:do if(j>>>0<2){o=c[b+(l*12|0)+8>>2]|0;if(!j){p=g-o|0;if((p|0)<0)q=(c[k>>2]|0)+p|0;else q=p}else{p=o+g|0;o=c[k>>2]|0;q=p-((p|0)<(o|0)?0:o)|0}if(q>>>0>d>>>0)r=q-(c[k>>2]|0)|0;else r=q;o=c[m>>2]|0;p=0;while(1){s=p>>>0>>0;t=0;while(1){if(!(s&(t|0)==0)){u=t;v=p;w=q;break a}x=c[a>>2]|0;if(((c[x+(p*40|0)+20>>2]|0)+-1|0)>>>0>=2)break;if((c[x+(p*40|0)+8>>2]|0)==(r|0))t=1;else break}p=p+1|0}}else{p=c[b+(l*12|0)+12>>2]|0;o=c[m>>2]|0;t=0;while(1){s=t>>>0>>0;x=0;while(1){if(!(s&(x|0)==0)){u=x;v=t;w=g;break a}y=c[a>>2]|0;if((c[y+(t*40|0)+20>>2]|0)!=3)break;if((c[y+(t*40|0)+8>>2]|0)==(p|0))x=1;else break}t=t+1|0}}while(0);t=(u|0)==0?-1:v;if((t|0)<0){n=1;z=40;break}p=c[a>>2]|0;if((c[p+(t*40|0)+20>>2]|0)>>>0<=1){n=1;z=40;break}if(l>>>0>>0){o=e;do{x=o;o=o+-1|0;s=c[h>>2]|0;c[s+(x<<2)>>2]=c[s+(o<<2)>>2]}while(o>>>0>l>>>0);A=c[a>>2]|0}else A=p;c[(c[h>>2]|0)+(l<<2)>>2]=A+(t*40|0);l=l+1|0;if(l>>>0<=e>>>0){o=l;s=l;while(1){x=c[h>>2]|0;y=c[x+(o<<2)>>2]|0;if((y|0)==((c[a>>2]|0)+(t*40|0)|0))B=s;else{c[x+(s<<2)>>2]=y;B=s+1|0}o=o+1|0;if(o>>>0>e>>>0)break;else s=B}}j=c[b+(l*12|0)+4>>2]|0;if(j>>>0>=3){n=0;z=40;break}else g=w}if((z|0)==40){i=f;return n|0}return 0}function jc(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;k=i;l=a+8|0;m=c[l>>2]|0;if((c[d>>2]|0)!=(c[m>>2]|0)){n=1;i=k;return n|0}d=a+52|0;c[d>>2]=0;o=a+56|0;p=(c[o>>2]|0)==0;q=p&1;do if(!b){c[m+20>>2]=0;c[m+12>>2]=e;c[m+8>>2]=e;c[m+16>>2]=f;c[m+24>>2]=q;if(p){r=a+44|0;c[r>>2]=(c[r>>2]|0)+1;s=0}else s=0}else{if(g){r=a+20|0;c[r>>2]=0;t=a+16|0;c[t>>2]=0;u=c[a>>2]|0;v=a+44|0;w=0;do{x=u+(w*40|0)+20|0;if((c[x>>2]|0)!=0?(c[x>>2]=0,(c[u+(w*40|0)+24>>2]|0)==0):0)c[v>>2]=(c[v>>2]|0)+-1;w=w+1|0}while((w|0)!=16);do{}while((tc(a)|0)==0);w=a+40|0;c[w>>2]=0;u=a+36|0;c[u>>2]=65535;c[a+48>>2]=0;if(!((c[b>>2]|0)==0?(c[o>>2]|0)==0:0)){c[t>>2]=0;c[r>>2]=0}x=(c[b+4>>2]|0)==0;y=c[l>>2]|0;c[y+20>>2]=x?2:3;c[u>>2]=x?65535:0;c[y+12>>2]=0;c[y+8>>2]=0;c[y+16>>2]=0;c[y+24>>2]=q;c[v>>2]=1;c[w>>2]=1;s=0;break}if(!(c[b+8>>2]|0)){w=a+40|0;y=c[w>>2]|0;x=c[a+24>>2]|0;if(y>>>0>=x>>>0)if(y){u=c[a>>2]|0;z=0;A=-1;B=0;while(1){if(((c[u+(z*40|0)+20>>2]|0)+-1|0)>>>0<2){C=c[u+(z*40|0)+8>>2]|0;D=(C|0)<(B|0)|(A|0)==-1;E=D?z:A;F=D?C:B}else{E=A;F=B}z=z+1|0;if((z|0)==(y|0))break;else{A=E;B=F}}if((E|0)>-1){B=y+-1|0;c[u+(E*40|0)+20>>2]=0;c[w>>2]=B;if(!(c[u+(E*40|0)+24>>2]|0)){A=a+44|0;c[A>>2]=(c[A>>2]|0)+-1;G=B;H=x;I=e;J=0}else{G=B;H=x;I=e;J=0}}else{G=y;H=x;I=e;J=1}}else{G=0;H=x;I=e;J=1}else{G=y;H=x;I=e;J=0}}else{B=a+24|0;A=a+40|0;z=a+44|0;v=a+36|0;r=a+48|0;t=e;C=0;D=0;a:while(1){switch(c[b+(C*20|0)+12>>2]|0){case 5:{K=c[a>>2]|0;L=0;do{M=K+(L*40|0)+20|0;if((c[M>>2]|0)!=0?(c[M>>2]=0,(c[K+(L*40|0)+24>>2]|0)==0):0)c[z>>2]=(c[z>>2]|0)+-1;L=L+1|0}while((L|0)!=16);do{}while((tc(a)|0)==0);c[A>>2]=0;c[v>>2]=65535;c[r>>2]=0;c[d>>2]=1;N=0;O=D;break}case 1:{L=t-(c[b+(C*20|0)+16>>2]|0)|0;K=c[B>>2]|0;M=0;b:while(1){P=M>>>0>>0;Q=1;while(1){if(!(P&Q))break b;R=c[a>>2]|0;if(((c[R+(M*40|0)+20>>2]|0)+-1|0)>>>0>=2)break;if((c[R+(M*40|0)+8>>2]|0)==(L|0))Q=0;else break}M=M+1|0}L=Q?-1:M;if((L|0)<0){S=1;break a}K=c[a>>2]|0;c[K+(L*40|0)+20>>2]=0;c[A>>2]=(c[A>>2]|0)+-1;if(!(c[K+(L*40|0)+24>>2]|0)){c[z>>2]=(c[z>>2]|0)+-1;N=t;O=D}else{N=t;O=D}break}case 6:{L=c[b+(C*20|0)+24>>2]|0;K=c[v>>2]|0;if((K|0)==65535|K>>>0>>0){T=1;U=90;break a}K=c[B>>2]|0;c:do if(K){P=c[a>>2]|0;R=0;while(1){V=P+(R*40|0)+20|0;if((c[V>>2]|0)==3?(c[P+(R*40|0)+8>>2]|0)==(L|0):0)break;W=R+1|0;if(W>>>0>>0)R=W;else{X=K;U=77;break c}}c[V>>2]=0;W=(c[A>>2]|0)+-1|0;c[A>>2]=W;if(!(c[P+(R*40|0)+24>>2]|0)){c[z>>2]=(c[z>>2]|0)+-1;Y=W;Z=K}else{Y=W;Z=K}}else{X=0;U=77}while(0);if((U|0)==77){U=0;Y=c[A>>2]|0;Z=X}if(Y>>>0>=Z>>>0){T=1;U=90;break a}K=c[l>>2]|0;c[K+12>>2]=t;c[K+8>>2]=L;c[K+16>>2]=f;c[K+20>>2]=3;c[K+24>>2]=(c[o>>2]|0)==0&1;c[A>>2]=Y+1;c[z>>2]=(c[z>>2]|0)+1;N=t;O=1;break}case 2:{K=c[b+(C*20|0)+20>>2]|0;M=c[B>>2]|0;W=0;d:while(1){_=W>>>0>>0;$=1;while(1){if(!(_&$))break d;aa=c[a>>2]|0;if((c[aa+(W*40|0)+20>>2]|0)!=3)break;if((c[aa+(W*40|0)+8>>2]|0)==(K|0))$=0;else break}W=W+1|0}K=$?-1:W;if((K|0)<0){S=1;break a}M=c[a>>2]|0;c[M+(K*40|0)+20>>2]=0;c[A>>2]=(c[A>>2]|0)+-1;if(!(c[M+(K*40|0)+24>>2]|0)){c[z>>2]=(c[z>>2]|0)+-1;N=t;O=D}else{N=t;O=D}break}case 0:{T=0;U=90;break a;break}case 4:{K=c[b+(C*20|0)+28>>2]|0;c[v>>2]=K;M=c[B>>2]|0;if(!M){N=t;O=D}else{L=c[a>>2]|0;_=K;R=0;while(1){P=L+(R*40|0)+20|0;do if((c[P>>2]|0)==3){if((c[L+(R*40|0)+8>>2]|0)>>>0<=K>>>0)if((_|0)==65535)ba=65535;else{ca=_;break}else ba=_;c[P>>2]=0;c[A>>2]=(c[A>>2]|0)+-1;if(!(c[L+(R*40|0)+24>>2]|0)){c[z>>2]=(c[z>>2]|0)+-1;ca=ba}else ca=ba}else ca=_;while(0);R=R+1|0;if((R|0)==(M|0)){N=t;O=D;break}else _=ca}}break}case 3:{_=c[b+(C*20|0)+16>>2]|0;M=c[b+(C*20|0)+24>>2]|0;R=c[v>>2]|0;if((R|0)==65535|R>>>0>>0){S=1;break a}R=c[B>>2]|0;e:do if(R){L=c[a>>2]|0;K=0;while(1){da=L+(K*40|0)+20|0;if((c[da>>2]|0)==3?(c[L+(K*40|0)+8>>2]|0)==(M|0):0)break;W=K+1|0;if(W>>>0>>0)K=W;else{ea=R;break e}}c[da>>2]=0;c[A>>2]=(c[A>>2]|0)+-1;if(!(c[L+(K*40|0)+24>>2]|0)){c[z>>2]=(c[z>>2]|0)+-1;ea=R}else ea=R}else ea=0;while(0);R=t-_|0;W=0;f:while(1){P=W>>>0>>0;fa=1;while(1){if(!(P&fa))break f;aa=c[a>>2]|0;if(((c[aa+(W*40|0)+20>>2]|0)+-1|0)>>>0>=2)break;if((c[aa+(W*40|0)+8>>2]|0)==(R|0))fa=0;else break}W=W+1|0}R=fa?-1:W;if((R|0)<0){S=1;break a}_=c[a>>2]|0;P=_+(R*40|0)+20|0;if((c[P>>2]|0)>>>0<=1){S=1;break a}c[P>>2]=3;c[_+(R*40|0)+8>>2]=M;N=t;O=D;break}default:{S=1;break a}}t=N;C=C+1|0;D=O}if((U|0)==90)S=T;if(D){s=S;break}G=c[A>>2]|0;H=c[B>>2]|0;I=t;J=S}if(G>>>0>>0){C=c[l>>2]|0;c[C+12>>2]=I;c[C+8>>2]=I;c[C+16>>2]=f;c[C+20>>2]=2;c[C+24>>2]=q;C=a+44|0;c[C>>2]=(c[C>>2]|0)+1;c[a+40>>2]=G+1;s=J}else s=1}while(0);J=c[l>>2]|0;c[J+36>>2]=g;c[J+28>>2]=h;c[J+32>>2]=j;if(!(c[o>>2]|0)){o=a+44|0;l=a+28|0;G=c[l>>2]|0;if((c[o>>2]|0)>>>0>G>>>0){do{tc(a)|0;q=c[l>>2]|0}while((c[o>>2]|0)>>>0>q>>>0);ga=q}else ga=G}else{G=a+16|0;o=c[G>>2]|0;l=c[a+12>>2]|0;c[l+(o<<4)>>2]=c[J>>2];c[l+(o<<4)+12>>2]=g;c[l+(o<<4)+4>>2]=h;c[l+(o<<4)+8>>2]=j;c[G>>2]=o+1;ga=c[a+28>>2]|0}uc(c[a>>2]|0,ga+1|0);n=s;i=k;return n|0}function kc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;if((b>>>0<=16?(e=c[(c[a+4>>2]|0)+(b<<2)>>2]|0,(e|0)!=0):0)?(c[e+20>>2]|0)>>>0>1:0)f=c[e>>2]|0;else f=0;i=d;return f|0}function lc(a){a=a|0;var b=0;b=(c[a>>2]|0)+((c[a+28>>2]|0)*40|0)|0;c[a+8>>2]=b;return c[b>>2]|0}function mc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;c[a+36>>2]=65535;j=e>>>0>1?e:1;c[a+24>>2]=j;e=a+28|0;c[e>>2]=(g|0)==0?d:j;c[a+32>>2]=f;c[a+56>>2]=g;c[a+44>>2]=0;c[a+40>>2]=0;c[a+48>>2]=0;g=id(680)|0;c[a>>2]=g;if(!g){k=65535;i=h;return k|0}ld(g,0,680);a:do if((c[e>>2]|0)!=-1){g=b*384|47;f=0;while(1){j=id(g)|0;d=c[a>>2]|0;c[d+(f*40|0)+4>>2]=j;if(!j){k=65535;break}c[d+(f*40|0)>>2]=j+(0-j&15);f=f+1|0;if(f>>>0>=((c[e>>2]|0)+1|0)>>>0)break a}i=h;return k|0}while(0);b=a+4|0;c[b>>2]=id(68)|0;f=id((c[e>>2]<<4)+16|0)|0;c[a+12>>2]=f;e=c[b>>2]|0;if((e|0)==0|(f|0)==0){k=65535;i=h;return k|0}ld(e,0,68);c[a+20>>2]=0;c[a+16>>2]=0;k=0;i=h;return k|0}function nc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;oc(a);h=mc(a,b,c,d,e,f)|0;i=g;return h|0}function oc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=i;d=c[a>>2]|0;if(d){e=a+28|0;if((c[e>>2]|0)==-1)f=d;else{g=d;d=0;while(1){jd(c[g+(d*40|0)+4>>2]|0);h=c[a>>2]|0;c[h+(d*40|0)+4>>2]=0;d=d+1|0;if(d>>>0>=((c[e>>2]|0)+1|0)>>>0){f=h;break}else g=h}}}else f=0;jd(f);c[a>>2]=0;f=a+4|0;jd(c[f>>2]|0);c[f>>2]=0;f=a+12|0;jd(c[f>>2]|0);c[f>>2]=0;i=b;return}function pc(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;d=c[a+40>>2]|0;if(!d){i=b;return}e=a+4|0;f=0;do{c[(c[e>>2]|0)+(f<<2)>>2]=(c[a>>2]|0)+(f*40|0);f=f+1|0}while(f>>>0>>0);i=b;return}function qc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;f=i;g=a+16|0;c[g>>2]=0;c[a+20>>2]=0;if(!e){h=0;i=f;return h|0}e=a+48|0;j=c[e>>2]|0;k=(j|0)==(b|0);a:do if(!k?(l=a+32|0,m=c[l>>2]|0,n=((j+1|0)>>>0)%(m>>>0)|0,(n|0)!=(b|0)):0){o=a+28|0;p=c[(c[a>>2]|0)+((c[o>>2]|0)*40|0)>>2]|0;q=a+40|0;r=a+24|0;s=a+44|0;t=m;m=n;while(1){n=c[q>>2]|0;if(!n)u=0;else{v=c[a>>2]|0;w=0;do{if(((c[v+(w*40|0)+20>>2]|0)+-1|0)>>>0<2){x=c[v+(w*40|0)+12>>2]|0;c[v+(w*40|0)+8>>2]=x-(x>>>0>m>>>0?t:0)}w=w+1|0}while((w|0)!=(n|0));u=n}if(u>>>0>=(c[r>>2]|0)>>>0){if(!u){h=1;y=38;break}n=c[a>>2]|0;w=0;v=-1;x=0;while(1){if(((c[n+(w*40|0)+20>>2]|0)+-1|0)>>>0<2){z=c[n+(w*40|0)+8>>2]|0;A=(z|0)<(x|0)|(v|0)==-1;B=A?w:v;C=A?z:x}else{B=v;C=x}w=w+1|0;if((w|0)==(u|0))break;else{v=B;x=C}}if((B|0)<=-1){h=1;y=38;break}x=u+-1|0;c[n+(B*40|0)+20>>2]=0;c[q>>2]=x;if(!(c[n+(B*40|0)+24>>2]|0)){c[s>>2]=(c[s>>2]|0)+-1;D=x}else D=x}else D=u;x=c[s>>2]|0;v=c[o>>2]|0;if(x>>>0>>0){E=v;F=x;G=D}else{do{tc(a)|0;H=c[s>>2]|0;I=c[o>>2]|0}while(H>>>0>=I>>>0);E=I;F=H;G=c[q>>2]|0}n=c[a>>2]|0;c[n+(E*40|0)+20>>2]=1;c[n+(E*40|0)+12>>2]=m;c[n+(E*40|0)+8>>2]=m;c[n+(E*40|0)+16>>2]=0;c[n+(E*40|0)+24>>2]=0;c[s>>2]=F+1;c[q>>2]=G+1;uc(n,E+1|0);t=c[l>>2]|0;m=((m+1|0)>>>0)%(t>>>0)|0;if((m|0)==(b|0)){y=23;break}}if((y|0)==23){m=c[g>>2]|0;if(!m){y=33;break}t=c[a+12>>2]|0;l=c[o>>2]|0;q=c[a>>2]|0;s=q+(l*40|0)|0;r=c[s>>2]|0;n=0;while(1){if((c[t+(n<<4)>>2]|0)==(r|0))break;n=n+1|0;if(n>>>0>=m>>>0){y=33;break a}}if(!l){y=33;break}else J=0;while(1){K=q+(J*40|0)|0;J=J+1|0;if((c[K>>2]|0)==(p|0))break;if(J>>>0>=l>>>0){y=33;break a}}c[K>>2]=r;c[s>>2]=p;y=33;break}else if((y|0)==38){i=f;return h|0}}else y=31;while(0);if((y|0)==31)if(d)if(k){h=1;i=f;return h|0}else y=33;else L=j;do if((y|0)==33){if(!d){L=c[e>>2]|0;break}c[e>>2]=b;h=0;i=f;return h|0}while(0);if((L|0)==(b|0)){h=0;i=f;return h|0}L=c[a+32>>2]|0;c[e>>2]=((b+-1+L|0)>>>0)%(L>>>0)|0;h=0;i=f;return h|0}function rc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;d=a+20|0;e=c[d>>2]|0;if(e>>>0>=(c[a+16>>2]|0)>>>0){f=0;i=b;return f|0}g=c[a+12>>2]|0;c[d>>2]=e+1;f=g+(e<<4)|0;i=b;return f|0}function sc(a){a=a|0;var b=0;b=i;if(!(c[a>>2]|0)){i=b;return}c[a+60>>2]=1;do{}while((tc(a)|0)==0);i=b;return}function tc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;b=i;if(c[a+56>>2]|0){d=1;i=b;return d|0}e=c[a>>2]|0;f=c[a+28>>2]|0;g=0;h=2147483647;j=0;while(1){if(!(c[e+(g*40|0)+24>>2]|0)){k=h;l=j}else{m=c[e+(g*40|0)+16>>2]|0;n=(m|0)<(h|0);k=n?m:h;l=n?e+(g*40|0)|0:j}g=g+1|0;if(g>>>0>f>>>0)break;else{h=k;j=l}}if(!l){d=1;i=b;return d|0}j=a+16|0;k=c[j>>2]|0;h=c[a+12>>2]|0;c[h+(k<<4)>>2]=c[l>>2];c[h+(k<<4)+12>>2]=c[l+36>>2];c[h+(k<<4)+4>>2]=c[l+28>>2];c[h+(k<<4)+8>>2]=c[l+32>>2];c[j>>2]=k+1;c[l+24>>2]=0;if(c[l+20>>2]|0){d=0;i=b;return d|0}l=a+44|0;c[l>>2]=(c[l>>2]|0)+-1;d=0;i=b;return d|0}function uc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;d=i;i=i+32|0;e=d+16|0;f=d;g=7;do{if(g>>>0>>0){h=g;do{j=a+(h*40|0)|0;k=c[j>>2]|0;l=c[j+4>>2]|0;j=c[a+(h*40|0)+8>>2]|0;m=a+(h*40|0)+12|0;n=c[m+4>>2]|0;o=e;c[o>>2]=c[m>>2];c[o+4>>2]=n;n=c[a+(h*40|0)+20>>2]|0;o=c[a+(h*40|0)+24>>2]|0;m=a+(h*40|0)+28|0;c[f+0>>2]=c[m+0>>2];c[f+4>>2]=c[m+4>>2];c[f+8>>2]=c[m+8>>2];a:do if(h>>>0>>0){p=h;q=5}else{m=(n|0)==0;r=(o|0)==0;s=n+-1|0;t=s>>>0<2;u=h;b:while(1){v=u-g|0;w=c[a+(v*40|0)+20>>2]|0;do if(!w)if(m?(c[a+(v*40|0)+24>>2]|0)!=0|r:0)break b;else q=16;else{if(m)break b;x=w+-1|0;if((x|s)>>>0<2){y=c[a+(v*40|0)+8>>2]|0;if((y|0)>(j|0))break b;z=a+(u*40|0)|0;if((y|0)<(j|0)){A=z;break}else{B=z;break a}}if(x>>>0<2)break b;if(!t?(c[a+(v*40|0)+8>>2]|0)<=(j|0):0)break b;else q=16}while(0);if((q|0)==16){q=0;A=a+(u*40|0)|0}w=A+0|0;x=a+(v*40|0)+0|0;z=w+40|0;do{c[w>>2]=c[x>>2];w=w+4|0;x=x+4|0}while((w|0)<(z|0));if(v>>>0>>0){p=v;q=5;break a}else u=v}B=a+(u*40|0)|0}while(0);if((q|0)==5){q=0;B=a+(p*40|0)|0}t=B;c[t>>2]=k;c[t+4>>2]=l;c[B+8>>2]=j;t=e;s=c[t+4>>2]|0;m=B+12|0;c[m>>2]=c[t>>2];c[m+4>>2]=s;c[B+20>>2]=n;c[B+24>>2]=o;s=B+28|0;c[s+0>>2]=c[f+0>>2];c[s+4>>2]=c[f+4>>2];c[s+8>>2]=c[f+8>>2];h=h+1|0}while((h|0)!=(b|0))}g=g>>>1}while((g|0)!=0);i=d;return}function vc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;d=i;e=c[a+4>>2]|0;f=c[a+16>>2]|0;g=c[a+20>>2]|0;h=e<<2;j=b+256|0;k=16;l=c[a+12>>2]|0;a=b;while(1){m=c[a+4>>2]|0;c[l>>2]=c[a>>2];c[l+4>>2]=m;m=c[a+12>>2]|0;c[l+8>>2]=c[a+8>>2];c[l+12>>2]=m;k=k+-1|0;if(!k)break;else{l=l+(h<<2)|0;a=a+16|0}}a=e<<1&2147483646;h=c[b+260>>2]|0;c[f>>2]=c[j>>2];c[f+4>>2]=h;h=c[b+268>>2]|0;c[f+(a<<2)>>2]=c[b+264>>2];c[f+((a|1)<<2)>>2]=h;h=e<<2;j=c[b+276>>2]|0;c[f+(h<<2)>>2]=c[b+272>>2];c[f+((h|1)<<2)>>2]=j;j=h+a|0;h=c[b+284>>2]|0;c[f+(j<<2)>>2]=c[b+280>>2];c[f+((j|1)<<2)>>2]=h;h=j+a|0;j=c[b+292>>2]|0;c[f+(h<<2)>>2]=c[b+288>>2];c[f+((h|1)<<2)>>2]=j;j=h+a|0;h=c[b+300>>2]|0;c[f+(j<<2)>>2]=c[b+296>>2];c[f+((j|1)<<2)>>2]=h;h=j+a|0;j=c[b+308>>2]|0;c[f+(h<<2)>>2]=c[b+304>>2];c[f+((h|1)<<2)>>2]=j;j=h+a|0;h=c[b+316>>2]|0;c[f+(j<<2)>>2]=c[b+312>>2];c[f+((j|1)<<2)>>2]=h;h=c[b+324>>2]|0;c[g>>2]=c[b+320>>2];c[g+4>>2]=h;h=c[b+332>>2]|0;c[g+(a<<2)>>2]=c[b+328>>2];c[g+((a|1)<<2)>>2]=h;h=e<<2;e=c[b+340>>2]|0;c[g+(h<<2)>>2]=c[b+336>>2];c[g+((h|1)<<2)>>2]=e;e=h+a|0;h=c[b+348>>2]|0;c[g+(e<<2)>>2]=c[b+344>>2];c[g+((e|1)<<2)>>2]=h;h=e+a|0;e=c[b+356>>2]|0;c[g+(h<<2)>>2]=c[b+352>>2];c[g+((h|1)<<2)>>2]=e;e=h+a|0;h=c[b+364>>2]|0;c[g+(e<<2)>>2]=c[b+360>>2];c[g+((e|1)<<2)>>2]=h;h=e+a|0;e=c[b+372>>2]|0;c[g+(h<<2)>>2]=c[b+368>>2];c[g+((h|1)<<2)>>2]=e;e=h+a|0;a=c[b+380>>2]|0;c[g+(e<<2)>>2]=c[b+376>>2];c[g+((e|1)<<2)>>2]=a;i=d;return}function wc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;h=i;j=c[b+4>>2]|0;k=Z(c[b+8>>2]|0,j)|0;l=(e>>>0)%(j>>>0)|0;m=c[b>>2]|0;b=e-l|0;e=(b<<8)+(l<<4)|0;n=k<<8;o=l<<3;l=j<<4;p=j<<2&1073741820;q=p<<1;r=q+p|0;s=0;do{t=c[3344+(s<<2)>>2]|0;u=c[3408+(s<<2)>>2]|0;v=(u<<4)+t|0;w=f+v|0;x=e+t+(Z(u,l)|0)|0;u=m+x|0;t=c[g+(s<<6)>>2]|0;if((t|0)==16777215){y=c[f+(v+16)>>2]|0;c[u>>2]=c[w>>2];c[u+(p<<2)>>2]=y;y=c[f+(v+48)>>2]|0;c[u+(q<<2)>>2]=c[f+(v+32)>>2];c[u+(r<<2)>>2]=y}else{y=d[f+(v+1)>>0]|0;z=c[g+(s<<6)+4>>2]|0;a[u>>0]=a[3472+(t+512+(d[w>>0]|0))>>0]|0;w=d[f+(v+2)>>0]|0;t=c[g+(s<<6)+8>>2]|0;a[m+(x+1)>>0]=a[3472+((y|512)+z)>>0]|0;z=d[f+(v+3)>>0]|0;y=c[g+(s<<6)+12>>2]|0;a[m+(x+2)>>0]=a[3472+(t+512+w)>>0]|0;a[m+(x+3)>>0]=a[3472+(y+512+z)>>0]|0;z=x+l|0;x=d[f+(v+17)>>0]|0;y=c[g+(s<<6)+20>>2]|0;a[m+z>>0]=a[3472+((c[g+(s<<6)+16>>2]|0)+512+(d[f+(v+16)>>0]|0))>>0]|0;w=d[f+(v+18)>>0]|0;t=c[g+(s<<6)+24>>2]|0;a[m+(z+1)>>0]=a[3472+((x|512)+y)>>0]|0;y=d[f+(v+19)>>0]|0;x=c[g+(s<<6)+28>>2]|0;a[m+(z+2)>>0]=a[3472+(t+512+w)>>0]|0;a[m+(z+3)>>0]=a[3472+(x+512+y)>>0]|0;y=z+l|0;z=d[f+(v+33)>>0]|0;x=c[g+(s<<6)+36>>2]|0;a[m+y>>0]=a[3472+((c[g+(s<<6)+32>>2]|0)+512+(d[f+(v+32)>>0]|0))>>0]|0;w=d[f+(v+34)>>0]|0;t=c[g+(s<<6)+40>>2]|0;a[m+(y+1)>>0]=a[3472+((z|512)+x)>>0]|0;x=d[f+(v+35)>>0]|0;z=c[g+(s<<6)+44>>2]|0;a[m+(y+2)>>0]=a[3472+(t+512+w)>>0]|0;a[m+(y+3)>>0]=a[3472+(z+512+x)>>0]|0;x=y+l|0;y=d[f+(v+49)>>0]|0;z=c[g+(s<<6)+52>>2]|0;a[m+x>>0]=a[3472+((c[g+(s<<6)+48>>2]|0)+512+(d[f+(v+48)>>0]|0))>>0]|0;w=d[f+(v+50)>>0]|0;t=c[g+(s<<6)+56>>2]|0;a[m+(x+1)>>0]=a[3472+((y|512)+z)>>0]|0;z=d[f+(v+51)>>0]|0;v=c[g+(s<<6)+60>>2]|0;a[m+(x+2)>>0]=a[3472+(t+512+w)>>0]|0;a[m+(x+3)>>0]=a[3472+(v+512+z)>>0]|0}s=s+1|0}while((s|0)!=16);s=k<<6;k=j<<3&2147483640;j=f+256|0;l=f+320|0;f=o+n+(b<<6)|0;b=k>>>2;n=k>>>1;o=n+b|0;r=16;do{q=r&3;p=c[3344+(q<<2)>>2]|0;e=c[3408+(q<<2)>>2]|0;q=r>>>0>19;z=q?l:j;v=(e<<3)+p|0;x=z+v|0;w=f+(q?s:0)+p+(Z(e,k)|0)|0;e=m+w|0;p=c[g+(r<<6)>>2]|0;if((p|0)==16777215){q=c[z+(v+8)>>2]|0;c[e>>2]=c[x>>2];c[e+(b<<2)>>2]=q;q=c[z+(v+24)>>2]|0;c[e+(n<<2)>>2]=c[z+(v+16)>>2];c[e+(o<<2)>>2]=q}else{q=d[z+(v+1)>>0]|0;t=c[g+(r<<6)+4>>2]|0;a[e>>0]=a[3472+(p+512+(d[x>>0]|0))>>0]|0;x=d[z+(v+2)>>0]|0;p=c[g+(r<<6)+8>>2]|0;a[m+(w+1)>>0]=a[3472+((q|512)+t)>>0]|0;t=d[z+(v+3)>>0]|0;q=c[g+(r<<6)+12>>2]|0;a[m+(w+2)>>0]=a[3472+(p+512+x)>>0]|0;a[m+(w+3)>>0]=a[3472+(q+512+t)>>0]|0;t=w+k|0;w=d[z+(v+9)>>0]|0;q=c[g+(r<<6)+20>>2]|0;a[m+t>>0]=a[3472+((c[g+(r<<6)+16>>2]|0)+512+(d[z+(v+8)>>0]|0))>>0]|0;x=d[z+(v+10)>>0]|0;p=c[g+(r<<6)+24>>2]|0;a[m+(t+1)>>0]=a[3472+((w|512)+q)>>0]|0;q=d[z+(v+11)>>0]|0;w=c[g+(r<<6)+28>>2]|0;a[m+(t+2)>>0]=a[3472+(p+512+x)>>0]|0;a[m+(t+3)>>0]=a[3472+(w+512+q)>>0]|0;q=t+k|0;t=d[z+(v+17)>>0]|0;w=c[g+(r<<6)+36>>2]|0;a[m+q>>0]=a[3472+((c[g+(r<<6)+32>>2]|0)+512+(d[z+(v+16)>>0]|0))>>0]|0;x=d[z+(v+18)>>0]|0;p=c[g+(r<<6)+40>>2]|0;a[m+(q+1)>>0]=a[3472+((t|512)+w)>>0]|0;w=d[z+(v+19)>>0]|0;t=c[g+(r<<6)+44>>2]|0;a[m+(q+2)>>0]=a[3472+(p+512+x)>>0]|0;a[m+(q+3)>>0]=a[3472+(t+512+w)>>0]|0;w=q+k|0;q=d[z+(v+25)>>0]|0;t=c[g+(r<<6)+52>>2]|0;a[m+w>>0]=a[3472+((c[g+(r<<6)+48>>2]|0)+512+(d[z+(v+24)>>0]|0))>>0]|0;x=d[z+(v+26)>>0]|0;p=c[g+(r<<6)+56>>2]|0;a[m+(w+1)>>0]=a[3472+((q|512)+t)>>0]|0;t=d[z+(v+27)>>0]|0;v=c[g+(r<<6)+60>>2]|0;a[m+(w+2)>>0]=a[3472+(p+512+x)>>0]|0;a[m+(w+3)>>0]=a[3472+(v+512+t)>>0]|0}r=r+1|0}while((r|0)!=24);i=h;return}function xc(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0;g=i;i=i+176|0;h=g+40|0;j=g;k=c[e+4>>2]|0;l=e+8|0;m=c[l>>2]|0;n=Z(m,k)|0;if(!m){i=g;return}m=h+24|0;o=h+16|0;p=h+8|0;q=h+100|0;r=h+68|0;s=h+36|0;t=h+4|0;u=h+120|0;v=h+112|0;w=h+104|0;x=h+96|0;y=h+88|0;z=h+80|0;A=h+72|0;B=h+64|0;C=h+56|0;D=h+48|0;E=h+40|0;F=h+32|0;G=h+124|0;H=h+116|0;I=h+108|0;J=h+92|0;K=h+84|0;L=h+76|0;M=h+60|0;N=h+52|0;O=h+44|0;P=h+28|0;Q=h+20|0;R=h+12|0;S=j+28|0;T=j+32|0;U=j+24|0;V=k<<4;W=0-V|0;X=W<<1;Y=Z(k,-48)|0;_=k<<5;$=W<<2;aa=k*48|0;ba=k<<6;ca=j+24|0;da=j+12|0;ea=n<<8;fa=n<<6;n=k<<3;ga=V|4;ha=j+16|0;ia=j+20|0;ja=j+12|0;ka=j+4|0;la=j+8|0;ma=0;na=0;oa=f;while(1){f=c[oa+8>>2]|0;do if((f|0)!=1){pa=oa+200|0;qa=c[pa>>2]|0;do if(!qa)ra=1;else{if((f|0)==2?(c[oa+4>>2]|0)!=(c[qa+4>>2]|0):0){ra=1;break}ra=5}while(0);sa=oa+204|0;ta=c[sa>>2]|0;do if(!ta)ua=ra;else{if((f|0)==2?(c[oa+4>>2]|0)!=(c[ta+4>>2]|0):0){ua=ra;break}ua=ra|2}while(0);va=(ua&2|0)==0;do if(va){c[m>>2]=0;c[o>>2]=0;c[p>>2]=0;c[h>>2]=0;wa=0}else{if((c[oa>>2]|0)>>>0<=5?(c[ta>>2]|0)>>>0<=5:0){if((b[oa+28>>1]|0)==0?(b[ta+48>>1]|0)==0:0)if((c[oa+116>>2]|0)==(c[ta+124>>2]|0)?(xa=(b[oa+132>>1]|0)-(b[ta+172>>1]|0)|0,(((xa|0)>-1?xa:0-xa|0)|0)<=3):0){xa=(b[oa+134>>1]|0)-(b[ta+174>>1]|0)|0;ya=(((xa|0)>-1?xa:0-xa|0)|0)>3&1}else ya=1;else ya=2;c[h>>2]=ya;if((b[oa+30>>1]|0)==0?(b[ta+50>>1]|0)==0:0)if((c[oa+116>>2]|0)==(c[ta+124>>2]|0)?(xa=(b[oa+136>>1]|0)-(b[ta+176>>1]|0)|0,(((xa|0)>-1?xa:0-xa|0)|0)<=3):0){xa=(b[oa+138>>1]|0)-(b[ta+178>>1]|0)|0;za=(((xa|0)>-1?xa:0-xa|0)|0)>3&1}else za=1;else za=2;c[p>>2]=za;if((b[oa+36>>1]|0)==0?(b[ta+56>>1]|0)==0:0)if((c[oa+120>>2]|0)==(c[ta+128>>2]|0)?(xa=(b[oa+148>>1]|0)-(b[ta+188>>1]|0)|0,(((xa|0)>-1?xa:0-xa|0)|0)<=3):0){xa=(b[oa+150>>1]|0)-(b[ta+190>>1]|0)|0;Aa=(((xa|0)>-1?xa:0-xa|0)|0)>3&1}else Aa=1;else Aa=2;c[o>>2]=Aa;if((b[oa+38>>1]|0)==0?(b[ta+58>>1]|0)==0:0)if((c[oa+120>>2]|0)==(c[ta+128>>2]|0)?(xa=(b[oa+152>>1]|0)-(b[ta+192>>1]|0)|0,(((xa|0)>-1?xa:0-xa|0)|0)<=3):0){xa=(b[oa+154>>1]|0)-(b[ta+194>>1]|0)|0;Ba=(((xa|0)>-1?xa:0-xa|0)|0)>3&1}else Ba=1;else Ba=2;c[m>>2]=Ba;wa=(za|ya|Aa|Ba|0)!=0&1;break}c[m>>2]=4;c[o>>2]=4;c[p>>2]=4;c[h>>2]=4;wa=1}while(0);ta=(ua&4|0)==0;do if(ta){c[q>>2]=0;c[r>>2]=0;c[s>>2]=0;c[t>>2]=0;Ca=c[oa>>2]|0;Da=wa}else{xa=c[oa>>2]|0;if(xa>>>0<=5?(c[qa>>2]|0)>>>0<=5:0){if((b[oa+28>>1]|0)==0?(b[qa+38>>1]|0)==0:0)if((c[oa+116>>2]|0)==(c[qa+120>>2]|0)?(Ea=(b[oa+132>>1]|0)-(b[qa+152>>1]|0)|0,(((Ea|0)>-1?Ea:0-Ea|0)|0)<=3):0){Ea=(b[oa+134>>1]|0)-(b[qa+154>>1]|0)|0;Fa=(((Ea|0)>-1?Ea:0-Ea|0)|0)>3&1}else Fa=1;else Fa=2;c[t>>2]=Fa;if((b[oa+32>>1]|0)==0?(b[qa+42>>1]|0)==0:0)if((c[oa+116>>2]|0)==(c[qa+120>>2]|0)?(Ea=(b[oa+140>>1]|0)-(b[qa+160>>1]|0)|0,(((Ea|0)>-1?Ea:0-Ea|0)|0)<=3):0){Ea=(b[oa+142>>1]|0)-(b[qa+162>>1]|0)|0;Ga=(((Ea|0)>-1?Ea:0-Ea|0)|0)>3&1}else Ga=1;else Ga=2;c[s>>2]=Ga;if((b[oa+44>>1]|0)==0?(b[qa+54>>1]|0)==0:0)if((c[oa+124>>2]|0)==(c[qa+128>>2]|0)?(Ea=(b[oa+164>>1]|0)-(b[qa+184>>1]|0)|0,(((Ea|0)>-1?Ea:0-Ea|0)|0)<=3):0){Ea=(b[oa+166>>1]|0)-(b[qa+186>>1]|0)|0;Ha=(((Ea|0)>-1?Ea:0-Ea|0)|0)>3&1}else Ha=1;else Ha=2;c[r>>2]=Ha;if((b[oa+48>>1]|0)==0?(b[qa+58>>1]|0)==0:0)if((c[oa+124>>2]|0)==(c[qa+128>>2]|0)?(Ea=(b[oa+172>>1]|0)-(b[qa+192>>1]|0)|0,(((Ea|0)>-1?Ea:0-Ea|0)|0)<=3):0){Ea=(b[oa+174>>1]|0)-(b[qa+194>>1]|0)|0;Ia=(((Ea|0)>-1?Ea:0-Ea|0)|0)>3&1}else Ia=1;else Ia=2;c[q>>2]=Ia;if(wa){Ca=xa;Da=wa;break}Ca=xa;Da=(Ga|Fa|Ha|Ia|0)!=0&1;break}c[q>>2]=4;c[r>>2]=4;c[s>>2]=4;c[t>>2]=4;Ca=xa;Da=1}while(0);if(Ca>>>0<=5){do if((db(Ca)|0)!=1){qa=c[oa>>2]|0;if((qa|0)==3){xa=oa+28|0;Ea=b[oa+32>>1]|0;if(!(Ea<<16>>16))Ja=(b[xa>>1]|0)!=0?2:0;else Ja=2;c[F>>2]=Ja;Ka=b[oa+34>>1]|0;La=Ka<<16>>16==0;if(La)Ma=(b[oa+30>>1]|0)!=0?2:0;else Ma=2;c[E>>2]=Ma;Na=b[oa+40>>1]|0;if(!(Na<<16>>16))Pa=(b[oa+36>>1]|0)!=0?2:0;else Pa=2;c[D>>2]=Pa;Qa=b[oa+42>>1]|0;Ra=Qa<<16>>16==0;if(Ra)Sa=(b[oa+38>>1]|0)!=0?2:0;else Sa=2;c[C>>2]=Sa;Ta=b[oa+44>>1]|0;if(!(Ta<<16>>16))Ua=Ea<<16>>16!=0?2:0;else Ua=2;c[B>>2]=Ua;Va=b[oa+46>>1]|0;Wa=Va<<16>>16==0;if(Wa)Xa=Ka<<16>>16!=0?2:0;else Xa=2;c[A>>2]=Xa;Ya=b[oa+52>>1]|0;if(!(Ya<<16>>16))Za=Na<<16>>16!=0?2:0;else Za=2;c[z>>2]=Za;_a=b[oa+54>>1]|0;$a=_a<<16>>16==0;if($a)ab=Qa<<16>>16!=0?2:0;else ab=2;c[y>>2]=ab;Qa=b[oa+48>>1]|0;if(!(Qa<<16>>16))bb=Ta<<16>>16!=0?2:0;else bb=2;c[x>>2]=bb;cb=b[oa+50>>1]|0;eb=cb<<16>>16==0;if(eb)fb=Va<<16>>16!=0?2:0;else fb=2;c[w>>2]=fb;gb=b[oa+56>>1]|0;if(!(gb<<16>>16))hb=Ya<<16>>16!=0?2:0;else hb=2;c[v>>2]=hb;ib=(b[oa+58>>1]|0)==0;if(ib)jb=_a<<16>>16!=0?2:0;else jb=2;c[u>>2]=jb;_a=b[oa+30>>1]|0;if(!(_a<<16>>16))kb=(b[xa>>1]|0)!=0?2:0;else kb=2;c[R>>2]=kb;if(!(b[oa+38>>1]|0))lb=(b[oa+36>>1]|0)!=0?2:0;else lb=2;c[P>>2]=lb;if(La)mb=Ea<<16>>16!=0?2:0;else mb=2;c[O>>2]=mb;if(Ra)nb=Na<<16>>16!=0?2:0;else nb=2;c[M>>2]=nb;if(Wa)ob=Ta<<16>>16!=0?2:0;else ob=2;c[L>>2]=ob;if($a)pb=Ya<<16>>16!=0?2:0;else pb=2;c[J>>2]=pb;if(eb)qb=Qa<<16>>16!=0?2:0;else qb=2;c[I>>2]=qb;if(ib)rb=gb<<16>>16!=0?2:0;else rb=2;c[G>>2]=rb;ib=b[oa+150>>1]|0;Qa=b[oa+138>>1]|0;do if(!((b[oa+36>>1]|_a)<<16>>16)){eb=(b[oa+148>>1]|0)-(b[oa+136>>1]|0)|0;if((((eb|0)>-1?eb:0-eb|0)|0)>3){sb=1;break}eb=ib-Qa|0;if((((eb|0)>-1?eb:0-eb|0)|0)>3){sb=1;break}sb=(c[oa+120>>2]|0)!=(c[oa+116>>2]|0)&1}else sb=2;while(0);c[Q>>2]=sb;Qa=b[oa+158>>1]|0;ib=b[oa+146>>1]|0;do if(!((Na|Ka)<<16>>16)){_a=(b[oa+156>>1]|0)-(b[oa+144>>1]|0)|0;if((((_a|0)>-1?_a:0-_a|0)|0)>3){tb=1;break}_a=Qa-ib|0;if((((_a|0)>-1?_a:0-_a|0)|0)>3){tb=1;break}tb=(c[oa+120>>2]|0)!=(c[oa+116>>2]|0)&1}else tb=2;while(0);c[N>>2]=tb;ib=b[oa+182>>1]|0;Qa=b[oa+170>>1]|0;do if(!((Ya|Va)<<16>>16)){Ka=(b[oa+180>>1]|0)-(b[oa+168>>1]|0)|0;if((((Ka|0)>-1?Ka:0-Ka|0)|0)>3){ub=1;break}Ka=ib-Qa|0;if((((Ka|0)>-1?Ka:0-Ka|0)|0)>3){ub=1;break}ub=(c[oa+128>>2]|0)!=(c[oa+124>>2]|0)&1}else ub=2;while(0);c[K>>2]=ub;Qa=b[oa+190>>1]|0;ib=b[oa+178>>1]|0;do if(!((gb|cb)<<16>>16)){Va=(b[oa+188>>1]|0)-(b[oa+176>>1]|0)|0;if((((Va|0)>-1?Va:0-Va|0)|0)>3){vb=1;break}Va=Qa-ib|0;if((((Va|0)>-1?Va:0-Va|0)|0)>3){vb=1;break}vb=(c[oa+128>>2]|0)!=(c[oa+124>>2]|0)&1}else vb=2;while(0);c[H>>2]=vb;break}else if((qa|0)==2){ib=oa+28|0;Qa=b[oa+32>>1]|0;if(!(Qa<<16>>16))wb=(b[ib>>1]|0)!=0?2:0;else wb=2;c[F>>2]=wb;cb=b[oa+34>>1]|0;gb=cb<<16>>16==0;if(gb)xb=(b[oa+30>>1]|0)!=0?2:0;else xb=2;c[E>>2]=xb;Va=b[oa+40>>1]|0;Ya=Va<<16>>16==0;if(Ya)yb=(b[oa+36>>1]|0)!=0?2:0;else yb=2;c[D>>2]=yb;Ka=b[oa+42>>1]|0;Na=Ka<<16>>16==0;if(Na)zb=(b[oa+38>>1]|0)!=0?2:0;else zb=2;c[C>>2]=zb;_a=b[oa+48>>1]|0;if(!(_a<<16>>16))Ab=(b[oa+44>>1]|0)!=0?2:0;else Ab=2;c[x>>2]=Ab;eb=b[oa+50>>1]|0;$a=eb<<16>>16==0;if($a)Bb=(b[oa+46>>1]|0)!=0?2:0;else Bb=2;c[w>>2]=Bb;Ta=b[oa+56>>1]|0;Wa=Ta<<16>>16==0;if(Wa)Cb=(b[oa+52>>1]|0)!=0?2:0;else Cb=2;c[v>>2]=Cb;Ra=(b[oa+58>>1]|0)==0;if(Ra)Db=(b[oa+54>>1]|0)!=0?2:0;else Db=2;c[u>>2]=Db;Ea=b[oa+44>>1]|0;La=b[oa+166>>1]|0;xa=b[oa+142>>1]|0;do if(!((Ea|Qa)<<16>>16)){Eb=(b[oa+164>>1]|0)-(b[oa+140>>1]|0)|0;if((((Eb|0)>-1?Eb:0-Eb|0)|0)>3){Fb=1;break}Eb=La-xa|0;if((((Eb|0)>-1?Eb:0-Eb|0)|0)>3){Fb=1;break}Fb=(c[oa+124>>2]|0)!=(c[oa+116>>2]|0)&1}else Fb=2;while(0);c[B>>2]=Fb;xa=b[oa+46>>1]|0;La=b[oa+170>>1]|0;qa=b[oa+146>>1]|0;do if(!((xa|cb)<<16>>16)){Eb=(b[oa+168>>1]|0)-(b[oa+144>>1]|0)|0;if((((Eb|0)>-1?Eb:0-Eb|0)|0)>3){Gb=1;break}Eb=La-qa|0;if((((Eb|0)>-1?Eb:0-Eb|0)|0)>3){Gb=1;break}Gb=(c[oa+124>>2]|0)!=(c[oa+116>>2]|0)&1}else Gb=2;while(0);c[A>>2]=Gb;qa=b[oa+52>>1]|0;La=b[oa+182>>1]|0;Eb=b[oa+158>>1]|0;do if(!((qa|Va)<<16>>16)){Hb=(b[oa+180>>1]|0)-(b[oa+156>>1]|0)|0;if((((Hb|0)>-1?Hb:0-Hb|0)|0)>3){Ib=1;break}Hb=La-Eb|0;if((((Hb|0)>-1?Hb:0-Hb|0)|0)>3){Ib=1;break}Ib=(c[oa+128>>2]|0)!=(c[oa+120>>2]|0)&1}else Ib=2;while(0);c[z>>2]=Ib;Eb=b[oa+54>>1]|0;La=b[oa+186>>1]|0;Hb=b[oa+162>>1]|0;do if(!((Eb|Ka)<<16>>16)){Jb=(b[oa+184>>1]|0)-(b[oa+160>>1]|0)|0;if((((Jb|0)>-1?Jb:0-Jb|0)|0)>3){Kb=1;break}Jb=La-Hb|0;if((((Jb|0)>-1?Jb:0-Jb|0)|0)>3){Kb=1;break}Kb=(c[oa+128>>2]|0)!=(c[oa+120>>2]|0)&1}else Kb=2;while(0);c[y>>2]=Kb;Hb=b[oa+30>>1]|0;if(!(Hb<<16>>16))Lb=(b[ib>>1]|0)!=0?2:0;else Lb=2;c[R>>2]=Lb;La=b[oa+36>>1]|0;if(!(La<<16>>16))Mb=Hb<<16>>16!=0?2:0;else Mb=2;c[Q>>2]=Mb;if(!(b[oa+38>>1]|0))Nb=La<<16>>16!=0?2:0;else Nb=2;c[P>>2]=Nb;if(gb)Ob=Qa<<16>>16!=0?2:0;else Ob=2;c[O>>2]=Ob;if(Ya)Pb=cb<<16>>16!=0?2:0;else Pb=2;c[N>>2]=Pb;if(Na)Qb=Va<<16>>16!=0?2:0;else Qb=2;c[M>>2]=Qb;if(!(xa<<16>>16))Rb=Ea<<16>>16!=0?2:0;else Rb=2;c[L>>2]=Rb;if(!(qa<<16>>16))Sb=xa<<16>>16!=0?2:0;else Sb=2;c[K>>2]=Sb;if(!(Eb<<16>>16))Tb=qa<<16>>16!=0?2:0;else Tb=2;c[J>>2]=Tb;if($a)Ub=_a<<16>>16!=0?2:0;else Ub=2;c[I>>2]=Ub;if(Wa)Vb=eb<<16>>16!=0?2:0;else Vb=2;c[H>>2]=Vb;if(Ra)Wb=Ta<<16>>16!=0?2:0;else Wb=2;c[G>>2]=Wb;break}else{La=b[oa+32>>1]|0;Hb=b[oa+28>>1]|0;Ka=b[oa+142>>1]|0;Jb=b[oa+134>>1]|0;if(!((Hb|La)<<16>>16)){Xb=(b[oa+140>>1]|0)-(b[oa+132>>1]|0)|0;if((((Xb|0)>-1?Xb:0-Xb|0)|0)>3)Yb=1;else{Xb=Ka-Jb|0;Yb=(((Xb|0)>-1?Xb:0-Xb|0)|0)>3&1}}else Yb=2;c[F>>2]=Yb;Xb=b[oa+34>>1]|0;Zb=b[oa+30>>1]|0;_b=b[oa+146>>1]|0;$b=b[oa+138>>1]|0;if(!((Zb|Xb)<<16>>16)){ac=(b[oa+144>>1]|0)-(b[oa+136>>1]|0)|0;if((((ac|0)>-1?ac:0-ac|0)|0)>3)bc=1;else{ac=_b-$b|0;bc=(((ac|0)>-1?ac:0-ac|0)|0)>3&1}}else bc=2;c[E>>2]=bc;ac=b[oa+40>>1]|0;cc=b[oa+36>>1]|0;dc=b[oa+158>>1]|0;ec=b[oa+150>>1]|0;if(!((cc|ac)<<16>>16)){fc=(b[oa+156>>1]|0)-(b[oa+148>>1]|0)|0;if((((fc|0)>-1?fc:0-fc|0)|0)>3)gc=1;else{fc=dc-ec|0;gc=(((fc|0)>-1?fc:0-fc|0)|0)>3&1}}else gc=2;c[D>>2]=gc;fc=b[oa+42>>1]|0;hc=b[oa+38>>1]|0;ic=b[oa+162>>1]|0;jc=b[oa+154>>1]|0;if(!((hc|fc)<<16>>16)){kc=(b[oa+160>>1]|0)-(b[oa+152>>1]|0)|0;if((((kc|0)>-1?kc:0-kc|0)|0)>3)lc=1;else{kc=ic-jc|0;lc=(((kc|0)>-1?kc:0-kc|0)|0)>3&1}}else lc=2;c[C>>2]=lc;kc=b[oa+44>>1]|0;mc=b[oa+166>>1]|0;do if(!((kc|La)<<16>>16)){nc=(b[oa+164>>1]|0)-(b[oa+140>>1]|0)|0;if((((nc|0)>-1?nc:0-nc|0)|0)>3)oc=1;else{nc=mc-Ka|0;if((((nc|0)>-1?nc:0-nc|0)|0)>3){oc=1;break}oc=(c[oa+124>>2]|0)!=(c[oa+116>>2]|0)&1}}else oc=2;while(0);c[B>>2]=oc;Ta=b[oa+46>>1]|0;Ra=b[oa+170>>1]|0;do if(!((Ta|Xb)<<16>>16)){eb=(b[oa+168>>1]|0)-(b[oa+144>>1]|0)|0;if((((eb|0)>-1?eb:0-eb|0)|0)>3){pc=1;break}eb=Ra-_b|0;if((((eb|0)>-1?eb:0-eb|0)|0)>3){pc=1;break}pc=(c[oa+124>>2]|0)!=(c[oa+116>>2]|0)&1}else pc=2;while(0);c[A>>2]=pc;eb=b[oa+52>>1]|0;Wa=b[oa+182>>1]|0;do if(!((eb|ac)<<16>>16)){_a=(b[oa+180>>1]|0)-(b[oa+156>>1]|0)|0;if((((_a|0)>-1?_a:0-_a|0)|0)>3){qc=1;break}_a=Wa-dc|0;if((((_a|0)>-1?_a:0-_a|0)|0)>3){qc=1;break}qc=(c[oa+128>>2]|0)!=(c[oa+120>>2]|0)&1}else qc=2;while(0);c[z>>2]=qc;_a=b[oa+54>>1]|0;$a=b[oa+186>>1]|0;do if(!((_a|fc)<<16>>16)){qa=(b[oa+184>>1]|0)-(b[oa+160>>1]|0)|0;if((((qa|0)>-1?qa:0-qa|0)|0)>3){rc=1;break}qa=$a-ic|0;if((((qa|0)>-1?qa:0-qa|0)|0)>3){rc=1;break}rc=(c[oa+128>>2]|0)!=(c[oa+120>>2]|0)&1}else rc=2;while(0);c[y>>2]=rc;qa=b[oa+48>>1]|0;Eb=b[oa+174>>1]|0;do if(!((qa|kc)<<16>>16)){xa=(b[oa+172>>1]|0)-(b[oa+164>>1]|0)|0;if((((xa|0)>-1?xa:0-xa|0)|0)>3){sc=1;break}xa=Eb-mc|0;sc=(((xa|0)>-1?xa:0-xa|0)|0)>3&1}else sc=2;while(0);c[x>>2]=sc;xa=b[oa+50>>1]|0;Ea=b[oa+178>>1]|0;do if(!((xa|Ta)<<16>>16)){Va=(b[oa+176>>1]|0)-(b[oa+168>>1]|0)|0;if((((Va|0)>-1?Va:0-Va|0)|0)>3){tc=1;break}Va=Ea-Ra|0;tc=(((Va|0)>-1?Va:0-Va|0)|0)>3&1}else tc=2;while(0);c[w>>2]=tc;Va=b[oa+56>>1]|0;Na=b[oa+190>>1]|0;do if(!((Va|eb)<<16>>16)){cb=(b[oa+188>>1]|0)-(b[oa+180>>1]|0)|0;if((((cb|0)>-1?cb:0-cb|0)|0)>3){uc=1;break}cb=Na-Wa|0;uc=(((cb|0)>-1?cb:0-cb|0)|0)>3&1}else uc=2;while(0);c[v>>2]=uc;cb=b[oa+58>>1]|0;Ya=b[oa+194>>1]|0;do if(!((cb|_a)<<16>>16)){Qa=(b[oa+192>>1]|0)-(b[oa+184>>1]|0)|0;if((((Qa|0)>-1?Qa:0-Qa|0)|0)>3){vc=1;break}Qa=Ya-$a|0;vc=(((Qa|0)>-1?Qa:0-Qa|0)|0)>3&1}else vc=2;while(0);c[u>>2]=vc;do if(!((Zb|Hb)<<16>>16)){Qa=(b[oa+136>>1]|0)-(b[oa+132>>1]|0)|0;if((((Qa|0)>-1?Qa:0-Qa|0)|0)>3){wc=1;break}Qa=$b-Jb|0;wc=(((Qa|0)>-1?Qa:0-Qa|0)|0)>3&1}else wc=2;while(0);c[R>>2]=wc;do if(!((cc|Zb)<<16>>16)){Jb=(b[oa+148>>1]|0)-(b[oa+136>>1]|0)|0;if((((Jb|0)>-1?Jb:0-Jb|0)|0)>3){xc=1;break}Jb=ec-$b|0;if((((Jb|0)>-1?Jb:0-Jb|0)|0)>3){xc=1;break}xc=(c[oa+120>>2]|0)!=(c[oa+116>>2]|0)&1}else xc=2;while(0);c[Q>>2]=xc;do if(!((hc|cc)<<16>>16)){$b=(b[oa+152>>1]|0)-(b[oa+148>>1]|0)|0;if(((($b|0)>-1?$b:0-$b|0)|0)>3){Ec=1;break}$b=jc-ec|0;Ec=((($b|0)>-1?$b:0-$b|0)|0)>3&1}else Ec=2;while(0);c[P>>2]=Ec;do if(!((Xb|La)<<16>>16)){ec=(b[oa+144>>1]|0)-(b[oa+140>>1]|0)|0;if((((ec|0)>-1?ec:0-ec|0)|0)>3){Fc=1;break}ec=_b-Ka|0;Fc=(((ec|0)>-1?ec:0-ec|0)|0)>3&1}else Fc=2;while(0);c[O>>2]=Fc;do if(!((ac|Xb)<<16>>16)){Ka=(b[oa+156>>1]|0)-(b[oa+144>>1]|0)|0;if((((Ka|0)>-1?Ka:0-Ka|0)|0)>3){Gc=1;break}Ka=dc-_b|0;if((((Ka|0)>-1?Ka:0-Ka|0)|0)>3){Gc=1;break}Gc=(c[oa+120>>2]|0)!=(c[oa+116>>2]|0)&1}else Gc=2;while(0);c[N>>2]=Gc;do if(!((fc|ac)<<16>>16)){_b=(b[oa+160>>1]|0)-(b[oa+156>>1]|0)|0;if((((_b|0)>-1?_b:0-_b|0)|0)>3){Hc=1;break}_b=ic-dc|0;Hc=(((_b|0)>-1?_b:0-_b|0)|0)>3&1}else Hc=2;while(0);c[M>>2]=Hc;do if(!((Ta|kc)<<16>>16)){dc=(b[oa+168>>1]|0)-(b[oa+164>>1]|0)|0;if((((dc|0)>-1?dc:0-dc|0)|0)>3){Ic=1;break}dc=Ra-mc|0;Ic=(((dc|0)>-1?dc:0-dc|0)|0)>3&1}else Ic=2;while(0);c[L>>2]=Ic;do if(!((eb|Ta)<<16>>16)){mc=(b[oa+180>>1]|0)-(b[oa+168>>1]|0)|0;if((((mc|0)>-1?mc:0-mc|0)|0)>3){Jc=1;break}mc=Wa-Ra|0;if((((mc|0)>-1?mc:0-mc|0)|0)>3){Jc=1;break}Jc=(c[oa+128>>2]|0)!=(c[oa+124>>2]|0)&1}else Jc=2;while(0);c[K>>2]=Jc;do if(!((_a|eb)<<16>>16)){Ra=(b[oa+184>>1]|0)-(b[oa+180>>1]|0)|0;if((((Ra|0)>-1?Ra:0-Ra|0)|0)>3){Kc=1;break}Ra=$a-Wa|0;Kc=(((Ra|0)>-1?Ra:0-Ra|0)|0)>3&1}else Kc=2;while(0);c[J>>2]=Kc;do if(!((xa|qa)<<16>>16)){Wa=(b[oa+176>>1]|0)-(b[oa+172>>1]|0)|0;if((((Wa|0)>-1?Wa:0-Wa|0)|0)>3){Lc=1;break}Wa=Ea-Eb|0;Lc=(((Wa|0)>-1?Wa:0-Wa|0)|0)>3&1}else Lc=2;while(0);c[I>>2]=Lc;do if(!((Va|xa)<<16>>16)){Eb=(b[oa+188>>1]|0)-(b[oa+176>>1]|0)|0;if((((Eb|0)>-1?Eb:0-Eb|0)|0)>3){Mc=1;break}Eb=Na-Ea|0;if((((Eb|0)>-1?Eb:0-Eb|0)|0)>3){Mc=1;break}Mc=(c[oa+128>>2]|0)!=(c[oa+124>>2]|0)&1}else Mc=2;while(0);c[H>>2]=Mc;do if(!((cb|Va)<<16>>16)){Ea=(b[oa+192>>1]|0)-(b[oa+188>>1]|0)|0;if((((Ea|0)>-1?Ea:0-Ea|0)|0)>3){Nc=1;break}Ea=Ya-Na|0;Nc=(((Ea|0)>-1?Ea:0-Ea|0)|0)>3&1}else Nc=2;while(0);c[G>>2]=Nc;break}}else yc(oa,h);while(0);if(!(Da|c[F>>2]|c[E>>2]|c[D>>2]|c[C>>2]|c[B>>2]|c[A>>2]|c[z>>2]|c[y>>2]|c[x>>2]|c[w>>2]|c[v>>2]|c[u>>2]|c[R>>2]|c[Q>>2]|c[P>>2]|c[O>>2]|c[N>>2]|c[M>>2]|c[L>>2]|c[K>>2]|c[J>>2]|c[I>>2]|c[H>>2]|c[G>>2]))break}else{c[u>>2]=3;c[v>>2]=3;c[w>>2]=3;c[x>>2]=3;c[y>>2]=3;c[z>>2]=3;c[A>>2]=3;c[B>>2]=3;c[C>>2]=3;c[D>>2]=3;c[E>>2]=3;c[F>>2]=3;c[G>>2]=3;c[H>>2]=3;c[I>>2]=3;c[J>>2]=3;c[K>>2]=3;c[L>>2]=3;c[M>>2]=3;c[N>>2]=3;c[O>>2]=3;c[P>>2]=3;c[Q>>2]=3;c[R>>2]=3}Na=oa+20|0;Ya=c[Na>>2]|0;Va=oa+12|0;cb=Oa(0,51,(c[Va>>2]|0)+Ya|0)|0;Ea=oa+16|0;xa=Oa(0,51,(c[Ea>>2]|0)+Ya|0)|0;Eb=d[6864+cb>>0]|0;c[S>>2]=Eb;qa=d[6920+xa>>0]|0;c[T>>2]=qa;xa=6976+(cb*3|0)|0;c[U>>2]=xa;do if(!va){cb=c[(c[sa>>2]|0)+20>>2]|0;if((cb|0)==(Ya|0)){c[ka>>2]=Eb;c[la>>2]=qa;c[j>>2]=xa;break}else{Wa=(Ya+1+cb|0)>>>1;cb=Oa(0,51,(c[Va>>2]|0)+Wa|0)|0;$a=Oa(0,51,(c[Ea>>2]|0)+Wa|0)|0;c[ka>>2]=d[6864+cb>>0];c[la>>2]=d[6920+$a>>0];c[j>>2]=6976+(cb*3|0);break}}while(0);do if(!ta){xa=c[(c[pa>>2]|0)+20>>2]|0;if((xa|0)==(Ya|0)){c[ha>>2]=c[S>>2];c[ia>>2]=c[T>>2];c[ja>>2]=c[U>>2];break}else{qa=(Ya+1+xa|0)>>>1;xa=Oa(0,51,(c[Va>>2]|0)+qa|0)|0;Eb=Oa(0,51,(c[Ea>>2]|0)+qa|0)|0;c[ha>>2]=d[6864+xa>>0];c[ia>>2]=d[6920+Eb>>0];c[ja>>2]=6976+(xa*3|0);break}}while(0);Ya=Z(na,k)|0;xa=3;Eb=0;qa=(c[e>>2]|0)+((Ya<<8)+(ma<<4))|0;cb=h;while(1){$a=c[cb+4>>2]|0;if($a)zc(qa,$a,da,V);$a=c[cb+12>>2]|0;if($a)zc(qa+4|0,$a,ca,V);$a=cb+16|0;Wa=c[cb+20>>2]|0;if(Wa)zc(qa+8|0,Wa,ca,V);Wa=cb+24|0;eb=c[cb+28>>2]|0;if(eb)zc(qa+12|0,eb,ca,V);eb=c[cb>>2]|0;_a=cb+8|0;Ra=c[_a>>2]|0;a:do if(((eb|0)==(Ra|0)?(eb|0)==(c[$a>>2]|0):0)?(eb|0)==(c[Wa>>2]|0):0){if(!eb)break;Ta=c[j+(Eb*12|0)+4>>2]|0;mc=c[j+(Eb*12|0)+8>>2]|0;if(eb>>>0<4){kc=d[(c[j+(Eb*12|0)>>2]|0)+(eb+-1)>>0]|0;dc=0-kc|0;ic=kc+1|0;ac=qa;fc=16;while(1){_b=ac+X|0;Xb=d[_b>>0]|0;Ka=ac+W|0;La=d[Ka>>0]|0;ec=d[ac>>0]|0;jc=ac+V|0;cc=d[jc>>0]|0;hc=La-ec|0;do if(((hc|0)>-1?hc:0-hc|0)>>>0>>0){$b=Xb-La|0;if((($b|0)>-1?$b:0-$b|0)>>>0>=mc>>>0)break;$b=cc-ec|0;if((($b|0)>-1?$b:0-$b|0)>>>0>=mc>>>0)break;$b=d[ac+Y>>0]|0;Zb=$b-La|0;if(((Zb|0)>-1?Zb:0-Zb|0)>>>0>>0){a[_b>>0]=(Oa(dc,kc,((La+1+ec|0)>>>1)-(Xb<<1)+$b>>1)|0)+Xb;Oc=ic}else Oc=kc;$b=d[ac+_>>0]|0;Zb=$b-ec|0;if(((Zb|0)>-1?Zb:0-Zb|0)>>>0>>0){a[jc>>0]=(Oa(dc,kc,((La+1+ec|0)>>>1)-(cc<<1)+$b>>1)|0)+cc;Pc=Oc+1|0}else Pc=Oc;$b=Oa(0-Pc|0,Pc,Xb+4-cc+(ec-La<<2)>>3)|0;Zb=a[3472+((ec|512)-$b)>>0]|0;a[Ka>>0]=a[3472+($b+(La|512))>>0]|0;a[ac>>0]=Zb}while(0);fc=fc+-1|0;if(!fc)break a;else ac=ac+1|0}}ac=(Ta>>>2)+2|0;fc=qa;kc=16;while(1){dc=fc+X|0;ic=d[dc>>0]|0;La=fc+W|0;Ka=d[La>>0]|0;ec=d[fc>>0]|0;cc=fc+V|0;Xb=d[cc>>0]|0;jc=Ka-ec|0;_b=(jc|0)>-1?jc:0-jc|0;b:do if(_b>>>0>>0){jc=ic-Ka|0;if(((jc|0)>-1?jc:0-jc|0)>>>0>=mc>>>0)break;jc=Xb-ec|0;if(((jc|0)>-1?jc:0-jc|0)>>>0>=mc>>>0)break;jc=fc+Y|0;hc=d[jc>>0]|0;Zb=fc+_|0;$b=d[Zb>>0]|0;do if(_b>>>0>>0){Jb=hc-Ka|0;if(((Jb|0)>-1?Jb:0-Jb|0)>>>0>>0){Jb=Ka+ic+ec|0;a[La>>0]=(Xb+4+(Jb<<1)+hc|0)>>>3;a[dc>>0]=(Jb+2+hc|0)>>>2;a[jc>>0]=(Jb+4+(hc*3|0)+(d[fc+$>>0]<<1)|0)>>>3}else a[La>>0]=(Ka+2+(ic<<1)+Xb|0)>>>2;Jb=$b-ec|0;if(((Jb|0)>-1?Jb:0-Jb|0)>>>0>=mc>>>0)break;Jb=ec+Ka+Xb|0;a[fc>>0]=(ic+4+(Jb<<1)+$b|0)>>>3;a[cc>>0]=(Jb+2+$b|0)>>>2;a[Zb>>0]=(Jb+4+($b*3|0)+(d[fc+aa>>0]<<1)|0)>>>3;break b}else a[La>>0]=(Ka+2+(ic<<1)+Xb|0)>>>2;while(0);a[fc>>0]=(ic+2+ec+(Xb<<1)|0)>>>2}while(0);kc=kc+-1|0;if(!kc)break;else fc=fc+1|0}}else Qc=311;while(0);do if((Qc|0)==311){Qc=0;if(!eb)Rc=Ra;else{Ac(qa,eb,j+(Eb*12|0)|0,V);Rc=c[_a>>2]|0}if(Rc)Ac(qa+4|0,Rc,j+(Eb*12|0)|0,V);fc=c[$a>>2]|0;if(fc)Ac(qa+8|0,fc,j+(Eb*12|0)|0,V);fc=c[Wa>>2]|0;if(!fc)break;Ac(qa+12|0,fc,j+(Eb*12|0)|0,V)}while(0);if(!xa)break;else{xa=xa+-1|0;Eb=2;qa=qa+ba|0;cb=cb+32|0}}cb=c[oa+24>>2]|0;qa=c[192+((Oa(0,51,(c[Na>>2]|0)+cb|0)|0)<<2)>>2]|0;Eb=Oa(0,51,(c[Va>>2]|0)+qa|0)|0;xa=Oa(0,51,(c[Ea>>2]|0)+qa|0)|0;Wa=d[6864+Eb>>0]|0;c[S>>2]=Wa;$a=d[6920+xa>>0]|0;c[T>>2]=$a;xa=6976+(Eb*3|0)|0;c[U>>2]=xa;do if(!va){Eb=c[(c[sa>>2]|0)+20>>2]|0;if((Eb|0)==(c[Na>>2]|0)){c[ka>>2]=Wa;c[la>>2]=$a;c[j>>2]=xa;break}else{_a=(qa+1+(c[192+((Oa(0,51,Eb+cb|0)|0)<<2)>>2]|0)|0)>>>1;Eb=Oa(0,51,_a+(c[Va>>2]|0)|0)|0;eb=Oa(0,51,(c[Ea>>2]|0)+_a|0)|0;c[ka>>2]=d[6864+Eb>>0];c[la>>2]=d[6920+eb>>0];c[j>>2]=6976+(Eb*3|0);break}}while(0);do if(!ta){xa=c[(c[pa>>2]|0)+20>>2]|0;if((xa|0)==(c[Na>>2]|0)){c[ha>>2]=c[S>>2];c[ia>>2]=c[T>>2];c[ja>>2]=c[U>>2];break}else{$a=(qa+1+(c[192+((Oa(0,51,xa+cb|0)|0)<<2)>>2]|0)|0)>>>1;xa=Oa(0,51,$a+(c[Va>>2]|0)|0)|0;Wa=Oa(0,51,(c[Ea>>2]|0)+$a|0)|0;c[ha>>2]=d[6864+xa>>0];c[ia>>2]=d[6920+Wa>>0];c[ja>>2]=6976+(xa*3|0);break}}while(0);Ea=c[e>>2]|0;Va=(ma<<3)+ea+(Ya<<6)|0;cb=Ea+Va|0;qa=Ea+(Va+fa)|0;Va=0;Ea=h;Na=0;while(1){pa=Ea+4|0;ta=c[pa>>2]|0;if(ta){Bc(cb,ta,da,n);Bc(qa,c[pa>>2]|0,da,n)}pa=Ea+36|0;ta=c[pa>>2]|0;if(ta){Bc(cb+V|0,ta,da,n);Bc(qa+V|0,c[pa>>2]|0,da,n)}pa=Ea+16|0;ta=Ea+20|0;xa=c[ta>>2]|0;if(xa){Bc(cb+4|0,xa,ca,n);Bc(qa+4|0,c[ta>>2]|0,ca,n)}ta=Ea+52|0;xa=c[ta>>2]|0;if(xa){Bc(cb+ga|0,xa,ca,n);Bc(qa+ga|0,c[ta>>2]|0,ca,n)}ta=c[Ea>>2]|0;xa=Ea+8|0;Wa=c[xa>>2]|0;do if((ta|0)==(Wa|0)){if((ta|0)!=(c[pa>>2]|0)){Qc=342;break}if((ta|0)!=(c[Ea+24>>2]|0)){Qc=342;break}if(!ta)break;$a=j+(Va*12|0)|0;Cc(cb,ta,$a,n);Cc(qa,c[Ea>>2]|0,$a,n)}else Qc=342;while(0);do if((Qc|0)==342){Qc=0;if(!ta)Sc=Wa;else{$a=j+(Va*12|0)|0;Dc(cb,ta,$a,n);Dc(qa,c[Ea>>2]|0,$a,n);Sc=c[xa>>2]|0}if(Sc){$a=j+(Va*12|0)|0;Dc(cb+2|0,Sc,$a,n);Dc(qa+2|0,c[xa>>2]|0,$a,n)}$a=c[pa>>2]|0;if($a){sa=j+(Va*12|0)|0;Dc(cb+4|0,$a,sa,n);Dc(qa+4|0,c[pa>>2]|0,sa,n)}sa=Ea+24|0;$a=c[sa>>2]|0;if(!$a)break;va=j+(Va*12|0)|0;Dc(cb+6|0,$a,va,n);Dc(qa+6|0,c[sa>>2]|0,va,n)}while(0);Na=Na+1|0;if((Na|0)==2)break;else{cb=cb+_|0;qa=qa+_|0;Va=2;Ea=Ea+64|0}}}while(0);f=ma+1|0;Ea=(f|0)==(k|0);na=(Ea&1)+na|0;if(na>>>0>=(c[l>>2]|0)>>>0)break;else{ma=Ea?0:f;oa=oa+216|0}}i=g;return}function yc(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;e=i;f=a+28|0;g=b[a+32>>1]|0;if(!(g<<16>>16))h=(b[f>>1]|0)!=0?2:0;else h=2;c[d+32>>2]=h;h=b[a+34>>1]|0;j=h<<16>>16==0;if(j)k=(b[a+30>>1]|0)!=0?2:0;else k=2;c[d+40>>2]=k;k=b[a+40>>1]|0;l=k<<16>>16==0;if(l)m=(b[a+36>>1]|0)!=0?2:0;else m=2;c[d+48>>2]=m;m=b[a+42>>1]|0;n=m<<16>>16==0;if(n)o=(b[a+38>>1]|0)!=0?2:0;else o=2;c[d+56>>2]=o;o=b[a+44>>1]|0;if(!(o<<16>>16))p=g<<16>>16!=0?2:0;else p=2;c[d+64>>2]=p;p=b[a+46>>1]|0;q=p<<16>>16==0;if(q)r=h<<16>>16!=0?2:0;else r=2;c[d+72>>2]=r;r=b[a+52>>1]|0;s=r<<16>>16==0;if(s)t=k<<16>>16!=0?2:0;else t=2;c[d+80>>2]=t;t=b[a+54>>1]|0;u=t<<16>>16==0;if(u)v=m<<16>>16!=0?2:0;else v=2;c[d+88>>2]=v;v=b[a+48>>1]|0;if(!(v<<16>>16))w=o<<16>>16!=0?2:0;else w=2;c[d+96>>2]=w;w=b[a+50>>1]|0;m=w<<16>>16==0;if(m)x=p<<16>>16!=0?2:0;else x=2;c[d+104>>2]=x;x=b[a+56>>1]|0;y=x<<16>>16==0;if(y)z=r<<16>>16!=0?2:0;else z=2;c[d+112>>2]=z;z=(b[a+58>>1]|0)==0;if(z)A=t<<16>>16!=0?2:0;else A=2;c[d+120>>2]=A;A=b[a+30>>1]|0;if(!(A<<16>>16))B=(b[f>>1]|0)!=0?2:0;else B=2;c[d+12>>2]=B;B=b[a+36>>1]|0;if(!(B<<16>>16))C=A<<16>>16!=0?2:0;else C=2;c[d+20>>2]=C;if(!(b[a+38>>1]|0))D=B<<16>>16!=0?2:0;else D=2;c[d+28>>2]=D;if(j)E=g<<16>>16!=0?2:0;else E=2;c[d+44>>2]=E;if(l)F=h<<16>>16!=0?2:0;else F=2;c[d+52>>2]=F;if(n)G=k<<16>>16!=0?2:0;else G=2;c[d+60>>2]=G;if(q)H=o<<16>>16!=0?2:0;else H=2;c[d+76>>2]=H;if(s)I=p<<16>>16!=0?2:0;else I=2;c[d+84>>2]=I;if(u)J=r<<16>>16!=0?2:0;else J=2;c[d+92>>2]=J;if(m)K=v<<16>>16!=0?2:0;else K=2;c[d+108>>2]=K;if(y)L=w<<16>>16!=0?2:0;else L=2;c[d+116>>2]=L;if(!z){M=2;N=d+124|0;c[N>>2]=M;i=e;return}M=x<<16>>16!=0?2:0;N=d+124|0;c[N>>2]=M;i=e;return}function zc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;h=i;j=c[f+4>>2]|0;k=c[f+8>>2]|0;if(e>>>0<4){l=d[(c[f>>2]|0)+(e+-1)>>0]|0;e=0-l|0;f=l+1|0;m=b;n=4;while(1){o=m+-2|0;p=d[o>>0]|0;q=m+-1|0;r=d[q>>0]|0;s=d[m>>0]|0;t=m+1|0;u=d[t>>0]|0;v=r-s|0;if((((v|0)>-1?v:0-v|0)>>>0>>0?(v=p-r|0,((v|0)>-1?v:0-v|0)>>>0>>0):0)?(v=u-s|0,((v|0)>-1?v:0-v|0)>>>0>>0):0){v=d[m+-3>>0]|0;w=d[m+2>>0]|0;x=v-r|0;if(((x|0)>-1?x:0-x|0)>>>0>>0){a[o>>0]=(Oa(e,l,((r+1+s|0)>>>1)-(p<<1)+v>>1)|0)+p;y=f}else y=l;v=w-s|0;if(((v|0)>-1?v:0-v|0)>>>0>>0){a[t>>0]=(Oa(e,l,((r+1+s|0)>>>1)-(u<<1)+w>>1)|0)+u;z=y+1|0}else z=y;w=Oa(0-z|0,z,p+4-u+(s-r<<2)>>3)|0;u=a[3472+((s|512)-w)>>0]|0;a[q>>0]=a[3472+((r|512)+w)>>0]|0;a[m>>0]=u}n=n+-1|0;if(!n)break;else m=m+g|0}i=h;return}m=(j>>>2)+2|0;n=b;b=4;while(1){z=n+-2|0;y=d[z>>0]|0;l=n+-1|0;e=d[l>>0]|0;f=d[n>>0]|0;u=n+1|0;w=d[u>>0]|0;r=e-f|0;q=(r|0)>-1?r:0-r|0;do if((q>>>0>>0?(r=y-e|0,((r|0)>-1?r:0-r|0)>>>0>>0):0)?(r=w-f|0,((r|0)>-1?r:0-r|0)>>>0>>0):0){r=n+-3|0;s=d[r>>0]|0;p=n+2|0;t=d[p>>0]|0;if(q>>>0>>0){v=s-e|0;if(((v|0)>-1?v:0-v|0)>>>0>>0){v=e+y+f|0;a[l>>0]=(w+4+(v<<1)+s|0)>>>3;a[z>>0]=(v+2+s|0)>>>2;a[r>>0]=(v+4+(s*3|0)+((d[n+-4>>0]|0)<<1)|0)>>>3}else a[l>>0]=(e+2+(y<<1)+w|0)>>>2;s=t-f|0;if(((s|0)>-1?s:0-s|0)>>>0>>0){s=f+e+w|0;a[n>>0]=(y+4+(s<<1)+t|0)>>>3;a[u>>0]=(s+2+t|0)>>>2;a[p>>0]=(s+4+(t*3|0)+((d[n+3>>0]|0)<<1)|0)>>>3;break}}else a[l>>0]=(e+2+(y<<1)+w|0)>>>2;a[n>>0]=(y+2+f+(w<<1)|0)>>>2}while(0);b=b+-1|0;if(!b)break;else n=n+g|0}i=h;return}function Ac(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;h=i;j=d[(c[f>>2]|0)+(e+-1)>>0]|0;e=0-g|0;k=e<<1;l=f+4|0;m=f+8|0;f=Z(g,-3)|0;n=0-j|0;o=j+1|0;p=g<<1;q=b;b=4;while(1){r=q+k|0;s=q+e|0;t=q+g|0;u=a[t>>0]|0;v=d[s>>0]|0;w=d[q>>0]|0;x=v-w|0;if((((x|0)>-1?x:0-x|0)>>>0<(c[l>>2]|0)>>>0?(x=d[r>>0]|0,y=x-v|0,z=c[m>>2]|0,((y|0)>-1?y:0-y|0)>>>0>>0):0)?(y=u&255,u=y-w|0,((u|0)>-1?u:0-u|0)>>>0>>0):0){u=d[q+f>>0]|0;A=u-v|0;if(((A|0)>-1?A:0-A|0)>>>0>>0){a[r>>0]=(Oa(n,j,((v+1+w|0)>>>1)-(x<<1)+u>>1)|0)+x;B=c[m>>2]|0;C=o}else{B=z;C=j}z=d[q+p>>0]|0;u=z-w|0;if(((u|0)>-1?u:0-u|0)>>>0>>0){a[t>>0]=(Oa(n,j,((v+1+w|0)>>>1)-(y<<1)+z>>1)|0)+y;D=C+1|0}else D=C;z=Oa(0-D|0,D,4-y+(w-v<<2)+x>>3)|0;x=a[3472+((w|512)-z)>>0]|0;a[s>>0]=a[3472+((v|512)+z)>>0]|0;a[q>>0]=x}b=b+-1|0;if(!b)break;else q=q+1|0}i=h;return}function Bc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;h=i;j=b+-1|0;k=a[b+1>>0]|0;l=d[j>>0]|0;m=d[b>>0]|0;n=l-m|0;o=f+4|0;do if((((n|0)>-1?n:0-n|0)>>>0<(c[o>>2]|0)>>>0?(p=d[b+-2>>0]|0,q=p-l|0,r=c[f+8>>2]|0,((q|0)>-1?q:0-q|0)>>>0>>0):0)?(q=k&255,s=q-m|0,((s|0)>-1?s:0-s|0)>>>0>>0):0)if(e>>>0<4){r=d[(c[f>>2]|0)+(e+-1)>>0]|0;s=Oa(~r,r+1|0,4-q+(m-l<<2)+p>>3)|0;r=a[3472+((m|512)-s)>>0]|0;a[j>>0]=a[3472+((l|512)+s)>>0]|0;a[b>>0]=r;break}else{a[j>>0]=(l+2+q+(p<<1)|0)>>>2;a[b>>0]=(m+2+(q<<1)+p|0)>>>2;break}while(0);m=b+g|0;l=b+(g+-1)|0;j=d[l>>0]|0;k=d[m>>0]|0;n=j-k|0;if(((n|0)>-1?n:0-n|0)>>>0>=(c[o>>2]|0)>>>0){i=h;return}o=d[b+(g+-2)>>0]|0;n=o-j|0;p=c[f+8>>2]|0;if(((n|0)>-1?n:0-n|0)>>>0>=p>>>0){i=h;return}n=d[b+(g+1)>>0]|0;g=n-k|0;if(((g|0)>-1?g:0-g|0)>>>0>=p>>>0){i=h;return}if(e>>>0<4){p=d[(c[f>>2]|0)+(e+-1)>>0]|0;e=Oa(~p,p+1|0,4-n+(k-j<<2)+o>>3)|0;p=a[3472+((k|512)-e)>>0]|0;a[l>>0]=a[3472+((j|512)+e)>>0]|0;a[m>>0]=p;i=h;return}else{a[l>>0]=(j+2+n+(o<<1)|0)>>>2;a[m>>0]=(k+2+(n<<1)+o|0)>>>2;i=h;return}}function Cc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;h=i;if(e>>>0<4){j=d[(c[f>>2]|0)+(e+-1)>>0]|0;e=j+1|0;k=0-g|0;l=f+4|0;m=k<<1;n=f+8|0;o=~j;j=b;p=8;while(1){q=j+k|0;r=a[j+g>>0]|0;s=d[q>>0]|0;t=d[j>>0]|0;u=s-t|0;if((((u|0)>-1?u:0-u|0)>>>0<(c[l>>2]|0)>>>0?(u=d[j+m>>0]|0,v=u-s|0,w=c[n>>2]|0,((v|0)>-1?v:0-v|0)>>>0>>0):0)?(v=r&255,r=v-t|0,((r|0)>-1?r:0-r|0)>>>0>>0):0){w=Oa(o,e,4-v+(t-s<<2)+u>>3)|0;u=a[3472+((t|512)-w)>>0]|0;a[q>>0]=a[3472+((s|512)+w)>>0]|0;a[j>>0]=u}p=p+-1|0;if(!p)break;else j=j+1|0}i=h;return}else{j=0-g|0;p=f+4|0;e=j<<1;o=f+8|0;f=b;b=8;while(1){n=f+j|0;m=a[f+g>>0]|0;l=d[n>>0]|0;k=d[f>>0]|0;u=l-k|0;if((((u|0)>-1?u:0-u|0)>>>0<(c[p>>2]|0)>>>0?(u=d[f+e>>0]|0,w=u-l|0,s=c[o>>2]|0,((w|0)>-1?w:0-w|0)>>>0>>0):0)?(w=m&255,m=w-k|0,((m|0)>-1?m:0-m|0)>>>0>>0):0){a[n>>0]=(l+2+w+(u<<1)|0)>>>2;a[f>>0]=(k+2+(w<<1)+u|0)>>>2}b=b+-1|0;if(!b)break;else f=f+1|0}i=h;return}}function Dc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;h=i;j=d[(c[f>>2]|0)+(e+-1)>>0]|0;e=j+1|0;k=0-g|0;l=f+4|0;m=k<<1;n=f+8|0;f=~j;j=b+k|0;k=a[b+g>>0]|0;o=d[j>>0]|0;p=d[b>>0]|0;q=o-p|0;r=c[l>>2]|0;if((((q|0)>-1?q:0-q|0)>>>0>>0?(q=d[b+m>>0]|0,s=q-o|0,t=c[n>>2]|0,((s|0)>-1?s:0-s|0)>>>0>>0):0)?(s=k&255,k=s-p|0,((k|0)>-1?k:0-k|0)>>>0>>0):0){t=Oa(f,e,4-s+(p-o<<2)+q>>3)|0;q=a[3472+((p|512)-t)>>0]|0;a[j>>0]=a[3472+((o|512)+t)>>0]|0;a[b>>0]=q;u=c[l>>2]|0}else u=r;r=b+1|0;l=b+(1-g)|0;q=d[l>>0]|0;t=d[r>>0]|0;o=q-t|0;if(((o|0)>-1?o:0-o|0)>>>0>=u>>>0){i=h;return}u=d[b+(m|1)>>0]|0;m=u-q|0;o=c[n>>2]|0;if(((m|0)>-1?m:0-m|0)>>>0>=o>>>0){i=h;return}m=d[b+(g+1)>>0]|0;g=m-t|0;if(((g|0)>-1?g:0-g|0)>>>0>=o>>>0){i=h;return}o=Oa(f,e,4-m+(t-q<<2)+u>>3)|0;u=a[3472+((t|512)-o)>>0]|0;a[l>>0]=a[3472+((q|512)+o)>>0]|0;a[r>>0]=u;i=h;return}function Ec(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=i;f=c[b+4>>2]|0;g=c[b+8>>2]|0;if(!((d|0)==0|(d|0)==5)?(c[a+3384>>2]|0)==0:0)h=0;else{j=a+1220|0;k=0;do{l=kc(j,k)|0;k=k+1|0}while(k>>>0<16&(l|0)==0);h=l}k=a+1176|0;j=c[k>>2]|0;if(j){l=c[a+1212>>2]|0;m=0;n=0;o=0;while(1){if(c[l+(n*216|0)+196>>2]|0){p=m;q=n;r=o;break}s=n+1|0;t=m+1|0;u=(t|0)==(f|0);v=(u&1)+o|0;w=u?0:t;if(s>>>0>>0){m=w;n=s;o=v}else{p=w;q=s;r=v;break}}if((q|0)!=(j|0)){j=a+1212|0;q=c[j>>2]|0;o=Z(r,f)|0;if(p){n=a+1204|0;m=p;do{m=m+-1|0;l=m+o|0;Fc(q+(l*216|0)|0,b,r,m,d,h);c[q+(l*216|0)+196>>2]=1;c[n>>2]=(c[n>>2]|0)+1}while((m|0)!=0)}m=p+1|0;if(m>>>0>>0){p=a+1204|0;n=m;do{m=n+o|0;l=q+(m*216|0)+196|0;if(!(c[l>>2]|0)){Fc(q+(m*216|0)|0,b,r,n,d,h);c[l>>2]=1;c[p>>2]=(c[p>>2]|0)+1}n=n+1|0}while((n|0)!=(f|0))}if(r)if(!f)x=r;else{n=r+-1|0;p=Z(n,f)|0;q=a+1204|0;o=0-f|0;l=0;do{m=n;v=(c[j>>2]|0)+((l+p|0)*216|0)|0;while(1){Fc(v,b,m,l,d,h);c[v+196>>2]=1;c[q>>2]=(c[q>>2]|0)+1;if(!m)break;else{m=m+-1|0;v=v+(o*216|0)|0}}l=l+1|0}while((l|0)!=(f|0));x=r}else x=0;r=x+1|0;if(r>>>0>=g>>>0){i=e;return 0}x=(f|0)==0;l=a+1204|0;o=r;do{r=c[j>>2]|0;q=Z(o,f)|0;if(!x){p=0;do{n=p+q|0;v=r+(n*216|0)+196|0;if(!(c[v>>2]|0)){Fc(r+(n*216|0)|0,b,o,p,d,h);c[v>>2]=1;c[l>>2]=(c[l>>2]|0)+1}p=p+1|0}while((p|0)!=(f|0))}o=o+1|0}while((o|0)!=(g|0));i=e;return 0}}if((d|0)==2|(d|0)==7)if((c[a+3384>>2]|0)==0|(h|0)==0)y=13;else y=14;else if(!h)y=13;else y=14;if((y|0)==13)ld(c[b>>2]|0,128,Z(f*384|0,g)|0);else if((y|0)==14)kd(c[b>>2]|0,h,Z(f*384|0,g)|0);g=c[k>>2]|0;c[a+1204>>2]=g;if(!g){i=e;return 0}k=c[a+1212>>2]|0;a=0;do{c[k+(a*216|0)+8>>2]=1;a=a+1|0}while(a>>>0>>0);i=e;return 0}function Fc(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Oa=0;k=i;i=i+480|0;l=k+96|0;m=k+32|0;n=k+24|0;o=k;p=c[e+4>>2]|0;q=c[e+8>>2]|0;Na(e,(Z(p,f)|0)+g|0);r=c[e>>2]|0;s=f<<4;t=g<<4;u=(Z(f<<8,p)|0)+t|0;c[b+20>>2]=40;c[b+8>>2]=0;c[b>>2]=6;c[b+12>>2]=0;c[b+16>>2]=0;c[b+24>>2]=0;do if((h|0)==2|(h|0)==7)ld(l,0,384);else{c[n>>2]=0;c[o+4>>2]=p;c[o+8>>2]=q;c[o>>2]=j;if(!j){ld(l,0,384);break}fc(l,n,o,t,s,0,0,16,16);vc(e,l);i=k;return}while(0);ld(m,0,64);if((f|0)!=0?(c[b+((0-p|0)*216|0)+196>>2]|0)!=0:0){s=u-(p<<4)|0;t=s|1;o=s|3;n=(d[r+t>>0]|0)+(d[r+s>>0]|0)+(d[r+(t+1)>>0]|0)+(d[r+o>>0]|0)|0;t=s|7;j=(d[r+(o+2)>>0]|0)+(d[r+(o+1)>>0]|0)+(d[r+(o+3)>>0]|0)+(d[r+t>>0]|0)|0;o=(d[r+(t+2)>>0]|0)+(d[r+(t+1)>>0]|0)+(d[r+(t+3)>>0]|0)+(d[r+(t+4)>>0]|0)|0;h=(d[r+(t+6)>>0]|0)+(d[r+(t+5)>>0]|0)+(d[r+(t+7)>>0]|0)+(d[r+(s|15)>>0]|0)|0;s=j+n|0;c[m>>2]=o+s+(c[m>>2]|0)+h;t=m+4|0;c[t>>2]=s-o-h+(c[t>>2]|0);v=n;w=j;x=o;y=h;z=1}else{v=0;w=0;x=0;y=0;z=0}if((q+-1|0)!=(f|0)?(c[b+(p*216|0)+196>>2]|0)!=0:0){h=u+(p<<8)|0;o=h|1;j=h|3;n=(d[r+o>>0]|0)+(d[r+h>>0]|0)+(d[r+(o+1)>>0]|0)+(d[r+j>>0]|0)|0;o=h|7;t=(d[r+(j+2)>>0]|0)+(d[r+(j+1)>>0]|0)+(d[r+(j+3)>>0]|0)+(d[r+o>>0]|0)|0;j=(d[r+(o+2)>>0]|0)+(d[r+(o+1)>>0]|0)+(d[r+(o+3)>>0]|0)+(d[r+(o+4)>>0]|0)|0;s=(d[r+(o+6)>>0]|0)+(d[r+(o+5)>>0]|0)+(d[r+(o+7)>>0]|0)+(d[r+(h|15)>>0]|0)|0;h=t+n|0;c[m>>2]=j+h+(c[m>>2]|0)+s;o=m+4|0;c[o>>2]=h-j-s+(c[o>>2]|0);A=1;B=n;C=t;D=j;E=s;F=z+1|0}else{A=0;B=0;C=0;D=0;E=0;F=z}if((g|0)!=0?(c[b+-20>>2]|0)!=0:0){s=u+-1|0;j=p<<4;t=p<<5;n=p*48|0;o=(d[r+(s+j)>>0]|0)+(d[r+s>>0]|0)+(d[r+(s+t)>>0]|0)+(d[r+(s+n)>>0]|0)|0;h=p<<6;G=s+h|0;s=(d[r+(G+j)>>0]|0)+(d[r+G>>0]|0)+(d[r+(G+t)>>0]|0)+(d[r+(G+n)>>0]|0)|0;H=G+h|0;G=(d[r+(H+j)>>0]|0)+(d[r+H>>0]|0)+(d[r+(H+t)>>0]|0)+(d[r+(H+n)>>0]|0)|0;I=H+h|0;h=(d[r+(I+j)>>0]|0)+(d[r+I>>0]|0)+(d[r+(I+t)>>0]|0)+(d[r+(I+n)>>0]|0)|0;n=s+o|0;c[m>>2]=G+n+(c[m>>2]|0)+h;I=m+16|0;c[I>>2]=n-G-h+(c[I>>2]|0);J=F+1|0;K=o;L=s;M=G;N=h;O=1}else{J=F;K=0;L=0;M=0;N=0;O=0}do if((p+-1|0)!=(g|0)?(c[b+412>>2]|0)!=0:0){h=u+16|0;G=p<<4;s=p<<5;o=p*48|0;I=(d[r+(h+G)>>0]|0)+(d[r+h>>0]|0)+(d[r+(h+s)>>0]|0)+(d[r+(h+o)>>0]|0)|0;n=p<<6;t=h+n|0;h=(d[r+(t+G)>>0]|0)+(d[r+t>>0]|0)+(d[r+(t+s)>>0]|0)+(d[r+(t+o)>>0]|0)|0;j=t+n|0;t=(d[r+(j+G)>>0]|0)+(d[r+j>>0]|0)+(d[r+(j+s)>>0]|0)+(d[r+(j+o)>>0]|0)|0;H=j+n|0;n=(d[r+(H+G)>>0]|0)+(d[r+H>>0]|0)+(d[r+(H+s)>>0]|0)+(d[r+(H+o)>>0]|0)|0;o=J+1|0;H=O+1|0;s=h+I|0;c[m>>2]=t+s+(c[m>>2]|0)+n;G=m+16|0;j=s-t-n+(c[G>>2]|0)|0;c[G>>2]=j;G=(F|0)==0;s=(O|0)!=0;if(!(G&s)){if(!G){P=1;Q=o;R=s;S=H;T=21;break}}else c[m+4>>2]=M+N+L+K-I-h-t-n>>5;U=j;V=1;W=o;X=s;Y=(z|0)!=0;_=(A|0)!=0;$=H;T=27}else T=17;while(0);if((T|0)==17){r=(O|0)!=0;if(!F){aa=0;ba=J;ca=r;da=O;T=23}else{P=0;Q=J;R=r;S=O;T=21}}if((T|0)==21){O=m+4|0;c[O>>2]=c[O>>2]>>F+3;aa=P;ba=Q;ca=R;da=S;T=23}do if((T|0)==23){S=(da|0)==0;R=(z|0)!=0;Q=(A|0)!=0;if(S&R&Q){c[m+16>>2]=x+y+w+v-E-D-C-B>>5;ea=aa;fa=ba;ga=ca;ha=1;ia=1;break}if(S){ea=aa;fa=ba;ga=ca;ha=R;ia=Q}else{U=c[m+16>>2]|0;V=aa;W=ba;X=ca;Y=R;_=Q;$=da;T=27}}while(0);if((T|0)==27){c[m+16>>2]=U>>$+3;ea=V;fa=W;ga=X;ha=Y;ia=_}if((fa|0)==1)c[m>>2]=c[m>>2]>>4;else if((fa|0)==2)c[m>>2]=c[m>>2]>>5;else if((fa|0)==3)c[m>>2]=(c[m>>2]|0)*21>>10;else c[m>>2]=c[m>>2]>>6;Gc(m);fa=0;_=l;Y=m;while(1){X=c[Y+((fa>>>2&3)<<2)>>2]|0;if((X|0)<0)ja=0;else ja=(X|0)>255?-1:X&255;a[_>>0]=ja;X=fa+1|0;if((X|0)==256)break;else{fa=X;_=_+1|0;Y=(X&63|0)==0?Y+16|0:Y}}Y=Z(q,p)|0;q=p<<3;_=0-q|0;fa=_|1;ja=fa+1|0;X=_|3;W=X+1|0;V=X+2|0;$=X+3|0;U=_|7;da=m+4|0;ca=p<<6;ba=ca|1;aa=ba+1|0;A=ca|3;z=A+1|0;Q=A+2|0;R=A+3|0;S=ca|7;P=q+-1|0;F=p<<4;O=F+-1|0;r=O+q|0;J=O+F|0;u=J+q|0;b=J+F|0;H=b+q|0;s=m+16|0;o=q+8|0;j=F|8;n=j+q|0;t=j+F|0;h=t+q|0;I=t+F|0;F=I+q|0;q=Y<<6;G=v;v=w;w=x;x=y;y=B;B=C;C=D;D=E;E=0;ka=K;K=L;L=M;M=N;N=(c[e>>2]|0)+((Z(f<<6,p)|0)+(g<<3)+(Y<<8))|0;while(1){ld(m,0,64);if(ha){Y=(d[N+fa>>0]|0)+(d[N+_>>0]|0)|0;g=(d[N+X>>0]|0)+(d[N+ja>>0]|0)|0;p=(d[N+V>>0]|0)+(d[N+W>>0]|0)|0;f=(d[N+U>>0]|0)+(d[N+$>>0]|0)|0;la=g+Y|0;c[m>>2]=p+la+(c[m>>2]|0)+f;c[da>>2]=la-p-f+(c[da>>2]|0);ma=Y;na=g;oa=p;pa=f;qa=1}else{ma=G;na=v;oa=w;pa=x;qa=0}if(ia){f=(d[N+ba>>0]|0)+(d[N+ca>>0]|0)|0;p=(d[N+A>>0]|0)+(d[N+aa>>0]|0)|0;g=(d[N+Q>>0]|0)+(d[N+z>>0]|0)|0;Y=(d[N+S>>0]|0)+(d[N+R>>0]|0)|0;la=p+f|0;c[m>>2]=g+la+(c[m>>2]|0)+Y;c[da>>2]=la-g-Y+(c[da>>2]|0);ra=f;sa=p;ta=g;ua=Y;va=qa+1|0}else{ra=y;sa=B;ta=C;ua=D;va=qa}if(ga){Y=(d[N+P>>0]|0)+(d[N+-1>>0]|0)|0;g=(d[N+r>>0]|0)+(d[N+O>>0]|0)|0;p=(d[N+u>>0]|0)+(d[N+J>>0]|0)|0;f=(d[N+H>>0]|0)+(d[N+b>>0]|0)|0;la=g+Y|0;c[m>>2]=p+la+(c[m>>2]|0)+f;c[s>>2]=la-p-f+(c[s>>2]|0);wa=va+1|0;xa=Y;ya=g;za=p;Aa=f;Ba=1}else{wa=va;xa=ka;ya=K;za=L;Aa=M;Ba=0}do if(ea){f=(d[N+o>>0]|0)+(d[N+8>>0]|0)|0;p=(d[N+n>>0]|0)+(d[N+j>>0]|0)|0;g=(d[N+h>>0]|0)+(d[N+t>>0]|0)|0;Y=(d[N+F>>0]|0)+(d[N+I>>0]|0)|0;la=wa+1|0;Ca=Ba+1|0;Da=p+f|0;c[m>>2]=g+Da+(c[m>>2]|0)+Y;Ea=Da-g-Y+(c[s>>2]|0)|0;c[s>>2]=Ea;Da=(va|0)==0;if(!(Da&ga))if(Da){Fa=Ea;Ga=la;Ha=Ca;T=54;break}else{Ia=la;Ja=Ca;T=49;break}else{c[da>>2]=za+Aa+ya+xa-f-p-g-Y>>4;Fa=Ea;Ga=la;Ha=Ca;T=54;break}}else if(!va){Ka=wa;La=Ba;T=50}else{Ia=wa;Ja=Ba;T=49}while(0);if((T|0)==49){T=0;c[da>>2]=c[da>>2]>>va+2;Ka=Ia;La=Ja;T=50}do if((T|0)==50){T=0;Ca=(La|0)==0;if(Ca&ha&ia){c[s>>2]=oa+pa+na+ma-ua-ta-sa-ra>>4;Ma=Ka;break}if(Ca)Ma=Ka;else{Fa=c[s>>2]|0;Ga=Ka;Ha=La;T=54}}while(0);if((T|0)==54){T=0;c[s>>2]=Fa>>Ha+2;Ma=Ga}if((Ma|0)==1)c[m>>2]=c[m>>2]>>3;else if((Ma|0)==2)c[m>>2]=c[m>>2]>>4;else if((Ma|0)==3)c[m>>2]=(c[m>>2]|0)*21>>9;else c[m>>2]=c[m>>2]>>5;Gc(m);Ca=0;la=l+((E<<6)+256)|0;Ea=m;while(1){Y=c[Ea+((Ca>>>1&3)<<2)>>2]|0;if((Y|0)<0)Oa=0;else Oa=(Y|0)>255?-1:Y&255;a[la>>0]=Oa;Y=Ca+1|0;if((Y|0)==64)break;else{Ca=Y;la=la+1|0;Ea=(Y&15|0)==0?Ea+16|0:Ea}}E=E+1|0;if((E|0)==2)break;else{G=ma;v=na;w=oa;x=pa;y=ra;B=sa;C=ta;D=ua;ka=xa;K=ya;L=za;M=Aa;N=N+q|0}}vc(e,l);i=k;return}function Gc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;b=i;d=a+4|0;e=c[d>>2]|0;f=a+16|0;g=c[f>>2]|0;h=c[a>>2]|0;if(!(e|g)){c[a+60>>2]=h;c[a+56>>2]=h;c[a+52>>2]=h;c[a+48>>2]=h;c[a+44>>2]=h;c[a+40>>2]=h;c[a+36>>2]=h;c[a+32>>2]=h;c[a+28>>2]=h;c[a+24>>2]=h;c[a+20>>2]=h;c[f>>2]=h;c[a+12>>2]=h;c[a+8>>2]=h;c[d>>2]=h;i=b;return}else{f=e+h|0;j=e>>1;k=j+h|0;l=h-j|0;j=h-e|0;c[a>>2]=g+f;e=g>>1;c[a+16>>2]=e+f;c[a+32>>2]=f-e;c[a+48>>2]=f-g;c[d>>2]=g+k;c[a+20>>2]=e+k;c[a+36>>2]=k-e;c[a+52>>2]=k-g;c[a+8>>2]=g+l;c[a+24>>2]=e+l;c[a+40>>2]=l-e;c[a+56>>2]=l-g;c[a+12>>2]=g+j;c[a+28>>2]=e+j;c[a+44>>2]=j-e;c[a+60>>2]=j-g;i=b;return}}function Hc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;d=i;ld(b,0,952);e=jb(a,1)|0;if((e|0)==-1){f=1;i=d;return f|0}g=(e|0)==1;c[b>>2]=g&1;do if(g){e=jb(a,8)|0;if((e|0)==-1){f=1;i=d;return f|0}c[b+4>>2]=e;if((e|0)==255){e=jb(a,16)|0;if((e|0)==-1){f=1;i=d;return f|0}c[b+8>>2]=e;e=jb(a,16)|0;if((e|0)==-1){f=1;i=d;return f|0}else{c[b+12>>2]=e;break}}}while(0);g=jb(a,1)|0;if((g|0)==-1){f=1;i=d;return f|0}e=(g|0)==1;c[b+16>>2]=e&1;do if(e){g=jb(a,1)|0;if((g|0)==-1){f=1;i=d;return f|0}else{c[b+20>>2]=(g|0)==1&1;break}}while(0);e=jb(a,1)|0;if((e|0)==-1){f=1;i=d;return f|0}g=(e|0)==1;c[b+24>>2]=g&1;do if(g){e=jb(a,3)|0;if((e|0)==-1){f=1;i=d;return f|0}c[b+28>>2]=e;e=jb(a,1)|0;if((e|0)==-1){f=1;i=d;return f|0}c[b+32>>2]=(e|0)==1&1;e=jb(a,1)|0;if((e|0)==-1){f=1;i=d;return f|0}h=(e|0)==1;c[b+36>>2]=h&1;if(!h){c[b+40>>2]=2;c[b+44>>2]=2;c[b+48>>2]=2;break}h=jb(a,8)|0;if((h|0)==-1){f=1;i=d;return f|0}c[b+40>>2]=h;h=jb(a,8)|0;if((h|0)==-1){f=1;i=d;return f|0}c[b+44>>2]=h;h=jb(a,8)|0;if((h|0)==-1){f=1;i=d;return f|0}else{c[b+48>>2]=h;break}}else{c[b+28>>2]=5;c[b+40>>2]=2;c[b+44>>2]=2;c[b+48>>2]=2}while(0);g=jb(a,1)|0;if((g|0)==-1){f=1;i=d;return f|0}h=(g|0)==1;c[b+52>>2]=h&1;if(h){h=b+56|0;g=nb(a,h)|0;if(g){f=g;i=d;return f|0}if((c[h>>2]|0)>>>0>5){f=1;i=d;return f|0}h=b+60|0;g=nb(a,h)|0;if(g){f=g;i=d;return f|0}if((c[h>>2]|0)>>>0>5){f=1;i=d;return f|0}}h=jb(a,1)|0;if((h|0)==-1){f=1;i=d;return f|0}g=(h|0)==1;c[b+64>>2]=g&1;do if(g){h=kb(a)|0;if((lb(a,32)|0)==-1|(h|0)==0){f=1;i=d;return f|0}c[b+68>>2]=h;h=kb(a)|0;if((lb(a,32)|0)==-1|(h|0)==0){f=1;i=d;return f|0}c[b+72>>2]=h;h=jb(a,1)|0;if((h|0)==-1){f=1;i=d;return f|0}else{c[b+76>>2]=(h|0)==1&1;break}}while(0);g=jb(a,1)|0;if((g|0)==-1){f=1;i=d;return f|0}h=(g|0)==1;g=b+80|0;c[g>>2]=h&1;if(h){h=Ic(a,b+84|0)|0;if(h){f=h;i=d;return f|0}}else{c[b+84>>2]=1;c[b+96>>2]=288000001;c[b+224>>2]=288000001;c[b+480>>2]=24;c[b+484>>2]=24;c[b+488>>2]=24;c[b+492>>2]=24}h=jb(a,1)|0;if((h|0)==-1){f=1;i=d;return f|0}e=(h|0)==1;h=b+496|0;c[h>>2]=e&1;if(e){e=Ic(a,b+500|0)|0;if(e){f=e;i=d;return f|0}}else{c[b+500>>2]=1;c[b+512>>2]=240000001;c[b+640>>2]=240000001;c[b+896>>2]=24;c[b+900>>2]=24;c[b+904>>2]=24;c[b+908>>2]=24}if(!((c[g>>2]|0)==0?(c[h>>2]|0)==0:0))j=46;do if((j|0)==46){h=jb(a,1)|0;if((h|0)==-1){f=1;i=d;return f|0}else{c[b+912>>2]=(h|0)==1&1;break}}while(0);j=jb(a,1)|0;if((j|0)==-1){f=1;i=d;return f|0}c[b+916>>2]=(j|0)==1&1;j=jb(a,1)|0;if((j|0)==-1){f=1;i=d;return f|0}h=(j|0)==1;c[b+920>>2]=h&1;do if(h){j=jb(a,1)|0;if((j|0)==-1){f=1;i=d;return f|0}c[b+924>>2]=(j|0)==1&1;j=b+928|0;g=nb(a,j)|0;if(g){f=g;i=d;return f|0}if((c[j>>2]|0)>>>0>16){f=1;i=d;return f|0}j=b+932|0;g=nb(a,j)|0;if(g){f=g;i=d;return f|0}if((c[j>>2]|0)>>>0>16){f=1;i=d;return f|0}j=b+936|0;g=nb(a,j)|0;if(g){f=g;i=d;return f|0}if((c[j>>2]|0)>>>0>16){f=1;i=d;return f|0}j=b+940|0;g=nb(a,j)|0;if(g){f=g;i=d;return f|0}if((c[j>>2]|0)>>>0>16){f=1;i=d;return f|0}j=nb(a,b+944|0)|0;if(j){f=j;i=d;return f|0}j=nb(a,b+948|0)|0;if(!j)break;else f=j;i=d;return f|0}else{c[b+924>>2]=1;c[b+928>>2]=2;c[b+932>>2]=1;c[b+936>>2]=16;c[b+940>>2]=16;c[b+944>>2]=16;c[b+948>>2]=16}while(0);f=0;i=d;return f|0}function Ic(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;d=i;e=nb(a,b)|0;if(e){f=e;i=d;return f|0}e=(c[b>>2]|0)+1|0;c[b>>2]=e;if(e>>>0>32){f=1;i=d;return f|0}e=jb(a,4)|0;if((e|0)==-1){f=1;i=d;return f|0}g=b+4|0;c[g>>2]=e;e=jb(a,4)|0;if((e|0)==-1){f=1;i=d;return f|0}h=b+8|0;c[h>>2]=e;a:do if(c[b>>2]|0){e=0;while(1){j=b+(e<<2)+12|0;k=nb(a,j)|0;if(k){f=k;l=17;break}k=c[j>>2]|0;if((k|0)==-1){f=1;l=17;break}m=k+1|0;c[j>>2]=m;c[j>>2]=m<<(c[g>>2]|0)+6;m=b+(e<<2)+140|0;j=nb(a,m)|0;if(j){f=j;l=17;break}j=c[m>>2]|0;if((j|0)==-1){f=1;l=17;break}k=j+1|0;c[m>>2]=k;c[m>>2]=k<<(c[h>>2]|0)+4;k=jb(a,1)|0;if((k|0)==-1){f=1;l=17;break}c[b+(e<<2)+268>>2]=(k|0)==1&1;e=e+1|0;if(e>>>0>=(c[b>>2]|0)>>>0)break a}if((l|0)==17){i=d;return f|0}}while(0);l=jb(a,5)|0;if((l|0)==-1){f=1;i=d;return f|0}c[b+396>>2]=l+1;l=jb(a,5)|0;if((l|0)==-1){f=1;i=d;return f|0}c[b+400>>2]=l+1;l=jb(a,5)|0;if((l|0)==-1){f=1;i=d;return f|0}c[b+404>>2]=l+1;l=jb(a,5)|0;if((l|0)==-1){f=1;i=d;return f|0}c[b+408>>2]=l;f=0;i=d;return f|0}function Jc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;f=i;a:do if(!(c[d+284>>2]|0))g=0;else{h=0;while(1){j=c[d+(h*20|0)+288>>2]|0;if((j|0)==5){g=1;break a}else if(!j)break;h=h+1|0}g=0}while(0);h=c[b+16>>2]|0;if((h|0)==1){if((c[e>>2]|0)!=5){j=c[a+12>>2]|0;if((c[a+8>>2]|0)>>>0>(c[d+12>>2]|0)>>>0)k=(c[b+12>>2]|0)+j|0;else k=j}else k=0;j=c[b+36>>2]|0;l=(j|0)==0;if(l)m=0;else m=(c[d+12>>2]|0)+k|0;n=(c[e+4>>2]|0)==0;o=((n&(m|0)!=0)<<31>>31)+m|0;m=(o|0)!=0;if(m){p=o+-1|0;q=(p>>>0)%(j>>>0)|0;r=(p>>>0)/(j>>>0)|0}else{q=0;r=0}if(l)s=0;else{l=c[b+40>>2]|0;p=0;o=0;while(1){t=(c[l+(o<<2)>>2]|0)+p|0;o=o+1|0;if(o>>>0>=j>>>0){s=t;break}else p=t}}if(m){m=Z(s,r)|0;r=c[b+40>>2]|0;s=0;p=m;while(1){m=(c[r+(s<<2)>>2]|0)+p|0;s=s+1|0;if(s>>>0>q>>>0){u=m;break}else p=m}}else u=0;if(n)v=(c[b+28>>2]|0)+u|0;else v=u;u=(c[d+32>>2]|0)+(c[b+32>>2]|0)|0;n=a+12|0;if(!g){p=((u|0)<0?u:0)+v+(c[d+28>>2]|0)|0;c[n>>2]=k;c[a+8>>2]=c[d+12>>2];w=p;i=f;return w|0}else{c[n>>2]=0;c[a+8>>2]=0;w=0;i=f;return w|0}}else if(!h){if((c[e>>2]|0)!=5){h=c[a>>2]|0;n=c[d+20>>2]|0;if(h>>>0>n>>>0?(p=c[b+20>>2]|0,(h-n|0)>>>0>=p>>>1>>>0):0){x=n;y=(c[a+4>>2]|0)+p|0;z=a}else{A=n;B=h;C=a;D=11}}else{c[a+4>>2]=0;c[a>>2]=0;A=c[d+20>>2]|0;B=0;C=a;D=11}do if((D|0)==11){if(A>>>0>B>>>0?(h=c[b+20>>2]|0,(A-B|0)>>>0>h>>>1>>>0):0){x=A;y=(c[a+4>>2]|0)-h|0;z=C;break}x=A;y=c[a+4>>2]|0;z=C}while(0);if(!(c[e+4>>2]|0)){C=c[d+24>>2]|0;w=x+y+((C|0)<0?C:0)|0;i=f;return w|0}c[a+4>>2]=y;C=c[d+24>>2]|0;A=(C|0)<0;if(!g){c[z>>2]=x;w=x+y+(A?C:0)|0;i=f;return w|0}else{c[a+4>>2]=0;c[z>>2]=A?0-C|0:0;w=0;i=f;return w|0}}else{if((c[e>>2]|0)==5){E=0;F=0;G=a+12|0}else{C=c[d+12>>2]|0;A=a+12|0;z=c[A>>2]|0;if((c[a+8>>2]|0)>>>0>C>>>0)H=(c[b+12>>2]|0)+z|0;else H=z;E=H;F=(C+H<<1)+(((c[e+4>>2]|0)==0)<<31>>31)|0;G=A}if(!g){c[G>>2]=E;c[a+8>>2]=c[d+12>>2];w=F;i=f;return w|0}else{c[G>>2]=0;c[a+8>>2]=0;w=0;i=f;return w|0}}return 0}function Kc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;Ab(a);e=id(2112)|0;c[a+3376>>2]=e;if(e)if(!b)f=0;else{c[a+1216>>2]=1;f=0}else f=1;i=d;return f|0} -function Lc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;g=i;i=i+208|0;h=g+204|0;j=g;k=g+112|0;l=g+40|0;m=g+16|0;n=g+12|0;o=g+8|0;c[n>>2]=0;p=a+3344|0;if((c[p>>2]|0)!=0?(c[a+3348>>2]|0)==(b|0):0){q=a+3356|0;c[m+0>>2]=c[q+0>>2];c[m+4>>2]=c[q+4>>2];c[m+8>>2]=c[q+8>>2];c[m+12>>2]=c[q+12>>2];c[m+4>>2]=c[m>>2];c[m+8>>2]=0;c[m+16>>2]=0;c[f>>2]=c[a+3352>>2]}else r=4;do if((r|0)==4)if(!(Pa(b,d,m,f)|0)){q=a+3356|0;c[q+0>>2]=c[m+0>>2];c[q+4>>2]=c[m+4>>2];c[q+8>>2]=c[m+8>>2];c[q+12>>2]=c[m+12>>2];c[q+16>>2]=c[m+16>>2];c[a+3352>>2]=c[f>>2];c[a+3348>>2]=b;break}else{s=3;i=g;return s|0}while(0);c[p>>2]=0;if(sb(m,j)|0){s=3;i=g;return s|0}if(((c[j>>2]|0)+-1|0)>>>0>11){s=0;i=g;return s|0}b=Ib(m,j,a,n)|0;if(!b){do if(!(c[n>>2]|0))r=19;else{if((c[a+1184>>2]|0)!=0?(c[a+16>>2]|0)!=0:0){if(c[a+3380>>2]|0){s=3;i=g;return s|0}if(!(c[a+1188>>2]|0)){d=a+1220|0;q=a+1336|0;c[q>>2]=lc(d)|0;pc(d);Ec(a,q,0)|0}else Ec(a,a+1336|0,c[a+1372>>2]|0)|0;c[f>>2]=0;c[p>>2]=1;c[a+1180>>2]=0;t=a+1336|0;u=a+1360|0;break}c[a+1188>>2]=0;c[a+1180>>2]=0;r=19}while(0);do if((r|0)==19){n=c[j>>2]|0;if((n|0)==7)if(!(Qa(m,k)|0)){Bb(a,k)|0;s=0;i=g;return s|0}else{q=k+40|0;jd(c[q>>2]|0);c[q>>2]=0;q=k+84|0;jd(c[q>>2]|0);c[q>>2]=0;s=3;i=g;return s|0}else if((n|0)==8)if(!(Sa(m,l)|0)){Cb(a,l)|0;s=0;i=g;return s|0}else{q=l+20|0;jd(c[q>>2]|0);c[q>>2]=0;q=l+24|0;jd(c[q>>2]|0);c[q>>2]=0;q=l+28|0;jd(c[q>>2]|0);c[q>>2]=0;q=l+44|0;jd(c[q>>2]|0);c[q>>2]=0;s=3;i=g;return s|0}else if((n|0)==1|(n|0)==5){n=a+1180|0;if(c[a+1180>>2]|0){s=0;i=g;return s|0}c[a+1184>>2]=1;if(Fb(a)|0){c[a+1204>>2]=0;c[a+1208>>2]=e;Ua(m,h)|0;q=a+8|0;d=c[q>>2]|0;v=Db(a,c[h>>2]|0,(c[j>>2]|0)==5&1)|0;if(v){c[a+4>>2]=256;c[a+12>>2]=0;c[q>>2]=32;c[a+16>>2]=0;c[a+3380>>2]=0;s=(v|0)==65535?5:4;i=g;return s|0}if((d|0)!=(c[q>>2]|0)){d=c[a+16>>2]|0;c[o>>2]=1;v=c[a>>2]|0;if(v>>>0<32)w=c[a+(v<<2)+20>>2]|0;else w=0;c[f>>2]=0;c[p>>2]=1;if((((((c[j>>2]|0)==5?(v=_a(o,m,d,c[a+12>>2]|0,5)|0,(c[o>>2]|v|0)==0):0)?(v=a+1220|0,!((c[a+1276>>2]|0)!=0|(w|0)==0)):0)?(c[w+52>>2]|0)==(c[d+52>>2]|0):0)?(c[w+56>>2]|0)==(c[d+56>>2]|0):0)?(c[w+88>>2]|0)==(c[d+88>>2]|0):0)sc(v);else c[a+1280>>2]=0;c[a>>2]=c[q>>2];s=2;i=g;return s|0}}if(c[a+3380>>2]|0){s=3;i=g;return s|0}q=a+1368|0;v=a+2356|0;d=a+16|0;if(Ta(m,v,c[d>>2]|0,c[a+12>>2]|0,j)|0){s=3;i=g;return s|0}if(!(Fb(a)|0))x=a+1220|0;else{y=a+1220|0;if((c[j>>2]|0)!=5?(qc(y,c[a+2368>>2]|0,(c[j+4>>2]|0)!=0&1,c[(c[d>>2]|0)+48>>2]|0)|0)!=0:0){s=3;i=g;return s|0}c[a+1336>>2]=lc(y)|0;x=y}rd(q|0,v|0,988)|0;c[a+1188>>2]=1;v=a+1360|0;y=j;d=c[y+4>>2]|0;z=v;c[z>>2]=c[y>>2];c[z+4>>2]=d;Hb(a,c[a+1432>>2]|0);pc(x);if(ic(x,a+1436|0,c[a+1380>>2]|0,c[a+1412>>2]|0)|0){s=3;i=g;return s|0}d=a+1336|0;if($a(m,a,d,q)|0){ab(a,c[q>>2]|0);s=3;i=g;return s|0}if(Gb(a)|0){c[n>>2]=1;t=d;u=v;break}else{s=0;i=g;return s|0}}else{s=0;i=g;return s|0}}while(0);xc(t,c[a+1212>>2]|0);Eb(a);m=Jc(a+1284|0,c[a+16>>2]|0,a+1368|0,u)|0;x=a+1188|0;do if(c[x>>2]|0){j=a+1220|0;if(!(c[a+1364>>2]|0)){jc(j,0,t,c[a+1380>>2]|0,m,(c[u>>2]|0)==5&1,c[a+1208>>2]|0,c[a+1204>>2]|0)|0;break}else{jc(j,a+1644|0,t,c[a+1380>>2]|0,m,(c[u>>2]|0)==5&1,c[a+1208>>2]|0,c[a+1204>>2]|0)|0;break}}while(0);c[a+1184>>2]=0;c[x>>2]=0;s=1;i=g;return s|0}else if((b|0)==65520){s=4;i=g;return s|0}else{s=3;i=g;return s|0}return 0}function Mc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;b=i;d=0;do{e=a+(d<<2)+20|0;f=c[e>>2]|0;if(f){jd(c[f+40>>2]|0);c[(c[e>>2]|0)+40>>2]=0;jd(c[(c[e>>2]|0)+84>>2]|0);c[(c[e>>2]|0)+84>>2]=0;jd(c[e>>2]|0);c[e>>2]=0}d=d+1|0}while((d|0)!=32);g=0;do{d=a+(g<<2)+148|0;e=c[d>>2]|0;if(e){jd(c[e+20>>2]|0);c[(c[d>>2]|0)+20>>2]=0;jd(c[(c[d>>2]|0)+24>>2]|0);c[(c[d>>2]|0)+24>>2]=0;jd(c[(c[d>>2]|0)+28>>2]|0);c[(c[d>>2]|0)+28>>2]=0;jd(c[(c[d>>2]|0)+44>>2]|0);c[(c[d>>2]|0)+44>>2]=0;jd(c[d>>2]|0);c[d>>2]=0}g=g+1|0}while((g|0)!=256);g=a+3376|0;jd(c[g>>2]|0);c[g>>2]=0;g=a+1212|0;jd(c[g>>2]|0);c[g>>2]=0;g=a+1172|0;jd(c[g>>2]|0);c[g>>2]=0;oc(a+1220|0);i=b;return}function Nc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;g=rc(a+1220|0)|0;if(!g){h=0;i=f;return h|0}c[b>>2]=c[g+4>>2];c[d>>2]=c[g+12>>2];c[e>>2]=c[g+8>>2];h=c[g>>2]|0;i=f;return h|0}function Oc(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[a+16>>2]|0;if(!d){e=0;i=b;return e|0}e=c[d+52>>2]|0;i=b;return e|0}function Pc(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[a+16>>2]|0;if(!d){e=0;i=b;return e|0}e=c[d+56>>2]|0;i=b;return e|0}function Qc(a){a=a|0;var b=0;b=i;sc(a+1220|0);i=b;return}function Rc(a){a=a|0;var b=0,c=0;b=i;c=(Jb(a)|0)==0&1;i=b;return c|0}function Sc(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[a+16>>2]|0;if(((((d|0)!=0?(c[d+80>>2]|0)!=0:0)?(a=c[d+84>>2]|0,(a|0)!=0):0)?(c[a+24>>2]|0)!=0:0)?(c[a+32>>2]|0)!=0:0){e=1;i=b;return e|0}e=0;i=b;return e|0}function Tc(a){a=a|0;var b=0,d=0,e=0;b=i;d=c[a+16>>2]|0;if(((((d|0)!=0?(c[d+80>>2]|0)!=0:0)?(a=c[d+84>>2]|0,(a|0)!=0):0)?(c[a+24>>2]|0)!=0:0)?(c[a+36>>2]|0)!=0:0)e=c[a+48>>2]|0;else e=2;i=b;return e|0}function Uc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;h=i;j=c[a+16>>2]|0;if((j|0)!=0?(c[j+60>>2]|0)!=0:0){c[b>>2]=1;a=j+64|0;c[d>>2]=c[a>>2]<<1;c[e>>2]=(c[j+52>>2]<<4)-((c[j+68>>2]|0)+(c[a>>2]|0)<<1);a=j+72|0;c[f>>2]=c[a>>2]<<1;k=(c[j+56>>2]<<4)-((c[j+76>>2]|0)+(c[a>>2]|0)<<1)|0;c[g>>2]=k;i=h;return}c[b>>2]=0;c[d>>2]=0;c[e>>2]=0;c[f>>2]=0;k=0;c[g>>2]=k;i=h;return}function Vc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;e=i;f=c[a+16>>2]|0;a:do if((((f|0)!=0?(c[f+80>>2]|0)!=0:0)?(a=c[f+84>>2]|0,(a|0)!=0):0)?(c[a>>2]|0)!=0:0){g=c[a+4>>2]|0;do switch(g|0){case 11:{h=11;j=15;break a;break}case 1:case 0:{h=g;j=g;break a;break}case 255:{k=c[a+8>>2]|0;l=c[a+12>>2]|0;m=(k|0)==0|(l|0)==0;h=m?0:l;j=m?0:k;break a;break}case 13:{h=99;j=160;break a;break}case 9:{h=33;j=80;break a;break}case 12:{h=33;j=64;break a;break}case 8:{h=11;j=32;break a;break}case 7:{h=11;j=20;break a;break}case 10:{h=11;j=18;break a;break}case 3:{h=11;j=10;break a;break}case 6:{h=11;j=24;break a;break}case 2:{h=11;j=12;break a;break}case 4:{h=11;j=16;break a;break}case 5:{h=33;j=40;break a;break}default:{h=0;j=0;break a}}while(0)}else{h=1;j=1}while(0);c[b>>2]=j;c[d>>2]=h;i=e;return}function Wc(a){a=a|0;var b=0,d=0;b=c[a+16>>2]|0;if(!b)d=0;else d=c[b>>2]|0;return d|0}function Xc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;do if(a){e=id(3396)|0;if(e){f=e+8|0;if(!(Kc(f,b)|0)){c[e>>2]=1;c[e+4>>2]=0;c[a>>2]=e;g=0;break}else{Mc(f);jd(e);g=-4;break}}else g=-4}else g=-1;while(0);i=d;return g|0}function Yc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;if((a|0)==0|(b|0)==0){e=-1;i=d;return e|0}f=a+8|0;if(!(c[a+24>>2]|0)){e=-6;i=d;return e|0}if(!(c[a+20>>2]|0)){e=-6;i=d;return e|0}c[b+4>>2]=(Oc(f)|0)<<4;c[b+8>>2]=(Pc(f)|0)<<4;c[b+12>>2]=Sc(f)|0;c[b+16>>2]=Tc(f)|0;Uc(f,b+28|0,b+32|0,b+36|0,b+40|0,b+44|0);Vc(f,b+20|0,b+24|0);c[b>>2]=Wc(f)|0;e=0;i=d;return e|0}function Zc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=i;i=i+16|0;f=e;a:do if((!((b|0)==0|(d|0)==0)?(g=c[b>>2]|0,(g|0)!=0):0)?(h=c[b+4>>2]|0,(h|0)!=0):0)if((a|0)!=0?(j=c[a>>2]|0,(j|0)!=0):0){c[d>>2]=0;c[f>>2]=0;k=a+8|0;c[a+3392>>2]=c[b+12>>2];l=b+8|0;m=j;j=1;n=h;h=g;while(1){if((m|0)==2){o=8;break}g=Lc(k,h,n,c[l>>2]|0,f)|0;p=c[f>>2]|0;q=h+p|0;r=n-p|0;s=(r|0)<0?0:r;c[d>>2]=q;if((g|0)==4){r=(Rc(k)|0|s|0)==0;t=r?-2:j}else if((g|0)==1){o=13;break}else if((g|0)==2)break;else if((g|0)==5){u=-4;break a}else t=j;if(!s){u=t;break a}m=c[a>>2]|0;j=t;n=s;h=q}if((o|0)==8){c[a>>2]=1;c[d>>2]=h+(c[f>>2]|0)}else if((o|0)==13){n=a+4|0;c[n>>2]=(c[n>>2]|0)+1;u=(s|0)==0?2:3;break}n=a+1288|0;if((c[n>>2]|0)!=0?(c[a+1244>>2]|0)!=(c[a+1248>>2]|0):0){c[n>>2]=0;c[a>>2]=2;u=3}else u=4}else u=-3;else u=-1;while(0);i=e;return u|0}function _c(a){a=a|0;c[a>>2]=2;c[a+4>>2]=3;return}function $c(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;h=e;if((a|0)==0|(b|0)==0){j=-1;i=e;return j|0}k=a+8|0;if(d)Qc(k);d=Nc(k,h,g,f)|0;if(!d){j=0;i=e;return j|0}c[b>>2]=d;c[b+4>>2]=c[h>>2];c[b+8>>2]=c[g>>2];c[b+12>>2]=c[f>>2];j=2;i=e;return j|0}function ad(a){a=a|0;var b=0,d=0;b=i;d=md(a)|0;c[1792]=d;c[1791]=d;c[1790]=a;c[1793]=d+a;i=b;return d|0}function bd(a){a=a|0;c[1790]=a;return}function cd(){var a=0;a=i;c[1786]=c[1791];c[1787]=c[1790];do ed()|0;while((c[1787]|0)!=0);i=a;return}function dd(){var a=0,b=0;a=i;if(Xc(7176,0)|0){da(7280)|0;b=c[1784]|0;if(b)nd(b)}else{c[1796]=1;c[1798]=1}i=a;return -1}function ed(){var a=0,b=0,d=0,e=0;a=i;c[1788]=c[1798];b=Zc(c[1794]|0,7144,7200)|0;switch(b|0){case 2:{c[1787]=0;break}case 4:{if(Yc(c[1794]|0,7208)|0){d=-1;i=a;return d|0}c[1814]=(Z((c[1803]|0)*3|0,c[1804]|0)|0)>>>1;ra();e=c[1800]|0;c[1787]=(c[1786]|0)-e+(c[1787]|0);c[1786]=e;d=0;i=a;return d|0}case 3:{e=c[1800]|0;c[1787]=(c[1786]|0)-e+(c[1787]|0);c[1786]=e;break}case 1:case -2:{c[1787]=0;d=b;i=a;return d|0}default:{d=b;i=a;return d|0}}c[1798]=(c[1798]|0)+1;if(($c(c[1794]|0,7264,0)|0)!=2){d=b;i=a;return d|0}do{c[1796]=(c[1796]|0)+1;ca(c[1816]|0,c[1803]|0,c[1804]|0)}while(($c(c[1794]|0,7264,0)|0)==2);d=b;i=a;return d|0}function fd(){var a=0,b=0;a=i;b=c[1784]|0;if(b)nd(b);i=a;return}function gd(){var a=0,b=0;a=i;i=i+16|0;b=a;_c(b);i=a;return c[b>>2]|0}function hd(){var a=0,b=0;a=i;i=i+16|0;b=a;_c(b);i=a;return c[b+4>>2]|0}function id(a){a=a|0;var b=0,c=0;b=i;c=md(a)|0;i=b;return c|0}function jd(a){a=a|0;var b=0;b=i;nd(a);i=b;return}function kd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;rd(a|0,b|0,c|0)|0;i=d;return}function ld(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;qd(a|0,b&255|0,c|0)|0;i=d;return}function md(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,la=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0;b=i;do if(a>>>0<245){if(a>>>0<11)d=16;else d=a+11&-8;e=d>>>3;f=c[1828]|0;g=f>>>e;if(g&3){h=(g&1^1)+e|0;j=h<<1;k=7352+(j<<2)|0;l=7352+(j+2<<2)|0;j=c[l>>2]|0;m=j+8|0;n=c[m>>2]|0;do if((k|0)!=(n|0)){if(n>>>0<(c[1832]|0)>>>0)ka();o=n+12|0;if((c[o>>2]|0)==(j|0)){c[o>>2]=k;c[l>>2]=n;break}else ka()}else c[1828]=f&~(1<>2]=n|3;l=j+(n|4)|0;c[l>>2]=c[l>>2]|1;p=m;i=b;return p|0}l=c[1830]|0;if(d>>>0>l>>>0){if(g){n=2<>>12&16;o=n>>>k;n=o>>>5&8;q=o>>>n;o=q>>>2&4;r=q>>>o;q=r>>>1&2;s=r>>>q;r=s>>>1&1;t=(n|k|o|q|r)+(s>>>r)|0;r=t<<1;s=7352+(r<<2)|0;q=7352+(r+2<<2)|0;r=c[q>>2]|0;o=r+8|0;k=c[o>>2]|0;do if((s|0)!=(k|0)){if(k>>>0<(c[1832]|0)>>>0)ka();n=k+12|0;if((c[n>>2]|0)==(r|0)){c[n>>2]=s;c[q>>2]=k;u=c[1830]|0;break}else ka()}else{c[1828]=f&~(1<>2]=d|3;k=r+d|0;c[r+(d|4)>>2]=f|1;c[r+l>>2]=f;if(u){l=c[1833]|0;q=u>>>3;s=q<<1;e=7352+(s<<2)|0;g=c[1828]|0;m=1<>2]|0;if(j>>>0<(c[1832]|0)>>>0)ka();else{v=q;w=j}}else{c[1828]=g|m;v=7352+(s+2<<2)|0;w=e}c[v>>2]=l;c[w+12>>2]=l;c[l+8>>2]=w;c[l+12>>2]=e}c[1830]=f;c[1833]=k;p=o;i=b;return p|0}k=c[1829]|0;if(k){f=(k&0-k)+-1|0;k=f>>>12&16;e=f>>>k;f=e>>>5&8;l=e>>>f;e=l>>>2&4;s=l>>>e;l=s>>>1&2;m=s>>>l;s=m>>>1&1;g=c[7616+((f|k|e|l|s)+(m>>>s)<<2)>>2]|0;s=(c[g+4>>2]&-8)-d|0;m=g;l=g;while(1){g=c[m+16>>2]|0;if(!g){e=c[m+20>>2]|0;if(!e)break;else x=e}else x=g;g=(c[x+4>>2]&-8)-d|0;e=g>>>0>>0;s=e?g:s;m=x;l=e?x:l}m=c[1832]|0;if(l>>>0>>0)ka();o=l+d|0;if(l>>>0>=o>>>0)ka();r=c[l+24>>2]|0;t=c[l+12>>2]|0;do if((t|0)==(l|0)){e=l+20|0;g=c[e>>2]|0;if(!g){k=l+16|0;f=c[k>>2]|0;if(!f){y=0;break}else{z=f;A=k}}else{z=g;A=e}while(1){e=z+20|0;g=c[e>>2]|0;if(g){z=g;A=e;continue}e=z+16|0;g=c[e>>2]|0;if(!g)break;else{z=g;A=e}}if(A>>>0>>0)ka();else{c[A>>2]=0;y=z;break}}else{e=c[l+8>>2]|0;if(e>>>0>>0)ka();g=e+12|0;if((c[g>>2]|0)!=(l|0))ka();k=t+8|0;if((c[k>>2]|0)==(l|0)){c[g>>2]=t;c[k>>2]=e;y=t;break}else ka()}while(0);do if(r){t=c[l+28>>2]|0;m=7616+(t<<2)|0;if((l|0)==(c[m>>2]|0)){c[m>>2]=y;if(!y){c[1829]=c[1829]&~(1<>>0<(c[1832]|0)>>>0)ka();t=r+16|0;if((c[t>>2]|0)==(l|0))c[t>>2]=y;else c[r+20>>2]=y;if(!y)break}t=c[1832]|0;if(y>>>0>>0)ka();c[y+24>>2]=r;m=c[l+16>>2]|0;do if(m)if(m>>>0>>0)ka();else{c[y+16>>2]=m;c[m+24>>2]=y;break}while(0);m=c[l+20>>2]|0;if(m)if(m>>>0<(c[1832]|0)>>>0)ka();else{c[y+20>>2]=m;c[m+24>>2]=y;break}}while(0);if(s>>>0<16){r=s+d|0;c[l+4>>2]=r|3;m=l+(r+4)|0;c[m>>2]=c[m>>2]|1}else{c[l+4>>2]=d|3;c[l+(d|4)>>2]=s|1;c[l+(s+d)>>2]=s;m=c[1830]|0;if(m){r=c[1833]|0;t=m>>>3;m=t<<1;e=7352+(m<<2)|0;k=c[1828]|0;g=1<>2]|0;if(f>>>0<(c[1832]|0)>>>0)ka();else{B=t;C=f}}else{c[1828]=k|g;B=7352+(m+2<<2)|0;C=e}c[B>>2]=r;c[C+12>>2]=r;c[r+8>>2]=C;c[r+12>>2]=e}c[1830]=s;c[1833]=o}p=l+8|0;i=b;return p|0}else D=d}else D=d}else if(a>>>0<=4294967231){e=a+11|0;r=e&-8;m=c[1829]|0;if(m){g=0-r|0;k=e>>>8;if(k)if(r>>>0>16777215)E=31;else{e=(k+1048320|0)>>>16&8;f=k<>>16&4;t=f<>>16&2;j=14-(k|e|f)+(t<>>15)|0;E=r>>>(j+7|0)&1|j<<1}else E=0;j=c[7616+(E<<2)>>2]|0;a:do if(!j){F=g;G=0;H=0}else{if((E|0)==31)I=0;else I=25-(E>>>1)|0;f=g;t=0;e=r<>2]&-8;n=h-r|0;if(n>>>0>>0)if((h|0)==(r|0)){F=n;G=k;H=k;break a}else{J=n;K=k}else{J=f;K=q}n=c[k+20>>2]|0;k=c[k+(e>>>31<<2)+16>>2]|0;h=(n|0)==0|(n|0)==(k|0)?t:n;if(!k){F=J;G=h;H=K;break}else{f=J;t=h;e=e<<1;q=K}}}while(0);if((G|0)==0&(H|0)==0){j=2<>>12&16;l=j>>>g;j=l>>>5&8;o=l>>>j;l=o>>>2&4;s=o>>>l;o=s>>>1&2;q=s>>>o;s=q>>>1&1;L=c[7616+((j|g|l|o|s)+(q>>>s)<<2)>>2]|0}else L=G;if(!L){M=F;N=H}else{s=F;q=L;o=H;while(1){l=(c[q+4>>2]&-8)-r|0;g=l>>>0>>0;j=g?l:s;l=g?q:o;g=c[q+16>>2]|0;if(g){s=j;q=g;o=l;continue}q=c[q+20>>2]|0;if(!q){M=j;N=l;break}else{s=j;o=l}}}if((N|0)!=0?M>>>0<((c[1830]|0)-r|0)>>>0:0){o=c[1832]|0;if(N>>>0>>0)ka();s=N+r|0;if(N>>>0>=s>>>0)ka();q=c[N+24>>2]|0;m=c[N+12>>2]|0;do if((m|0)==(N|0)){l=N+20|0;j=c[l>>2]|0;if(!j){g=N+16|0;e=c[g>>2]|0;if(!e){O=0;break}else{P=e;Q=g}}else{P=j;Q=l}while(1){l=P+20|0;j=c[l>>2]|0;if(j){P=j;Q=l;continue}l=P+16|0;j=c[l>>2]|0;if(!j)break;else{P=j;Q=l}}if(Q>>>0>>0)ka();else{c[Q>>2]=0;O=P;break}}else{l=c[N+8>>2]|0;if(l>>>0>>0)ka();j=l+12|0;if((c[j>>2]|0)!=(N|0))ka();g=m+8|0;if((c[g>>2]|0)==(N|0)){c[j>>2]=m;c[g>>2]=l;O=m;break}else ka()}while(0);do if(q){m=c[N+28>>2]|0;o=7616+(m<<2)|0;if((N|0)==(c[o>>2]|0)){c[o>>2]=O;if(!O){c[1829]=c[1829]&~(1<>>0<(c[1832]|0)>>>0)ka();m=q+16|0;if((c[m>>2]|0)==(N|0))c[m>>2]=O;else c[q+20>>2]=O;if(!O)break}m=c[1832]|0;if(O>>>0>>0)ka();c[O+24>>2]=q;o=c[N+16>>2]|0;do if(o)if(o>>>0>>0)ka();else{c[O+16>>2]=o;c[o+24>>2]=O;break}while(0);o=c[N+20>>2]|0;if(o)if(o>>>0<(c[1832]|0)>>>0)ka();else{c[O+20>>2]=o;c[o+24>>2]=O;break}}while(0);b:do if(M>>>0>=16){c[N+4>>2]=r|3;c[N+(r|4)>>2]=M|1;c[N+(M+r)>>2]=M;q=M>>>3;if(M>>>0<256){o=q<<1;m=7352+(o<<2)|0;l=c[1828]|0;g=1<>2]|0;if(j>>>0>=(c[1832]|0)>>>0){R=q;S=j;break}ka()}while(0);c[R>>2]=s;c[S+12>>2]=s;c[N+(r+8)>>2]=S;c[N+(r+12)>>2]=m;break}o=M>>>8;if(o)if(M>>>0>16777215)T=31;else{g=(o+1048320|0)>>>16&8;l=o<>>16&4;j=l<>>16&2;q=14-(o|g|l)+(j<>>15)|0;T=M>>>(q+7|0)&1|q<<1}else T=0;q=7616+(T<<2)|0;c[N+(r+28)>>2]=T;c[N+(r+20)>>2]=0;c[N+(r+16)>>2]=0;l=c[1829]|0;j=1<>2]=s;c[N+(r+24)>>2]=q;c[N+(r+12)>>2]=s;c[N+(r+8)>>2]=s;break}j=c[q>>2]|0;if((T|0)==31)U=0;else U=25-(T>>>1)|0;c:do if((c[j+4>>2]&-8|0)!=(M|0)){q=M<>>31<<2)+16|0;g=c[V>>2]|0;if(!g)break;if((c[g+4>>2]&-8|0)==(M|0)){W=g;break c}else{q=q<<1;l=g}}if(V>>>0<(c[1832]|0)>>>0)ka();else{c[V>>2]=s;c[N+(r+24)>>2]=l;c[N+(r+12)>>2]=s;c[N+(r+8)>>2]=s;break b}}else W=j;while(0);j=W+8|0;m=c[j>>2]|0;q=c[1832]|0;if(W>>>0>=q>>>0&m>>>0>=q>>>0){c[m+12>>2]=s;c[j>>2]=s;c[N+(r+8)>>2]=m;c[N+(r+12)>>2]=W;c[N+(r+24)>>2]=0;break}else ka()}else{m=M+r|0;c[N+4>>2]=m|3;j=N+(m+4)|0;c[j>>2]=c[j>>2]|1}while(0);p=N+8|0;i=b;return p|0}else D=r}else D=r}else D=-1;while(0);N=c[1830]|0;if(N>>>0>=D>>>0){M=N-D|0;W=c[1833]|0;if(M>>>0>15){c[1833]=W+D;c[1830]=M;c[W+(D+4)>>2]=M|1;c[W+N>>2]=M;c[W+4>>2]=D|3}else{c[1830]=0;c[1833]=0;c[W+4>>2]=N|3;M=W+(N+4)|0;c[M>>2]=c[M>>2]|1}p=W+8|0;i=b;return p|0}W=c[1831]|0;if(W>>>0>D>>>0){M=W-D|0;c[1831]=M;W=c[1834]|0;c[1834]=W+D;c[W+(D+4)>>2]=M|1;c[W+4>>2]=D|3;p=W+8|0;i=b;return p|0}do if(!(c[1946]|0)){W=ua(30)|0;if(!(W+-1&W)){c[1948]=W;c[1947]=W;c[1949]=-1;c[1950]=-1;c[1951]=0;c[1939]=0;c[1946]=(ta(0)|0)&-16^1431655768;break}else ka()}while(0);W=D+48|0;M=c[1948]|0;N=D+47|0;V=M+N|0;U=0-M|0;M=V&U;if(M>>>0<=D>>>0){p=0;i=b;return p|0}T=c[1938]|0;if((T|0)!=0?(S=c[1936]|0,R=S+M|0,R>>>0<=S>>>0|R>>>0>T>>>0):0){p=0;i=b;return p|0}d:do if(!(c[1939]&4)){T=c[1834]|0;e:do if(T){R=7760|0;while(1){S=c[R>>2]|0;if(S>>>0<=T>>>0?(X=R+4|0,(S+(c[X>>2]|0)|0)>>>0>T>>>0):0)break;S=c[R+8>>2]|0;if(!S){Y=181;break e}else R=S}if(R){S=V-(c[1831]|0)&U;if(S>>>0<2147483647){O=ma(S|0)|0;if((O|0)==((c[R>>2]|0)+(c[X>>2]|0)|0)){Z=O;_=S;Y=190}else{$=O;aa=S;Y=191}}else ba=0}else Y=181}else Y=181;while(0);do if((Y|0)==181){T=ma(0)|0;if((T|0)!=(-1|0)){r=T;S=c[1947]|0;O=S+-1|0;if(!(O&r))ca=M;else ca=M-r+(O+r&0-S)|0;S=c[1936]|0;r=S+ca|0;if(ca>>>0>D>>>0&ca>>>0<2147483647){O=c[1938]|0;if((O|0)!=0?r>>>0<=S>>>0|r>>>0>O>>>0:0){ba=0;break}O=ma(ca|0)|0;if((O|0)==(T|0)){Z=T;_=ca;Y=190}else{$=O;aa=ca;Y=191}}else ba=0}else ba=0}while(0);f:do if((Y|0)==190)if((Z|0)==(-1|0))ba=_;else{da=Z;ea=_;Y=201;break d}else if((Y|0)==191){O=0-aa|0;do if(($|0)!=(-1|0)&aa>>>0<2147483647&W>>>0>aa>>>0?(T=c[1948]|0,r=N-aa+T&0-T,r>>>0<2147483647):0)if((ma(r|0)|0)==(-1|0)){ma(O|0)|0;ba=0;break f}else{fa=r+aa|0;break}else fa=aa;while(0);if(($|0)==(-1|0))ba=0;else{da=$;ea=fa;Y=201;break d}}while(0);c[1939]=c[1939]|4;ga=ba;Y=198}else{ga=0;Y=198}while(0);if((((Y|0)==198?M>>>0<2147483647:0)?(ba=ma(M|0)|0,M=ma(0)|0,(ba|0)!=(-1|0)&(M|0)!=(-1|0)&ba>>>0>>0):0)?(fa=M-ba|0,M=fa>>>0>(D+40|0)>>>0,M):0){da=ba;ea=M?fa:ga;Y=201}if((Y|0)==201){ga=(c[1936]|0)+ea|0;c[1936]=ga;if(ga>>>0>(c[1937]|0)>>>0)c[1937]=ga;ga=c[1834]|0;g:do if(ga){fa=7760|0;while(1){ha=c[fa>>2]|0;ia=fa+4|0;ja=c[ia>>2]|0;if((da|0)==(ha+ja|0)){Y=213;break}M=c[fa+8>>2]|0;if(!M)break;else fa=M}if(((Y|0)==213?(c[fa+12>>2]&8|0)==0:0)?ga>>>0>=ha>>>0&ga>>>0>>0:0){c[ia>>2]=ja+ea;M=(c[1831]|0)+ea|0;ba=ga+8|0;if(!(ba&7))la=0;else la=0-ba&7;ba=M-la|0;c[1834]=ga+la;c[1831]=ba;c[ga+(la+4)>>2]=ba|1;c[ga+(M+4)>>2]=40;c[1835]=c[1950];break}M=c[1832]|0;if(da>>>0>>0){c[1832]=da;na=da}else na=M;M=da+ea|0;ba=7760|0;while(1){if((c[ba>>2]|0)==(M|0)){Y=223;break}$=c[ba+8>>2]|0;if(!$)break;else ba=$}if((Y|0)==223?(c[ba+12>>2]&8|0)==0:0){c[ba>>2]=da;M=ba+4|0;c[M>>2]=(c[M>>2]|0)+ea;M=da+8|0;if(!(M&7))oa=0;else oa=0-M&7;M=da+(ea+8)|0;if(!(M&7))pa=0;else pa=0-M&7;M=da+(pa+ea)|0;fa=oa+D|0;$=da+fa|0;aa=M-(da+oa)-D|0;c[da+(oa+4)>>2]=D|3;h:do if((M|0)!=(ga|0)){if((M|0)==(c[1833]|0)){N=(c[1830]|0)+aa|0;c[1830]=N;c[1833]=$;c[da+(fa+4)>>2]=N|1;c[da+(N+fa)>>2]=N;break}N=ea+4|0;W=c[da+(N+pa)>>2]|0;if((W&3|0)==1){_=W&-8;Z=W>>>3;i:do if(W>>>0>=256){ca=c[da+((pa|24)+ea)>>2]|0;X=c[da+(ea+12+pa)>>2]|0;do if((X|0)==(M|0)){U=pa|16;V=da+(N+U)|0;O=c[V>>2]|0;if(!O){R=da+(U+ea)|0;U=c[R>>2]|0;if(!U){qa=0;break}else{ra=U;sa=R}}else{ra=O;sa=V}while(1){V=ra+20|0;O=c[V>>2]|0;if(O){ra=O;sa=V;continue}V=ra+16|0;O=c[V>>2]|0;if(!O)break;else{ra=O;sa=V}}if(sa>>>0>>0)ka();else{c[sa>>2]=0;qa=ra;break}}else{V=c[da+((pa|8)+ea)>>2]|0;if(V>>>0>>0)ka();O=V+12|0;if((c[O>>2]|0)!=(M|0))ka();R=X+8|0;if((c[R>>2]|0)==(M|0)){c[O>>2]=X;c[R>>2]=V;qa=X;break}else ka()}while(0);if(!ca)break;X=c[da+(ea+28+pa)>>2]|0;l=7616+(X<<2)|0;do if((M|0)!=(c[l>>2]|0)){if(ca>>>0<(c[1832]|0)>>>0)ka();V=ca+16|0;if((c[V>>2]|0)==(M|0))c[V>>2]=qa;else c[ca+20>>2]=qa;if(!qa)break i}else{c[l>>2]=qa;if(qa)break;c[1829]=c[1829]&~(1<>>0>>0)ka();c[qa+24>>2]=ca;l=pa|16;V=c[da+(l+ea)>>2]|0;do if(V)if(V>>>0>>0)ka();else{c[qa+16>>2]=V;c[V+24>>2]=qa;break}while(0);V=c[da+(N+l)>>2]|0;if(!V)break;if(V>>>0<(c[1832]|0)>>>0)ka();else{c[qa+20>>2]=V;c[V+24>>2]=qa;break}}else{V=c[da+((pa|8)+ea)>>2]|0;X=c[da+(ea+12+pa)>>2]|0;ca=7352+(Z<<1<<2)|0;do if((V|0)!=(ca|0)){if(V>>>0>>0)ka();if((c[V+12>>2]|0)==(M|0))break;ka()}while(0);if((X|0)==(V|0)){c[1828]=c[1828]&~(1<>>0>>0)ka();l=X+8|0;if((c[l>>2]|0)==(M|0)){wa=l;break}ka()}while(0);c[V+12>>2]=X;c[wa>>2]=V}while(0);xa=da+((_|pa)+ea)|0;ya=_+aa|0}else{xa=M;ya=aa}Z=xa+4|0;c[Z>>2]=c[Z>>2]&-2;c[da+(fa+4)>>2]=ya|1;c[da+(ya+fa)>>2]=ya;Z=ya>>>3;if(ya>>>0<256){N=Z<<1;W=7352+(N<<2)|0;ca=c[1828]|0;l=1<>2]|0;if(R>>>0>=(c[1832]|0)>>>0){za=Z;Aa=R;break}ka()}while(0);c[za>>2]=$;c[Aa+12>>2]=$;c[da+(fa+8)>>2]=Aa;c[da+(fa+12)>>2]=W;break}N=ya>>>8;do if(!N)Ba=0;else{if(ya>>>0>16777215){Ba=31;break}l=(N+1048320|0)>>>16&8;ca=N<>>16&4;R=ca<<_;ca=(R+245760|0)>>>16&2;Z=14-(_|l|ca)+(R<>>15)|0;Ba=ya>>>(Z+7|0)&1|Z<<1}while(0);N=7616+(Ba<<2)|0;c[da+(fa+28)>>2]=Ba;c[da+(fa+20)>>2]=0;c[da+(fa+16)>>2]=0;W=c[1829]|0;Z=1<>2]=$;c[da+(fa+24)>>2]=N;c[da+(fa+12)>>2]=$;c[da+(fa+8)>>2]=$;break}Z=c[N>>2]|0;if((Ba|0)==31)Ca=0;else Ca=25-(Ba>>>1)|0;j:do if((c[Z+4>>2]&-8|0)!=(ya|0)){N=ya<>>31<<2)+16|0;ca=c[Da>>2]|0;if(!ca)break;if((c[ca+4>>2]&-8|0)==(ya|0)){Ea=ca;break j}else{N=N<<1;W=ca}}if(Da>>>0<(c[1832]|0)>>>0)ka();else{c[Da>>2]=$;c[da+(fa+24)>>2]=W;c[da+(fa+12)>>2]=$;c[da+(fa+8)>>2]=$;break h}}else Ea=Z;while(0);Z=Ea+8|0;N=c[Z>>2]|0;V=c[1832]|0;if(Ea>>>0>=V>>>0&N>>>0>=V>>>0){c[N+12>>2]=$;c[Z>>2]=$;c[da+(fa+8)>>2]=N;c[da+(fa+12)>>2]=Ea;c[da+(fa+24)>>2]=0;break}else ka()}else{N=(c[1831]|0)+aa|0;c[1831]=N;c[1834]=$;c[da+(fa+4)>>2]=N|1}while(0);p=da+(oa|8)|0;i=b;return p|0}fa=7760|0;while(1){Fa=c[fa>>2]|0;if(Fa>>>0<=ga>>>0?(Ga=c[fa+4>>2]|0,Ha=Fa+Ga|0,Ha>>>0>ga>>>0):0)break;fa=c[fa+8>>2]|0}fa=Fa+(Ga+-39)|0;if(!(fa&7))Ia=0;else Ia=0-fa&7;fa=Fa+(Ga+-47+Ia)|0;$=fa>>>0<(ga+16|0)>>>0?ga:fa;fa=$+8|0;aa=da+8|0;if(!(aa&7))Ja=0;else Ja=0-aa&7;aa=ea+-40-Ja|0;c[1834]=da+Ja;c[1831]=aa;c[da+(Ja+4)>>2]=aa|1;c[da+(ea+-36)>>2]=40;c[1835]=c[1950];c[$+4>>2]=27;c[fa+0>>2]=c[1940];c[fa+4>>2]=c[1941];c[fa+8>>2]=c[1942];c[fa+12>>2]=c[1943];c[1940]=da;c[1941]=ea;c[1943]=0;c[1942]=fa;fa=$+28|0;c[fa>>2]=7;if(($+32|0)>>>0>>0){aa=fa;do{fa=aa;aa=aa+4|0;c[aa>>2]=7}while((fa+8|0)>>>0>>0)}if(($|0)!=(ga|0)){aa=$-ga|0;fa=ga+(aa+4)|0;c[fa>>2]=c[fa>>2]&-2;c[ga+4>>2]=aa|1;c[ga+aa>>2]=aa;fa=aa>>>3;if(aa>>>0<256){M=fa<<1;ba=7352+(M<<2)|0;N=c[1828]|0;Z=1<>2]|0;if(V>>>0>=(c[1832]|0)>>>0){Ka=fa;La=V;break}ka()}while(0);c[Ka>>2]=ga;c[La+12>>2]=ga;c[ga+8>>2]=La;c[ga+12>>2]=ba;break}M=aa>>>8;if(M)if(aa>>>0>16777215)Ma=31;else{Z=(M+1048320|0)>>>16&8;N=M<>>16&4;$=N<>>16&2;V=14-(M|Z|N)+($<>>15)|0;Ma=aa>>>(V+7|0)&1|V<<1}else Ma=0;V=7616+(Ma<<2)|0;c[ga+28>>2]=Ma;c[ga+20>>2]=0;c[ga+16>>2]=0;N=c[1829]|0;$=1<>2]=ga;c[ga+24>>2]=V;c[ga+12>>2]=ga;c[ga+8>>2]=ga;break}$=c[V>>2]|0;if((Ma|0)==31)Na=0;else Na=25-(Ma>>>1)|0;k:do if((c[$+4>>2]&-8|0)!=(aa|0)){V=aa<>>31<<2)+16|0;Z=c[Oa>>2]|0;if(!Z)break;if((c[Z+4>>2]&-8|0)==(aa|0)){Pa=Z;break k}else{V=V<<1;N=Z}}if(Oa>>>0<(c[1832]|0)>>>0)ka();else{c[Oa>>2]=ga;c[ga+24>>2]=N;c[ga+12>>2]=ga;c[ga+8>>2]=ga;break g}}else Pa=$;while(0);$=Pa+8|0;aa=c[$>>2]|0;ba=c[1832]|0;if(Pa>>>0>=ba>>>0&aa>>>0>=ba>>>0){c[aa+12>>2]=ga;c[$>>2]=ga;c[ga+8>>2]=aa;c[ga+12>>2]=Pa;c[ga+24>>2]=0;break}else ka()}}else{aa=c[1832]|0;if((aa|0)==0|da>>>0>>0)c[1832]=da;c[1940]=da;c[1941]=ea;c[1943]=0;c[1837]=c[1946];c[1836]=-1;aa=0;do{$=aa<<1;ba=7352+($<<2)|0;c[7352+($+3<<2)>>2]=ba;c[7352+($+2<<2)>>2]=ba;aa=aa+1|0}while((aa|0)!=32);aa=da+8|0;if(!(aa&7))Qa=0;else Qa=0-aa&7;aa=ea+-40-Qa|0;c[1834]=da+Qa;c[1831]=aa;c[da+(Qa+4)>>2]=aa|1;c[da+(ea+-36)>>2]=40;c[1835]=c[1950]}while(0);ea=c[1831]|0;if(ea>>>0>D>>>0){da=ea-D|0;c[1831]=da;ea=c[1834]|0;c[1834]=ea+D;c[ea+(D+4)>>2]=da|1;c[ea+4>>2]=D|3;p=ea+8|0;i=b;return p|0}}c[(va()|0)>>2]=12;p=0;i=b;return p|0}function nd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;b=i;if(!a){i=b;return}d=a+-8|0;e=c[1832]|0;if(d>>>0>>0)ka();f=c[a+-4>>2]|0;g=f&3;if((g|0)==1)ka();h=f&-8;j=a+(h+-8)|0;do if(!(f&1)){k=c[d>>2]|0;if(!g){i=b;return}l=-8-k|0;m=a+l|0;n=k+h|0;if(m>>>0>>0)ka();if((m|0)==(c[1833]|0)){o=a+(h+-4)|0;p=c[o>>2]|0;if((p&3|0)!=3){q=m;r=n;break}c[1830]=n;c[o>>2]=p&-2;c[a+(l+4)>>2]=n|1;c[j>>2]=n;i=b;return}p=k>>>3;if(k>>>0<256){k=c[a+(l+8)>>2]|0;o=c[a+(l+12)>>2]|0;s=7352+(p<<1<<2)|0;if((k|0)!=(s|0)){if(k>>>0>>0)ka();if((c[k+12>>2]|0)!=(m|0))ka()}if((o|0)==(k|0)){c[1828]=c[1828]&~(1<>>0>>0)ka();s=o+8|0;if((c[s>>2]|0)==(m|0))t=s;else ka()}else t=o+8|0;c[k+12>>2]=o;c[t>>2]=k;q=m;r=n;break}k=c[a+(l+24)>>2]|0;o=c[a+(l+12)>>2]|0;do if((o|0)==(m|0)){s=a+(l+20)|0;p=c[s>>2]|0;if(!p){u=a+(l+16)|0;v=c[u>>2]|0;if(!v){w=0;break}else{x=v;y=u}}else{x=p;y=s}while(1){s=x+20|0;p=c[s>>2]|0;if(p){x=p;y=s;continue}s=x+16|0;p=c[s>>2]|0;if(!p)break;else{x=p;y=s}}if(y>>>0>>0)ka();else{c[y>>2]=0;w=x;break}}else{s=c[a+(l+8)>>2]|0;if(s>>>0>>0)ka();p=s+12|0;if((c[p>>2]|0)!=(m|0))ka();u=o+8|0;if((c[u>>2]|0)==(m|0)){c[p>>2]=o;c[u>>2]=s;w=o;break}else ka()}while(0);if(k){o=c[a+(l+28)>>2]|0;s=7616+(o<<2)|0;if((m|0)==(c[s>>2]|0)){c[s>>2]=w;if(!w){c[1829]=c[1829]&~(1<>>0<(c[1832]|0)>>>0)ka();o=k+16|0;if((c[o>>2]|0)==(m|0))c[o>>2]=w;else c[k+20>>2]=w;if(!w){q=m;r=n;break}}o=c[1832]|0;if(w>>>0>>0)ka();c[w+24>>2]=k;s=c[a+(l+16)>>2]|0;do if(s)if(s>>>0>>0)ka();else{c[w+16>>2]=s;c[s+24>>2]=w;break}while(0);s=c[a+(l+20)>>2]|0;if(s)if(s>>>0<(c[1832]|0)>>>0)ka();else{c[w+20>>2]=s;c[s+24>>2]=w;q=m;r=n;break}else{q=m;r=n}}else{q=m;r=n}}else{q=d;r=h}while(0);if(q>>>0>=j>>>0)ka();d=a+(h+-4)|0;w=c[d>>2]|0;if(!(w&1))ka();if(!(w&2)){if((j|0)==(c[1834]|0)){e=(c[1831]|0)+r|0;c[1831]=e;c[1834]=q;c[q+4>>2]=e|1;if((q|0)!=(c[1833]|0)){i=b;return}c[1833]=0;c[1830]=0;i=b;return}if((j|0)==(c[1833]|0)){e=(c[1830]|0)+r|0;c[1830]=e;c[1833]=q;c[q+4>>2]=e|1;c[q+e>>2]=e;i=b;return}e=(w&-8)+r|0;x=w>>>3;do if(w>>>0>=256){y=c[a+(h+16)>>2]|0;t=c[a+(h|4)>>2]|0;do if((t|0)==(j|0)){g=a+(h+12)|0;f=c[g>>2]|0;if(!f){s=a+(h+8)|0;o=c[s>>2]|0;if(!o){z=0;break}else{A=o;B=s}}else{A=f;B=g}while(1){g=A+20|0;f=c[g>>2]|0;if(f){A=f;B=g;continue}g=A+16|0;f=c[g>>2]|0;if(!f)break;else{A=f;B=g}}if(B>>>0<(c[1832]|0)>>>0)ka();else{c[B>>2]=0;z=A;break}}else{g=c[a+h>>2]|0;if(g>>>0<(c[1832]|0)>>>0)ka();f=g+12|0;if((c[f>>2]|0)!=(j|0))ka();s=t+8|0;if((c[s>>2]|0)==(j|0)){c[f>>2]=t;c[s>>2]=g;z=t;break}else ka()}while(0);if(y){t=c[a+(h+20)>>2]|0;n=7616+(t<<2)|0;if((j|0)==(c[n>>2]|0)){c[n>>2]=z;if(!z){c[1829]=c[1829]&~(1<>>0<(c[1832]|0)>>>0)ka();t=y+16|0;if((c[t>>2]|0)==(j|0))c[t>>2]=z;else c[y+20>>2]=z;if(!z)break}t=c[1832]|0;if(z>>>0>>0)ka();c[z+24>>2]=y;n=c[a+(h+8)>>2]|0;do if(n)if(n>>>0>>0)ka();else{c[z+16>>2]=n;c[n+24>>2]=z;break}while(0);n=c[a+(h+12)>>2]|0;if(n)if(n>>>0<(c[1832]|0)>>>0)ka();else{c[z+20>>2]=n;c[n+24>>2]=z;break}}}else{n=c[a+h>>2]|0;t=c[a+(h|4)>>2]|0;y=7352+(x<<1<<2)|0;if((n|0)!=(y|0)){if(n>>>0<(c[1832]|0)>>>0)ka();if((c[n+12>>2]|0)!=(j|0))ka()}if((t|0)==(n|0)){c[1828]=c[1828]&~(1<>>0<(c[1832]|0)>>>0)ka();y=t+8|0;if((c[y>>2]|0)==(j|0))C=y;else ka()}else C=t+8|0;c[n+12>>2]=t;c[C>>2]=n}while(0);c[q+4>>2]=e|1;c[q+e>>2]=e;if((q|0)==(c[1833]|0)){c[1830]=e;i=b;return}else D=e}else{c[d>>2]=w&-2;c[q+4>>2]=r|1;c[q+r>>2]=r;D=r}r=D>>>3;if(D>>>0<256){w=r<<1;d=7352+(w<<2)|0;e=c[1828]|0;C=1<>2]|0;if(j>>>0<(c[1832]|0)>>>0)ka();else{E=r;F=j}}else{c[1828]=e|C;E=7352+(w+2<<2)|0;F=d}c[E>>2]=q;c[F+12>>2]=q;c[q+8>>2]=F;c[q+12>>2]=d;i=b;return}d=D>>>8;if(d)if(D>>>0>16777215)G=31;else{F=(d+1048320|0)>>>16&8;E=d<>>16&4;w=E<>>16&2;C=14-(d|F|E)+(w<>>15)|0;G=D>>>(C+7|0)&1|C<<1}else G=0;C=7616+(G<<2)|0;c[q+28>>2]=G;c[q+20>>2]=0;c[q+16>>2]=0;E=c[1829]|0;w=1<>2]|0;if((G|0)==31)H=0;else H=25-(G>>>1)|0;b:do if((c[F+4>>2]&-8|0)!=(D|0)){d=D<>>31<<2)+16|0;j=c[I>>2]|0;if(!j)break;if((c[j+4>>2]&-8|0)==(D|0)){J=j;break b}else{d=d<<1;e=j}}if(I>>>0<(c[1832]|0)>>>0)ka();else{c[I>>2]=q;c[q+24>>2]=e;c[q+12>>2]=q;c[q+8>>2]=q;break a}}else J=F;while(0);F=J+8|0;d=c[F>>2]|0;j=c[1832]|0;if(J>>>0>=j>>>0&d>>>0>=j>>>0){c[d+12>>2]=q;c[F>>2]=q;c[q+8>>2]=d;c[q+12>>2]=J;c[q+24>>2]=0;break}else ka()}else{c[1829]=E|w;c[C>>2]=q;c[q+24>>2]=C;c[q+12>>2]=q;c[q+8>>2]=q}while(0);q=(c[1836]|0)+-1|0;c[1836]=q;if(!q)K=7768|0;else{i=b;return}while(1){q=c[K>>2]|0;if(!q)break;else K=q+8|0}c[1836]=-1;i=b;return}function od(){}function pd(b){b=b|0;var c=0;c=b;while(a[c>>0]|0)c=c+1|0;return c-b|0}function qd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;g=b&3;h=d|d<<8|d<<16|d<<24;i=f&~3;if(g){g=b+4-g|0;while((b|0)<(g|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(i|0)){c[b>>2]=h;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function rd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return pa(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function sd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;xa[a&3](b|0,c|0,d|0,e|0,f|0)}function td(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_(0)} - -// EMSCRIPTEN_END_FUNCS -var xa=[td,hc,gc,td];return{_strlen:pd,_free:nd,_broadwayGetMajorVersion:gd,_get_h264bsdClip:Mb,_broadwayExit:fd,_memset:qd,_broadwayCreateStream:ad,_malloc:md,_memcpy:rd,_broadwayGetMinorVersion:hd,_broadwayPlayStream:cd,_broadwaySetStreamLength:bd,_broadwayInit:dd,runPostSets:od,stackAlloc:ya,stackSave:za,stackRestore:Aa,setThrew:Ba,setTempRet0:Ea,getTempRet0:Fa,dynCall_viiiii:sd}}) - - -// EMSCRIPTEN_END_ASM -(p.Xc,p.Yc,Q),Bb=p._strlen=$._strlen,Ea=p._free=$._free;p._broadwayGetMajorVersion=$._broadwayGetMajorVersion;p._get_h264bsdClip=$._get_h264bsdClip;p._broadwayExit=$._broadwayExit;var Gb=p._memset=$._memset;p._broadwayCreateStream=$._broadwayCreateStream;var Ca=p._malloc=$._malloc,gc=p._memcpy=$._memcpy; -p._broadwayGetMinorVersion=$._broadwayGetMinorVersion;p._broadwayPlayStream=$._broadwayPlayStream;p._broadwaySetStreamLength=$._broadwaySetStreamLength;p._broadwayInit=$._broadwayInit;p.runPostSets=$.runPostSets;p.dynCall_viiiii=$.dynCall_viiiii;z.pb=$.stackAlloc;z.Tb=$.stackSave;z.Sb=$.stackRestore;z.Yd=$.setTempRet0;z.xd=$.getTempRet0; -if(T)if("function"===typeof p.locateFile?T=p.locateFile(T):p.memoryInitializerPrefixURL&&(T=p.memoryInitializerPrefixURL+T),t||da){var hc=p.readBinary(T);N.set(hc,Ia)}else Ya(),yb(T,function(a){N.set(a,Ia);Za()},function(){d("could not load memory initializer "+T)});function ia(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}ia.prototype=Error();var ic,jc=k,Xa=function kc(){!p.calledRun&&lc&&mc();p.calledRun||(Xa=kc)}; -p.callMain=p.ag=function(a){function b(){for(var a=0;3>a;a++)e.push(0)}w(0==S,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");w(0==Oa.length,"cannot call main when preRun functions remain to be called");a=a||[];Sa||(Sa=i,Na(R));var c=a.length+1,e=[M(Va(p.thisProgram),"i8",0)];b();for(var f=0;f y ? y : z); - } - - function OptimizedGetBoundaryStrengthsA($mb, $bS) { - var $totalCoeff = $mb + 28; - - var tc0 = HEAP16[$totalCoeff + 0 >> 1]; - var tc1 = HEAP16[$totalCoeff + 2 >> 1]; - var tc2 = HEAP16[$totalCoeff + 4 >> 1]; - var tc3 = HEAP16[$totalCoeff + 6 >> 1]; - var tc4 = HEAP16[$totalCoeff + 8 >> 1]; - var tc5 = HEAP16[$totalCoeff + 10 >> 1]; - var tc6 = HEAP16[$totalCoeff + 12 >> 1]; - var tc7 = HEAP16[$totalCoeff + 14 >> 1]; - var tc8 = HEAP16[$totalCoeff + 16 >> 1]; - var tc9 = HEAP16[$totalCoeff + 18 >> 1]; - var tc10 = HEAP16[$totalCoeff + 20 >> 1]; - var tc11 = HEAP16[$totalCoeff + 22 >> 1]; - var tc12 = HEAP16[$totalCoeff + 24 >> 1]; - var tc13 = HEAP16[$totalCoeff + 26 >> 1]; - var tc14 = HEAP16[$totalCoeff + 28 >> 1]; - var tc15 = HEAP16[$totalCoeff + 30 >> 1]; - - HEAP32[$bS + 32 >> 2] = tc2 || tc0 ? 2 : 0; - HEAP32[$bS + 40 >> 2] = tc3 || tc1 ? 2 : 0; - HEAP32[$bS + 48 >> 2] = tc6 || tc4 ? 2 : 0; - HEAP32[$bS + 56 >> 2] = tc7 || tc5 ? 2 : 0; - HEAP32[$bS + 64 >> 2] = tc8 || tc2 ? 2 : 0; - HEAP32[$bS + 72 >> 2] = tc9 || tc3 ? 2 : 0; - HEAP32[$bS + 80 >> 2] = tc12 || tc6 ? 2 : 0; - HEAP32[$bS + 88 >> 2] = tc13 || tc7 ? 2 : 0; - HEAP32[$bS + 96 >> 2] = tc10 || tc8 ? 2 : 0; - HEAP32[$bS + 104 >> 2] = tc11 || tc9 ? 2 : 0; - HEAP32[$bS + 112 >> 2] = tc14 || tc12 ? 2 : 0; - HEAP32[$bS + 120 >> 2] = tc15 || tc13 ? 2 : 0; - - HEAP32[$bS + 12 >> 2] = tc1 || tc0 ? 2 : 0; - HEAP32[$bS + 20 >> 2] = tc4 || tc1 ? 2 : 0; - HEAP32[$bS + 28 >> 2] = tc5 || tc4 ? 2 : 0; - HEAP32[$bS + 44 >> 2] = tc3 || tc2 ? 2 : 0; - HEAP32[$bS + 52 >> 2] = tc6 || tc3 ? 2 : 0; - HEAP32[$bS + 60 >> 2] = tc7 || tc6 ? 2 : 0; - HEAP32[$bS + 76 >> 2] = tc9 || tc8 ? 2 : 0; - HEAP32[$bS + 84 >> 2] = tc12 || tc9 ? 2 : 0; - HEAP32[$bS + 92 >> 2] = tc13 || tc12 ? 2 : 0; - HEAP32[$bS + 108 >> 2] = tc11 || tc10 ? 2 : 0; - HEAP32[$bS + 116 >> 2] = tc14 || tc11 ? 2 : 0; - HEAP32[$bS + 124 >> 2] = tc15 || tc14 ? 2 : 0; - } - - function OptimizedFilterVerLumaEdge ($data, bS, $thresholds, imageWidth) { - var delta, tc, tmp; - var p0, q0, p1, q1, p2, q2; - var tmpFlag; - var $clp = _h264bsdClip + 512; - var alpha = HEAP32[$thresholds + 4 >> 2]; - var beta = HEAP32[$thresholds + 8 >> 2]; - var val; - - if (bS < 4) { - tmp = tc = HEAPU8[HEAP32[$thresholds >> 2] + (bS - 1)] & 255; - for (var i = 4; i > 0; i--) { - p1 = HEAPU8[$data + -2] & 255; - p0 = HEAPU8[$data + -1] & 255; - q0 = HEAPU8[$data] & 255; - q1 = HEAPU8[$data + 1] & 255; - if ((Math.abs(p0 - q0) < alpha) && (Math.abs(p1 - p0) < beta) && (Math.abs(q1 - q0) < beta)) { - p2 = HEAPU8[$data - 3] & 255; - if (Math.abs(p2 - p0) < beta) { - val = (p2 + ((p0 + q0 + 1) >> 1) - (p1 << 1)) >> 1; - HEAP8[$data - 2] = p1 + clip(-tc, tc, val); - tmp++; - } - - q2 = HEAPU8[$data + 2] & 255; - if (Math.abs(q2 - q0) < beta) { - val = (q2 + ((p0 + q0 + 1) >> 1) - (q1 << 1)) >> 1; - HEAP8[$data + 1] = (q1 + clip(-tc, tc, val)); - tmp++; - } - - val = ((((q0 - p0) << 2) + (p1 - q1) + 4) >> 3); - delta = clip(-tmp, tmp, val); - - p0 = HEAPU8[$clp + (p0 + delta)] & 255; - q0 = HEAPU8[$clp + (q0 - delta)] & 255; - tmp = tc; - HEAP8[$data - 1] = p0; - HEAP8[$data] = q0; - - $data += imageWidth; - } - } - } else { - OriginalFilterVerLumaEdge($data, bS, $thresholds, imageWidth); - } - } - - /** - * Filter all four successive horizontal 4-pixel luma edges. This can be done when bS is equal to all four edges. - */ - function OptimizedFilterHorLuma ($data, bS, $thresholds, imageWidth) { - var delta, tc, tmp; - var p0, q0, p1, q1, p2, q2; - var tmpFlag; - var $clp = _h264bsdClip + 512; - var alpha = HEAP32[$thresholds + 4 >> 2]; - var beta = HEAP32[$thresholds + 8 >> 2]; - var val; - - if (bS < 4) { - tmp = tc = HEAPU8[HEAP32[$thresholds >> 2] + (bS - 1)] & 255; - for (var i = 16; i > 0; i--) { - p1 = HEAPU8[$data + (-imageWidth << 1)] & 255; - p0 = HEAPU8[$data + -imageWidth] & 255; - q0 = HEAPU8[$data] & 255; - q1 = HEAPU8[$data + imageWidth] & 255; - - if ((Math.abs(p0 - q0) < alpha) && (Math.abs(p1 - p0) < beta) && (Math.abs(q1 - q0) < beta)) { - p2 = HEAPU8[$data + (-imageWidth * 3)] & 255; - if (Math.abs(p2 - p0) < beta) { - val = (p2 + ((p0 + q0 + 1) >> 1) - (p1 << 1)) >> 1; - HEAP8[$data + (-imageWidth << 1)] = p1 + clip(-tc, tc, val); - tmp++; - } - - q2 = HEAPU8[$data + (imageWidth << 2)] & 255; - if (Math.abs(q2 - q0) < beta) { - val = (q2 + ((p0 + q0 + 1) >> 1) - (q1 << 1)) >> 1; - HEAP8[$data + imageWidth] = (q1 + clip(-tc, tc, val)); - tmp++; - } - - val = ((((q0 - p0) << 2) + (p1 - q1) + 4) >> 3); - delta = clip(-tmp, tmp, val); - - p0 = HEAPU8[$clp + (p0 + delta)] & 255; - q0 = HEAPU8[$clp + (q0 - delta)] & 255; - tmp = tc; - HEAP8[$data - imageWidth] = p0; - HEAP8[$data] = q0; - - $data ++; - } - } - } else { - OriginalFilterHorLuma($data, bS, $thresholds, imageWidth); - } - } - }; - - - Broadway.prototype = { - configure: function (config) { - // patchOptimizations(config, patches); - console.info("Broadway Configured: " + JSON.stringify(config)); - } - - }; - - - - - /* - - asm.js implementation of a yuv to rgb convertor - provided by @soliton4 - - based on - http://www.wordsaretoys.com/2013/10/18/making-yuv-conversion-a-little-faster/ - - */ - - - // factory to create asm.js yuv -> rgb convertor for a given resolution - var asmInstances = {}; - var getAsm = function(parWidth, parHeight){ - var idStr = "" + parWidth + "x" + parHeight; - if (asmInstances[idStr]){ - return asmInstances[idStr]; - }; - - var lumaSize = parWidth * parHeight; - var chromaSize = (lumaSize|0) >> 2; - - var inpSize = lumaSize + chromaSize + chromaSize; - var outSize = parWidth * parHeight * 4; - var cacheSize = Math.pow(2, 24) * 4; - var size = inpSize + outSize + cacheSize; - - var chunkSize = Math.pow(2, 24); - var heapSize = chunkSize; - while (heapSize < size){ - heapSize += chunkSize; - }; - var heap = new ArrayBuffer(heapSize); - - var res = asmFactory(global, {}, heap); - res.init(parWidth, parHeight); - asmInstances[idStr] = res; - - res.heap = heap; - res.out = new Uint8Array(heap, 0, outSize); - res.inp = new Uint8Array(heap, outSize, inpSize); - res.outSize = outSize; - - return res; - }; - - - function asmFactory(stdlib, foreign, heap) { - "use asm"; - - var imul = stdlib.Math.imul; - var min = stdlib.Math.min; - var max = stdlib.Math.max; - var pow = stdlib.Math.pow; - var out = new stdlib.Uint8Array(heap); - var out32 = new stdlib.Uint32Array(heap); - var inp = new stdlib.Uint8Array(heap); - var mem = new stdlib.Uint8Array(heap); - var mem32 = new stdlib.Uint32Array(heap); - - // for double algo - /*var vt = 1.370705; - var gt = 0.698001; - var gt2 = 0.337633; - var bt = 1.732446;*/ - - var width = 0; - var height = 0; - var lumaSize = 0; - var chromaSize = 0; - var inpSize = 0; - var outSize = 0; - - var inpStart = 0; - var outStart = 0; - - var widthFour = 0; - - var cacheStart = 0; - - - function init(parWidth, parHeight){ - parWidth = parWidth|0; - parHeight = parHeight|0; - - var i = 0; - var s = 0; - - width = parWidth; - widthFour = imul(parWidth, 4)|0; - height = parHeight; - lumaSize = imul(width|0, height|0)|0; - chromaSize = (lumaSize|0) >> 2; - outSize = imul(imul(width, height)|0, 4)|0; - inpSize = ((lumaSize + chromaSize)|0 + chromaSize)|0; - - outStart = 0; - inpStart = (outStart + outSize)|0; - cacheStart = (inpStart + inpSize)|0; - - // initializing memory (to be on the safe side) - s = ~~(+pow(+2, +24)); - s = imul(s, 4)|0; - - for (i = 0|0; ((i|0) < (s|0))|0; i = (i + 4)|0){ - mem32[((cacheStart + i)|0) >> 2] = 0; - }; - }; - - function doit(){ - var ystart = 0; - var ustart = 0; - var vstart = 0; - - var y = 0; - var yn = 0; - var u = 0; - var v = 0; - - var o = 0; - - var line = 0; - var col = 0; - - var usave = 0; - var vsave = 0; - - var ostart = 0; - var cacheAdr = 0; - - ostart = outStart|0; - - ystart = inpStart|0; - ustart = (ystart + lumaSize|0)|0; - vstart = (ustart + chromaSize)|0; - - for (line = 0; (line|0) < (height|0); line = (line + 2)|0){ - usave = ustart; - vsave = vstart; - for (col = 0; (col|0) < (width|0); col = (col + 2)|0){ - y = inp[ystart >> 0]|0; - yn = inp[((ystart + width)|0) >> 0]|0; - - u = inp[ustart >> 0]|0; - v = inp[vstart >> 0]|0; - - cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; - if (o){}else{ - o = yuv2rgbcalc(y,u,v)|0; - mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; - }; - mem32[ostart >> 2] = o; - - cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; - if (o){}else{ - o = yuv2rgbcalc(yn,u,v)|0; - mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; - }; - mem32[((ostart + widthFour)|0) >> 2] = o; - - //yuv2rgb5(y, u, v, ostart); - //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); - ostart = (ostart + 4)|0; - - // next step only for y. u and v stay the same - ystart = (ystart + 1)|0; - y = inp[ystart >> 0]|0; - yn = inp[((ystart + width)|0) >> 0]|0; - - //yuv2rgb5(y, u, v, ostart); - cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; - if (o){}else{ - o = yuv2rgbcalc(y,u,v)|0; - mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; - }; - mem32[ostart >> 2] = o; - - //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); - cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0; - o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; - if (o){}else{ - o = yuv2rgbcalc(yn,u,v)|0; - mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; - }; - mem32[((ostart + widthFour)|0) >> 2] = o; - ostart = (ostart + 4)|0; - - //all positions inc 1 - - ystart = (ystart + 1)|0; - ustart = (ustart + 1)|0; - vstart = (vstart + 1)|0; - }; - ostart = (ostart + widthFour)|0; - ystart = (ystart + width)|0; - - }; - - }; - - function yuv2rgbcalc(y, u, v){ - y = y|0; - u = u|0; - v = v|0; - - var r = 0; - var g = 0; - var b = 0; - - var o = 0; - - var a0 = 0; - var a1 = 0; - var a2 = 0; - var a3 = 0; - var a4 = 0; - - a0 = imul(1192, (y - 16)|0)|0; - a1 = imul(1634, (v - 128)|0)|0; - a2 = imul(832, (v - 128)|0)|0; - a3 = imul(400, (u - 128)|0)|0; - a4 = imul(2066, (u - 128)|0)|0; - - r = (((a0 + a1)|0) >> 10)|0; - g = (((((a0 - a2)|0) - a3)|0) >> 10)|0; - b = (((a0 + a4)|0) >> 10)|0; - - if ((((r & 255)|0) != (r|0))|0){ - r = min(255, max(0, r|0)|0)|0; - }; - if ((((g & 255)|0) != (g|0))|0){ - g = min(255, max(0, g|0)|0)|0; - }; - if ((((b & 255)|0) != (b|0))|0){ - b = min(255, max(0, b|0)|0)|0; - }; - - o = 255; - o = (o << 8)|0; - o = (o + b)|0; - o = (o << 8)|0; - o = (o + g)|0; - o = (o << 8)|0; - o = (o + r)|0; - - return o|0; - - }; - - - - return { - init: init, - doit: doit - }; - }; - - - /* - potential worker initialization - - */ - - - if (typeof self != "undefined"){ - var isWorker = false; - var decoder; - self.addEventListener('message', function(e) { - - if (isWorker){ - decoder.decode(new Uint8Array(e.data)); - - }else{ - if (e.data && e.data.type === "Broadway.js - Worker init"){ - isWorker = true; - decoder = new Broadway(e.data.options); - decoder.onPictureDecoded = function (buffer, width, height) { - if (buffer) { - buffer = new Uint8Array(buffer); - }; - - // post dimensions seperately - postMessage({width: width, height: height}); - - // buffer needs to be copied because we give up ownership - var copyU8 = new Uint8Array(buffer.length); - copyU8.set( buffer, 0, buffer.length ); - - // only post the buffer (slightly faster) - // add 2nd parameter to indicate transfer of owner ship (this it was makes this worker implementation faster) - postMessage(copyU8.buffer, [copyU8.buffer]); - - }; - postMessage({consoleLog: "initialized" }); - }; - }; - - - }, false); - }; - - - return Broadway; - -})); - diff --git a/src/html5/include/aurora/aurora-xpra.js b/src/html5/include/lib/aurora/aurora-xpra.js similarity index 100% rename from src/html5/include/aurora/aurora-xpra.js rename to src/html5/include/lib/aurora/aurora-xpra.js diff --git a/src/html5/include/aurora/aurora.js b/src/html5/include/lib/aurora/aurora.js similarity index 100% rename from src/html5/include/aurora/aurora.js rename to src/html5/include/lib/aurora/aurora.js diff --git a/src/html5/include/aurora/mp3.js b/src/html5/include/lib/aurora/mp3.js similarity index 100% rename from src/html5/include/aurora/mp3.js rename to src/html5/include/lib/aurora/mp3.js diff --git a/src/html5/include/bencode.js b/src/html5/include/lib/bencode.js similarity index 100% rename from src/html5/include/bencode.js rename to src/html5/include/lib/bencode.js diff --git a/src/html5/include/broadway/AUTHORS b/src/html5/include/lib/broadway/AUTHORS similarity index 100% rename from src/html5/include/broadway/AUTHORS rename to src/html5/include/lib/broadway/AUTHORS diff --git a/src/html5/include/lib/broadway/Decoder.js b/src/html5/include/lib/broadway/Decoder.js new file mode 100644 index 0000000000..90ea9f5763 --- /dev/null +++ b/src/html5/include/lib/broadway/Decoder.js @@ -0,0 +1,896 @@ +// universal module definition +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define([], factory); + } else if (typeof exports === 'object') { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory(); + } else { + // Browser globals (root is window) + root.Decoder = factory(); + } +}(this, function () { + "use strict"; + + var global; + + function initglobal(){ + global = this; + if (!global){ + if (typeof window != "undefined"){ + global = window; + }else if (self != "undefined"){ + global = self; + }; + }; + }; + initglobal(); + + + + function error(message) { + console.error(message); + console.trace(); + }; + + + function assert(condition, message) { + if (!condition) { + error(message); + }; + }; + + + var getModule = function(_broadwayOnHeadersDecoded, _broadwayOnPictureDecoded){ + + var windowBak; + if (typeof window != 'undefined'){ + windowBak = window; + }; + var window = { + _broadwayOnHeadersDecoded: _broadwayOnHeadersDecoded, + _broadwayOnPictureDecoded: _broadwayOnPictureDecoded + }; + + /* + + The reason why this is all packed into one file is that this file can also function as worker. + you can integrate the file into your build system and provide the original file to be loaded into a worker. + + */ + +function d(a){throw a;}var g=void 0,i=!0,k=null,m=!1;function n(){return function(){}}var p;p||(p=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var aa={},r;for(r in p)p.hasOwnProperty(r)&&(aa[r]=p[r]);var t="object"===typeof process&&"function"===typeof require,ba="object"===typeof window,ca="function"===typeof importScripts,da=!ba&&!t&&!ca; +if(t){p.print||(p.print=function(a){process.stdout.write(a+"\n")});p.printErr||(p.printErr=function(a){process.stderr.write(a+"\n")});var fa=require("fs"),ga=require("path");p.read=function(a,b){var a=ga.normalize(a),c=fa.readFileSync(a);!c&&a!=ga.resolve(a)&&(a=path.join(__dirname,"..","src",a),c=fa.readFileSync(a));c&&!b&&(c=c.toString());return c};p.readBinary=function(a){return p.read(a,i)};p.load=function(a){ha(read(a))};p.thisProgram=1 0) var gc = undefined")):ba||ca?(p.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,m);b.send(k);return b.responseText},"undefined"!=typeof arguments&&(p.arguments=arguments),"undefined"!==typeof console?(p.print||(p.print=function(a){console.log(a)}),p.printErr||(p.printErr=function(a){console.log(a)})):p.print||(p.print= +n()),ba?window.Module=p:p.load=importScripts):d("Unknown runtime environment. Where are we?");function ha(a){eval.call(k,a)}!p.load&&p.read&&(p.load=function(a){ha(p.read(a))});p.print||(p.print=n());p.printErr||(p.printErr=p.print);p.arguments||(p.arguments=[]);p.thisProgram||(p.thisProgram="./this.program");p.print=p.print;p.fa=p.printErr;p.preRun=[];p.postRun=[];for(r in aa)aa.hasOwnProperty(r)&&(p[r]=aa[r]); +var z={Yd:function(a){ja=a},xd:function(){return ja},Tb:function(){return y},Sb:function(a){y=a},oc:function(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?z.ia:"i"===a[0]?(a=parseInt(a.substr(1)),w(0===a%8),a/8):0}},vd:function(a){return Math.max(z.oc(a),z.ia)},Qf:16,ng:function(a,b,c){return!c&&("i64"==a||"double"==a)?8:!a?Math.min(b,8):Math.min(b||(a?z.vd(a):0), +z.ia)},Fa:function(a,b,c){return c&&c.length?(c.splice||(c=Array.prototype.slice.call(c)),c.splice(0,0,b),p["dynCall_"+a].apply(k,c)):p["dynCall_"+a].call(k,b)},eb:[],Vc:function(a){for(var b=0;b=F&&A("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+F+", (2) compile with ALLOW_MEMORY_GROWTH which adjusts the size at runtime but prevents some optimizations, or (3) set Module.TOTAL_MEMORY before the program runs.");return b},ub:function(a,b){return Math.ceil(a/(b?b:16))*(b?b:16)},Fg:function(a,b,c){return c?+(a>>>0)+4294967296*+(b>>>0):+(a>>>0)+4294967296* ++(b|0)},Pc:8,ia:4,Rf:0};p.Runtime=z;z.addFunction=z.Vc;z.removeFunction=z.Sd;var H=m,la,ma,ja;function w(a,b){a||A("Assertion failed: "+b)}function na(a){var b=p["_"+a];if(!b)try{b=eval("_"+a)}catch(c){}w(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}var oa,pa; +(function(){function a(a){a=a.toString().match(e).slice(1);return{arguments:a[0],body:a[1],returnValue:a[2]}}var b={stackSave:function(){z.Tb()},stackRestore:function(){z.Sb()},arrayToC:function(a){var b=z.pb(a.length);qa(a,b);return b},stringToC:function(a){var b=0;a!==k&&(a!==g&&0!==a)&&(b=z.pb((a.length<<2)+1),ra(a,b));return b}},c={string:b.stringToC,array:b.arrayToC};pa=function(a,b,e,f){var h=na(a),s=[],a=0;if(f)for(var v=0;v>0]=b;break;case "i8":I[a>>0]=b;break;case "i16":J[a>>1]=b;break;case "i32":K[a>>2]=b;break;case "i64":ma=[b>>>0,(la=b,1<=+ta(la)?0>>0:~~+xa((la-+(~~la>>>0))/4294967296)>>>0:0)];K[a>>2]=ma[0];K[a+4>>2]=ma[1];break;case "float":ya[a>>2]=b;break;case "double":za[a>>3]=b;break;default:A("invalid type for setValue: "+c)}}p.setValue=sa; +function Aa(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return I[a>>0];case "i8":return I[a>>0];case "i16":return J[a>>1];case "i32":return K[a>>2];case "i64":return K[a>>2];case "float":return ya[a>>2];case "double":return za[a>>3];default:A("invalid type for setValue: "+b)}return k}p.getValue=Aa;var L=2,Ba=4;p.ALLOC_NORMAL=0;p.ALLOC_STACK=1;p.ALLOC_STATIC=L;p.ALLOC_DYNAMIC=3;p.ALLOC_NONE=Ba; +function M(a,b,c,e){var f,h;"number"===typeof a?(f=i,h=a):(f=m,h=a.length);var j="string"===typeof b?b:k,c=c==Ba?e:[Ca,z.pb,z.Ec,z.bb][c===g?L:c](Math.max(h,j?1:b.length));if(f){e=c;w(0==(c&3));for(a=c+(h&-4);e>2]=0;for(a=c+h;e>0]=0;return c}if("i8"===j)return a.subarray||a.slice?N.set(a,c):N.set(new Uint8Array(a),c),c;for(var e=0,l,u;e>0];if(128<=e)c=i;else if(0==e&&!b)break;f++;if(b&&f==b)break}b||(b=f);var h="";if(!c){for(;0>0],h+=c.nb(e);return h}p.Pointer_stringify=ka;p.UTF16ToString=function(a){for(var b=0,c="";;){var e=J[a+2*b>>1];if(0==e)return c;++b;c+=String.fromCharCode(e)}}; +p.stringToUTF16=function(a,b){for(var c=0;c>1]=a.charCodeAt(c);J[b+2*a.length>>1]=0};p.UTF32ToString=function(a){for(var b=0,c="";;){var e=K[a+4*b>>2];if(0==e)return c;++b;65536<=e?(e-=65536,c+=String.fromCharCode(55296|e>>10,56320|e&1023)):c+=String.fromCharCode(e)}};p.stringToUTF32=function(a,b){for(var c=0,e=0;e=f)var h=a.charCodeAt(++e),f=65536+((f&1023)<<10)|h&1023;K[b+4*c>>2]=f;++c}K[b+4*c>>2]=0}; +function Da(a){function b(c,e,f){var e=e||Infinity,h="",j=[],s;if("N"===a[l]){l++;"K"===a[l]&&l++;for(s=[];"E"!==a[l];)if("S"===a[l]){l++;var C=a.indexOf("_",l);s.push(q[a.substring(l,C)||0]||"?");l=C+1}else if("C"===a[l])s.push(s[s.length-1]),l+=2;else{var C=parseInt(a.substr(l)),P=C.toString().length;if(!C||!P){l--;break}var sb=a.substr(l+P,C);s.push(sb);q.push(sb);l+=P+C}l++;s=s.join("::");e--;if(0===e)return c?[s]:s}else if(("K"===a[l]||x&&"L"===a[l])&&l++,C=parseInt(a.substr(l)))P=C.toString().length, +s=a.substr(l+P,C),l+=P+C;x=m;"I"===a[l]?(l++,C=b(i),P=b(i,1,i),h+=P[0]+" "+s+"<"+C.join(", ")+">"):h=s;a:for(;lO?2*O:O+16777216; +O!==F&&(p.fa("increasing TOTAL_MEMORY to "+O+" to be compliant with the asm.js spec"),F=O);w("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"JS engine does not provide full typed array support");var Q=new ArrayBuffer(F);I=new Int8Array(Q);J=new Int16Array(Q);K=new Int32Array(Q);N=new Uint8Array(Q);Ga=new Uint16Array(Q);Ha=new Uint32Array(Q);ya=new Float32Array(Q);za=new Float64Array(Q);K[0]=255;w(255===N[0]&&0===N[3],"Typed arrays 2 must be run on a little-endian system"); +p.HEAP=g;p.buffer=Q;p.HEAP8=I;p.HEAP16=J;p.HEAP32=K;p.HEAPU8=N;p.HEAPU16=Ga;p.HEAPU32=Ha;p.HEAPF32=ya;p.HEAPF64=za;function Na(a){for(;0>0]=a[c],c+=1}p.writeStringToMemory=ra;function qa(a,b){for(var c=0;c>0]=a[c]}p.writeArrayToMemory=qa; +p.writeAsciiToMemory=function(a,b,c){for(var e=0;e>0]=a.charCodeAt(e);c||(I[b+a.length>>0]=0)};if(!Math.imul||-5!==Math.imul(4294967295,5))Math.imul=function(a,b){var c=a&65535,e=b&65535;return c*e+((a>>>16)*e+c*(b>>>16)<<16)|0};Math.vg=Math.imul;var ta=Math.abs,xa=Math.ceil,wa=Math.floor,va=Math.min,S=0,Wa=k,Xa=k;function Ya(){S++;p.monitorRunDependencies&&p.monitorRunDependencies(S)}p.addRunDependency=Ya; +function Za(){S--;p.monitorRunDependencies&&p.monitorRunDependencies(S);if(0==S&&(Wa!==k&&(clearInterval(Wa),Wa=k),Xa)){var a=Xa;Xa=k;a()}}p.removeRunDependency=Za;p.preloadedImages={};p.preloadedAudios={};var T=k,Ia=8,D=Ia+7808;R.push(); +M([0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,0,0,0,0,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,4,5,0,1,2,3,0,0,0,0,10,0,0,0,13,0,0,0,16,0,0,0,11,0,0,0,14,0,0,0,18,0,0,0,13,0,0,0,16,0,0,0,20,0,0,0,14,0,0,0,18,0,0,0,23,0,0,0,16,0,0,0,20,0,0,0,25,0,0,0,18,0,0,0,23,0,0,0,29,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0, +0,0,14,0,0,0,15,0,0,0,16,0,0,0,17,0,0,0,18,0,0,0,19,0,0,0,20,0,0,0,21,0,0,0,22,0,0,0,23,0,0,0,24,0,0,0,25,0,0,0,26,0,0,0,27,0,0,0,28,0,0,0,29,0,0,0,29,0,0,0,30,0,0,0,31,0,0,0,32,0,0,0,32,0,0,0,33,0,0,0,34,0,0,0,34,0,0,0,35,0,0,0,35,0,0,0,36,0,0,0,36,0,0,0,37,0,0,0,37,0,0,0,37,0,0,0,38,0,0,0,38,0,0,0,38,0,0,0,39,0,0,0,39,0,0,0,39,0,0,0,39,0,0,0,1,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,16,0,0,0,32,0,0,0,64,0,0,0,128,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,4,0,0, +0,5,0,0,0,2,0,0,0,3,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,12,0,0,0,13,0,0,0,10,0,0,0,11,0,0,0,14,0,0,0,15,0,0,0,47,31,15,0,23,27,29,30,7,11,13,14,39,43,45,46,16,3,5,10,12,19,21,26,28,35,37,42,44,1,2,4,8,17,18,20,24,6,9,22,25,32,33,34,36,40,38,41,0,16,1,2,4,8,32,3,5,10,12,15,47,7,11,13,14,6,9,31,35,37,42,44,33,34,36,40,39,43,45,46,17,18,20,24,19,21,26,28,23,27,29,30,22,25,38,41,17,1,0,0,0,0,0,0,34,18,1,1,0,0,0,0,50,34,18,2,0,0,0,0,67,51,34,34,18,18,2,2,83,67,51,35,18,18,2,2,19,35,67,51,99,83,2,2,0, +0,101,85,68,68,52,52,35,35,35,35,19,19,19,19,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,249,233,217,200,200,184,184,167,167,167,167,151,151,151,151,134,134,134,134,134,134,134,134,118,118,118,118,118,118,118,118,230,214,198,182,165,165,149,149,132,132,132,132,116,116,116,116,100,100,100,100,84,84,84,84,67,67,67,67,67,67,67,67,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,19,19,19,19,19,19,19,19,3,3,3,3,3,3,3,3,214,182,197,197,165,165,149,149,132,132,132,132,84,84,84,84,68,68,68,68,4,4,4,4,115,115,115,115, +115,115,115,115,99,99,99,99,99,99,99,99,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,19,19,19,19,19,19,19,19,197,181,165,5,148,148,116,116,52,52,36,36,131,131,131,131,99,99,99,99,83,83,83,83,67,67,67,67,19,19,19,19,181,149,164,164,132,132,36,36,20,20,4,4,115,115,115,115,99,99,99,99,83,83,83,83,67,67,67,67,51,51,51,51,166,6,21,21,132,132,132,132,147,147,147,147,147,147,147,147,115,115,115,115,115,115,115,115,99,99,99,99,99,99,99,99,83,83,83,83,83,83,83,83,67,67,67,67,67,67,67,67,51,51,51,51,51, +51,51,51,35,35,35,35,35,35,35,35,150,6,21,21,116,116,116,116,131,131,131,131,131,131,131,131,99,99,99,99,99,99,99,99,67,67,67,67,67,67,67,67,51,51,51,51,51,51,51,51,35,35,35,35,35,35,35,35,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,134,6,37,37,20,20,20,20,115,115,115,115,115,115,115,115,99,99,99,99,99,99,99,99,51,51,51,51,51,51,51,51,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,22,6,117,117,36,36,36,36,83,83,83,83,83,83,83,83,98,98,98,98,98, +98,98,98,98,98,98,98,98,98,98,98,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,21,5,100,100,35,35,35,35,82,82,82,82,82,82,82,82,66,66,66,66,66,66,66,66,50,50,50,50,50,50,50,50,4,20,35,35,51,51,83,83,65,65,65,65,65,65,65,65,4,20,67,67,34,34,34,34,49,49,49,49,49,49,49,49,3,19,50,50,33,33,33,33,2,18,33,33,0,0,0,0,0,0,0,0,0,0,102,32,38,16,6,8,101,24,101,24,67,16,67,16,67,16,67,16,67,16,67,16,67,16,67,16,34,8,34,8,34,8,34,8,34,8,34,8,34,8,34,8,34,8,34, +8,34,8,34,8,34,8,34,8,34,8,34,8,0,0,0,0,0,0,0,0,106,64,74,48,42,40,10,32,105,56,105,56,73,40,73,40,41,32,41,32,9,24,9,24,104,48,104,48,104,48,104,48,72,32,72,32,72,32,72,32,40,24,40,24,40,24,40,24,8,16,8,16,8,16,8,16,103,40,103,40,103,40,103,40,103,40,103,40,103,40,103,40,71,24,71,24,71,24,71,24,71,24,71,24,71,24,71,24,110,96,78,88,46,80,14,80,110,88,78,80,46,72,14,72,13,64,13,64,77,72,77,72,45,64,45,64,13,56,13,56,109,80,109,80,77,64,77,64,45,56,45,56,13,48,13,48,107,72,107,72,107,72,107,72,107, +72,107,72,107,72,107,72,75,56,75,56,75,56,75,56,75,56,75,56,75,56,75,56,43,48,43,48,43,48,43,48,43,48,43,48,43,48,43,48,11,40,11,40,11,40,11,40,11,40,11,40,11,40,11,40,0,0,0,0,47,104,47,104,16,128,80,128,48,128,16,120,112,128,80,120,48,120,16,112,112,120,80,112,48,112,16,104,111,112,111,112,79,104,79,104,47,96,47,96,15,96,15,96,111,104,111,104,79,96,79,96,47,88,47,88,15,88,15,88,0,0,0,0,0,0,0,0,102,56,70,32,38,32,6,16,102,48,70,24,38,24,6,8,101,40,101,40,37,16,37,16,100,32,100,32,100,32,100,32,100, +24,100,24,100,24,100,24,67,16,67,16,67,16,67,16,67,16,67,16,67,16,67,16,0,0,0,0,0,0,0,0,105,72,73,56,41,56,9,48,8,40,8,40,72,48,72,48,40,48,40,48,8,32,8,32,103,64,103,64,103,64,103,64,71,40,71,40,71,40,71,40,39,40,39,40,39,40,39,40,7,24,7,24,7,24,7,24,0,0,0,0,109,120,109,120,110,128,78,128,46,128,14,128,46,120,14,120,78,120,46,112,77,112,77,112,13,112,13,112,109,112,109,112,77,104,77,104,45,104,45,104,13,104,13,104,109,104,109,104,77,96,77,96,45,96,45,96,13,96,13,96,12,88,12,88,12,88,12,88,76,88, +76,88,76,88,76,88,44,88,44,88,44,88,44,88,12,80,12,80,12,80,12,80,108,96,108,96,108,96,108,96,76,80,76,80,76,80,76,80,44,80,44,80,44,80,44,80,12,72,12,72,12,72,12,72,107,88,107,88,107,88,107,88,107,88,107,88,107,88,107,88,75,72,75,72,75,72,75,72,75,72,75,72,75,72,75,72,43,72,43,72,43,72,43,72,43,72,43,72,43,72,43,72,11,64,11,64,11,64,11,64,11,64,11,64,11,64,11,64,107,80,107,80,107,80,107,80,107,80,107,80,107,80,107,80,75,64,75,64,75,64,75,64,75,64,75,64,75,64,75,64,43,64,43,64,43,64,43,64,43,64,43, +64,43,64,43,64,11,56,11,56,11,56,11,56,11,56,11,56,11,56,11,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,24,70,56,38,56,6,16,102,72,70,48,38,48,6,8,37,40,37,40,69,40,69,40,37,32,37,32,69,32,69,32,37,24,37,24,101,64,101,64,69,24,69,24,37,16,37,16,100,56,100,56,100,56,100,56,100,48,100,48,100,48,100,48,100,40,100,40,100,40,100,40,100,32,100,32,100,32,100,32,100,24,100,24,100,24,100,24,68,16,68,16,68,16,68,16,36,8,36,8,36,8,36,8,4,0,4,0,4,0,4,0,0,0,10,128,106,128,74,128,42,128,10,120,106,120,74,120,42,120,10, +112,106,112,74,112,42,112,10,104,41,104,41,104,9,96,9,96,73,104,73,104,41,96,41,96,9,88,9,88,105,104,105,104,73,96,73,96,41,88,41,88,9,80,9,80,104,96,104,96,104,96,104,96,72,88,72,88,72,88,72,88,40,80,40,80,40,80,40,80,8,72,8,72,8,72,8,72,104,88,104,88,104,88,104,88,72,80,72,80,72,80,72,80,40,72,40,72,40,72,40,72,8,64,8,64,8,64,8,64,7,56,7,56,7,56,7,56,7,56,7,56,7,56,7,56,7,48,7,48,7,48,7,48,7,48,7,48,7,48,7,48,71,72,71,72,71,72,71,72,71,72,71,72,71,72,71,72,7,40,7,40,7,40,7,40,7,40,7,40,7,40,7,40, +103,80,103,80,103,80,103,80,103,80,103,80,103,80,103,80,71,64,71,64,71,64,71,64,71,64,71,64,71,64,71,64,39,64,39,64,39,64,39,64,39,64,39,64,39,64,39,64,7,32,7,32,7,32,7,32,7,32,7,32,7,32,7,32,6,8,38,8,0,0,6,0,6,16,38,16,70,16,0,0,6,24,38,24,70,24,102,24,6,32,38,32,70,32,102,32,6,40,38,40,70,40,102,40,6,48,38,48,70,48,102,48,6,56,38,56,70,56,102,56,6,64,38,64,70,64,102,64,6,72,38,72,70,72,102,72,6,80,38,80,70,80,102,80,6,88,38,88,70,88,102,88,6,96,38,96,70,96,102,96,6,104,38,104,70,104,102,104,6,112, +38,112,70,112,102,112,6,120,38,120,70,120,102,120,6,128,38,128,70,128,102,128,0,0,67,16,2,0,2,0,33,8,33,8,33,8,33,8,103,32,103,32,72,32,40,32,71,24,71,24,39,24,39,24,6,32,6,32,6,32,6,32,6,24,6,24,6,24,6,24,6,16,6,16,6,16,6,16,102,24,102,24,102,24,102,24,38,16,38,16,38,16,38,16,6,8,6,8,6,8,6,8,3,0,0,0,15,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,3, +0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,12,0,0,0,3,0,0,0,19,0,0,0,1,0,0,0,18,0,0,0,0,0,0,0,17,0,0,0,4,0,0,0,16,0,0,0,3,0,0,0,23,0,0,0,1,0,0,0,22,0,0,0,0,0,0,0,21,0,0,0,4,0,0,0,20,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,4,0,0,0,1,0,0,0,255,0,0,0,4,0,0,0,1,0,0,0,15,0,0,0,2,0,0,0,10,0,0,0,4,0,0,0,5,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,9,0,0,0,255,0,0,0,12,0,0,0,4,0,0,0,7,0,0,0,255,0,0,0,2,0,0,0,4,0,0,0,13,0,0,0,255,0,0,0,8,0,0,0,1,0,0,0,19,0,0,0,2,0,0,0,18,0,0,0,4,0, +0,0,17,0,0,0,255,0,0,0,16,0,0,0,1,0,0,0,23,0,0,0,2,0,0,0,22,0,0,0,4,0,0,0,21,0,0,0,255,0,0,0,20,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,7,0,0,0,4,0,0,0,12,0,0,0,4,0,0,0,13,0,0,0,1,0,0,0,18,0,0,0,1,0,0,0,19,0,0,0,4,0,0,0,16,0,0,0,4,0,0,0,17,0,0,0,1,0,0,0,22,0,0,0,1,0,0,0,23,0,0,0,4,0,0,0,20,0,0,0,4,0,0,0,21,0,0,0,0, +0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,8,0,0,0,0,0,0,0,15,0,0,0,4,0,0,0,10,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,12,0,0,0,4,0,0,0,11,0,0,0,4,0,0,0,14,0,0,0,0,0,0,0,17,0,0,0,4,0,0,0,16,0,0,0,0,0,0,0,19,0,0,0,4,0,0,0,18,0,0,0,0,0,0,0,21,0,0,0,4,0,0,0,20,0,0,0,0,0,0,0,23,0,0,0,4,0,0,0,22,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0,12,0,0,0,8,0,0,0,12,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,8,0,0,0, +12,0,0,0,8,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,8,0,0,0,8,0,0,0,12,0,0,0,12,0,0,0,8,0,0,0,8,0,0,0,12,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108, +109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234, +235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,0,0,0,15,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,3,0,0,0,15,0,0,0,0,0,0,0,5,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,3,0,0,0,15,0,0,0,1,0,0,0,10,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,3,0,0,0,15,0,0,0,1,0,0,0,10,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,4,0,0,0,1,0,0,0,255,0, +0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,7,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,13,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,3,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0, +0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,9,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,12,0,0,0,1,0,0,0,14,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,255,0,0,0,4,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,1,0,0,0,14,0,0,0,4,0,0,0,1,0,0,0,255,0,0,0,4,0,0,0,2,0,0,0,10,0,0, +0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,2,0,0,0,10,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,15,0,0,0,2,0,0,0,10,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,15,0,0,0,2,0,0,0,10,0,0,0,4,0,0,0,5,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,255,0,0,0,12,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0, +0,0,4,0,0,0,9,0,0,0,255,0,0,0,12,0,0,0,255,0,0,0,2,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,2,0,0,0,255,0,0,0,8,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,7,0,0,0,255,0,0,0,2,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,7,0,0,0,255,0,0,0,2,0,0,0,4,0,0,0,13,0,0,0,255,0,0,0,8,0,0,0,1,0,0,0,10,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,4,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,255,0, +0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,11,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,1,0,0,0,14,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,4,0,0,0,4,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,1,0,0,0,15,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,4,0,0,0,2,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,8,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0, +0,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,8,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,6,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,12,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,7,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,6,0,0,0,4,0,0,0,7,0,0,0,4,0,0,0,12,0,0,0,4,0,0,0,13,0,0,0,0,0,0,0,5,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0, +0,0,0,7,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,0,0,0,2,0,0,0,4,0,0,0,1,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,3,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,1,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,0,0,0,0,13,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0, +0,0,255,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,0,0,15,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,8,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,0,0,0,8,0,0,0,0,0,0,0,15,0,0,0,4,0,0,0,10,0,0,0,4,0,0,0,9,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,11,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,12,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,4,0,0,0,9,0,0,0,4,0,0,0,12,0,0,0,4,0,0,0,11,0,0,0,4,0,0,0,14,0,0, +0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,9,0,0,0,10,0,0,0,11,0,0,0,12,0,0,0,13,0,0,0,14,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,5,6,7,8,9,10,12,13,15,17,20,22,25,28,32,36,40,45,50,56,63,71,80,90,101,113,127,144,162,182,203,226,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,3,3,3,3,4,4,4,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,2,1,1,2,1,2,3,1,2,3,2,2,3,2,2,4,2,3,4,2,3,4,3,3,5,3,4,6,3,4,6,4,5,7,4,5,8,4,6,9,5,7,10,6,8,11,6,8,13,7,10,14,8,11,16,9,12,18,10,13,20,11,15,23,13,17,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,68,69,67,79,68,69,82,32,73,78,73,84,73,65,76,73,90,65,84,73,79,78,32,70,65,73,76,69,68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"i8",Ba,z.Pc);var $a=z.ub(M(12,"i8",L),8);w(0==$a%8); +var U={O:1,Q:2,Ef:3,De:4,ha:5,Zb:6,be:7,$e:8,V:9,oe:10,Ca:11,Of:11,Mc:12,qb:13,ye:14,mf:15,ga:16,Xb:17,Oc:18,Qa:19,Sa:20,pa:21,B:22,Ve:23,Lc:24,Nc:25,Lf:26,ze:27,hf:28,Ua:29,Bf:30,Oe:31,uf:32,ve:33,yf:34,df:42,Be:43,pe:44,Fe:45,Ge:46,He:47,Ne:48,Mf:49,Ye:50,Ee:51,te:35,af:37,ge:52,je:53,Pf:54,We:55,ke:56,le:57,ue:35,me:59,kf:60,Ze:61,If:62,jf:63,ef:64,ff:65,Af:66,bf:67,ee:68,Ff:69,qe:70,vf:71,Qe:72,we:73,ie:74,qf:76,he:77,zf:78,Ie:79,Je:80,Me:81,Le:82,Ke:83,lf:38,sb:39,Re:36,rb:40,Ta:95,tf:96,se:104, +Xe:105,fe:97,xf:91,of:88,gf:92,Cf:108,Wb:111,ce:98,re:103,Ue:101,Se:100,Jf:110,Ae:112,Yb:113,Jc:115,Hc:114,Ic:89,Pe:90,wf:93,Df:94,de:99,Te:102,Kc:106,Ra:107,Kf:109,Nf:87,xe:122,Gf:116,pf:95,cf:123,Ce:84,rf:75,ne:125,nf:131,sf:130,Hf:86},ab={"0":"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes", +12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func", +34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange", +53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)", +74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required", +90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected", +107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},bb=0;function V(a){return K[bb>>2]=a} +function cb(a,b){for(var c=0,e=a.length-1;0<=e;e--){var f=a[e];"."===f?a.splice(e,1):".."===f?(a.splice(e,1),c++):c&&(a.splice(e,1),c--)}if(b)for(;c--;c)a.unshift("..");return a}function db(a){var b="/"===a.charAt(0),c="/"===a.substr(-1),a=cb(a.split("/").filter(function(a){return!!a}),!b).join("/");!a&&!b&&(a=".");a&&c&&(a+="/");return(b?"/":"")+a} +function eb(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1),a=b[0],b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b}function W(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}function fb(){var a=Array.prototype.slice.call(arguments,0);return db(a.join("/"))}function X(a,b){return db(a+"/"+b)} +function gb(){for(var a="",b=m,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:B.yb();"string"!==typeof b&&d(new TypeError("Arguments to path.resolve must be strings"));if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=cb(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."} +function hb(a,b){function c(a){for(var b=0;bc?[]:a.slice(b,c-b+1)}for(var a=gb(a).substr(1),b=gb(b).substr(1),e=c(a.split("/")),f=c(b.split("/")),h=Math.min(e.length,f.length),j=h,l=0;la.k.length)&&(a.k=Y.ud(a),a.q=a.k.length);if(!a.k||a.k.subarray){var c=a.k?a.k.buffer.byteLength:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)|0),0!=c&&(b=Math.max(b,256)),c=a.k,a.k=new Uint8Array(b),0b)a.k.length=b;else for(;a.k.length=a.g.q)return 0;a=Math.min(a.g.q-f,e);w(0<=a);if(8b&&d(new B.e(U.B));return b},Ea:function(a,b,c){Y.lc(a.g,b+c);a.g.q=Math.max(a.g.q,b+c)},Ja:function(a,b,c,e,f,h,j){B.isFile(a.g.mode)||d(new B.e(U.Qa));c=a.g.k;if(!(j&2)&&(c.buffer===b||c.buffer=== +b.buffer))a=m,e=c.byteOffset;else{if(0>>0)%B.T.length},tc:function(a){var b=B.Fb(a.parent.id,a.name);a.ma=B.T[b];B.T[b]=a},uc:function(a){var b=B.Fb(a.parent.id,a.name);if(B.T[b]===a)B.T[b]=a.ma;else for(b=B.T[b];b;){if(b.ma===a){b.ma=a.ma;break}b=b.ma}},aa:function(a,b){var c=B.Gd(a);c&&d(new B.e(c,a));for(c=B.T[B.Fb(a.id,b)];c;c=c.ma){var e=c.name;if(c.parent.id===a.id&&e===b)return c}return B.ra(a,b)},createNode:function(a,b,c,e){B.Va||(B.Va=function(a,b,c,e){a|| +(a=this);this.parent=a;this.F=a.F;this.Ka=k;this.id=B.Jd++;this.name=b;this.mode=c;this.n={};this.p={};this.ob=e},B.Va.prototype={},Object.defineProperties(B.Va.prototype,{M:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Dd:{get:function(){return B.J(this.mode)}},Gb:{get:function(){return B.ib(this.mode)}}}));a=new B.Va(a,b,c,e);B.tc(a);return a}, +zb:function(a){B.uc(a)},jb:function(a){return a===a.parent},ka:function(a){return!!a.Ka},isFile:function(a){return 32768===(a&61440)},J:function(a){return 16384===(a&61440)},Ia:function(a){return 40960===(a&61440)},ib:function(a){return 8192===(a&61440)},Bd:function(a){return 24576===(a&61440)},Cd:function(a){return 4096===(a&61440)},Ed:function(a){return 49152===(a&49152)},rd:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218}, +wc:function(a){var b=B.rd[a];"undefined"===typeof b&&d(Error("Unknown file open mode: "+a));return b},sd:function(a){var b=["r","w","rw"][a&2097155];a&512&&(b+="w");return b},na:function(a,b){return B.vc?0:-1!==b.indexOf("r")&&!(a.mode&292)||-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73)?U.qb:0},Gd:function(a){var b=B.na(a,"x");return b?b:!a.n.ra?U.qb:0},Jb:function(a,b){try{return B.aa(a,b),U.Xb}catch(c){}return B.na(a,"wx")},kb:function(a,b,c){var e;try{e=B.aa(a,b)}catch(f){return f.cb}if(a= +B.na(a,"wx"))return a;if(c){if(!B.J(e.mode))return U.Sa;if(B.jb(e)||B.da(e)===B.yb())return U.ga}else if(B.J(e.mode))return U.pa;return 0},Hd:function(a,b){return!a?U.Q:B.Ia(a.mode)?U.rb:B.J(a.mode)&&(0!==(b&2097155)||b&512)?U.pa:B.na(a,B.sd(b))},Qc:4096,Kd:function(a,b){for(var b=b||B.Qc,c=a||0;c<=b;c++)if(!B.oa[c])return c;d(new B.e(U.Lc))},qa:function(a){return B.oa[a]},fc:function(a,b,c){B.Wa||(B.Wa=n(),B.Wa.prototype={},Object.defineProperties(B.Wa.prototype,{object:{get:function(){return this.g}, +set:function(a){this.g=a}},yg:{get:function(){return 1!==(this.D&2097155)}},zg:{get:function(){return 0!==(this.D&2097155)}},xg:{get:function(){return this.D&1024}}}));var e=new B.Wa,f;for(f in a)e[f]=a[f];a=e;b=B.Kd(b,c);a.C=b;return B.oa[b]=a},dd:function(a){B.oa[a]=k},pc:function(a){return B.oa[a-1]},Eb:function(a){return a?a.C+1:0},bd:{open:function(a){a.p=B.td(a.g.ob).p;a.p.open&&a.p.open(a)},$:function(){d(new B.e(U.Ua))}},Ib:function(a){return a>>8},Gg:function(a){return a&255},la:function(a, +b){return a<<8|b},Ob:function(a,b){B.ic[a]={p:b}},td:function(a){return B.ic[a]},nc:function(a){for(var b=[],a=[a];a.length;){var c=a.pop();b.push(c);a.push.apply(a,c.La)}return b},Fc:function(a,b){function c(a){if(a){if(!c.pd)return c.pd=i,b(a)}else++f>=e.length&&b(k)}"function"===typeof a&&(b=a,a=m);var e=B.nc(B.root.F),f=0;e.forEach(function(b){if(!b.type.Fc)return c(k);b.type.Fc(b,a,c)})},F:function(a,b,c){var e="/"===c,f=!c,h;e&&B.root&&d(new B.e(U.ga));!e&&!f&&(h=B.u(c,{Bb:m}),c=h.path,h=h.g, +B.ka(h)&&d(new B.e(U.ga)),B.J(h.mode)||d(new B.e(U.Sa)));b={type:a,Kg:b,Id:c,La:[]};a=a.F(b);a.F=b;b.root=a;e?B.root=a:h&&(h.Ka=b,h.F&&h.F.La.push(b));return a},Qg:function(a){a=B.u(a,{Bb:m});B.ka(a.g)||d(new B.e(U.B));var a=a.g,b=a.Ka,c=B.nc(b);Object.keys(B.T).forEach(function(a){for(a=B.T[a];a;){var b=a.ma;-1!==c.indexOf(a.F)&&B.zb(a);a=b}});a.Ka=k;b=a.F.La.indexOf(b);w(-1!==b);a.F.La.splice(b,1)},ra:function(a,b){return a.n.ra(a,b)},ba:function(a,b,c){var e=B.u(a,{parent:i}).g,a=W(a);(!a||"."=== +a||".."===a)&&d(new B.e(U.B));var f=B.Jb(e,a);f&&d(new B.e(f));e.n.ba||d(new B.e(U.O));return e.n.ba(e,a,b,c)},create:function(a,b){b=(b!==g?b:438)&4095;b|=32768;return B.ba(a,b,0)},ea:function(a,b){b=(b!==g?b:511)&1023;b|=16384;return B.ba(a,b,0)},lb:function(a,b,c){"undefined"===typeof c&&(c=b,b=438);return B.ba(a,b|8192,c)},ca:function(a,b){gb(a)||d(new B.e(U.Q));var c=B.u(b,{parent:i}).g;c||d(new B.e(U.Q));var e=W(b),f=B.Jb(c,e);f&&d(new B.e(f));c.n.ca||d(new B.e(U.O));return c.n.ca(c,e,a)},rename:function(a, +b){var c=eb(a),e=eb(b),f=W(a),h=W(b),j,l,u;try{j=B.u(a,{parent:i}),l=j.g,j=B.u(b,{parent:i}),u=j.g}catch(q){d(new B.e(U.ga))}(!l||!u)&&d(new B.e(U.Q));l.F!==u.F&&d(new B.e(U.Oc));j=B.aa(l,f);e=hb(a,e);"."!==e.charAt(0)&&d(new B.e(U.B));e=hb(b,c);"."!==e.charAt(0)&&d(new B.e(U.sb));var x;try{x=B.aa(u,h)}catch(s){}if(j!==x){c=B.J(j.mode);(f=B.kb(l,f,c))&&d(new B.e(f));(f=x?B.kb(u,h,c):B.Jb(u,h))&&d(new B.e(f));l.n.rename||d(new B.e(U.O));(B.ka(j)||x&&B.ka(x))&&d(new B.e(U.ga));u!==l&&(f=B.na(l,"w"))&& +d(new B.e(f));try{B.H.willMovePath&&B.H.willMovePath(a,b)}catch(v){console.log("FS.trackingDelegate['willMovePath']('"+a+"', '"+b+"') threw an exception: "+v.message)}B.uc(j);try{l.n.rename(j,u,h)}catch(G){d(G)}finally{B.tc(j)}try{if(B.H.onMovePath)B.H.onMovePath(a,b)}catch(ua){console.log("FS.trackingDelegate['onMovePath']('"+a+"', '"+b+"') threw an exception: "+ua.message)}}},Oa:function(a){var b=B.u(a,{parent:i}).g,c=W(a),e=B.aa(b,c),f=B.kb(b,c,i);f&&d(new B.e(f));b.n.Oa||d(new B.e(U.O));B.ka(e)&& +d(new B.e(U.ga));try{B.H.willDeletePath&&B.H.willDeletePath(a)}catch(h){console.log("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+h.message)}b.n.Oa(b,c);B.zb(e);try{if(B.H.onDeletePath)B.H.onDeletePath(a)}catch(j){console.log("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+j.message)}},Na:function(a){a=B.u(a,{R:i}).g;a.n.Na||d(new B.e(U.Sa));return a.n.Na(a)},za:function(a){var b=B.u(a,{parent:i}).g,c=W(a),e=B.aa(b,c),f=B.kb(b,c,m);f&&(f===U.pa&&(f=U.O), +d(new B.e(f)));b.n.za||d(new B.e(U.O));B.ka(e)&&d(new B.e(U.ga));try{B.H.willDeletePath&&B.H.willDeletePath(a)}catch(h){console.log("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+h.message)}b.n.za(b,c);B.zb(e);try{if(B.H.onDeletePath)B.H.onDeletePath(a)}catch(j){console.log("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+j.message)}},ta:function(a){(a=B.u(a).g)||d(new B.e(U.Q));a.n.ta||d(new B.e(U.B));return a.n.ta(a)},Dc:function(a,b){var c=B.u(a,{R:!b}).g; +c||d(new B.e(U.Q));c.n.S||d(new B.e(U.O));return c.n.S(c)},Eg:function(a){return B.Dc(a,i)},Ya:function(a,b,c){a="string"===typeof a?B.u(a,{R:!c}).g:a;a.n.I||d(new B.e(U.O));a.n.I(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})},Bg:function(a,b){B.Ya(a,b,i)},jg:function(a,b){var c=B.qa(a);c||d(new B.e(U.V));B.Ya(c.g,b)},dc:function(a,b,c,e){a="string"===typeof a?B.u(a,{R:!e}).g:a;a.n.I||d(new B.e(U.O));a.n.I(a,{timestamp:Date.now()})},Cg:function(a,b,c){B.dc(a,b,c,i)},kg:function(a,b,c){(a=B.qa(a))|| +d(new B.e(U.V));B.dc(a.g,b,c)},truncate:function(a,b){0>b&&d(new B.e(U.B));var c;c="string"===typeof a?B.u(a,{R:i}).g:a;c.n.I||d(new B.e(U.O));B.J(c.mode)&&d(new B.e(U.pa));B.isFile(c.mode)||d(new B.e(U.B));var e=B.na(c,"w");e&&d(new B.e(e));c.n.I(c,{size:b,timestamp:Date.now()})},mg:function(a,b){var c=B.qa(a);c||d(new B.e(U.V));0===(c.D&2097155)&&d(new B.e(U.B));B.truncate(c.g,b)},Rg:function(a,b,c){a=B.u(a,{R:i}).g;a.n.I(a,{timestamp:Math.max(b,c)})},open:function(a,b,c,e,f){""===a&&d(new B.e(U.Q)); +var b="string"===typeof b?B.wc(b):b,c=b&64?("undefined"===typeof c?438:c)&4095|32768:0,h;if("object"===typeof a)h=a;else{a=db(a);try{h=B.u(a,{R:!(b&131072)}).g}catch(j){}}var l=m;b&64&&(h?b&128&&d(new B.e(U.Xb)):(h=B.ba(a,c,0),l=i));h||d(new B.e(U.Q));B.ib(h.mode)&&(b&=-513);l||(c=B.Hd(h,b))&&d(new B.e(c));b&512&&B.truncate(h,0);b&=-641;e=B.fc({g:h,path:B.da(h),D:b,seekable:i,position:0,p:h.p,$d:[],error:m},e,f);e.p.open&&e.p.open(e);p.logReadFiles&&!(b&1)&&(B.Mb||(B.Mb={}),a in B.Mb||(B.Mb[a]=1, +p.printErr("read file: "+a)));try{B.H.onOpenFile&&(f=0,1!==(b&2097155)&&(f|=B.Gc.yc.Rc),0!==(b&2097155)&&(f|=B.Gc.yc.Sc),B.H.onOpenFile(a,f))}catch(u){console.log("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+u.message)}return e},close:function(a){try{a.p.close&&a.p.close(a)}catch(b){d(b)}finally{B.dd(a.C)}},$:function(a,b,c){(!a.seekable||!a.p.$)&&d(new B.e(U.Ua));a.position=a.p.$(a,b,c);a.$d=[];return a.position},M:function(a,b,c,e,f){(0>e||0>f)&&d(new B.e(U.B));1===(a.D& +2097155)&&d(new B.e(U.V));B.J(a.g.mode)&&d(new B.e(U.pa));a.p.M||d(new B.e(U.B));var h=i;"undefined"===typeof f?(f=a.position,h=m):a.seekable||d(new B.e(U.Ua));b=a.p.M(a,b,c,e,f);h||(a.position+=b);return b},write:function(a,b,c,e,f,h){(0>e||0>f)&&d(new B.e(U.B));0===(a.D&2097155)&&d(new B.e(U.V));B.J(a.g.mode)&&d(new B.e(U.pa));a.p.write||d(new B.e(U.B));a.D&1024&&B.$(a,0,2);var j=i;"undefined"===typeof f?(f=a.position,j=m):a.seekable||d(new B.e(U.Ua));b=a.p.write(a,b,c,e,f,h);j||(a.position+=b); +try{if(a.path&&B.H.onWriteToFile)B.H.onWriteToFile(a.path)}catch(l){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+l.message)}return b},Ea:function(a,b,c){(0>b||0>=c)&&d(new B.e(U.B));0===(a.D&2097155)&&d(new B.e(U.V));!B.isFile(a.g.mode)&&!B.J(node.mode)&&d(new B.e(U.Qa));a.p.Ea||d(new B.e(U.Ta));a.p.Ea(a,b,c)},Ja:function(a,b,c,e,f,h,j){1===(a.D&2097155)&&d(new B.e(U.qb));a.p.Ja||d(new B.e(U.Qa));return a.p.Ja(a,b,c,e,f,h,j)},Ha:function(a,b,c){a.p.Ha||d(new B.e(U.Nc)); +return a.p.Ha(a,b,c)},Mg:function(a,b){b=b||{};b.D=b.D||"r";b.encoding=b.encoding||"binary";"utf8"!==b.encoding&&"binary"!==b.encoding&&d(Error('Invalid encoding type "'+b.encoding+'"'));var c,e=B.open(a,b.D),f=B.Dc(a).size,h=new Uint8Array(f);B.M(e,h,0,f,0);if("utf8"===b.encoding){c="";for(var j=new z.Da,l=0;l>2]=B.Eb(a);w(0===a.C,"invalid handle for stdin ("+a.C+")");a=B.open("/dev/stdout","w");K[pb>>2]=B.Eb(a);w(1===a.C,"invalid handle for stdout ("+a.C+")");a=B.open("/dev/stderr","w");K[qb>>2]=B.Eb(a);w(2===a.C,"invalid handle for stderr ("+a.C+")")},jc:function(){B.e||(B.e=function(a,b){this.g=b;this.Xd=function(a){this.cb=a;for(var b in U)if(U[b]=== +a){this.code=b;break}};this.Xd(a);this.message=ab[a]},B.e.prototype=Error(),[U.Q].forEach(function(a){B.Db[a]=new B.e(a);B.Db[a].stack=""}))},Zd:function(){B.jc();B.T=Array(4096);B.F(Y,{},"/");B.fd();B.ed()},Ga:function(a,b,c){w(!B.Ga.hb,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");B.Ga.hb=i;B.jc();p.stdin=a||p.stdin;p.stdout=b||p.stdout;p.stderr= +c||p.stderr;B.od()},Qd:function(){B.Ga.hb=m;for(var a=0;athis.length-1||0>a)){var b=a%this.cd;return this.yd(a/ +this.cd|0)[b]}};h.prototype.Wd=function(a){this.yd=a};h.prototype.bc=function(){var a=new XMLHttpRequest;a.open("HEAD",c,m);a.send(k);200<=a.status&&300>a.status||304===a.status||d(Error("Couldn't load "+c+". Status: "+a.status));var b=Number(a.getResponseHeader("Content-length")),e,f=1048576;if(!((e=a.getResponseHeader("Accept-Ranges"))&&"bytes"===e))f=b;var h=this;h.Wd(function(a){var e=a*f,j=(a+1)*f-1,j=Math.min(j,b-1);if("undefined"===typeof h.Za[a]){var l=h.Za;e>j&&d(Error("invalid range ("+ +e+", "+j+") or no bytes requested!"));j>b-1&&d(Error("only "+b+" bytes available! programmer error!"));var q=new XMLHttpRequest;q.open("GET",c,m);b!==f&&q.setRequestHeader("Range","bytes="+e+"-"+j);"undefined"!=typeof Uint8Array&&(q.responseType="arraybuffer");q.overrideMimeType&&q.overrideMimeType("text/plain; charset=x-user-defined");q.send(k);200<=q.status&&300>q.status||304===q.status||d(Error("Couldn't load "+c+". Status: "+q.status));e=q.response!==g?new Uint8Array(q.response||[]):Va(q.responseText|| +"",i);l[a]=e}"undefined"===typeof h.Za[a]&&d(Error("doXHR failed!"));return h.Za[a]});this.Uc=b;this.Tc=f;this.Hb=i};if("undefined"!==typeof XMLHttpRequest){ca||d("Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc");var j=new h;Object.defineProperty(j,"length",{get:function(){this.Hb||this.bc();return this.Uc}});Object.defineProperty(j,"chunkSize",{get:function(){this.Hb||this.bc();return this.Tc}});j={Gb:m,k:j}}else j={Gb:m,url:c}; +var l=B.gd(a,b,j,e,f);j.k?l.k=j.k:j.url&&(l.k=k,l.url=j.url);Object.defineProperty(l,"usedBytes",{get:function(){return this.k.length}});var u={};Object.keys(l.p).forEach(function(a){var b=l.p[a];u[a]=function(){B.mc(l)||d(new B.e(U.ha));return b.apply(k,arguments)}});u.M=function(a,b,c,e,f){B.mc(l)||d(new B.e(U.ha));a=a.g.k;if(f>=a.length)return 0;e=Math.min(a.length-f,e);w(0<=e);if(a.slice)for(var h=0;h>h-6&63,h=h-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[q]}2==h?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(e&3)<<4],c+="=="):4==h&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(e&15)<<2],c+="="); +s.src="data:audio/x-"+b.substr(-3)+";base64,"+c;f(s)}};s.src=l;p.noExitRuntime=i;setTimeout(function(){H||f(s)},1E4)}else return h()}});var v=p.canvas;v&&(v.Pb=v.requestPointerLock||v.mozRequestPointerLock||v.webkitRequestPointerLock||v.msRequestPointerLock||n(),v.kc=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||n(),v.kc=v.kc.bind(document),document.addEventListener("pointerlockchange",q,m),document.addEventListener("mozpointerlockchange", +q,m),document.addEventListener("webkitpointerlockchange",q,m),document.addEventListener("mspointerlockchange",q,m),p.elementPointerLock&&v.addEventListener("click",function(a){!rb&&v.Pb&&(v.Pb(),a.preventDefault())},m))}var G=b?gb(X(a,b)):a;Ya();"string"==typeof c?yb(c,function(a){x(a)},j):x(c)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},Ub:function(){return"EM_FS_"+window.location.pathname},Vb:20,Ba:"FILE_DATA",Og:function(a,b,c){var b= +b||n(),c=c||n(),e=B.indexedDB();try{var f=e.open(B.Ub(),B.Vb)}catch(h){return c(h)}f.Ld=function(){console.log("creating db");f.result.createObjectStore(B.Ba)};f.onsuccess=function(){var e=f.result.transaction([B.Ba],"readwrite"),h=e.objectStore(B.Ba),u=0,q=0,x=a.length;a.forEach(function(a){a=h.put(B.vb(a).object.k,a);a.onsuccess=function(){u++;u+q==x&&(0==q?b():c())};a.onerror=function(){q++;u+q==x&&(0==q?b():c())}});e.onerror=c};f.onerror=c},Dg:function(a,b,c){var b=b||n(),c=c||n(),e=B.indexedDB(); +try{var f=e.open(B.Ub(),B.Vb)}catch(h){return c(h)}f.Ld=c;f.onsuccess=function(){var e=f.result;try{var h=e.transaction([B.Ba],"readonly")}catch(u){c(u);return}var q=h.objectStore(B.Ba),x=0,s=0,v=a.length;a.forEach(function(a){var e=q.get(a);e.onsuccess=function(){B.vb(a).Ab&&B.za(a);B.xb(eb(a),W(a),e.result,i,i,i);x++;x+s==v&&(0==s?b():c())};e.onerror=function(){s++;x+s==v&&(0==s?b():c())}});h.onerror=c};f.onerror=c}};function zb(){d("TODO")} +var Z={F:function(){p.websocket=p.websocket&&"object"===typeof p.websocket?p.websocket:{};p.websocket.tb={};p.websocket.on=function(a,b){"function"===typeof b&&(this.tb[a]=b);return this};p.websocket.P=function(a,b){"function"===typeof this.tb[a]&&this.tb[a].call(this,b)};return B.createNode(k,"/",16895,0)},nd:function(a,b,c){c&&w(1==b==(6==c));a={qd:a,type:b,protocol:c,G:k,error:k,Ma:{},Kb:[],ua:[],wa:Z.L};b=Z.mb();c=B.createNode(Z.root,b,49152,0);c.va=a;b=B.fc({path:b,g:c,D:B.wc("r+"),seekable:m, +p:Z.p});a.A=b;return a},wd:function(a){a=B.qa(a);return!a||!B.Ed(a.g.mode)?k:a.g.va},p:{zc:function(a){a=a.g.va;return a.wa.zc(a)},Ha:function(a,b,c){a=a.g.va;return a.wa.Ha(a,b,c)},M:function(a,b,c,e){a=a.g.va;e=a.wa.Rd(a,e);if(!e)return 0;b.set(e.buffer,c);return e.buffer.length},write:function(a,b,c,e){a=a.g.va;return a.wa.Vd(a,b,c,e)},close:function(a){a=a.g.va;a.wa.close(a)}},mb:function(){Z.mb.gc||(Z.mb.gc=0);return"socket["+Z.mb.gc++ +"]"},L:{$a:function(a,b,c){var e;"object"===typeof b&&(e= +b,c=b=k);if(e)e._socket?(b=e._socket.remoteAddress,c=e._socket.remotePort):((c=/ws[s]?:\/\/([^:]+):(\d+)/.exec(e.url))||d(Error("WebSocket URL must be in the format ws(s)://address:port")),b=c[1],c=parseInt(c[2],10));else try{var f=p.websocket&&"object"===typeof p.websocket,h="ws:#".replace("#","//");f&&"string"===typeof p.websocket.url&&(h=p.websocket.url);if("ws://"===h||"wss://"===h)var j=b.split("/"),h=h+j[0]+":"+c+"/"+j.slice(1).join("/");j="binary";f&&"string"===typeof p.websocket.subprotocol&& +(j=p.websocket.subprotocol);var j=j.replace(/^ +| +$/g,"").split(/ *, */),l=t?{protocol:j.toString()}:j;e=new (t?require("ws"):window.WebSocket)(h,l);e.binaryType="arraybuffer"}catch(u){d(new B.e(U.Yb))}b={W:b,port:c,o:e,ab:[]};Z.L.$b(a,b);Z.L.zd(a,b);2===a.type&&"undefined"!==typeof a.ya&&b.ab.push(new Uint8Array([255,255,255,255,112,111,114,116,(a.ya&65280)>>8,a.ya&255]));return b},gb:function(a,b,c){return a.Ma[b+":"+c]},$b:function(a,b){a.Ma[b.W+":"+b.port]=b},Bc:function(a,b){delete a.Ma[b.W+ +":"+b.port]},zd:function(a,b){function c(){p.websocket.P("open",a.A.C);try{for(var c=b.ab.shift();c;)b.o.send(c),c=b.ab.shift()}catch(e){b.o.close()}}function e(c){w("string"!==typeof c&&c.byteLength!==g);var c=new Uint8Array(c),e=f;f=m;e&&10===c.length&&255===c[0]&&255===c[1]&&255===c[2]&&255===c[3]&&112===c[4]&&111===c[5]&&114===c[6]&&116===c[7]?(c=c[8]<<8|c[9],Z.L.Bc(a,b),b.port=c,Z.L.$b(a,b)):(a.ua.push({W:b.W,port:b.port,data:c}),p.websocket.P("message",a.A.C))}var f=i;t?(b.o.on("open",c),b.o.on("message", +function(a,b){b.binary&&e((new Uint8Array(a)).buffer)}),b.o.on("close",function(){p.websocket.P("close",a.A.C)}),b.o.on("error",function(){a.error=U.Wb;p.websocket.P("error",[a.A.C,a.error,"ECONNREFUSED: Connection refused"])})):(b.o.onopen=c,b.o.onclose=function(){p.websocket.P("close",a.A.C)},b.o.onmessage=function(a){e(a.data)},b.o.onerror=function(){a.error=U.Wb;p.websocket.P("error",[a.A.C,a.error,"ECONNREFUSED: Connection refused"])})},zc:function(a){if(1===a.type&&a.G)return a.Kb.length?65: +0;var b=0,c=1===a.type?Z.L.gb(a,a.Y,a.Z):k;if(a.ua.length||!c||c&&c.o.readyState===c.o.Pa||c&&c.o.readyState===c.o.CLOSED)b|=65;if(!c||c&&c.o.readyState===c.o.OPEN)b|=4;if(c&&c.o.readyState===c.o.Pa||c&&c.o.readyState===c.o.CLOSED)b|=16;return b},Ha:function(a,b,c){switch(b){case 21531:return b=0,a.ua.length&&(b=a.ua[0].data.length),K[c>>2]=b,0;default:return U.B}},close:function(a){if(a.G){try{a.G.close()}catch(b){}a.G=k}for(var c=Object.keys(a.Ma),e=0;e>0]=c;if(-1==Ab(Cb(b),Eb.Cc,1)){if(c=B.pc(b))c.error=i;return-1}return c}function Fb(a){Fb.$c||(E=E+4095&-4096,Fb.$c=i,w(z.bb),Fb.Wc=z.bb,z.bb=function(){A("cannot dynamically allocate, sbrk now has control")});var b=E;0!=a&&Fb.Wc(a);return b}p._memset=Gb;function Hb(a,b,c){window._broadwayOnPictureDecoded(a,b,c)}p._broadwayOnPictureDecoded=Hb;function Ib(){window._broadwayOnHeadersDecoded()}p._broadwayOnHeadersDecoded=Ib; +function Jb(a,b){Kb=a;Lb=b;if(!Mb)return 1;0==a?(Nb=function(){setTimeout(Ob,b)},Pb="timeout"):1==a&&(Nb=function(){Qb(Ob)},Pb="rAF");return 0} +function Rb(a,b,c,e){p.noExitRuntime=i;w(!Mb,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Mb=a;Sb=e;var f=Tb;Ob=function(){if(!H)if(0=bc;)bc+=1E3/60;b=Math.max(bc-b,0);setTimeout(a,b)}function Qb(a){"undefined"===typeof window?cc(a):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||cc),window.requestAnimationFrame(a))} +function xb(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]} +function yb(a,b,c){function e(){c?c():d('Loading data file "'+a+'" failed.')}var f=new XMLHttpRequest;f.open("GET",a,i);f.responseType="arraybuffer";f.onload=function(){if(200==f.status||0==f.status&&f.response){var c=f.response;w(c,'Loading data file "'+a+'" failed (no arrayBuffer).');b(new Uint8Array(c));Za()}else e()};f.onerror=e;f.send(k);Ya()}var dc=[];function ec(){var a=p.canvas;dc.forEach(function(b){b(a.width,a.height)})} +function fc(a,b,c){b&&c?(a.ae=b,a.Ad=c):(b=a.ae,c=a.Ad);var e=b,f=c;p.forcedAspectRatio&&0>2]=0;R.unshift({ja:n()});Qa.push({ja:n()});var lb=new z.Da;t&&(require("fs"),process.platform.match(/^win/));R.push({ja:function(){Z.root=B.F(Z,{},k)}}); +Eb.Cc=M([0],"i8",L); +p.requestFullScreen=function(a,b){function c(){Yb=m;var a=e.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===a?(e.cc=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen|| +n(),e.cc=e.cc.bind(document),$b&&e.Pb(),Yb=i,ac&&("undefined"!=typeof SDL&&(a=Ha[SDL.screen+0*z.ia>>2],K[SDL.screen+0*z.ia>>2]=a|8388608),ec())):(a.parentNode.insertBefore(e,a),a.parentNode.removeChild(a),ac&&("undefined"!=typeof SDL&&(a=Ha[SDL.screen+0*z.ia>>2],K[SDL.screen+0*z.ia>>2]=a&-8388609),ec()));if(p.onFullScreen)p.onFullScreen(Yb);fc(e)}$b=a;ac=b;"undefined"===typeof $b&&($b=i);"undefined"===typeof ac&&(ac=m);var e=p.canvas;Zb||(Zb=i,document.addEventListener("fullscreenchange",c,m),document.addEventListener("mozfullscreenchange", +c,m),document.addEventListener("webkitfullscreenchange",c,m),document.addEventListener("MSFullscreenChange",c,m));var f=document.createElement("div");e.parentNode.insertBefore(f,e);f.appendChild(e);f.Td=f.requestFullScreen||f.mozRequestFullScreen||f.msRequestFullscreen||(f.webkitRequestFullScreen?function(){f.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:k);f.Td()};p.requestAnimationFrame=function(a){Qb(a)};p.setCanvasSize=function(a,b,c){fc(p.canvas,a,b);c||ec()}; +p.pauseMainLoop=function(){Nb=k;Tb++};p.resumeMainLoop=function(){Tb++;var a=Kb,b=Lb,c=Mb;Mb=k;Rb(c,0,m,Sb);Jb(a,b)};p.getUserMedia=function(){window.qc||(window.qc=navigator.getUserMedia||navigator.mozGetUserMedia);window.qc(g)};Ja=y=z.ub(D);Ka=Ja+Ma;La=E=z.ub(Ka);w(La>2],a=Db(a,b);return 0>a?a:0>Eb(10,b)?-1:a+1},_fflush:n(),_fputc:Eb,_send:function(a,b,c){return!Z.wd(a)?(V(U.V),-1):Ab(a,b,c)},_pwrite:function(a,b,c,e){a=B.qa(a);if(!a)return V(U.V),-1;try{return B.write(a,I,b,c,e)}catch(f){return B.sc(f),-1}},_fputs:Db,_emscripten_set_main_loop:Rb, +_abort:function(){p.abort()},___setErrNo:V,_sbrk:Fb,_mkport:zb,_emscripten_set_main_loop_timing:Jb,_emscripten_memcpy_big:function(a,b,c){N.set(N.subarray(b,b+c),a);return a},_fileno:Cb,_broadwayOnHeadersDecoded:Ib,_write:Ab,_time:function(a){var b=Date.now()/1E3|0;a&&(K[a>>2]=b);return b},_sysconf:function(a){switch(a){case 30:return 4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 79:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809; +case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32; +case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1E3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"===typeof navigator?navigator.hardwareConcurrency||1:1}V(U.B);return-1}, +___errno_location:function(){return bb},STACKTOP:y,STACK_MAX:Ka,tempDoublePtr:$a,ABORT:H,NaN:NaN,Infinity:Infinity};// EMSCRIPTEN_START_ASM +var $=(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.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=0;var n=0;var o=0;var p=0;var q=+env.NaN,r=+env.Infinity;var s=0,t=0,u=0,v=0,w=0.0,x=0,y=0,z=0,A=0.0;var B=0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=global.Math.floor;var M=global.Math.abs;var N=global.Math.sqrt;var O=global.Math.pow;var P=global.Math.cos;var Q=global.Math.sin;var R=global.Math.tan;var S=global.Math.acos;var T=global.Math.asin;var U=global.Math.atan;var V=global.Math.atan2;var W=global.Math.exp;var X=global.Math.log;var Y=global.Math.ceil;var Z=global.Math.imul;var _=env.abort;var $=env.assert;var aa=env.min;var ba=env.invoke_viiiii;var ca=env._broadwayOnPictureDecoded;var da=env._puts;var ea=env._fflush;var fa=env._fputc;var ga=env._send;var ha=env._pwrite;var ia=env._fputs;var ja=env._emscripten_set_main_loop;var ka=env._abort;var la=env.___setErrNo;var ma=env._sbrk;var na=env._mkport;var oa=env._emscripten_set_main_loop_timing;var pa=env._emscripten_memcpy_big;var qa=env._fileno;var ra=env._broadwayOnHeadersDecoded;var sa=env._write;var ta=env._time;var ua=env._sysconf;var va=env.___errno_location;var wa=0.0; +// EMSCRIPTEN_START_FUNCS +function Sb(a,f,g,h,j,k){a=a|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;X=i;i=i+32|0;W=X;p=c[j+4>>2]|0;V=(h>>>0)/(p>>>0)|0;U=V<<4;V=h-(Z(V,p)|0)<<4;c[W+4>>2]=p;c[W+8>>2]=c[j+8>>2];p=c[a>>2]|0;do if((p|0)==1|(p|0)==0){A=c[f+144>>2]|0;l=a+4|0;n=c[a+200>>2]|0;if((n|0)!=0?(c[n+4>>2]|0)==(c[l>>2]|0):0)if((c[n>>2]|0)>>>0<6){o=n+152|0;o=e[o>>1]|e[o+2>>1]<<16;m=1;v=o&65535;o=o>>>16&65535;s=c[n+104>>2]|0}else{m=1;v=0;o=0;s=-1}else{m=0;v=0;o=0;s=-1}n=c[a+204>>2]|0;if((n|0)!=0?(c[n+4>>2]|0)==(c[l>>2]|0):0)if((c[n>>2]|0)>>>0<6){w=n+172|0;w=e[w>>1]|e[w+2>>1]<<16;u=w&65535;q=1;r=c[n+108>>2]|0;w=w>>>16&65535}else{u=0;q=1;r=-1;w=0}else{u=0;q=0;r=-1;w=0}do if(!p)if(!((m|0)==0|(q|0)==0)){if((s|0)==0?((o&65535)<<16|v&65535|0)==0:0){n=0;o=0;break}if((r|0)==0?((w&65535)<<16|u&65535|0)==0:0){n=0;o=0}else T=16}else{n=0;o=0}else T=16;while(0);if((T|0)==16){y=b[f+160>>1]|0;z=b[f+162>>1]|0;n=c[a+208>>2]|0;if((n|0)!=0?(c[n+4>>2]|0)==(c[l>>2]|0):0)if((c[n>>2]|0)>>>0<6){t=n+172|0;p=c[n+108>>2]|0;t=e[t>>1]|e[t+2>>1]<<16;T=25}else{p=-1;t=0;T=25}else T=20;do if((T|0)==20){p=c[a+212>>2]|0;if((p|0)!=0?(c[p+4>>2]|0)==(c[l>>2]|0):0){if((c[p>>2]|0)>>>0>=6){p=-1;t=0;T=25;break}t=p+192|0;p=c[p+112>>2]|0;t=e[t>>1]|e[t+2>>1]<<16;T=25;break}if((m|0)==0|(q|0)!=0){p=-1;t=0;T=25}else n=v}while(0);do if((T|0)==25){m=(s|0)==(A|0);n=(r|0)==(A|0);if(((n&1)+(m&1)+((p|0)==(A|0)&1)|0)==1){if(m|n){n=m?v:u;o=m?o:w;break}n=t&65535;o=t>>>16&65535;break}n=v<<16>>16;l=u<<16>>16;p=t<<16>>16;if(u<<16>>16>v<<16>>16)m=l;else{m=n;n=(l|0)<(n|0)?l:n}if((m|0)<(p|0))p=m;else p=(n|0)>(p|0)?n:p;n=o<<16>>16;m=w<<16>>16;l=t>>16;if(w<<16>>16>o<<16>>16)o=m;else{o=n;n=(m|0)<(n|0)?m:n}if((o|0)>=(l|0))o=(n|0)>(l|0)?n:l;n=p&65535;o=o&65535}while(0);n=(n&65535)+(y&65535)|0;o=(o&65535)+(z&65535)|0;if(((n<<16>>16)+8192|0)>>>0>16383){G=1;i=X;return G|0}if(((o<<16>>16)+2048|0)>>>0>4095){G=1;i=X;return G|0}else{n=n&65535;o=o&65535}}l=ic(g,A)|0;if(!l){G=1;i=X;return G|0}else{G=a+132|0;E=a+136|0;D=a+140|0;C=a+144|0;B=a+148|0;z=a+152|0;y=a+156|0;x=a+160|0;w=a+164|0;v=a+168|0;m=a+172|0;p=a+176|0;q=a+180|0;r=a+184|0;s=a+188|0;F=a+192|0;b[a+192>>1]=n;b[a+194>>1]=o;F=e[F>>1]|e[F+2>>1]<<16;b[s>>1]=F;b[s+2>>1]=F>>>16;b[r>>1]=F;b[r+2>>1]=F>>>16;b[q>>1]=F;b[q+2>>1]=F>>>16;b[p>>1]=F;b[p+2>>1]=F>>>16;b[m>>1]=F;b[m+2>>1]=F>>>16;b[v>>1]=F;b[v+2>>1]=F>>>16;b[w>>1]=F;b[w+2>>1]=F>>>16;b[x>>1]=F;b[x+2>>1]=F>>>16;b[y>>1]=F;b[y+2>>1]=F>>>16;b[z>>1]=F;b[z+2>>1]=F>>>16;b[B>>1]=F;b[B+2>>1]=F>>>16;b[C>>1]=F;b[C+2>>1]=F>>>16;b[D>>1]=F;b[D+2>>1]=F>>>16;b[E>>1]=F;b[E+2>>1]=F>>>16;b[G>>1]=F;b[G+2>>1]=F>>>16;c[a+100>>2]=A;c[a+104>>2]=A;c[a+108>>2]=A;c[a+112>>2]=A;c[a+116>>2]=l;c[a+120>>2]=l;c[a+124>>2]=l;c[a+128>>2]=l;c[W>>2]=l;dc(k,a+132|0,W,V,U,0,0,16,16);break}}else if((p|0)==3){x=b[f+160>>1]|0;y=b[f+162>>1]|0;C=c[f+144>>2]|0;u=a+4|0;o=c[a+200>>2]|0;if((o|0)!=0?(c[o+4>>2]|0)==(c[u>>2]|0):0)if((c[o>>2]|0)>>>0<6){w=o+152|0;w=e[w>>1]|e[w+2>>1]<<16;n=1;s=w&65535;w=w>>>16&65535;o=c[o+104>>2]|0}else{n=1;s=0;w=0;o=-1}else{n=0;s=0;w=0;o=-1}a:do if((o|0)==(C|0)){n=s;o=w}else{o=c[a+204>>2]|0;if((o|0)!=0?(c[o+4>>2]|0)==(c[u>>2]|0):0)if((c[o>>2]|0)>>>0<6){G=o+172|0;G=e[G>>1]|e[G+2>>1]<<16;t=o+188|0;p=c[o+108>>2]|0;l=c[o+112>>2]|0;n=G&65535;o=G>>>16&65535;t=e[t>>1]|e[t+2>>1]<<16}else{p=-1;l=-1;n=0;o=0;t=0}else T=107;do if((T|0)==107){o=c[a+212>>2]|0;if((o|0)!=0?(c[o+4>>2]|0)==(c[u>>2]|0):0){if((c[o>>2]|0)>>>0>=6){p=-1;l=-1;n=0;o=0;t=0;break}t=o+192|0;p=-1;l=c[o+112>>2]|0;n=0;o=0;t=e[t>>1]|e[t+2>>1]<<16;break}if(!n){p=-1;l=-1;n=0;o=0;t=0}else{n=s;o=w;break a}}while(0);m=(p|0)==(C|0);if(((m&1)+((l|0)==(C|0)&1)|0)==1){if(m)break;n=t&65535;o=t>>>16&65535;break}l=s<<16>>16;p=n<<16>>16;q=t<<16>>16;if(n<<16>>16>s<<16>>16){m=p;n=l}else{m=l;n=(p|0)<(l|0)?p:l}if((m|0)<(q|0))q=m;else q=(n|0)>(q|0)?n:q;n=w<<16>>16;m=o<<16>>16;l=t>>16;if(o<<16>>16>w<<16>>16)o=m;else{o=n;n=(m|0)<(n|0)?m:n}if((o|0)>=(l|0))o=(n|0)>(l|0)?n:l;n=q&65535;o=o&65535}while(0);n=(n&65535)+(x&65535)|0;o=(o&65535)+(y&65535)|0;if(((n<<16>>16)+8192|0)>>>0>16383){G=1;i=X;return G|0}if(((o<<16>>16)+2048|0)>>>0>4095){G=1;i=X;return G|0}m=ic(g,C)|0;if(!m){G=1;i=X;return G|0}x=a+132|0;z=a+136|0;A=a+140|0;y=a+144|0;G=a+164|0;F=a+168|0;E=a+172|0;w=a+176|0;b[a+176>>1]=n;b[a+178>>1]=o;w=e[w>>1]|e[w+2>>1]<<16;b[E>>1]=w;b[E+2>>1]=w>>>16;b[F>>1]=w;b[F+2>>1]=w>>>16;b[G>>1]=w;b[G+2>>1]=w>>>16;b[y>>1]=w;b[y+2>>1]=w>>>16;b[A>>1]=w;b[A+2>>1]=w>>>16;b[z>>1]=w;b[z+2>>1]=w>>>16;b[x>>1]=w;b[x+2>>1]=w>>>16;c[a+100>>2]=C;c[a+108>>2]=C;x=a+116|0;c[x>>2]=m;c[a+124>>2]=m;z=b[f+164>>1]|0;A=b[f+166>>1]|0;y=c[f+148>>2]|0;o=c[a+208>>2]|0;if((o|0)!=0?(c[o+4>>2]|0)==(c[u>>2]|0):0)if((c[o>>2]|0)>>>0<6){r=o+172|0;o=c[o+108>>2]|0;p=1;r=e[r>>1]|e[r+2>>1]<<16}else{o=-1;p=1;r=0}else{o=c[a+204>>2]|0;if((o|0)!=0?(c[o+4>>2]|0)==(c[u>>2]|0):0)if((c[o>>2]|0)>>>0<6){r=o+176|0;o=c[o+108>>2]|0;p=1;r=e[r>>1]|e[r+2>>1]<<16}else{o=-1;p=1;r=0}else{o=-1;p=0;r=0}}do if((o|0)!=(y|0)){s=w&65535;o=w>>>16;v=o&65535;n=c[a+204>>2]|0;if((n|0)!=0?(c[n+4>>2]|0)==(c[u>>2]|0):0)if((c[n>>2]|0)>>>0<6){u=n+188|0;u=e[u>>1]|e[u+2>>1]<<16;p=c[n+112>>2]|0;l=u&65535;u=u>>>16&65535}else{p=-1;l=0;u=0}else if(!p){m=w;break}else{p=-1;l=0;u=0}m=(C|0)==(y|0);n=(p|0)==(y|0);if(((n&1)+(m&1)|0)==1){if(m){m=w;break}if(n){o=u&65535;m=o<<16|l&65535;break}else{m=r;o=r>>>16;break}}o=w<<16>>16;p=l<<16>>16;q=r<<16>>16;if(l<<16>>16>s<<16>>16)m=p;else{m=o;o=(p|0)<(o|0)?p:o}if((m|0)>=(q|0))m=(o|0)>(q|0)?o:q;n=w>>16;l=u<<16>>16;p=r>>16;if(u<<16>>16>v<<16>>16)o=l;else{o=n;n=(l|0)<(n|0)?l:n}if((o|0)>=(p|0))o=(n|0)>(p|0)?n:p}else{m=r;o=r>>>16}while(0);m=(m&65535)+(z&65535)|0;n=(o&65535)+(A&65535)|0;if(((m<<16>>16)+8192|0)>>>0>16383){G=1;i=X;return G|0}if(((n<<16>>16)+2048|0)>>>0>4095){G=1;i=X;return G|0}o=ic(g,y)|0;if(!o){G=1;i=X;return G|0}else{G=a+148|0;E=a+152|0;D=a+156|0;C=a+160|0;B=a+180|0;A=a+184|0;z=a+188|0;F=a+192|0;b[a+192>>1]=m;b[a+194>>1]=n;F=e[F>>1]|e[F+2>>1]<<16;b[z>>1]=F;b[z+2>>1]=F>>>16;b[A>>1]=F;b[A+2>>1]=F>>>16;b[B>>1]=F;b[B+2>>1]=F>>>16;b[C>>1]=F;b[C+2>>1]=F>>>16;b[D>>1]=F;b[D+2>>1]=F>>>16;b[E>>1]=F;b[E+2>>1]=F>>>16;b[G>>1]=F;b[G+2>>1]=F>>>16;c[a+104>>2]=y;c[a+112>>2]=y;F=a+120|0;c[F>>2]=o;c[a+128>>2]=o;c[W>>2]=c[x>>2];dc(k,a+132|0,W,V,U,0,0,8,16);c[W>>2]=c[F>>2];dc(k,G,W,V,U,8,0,8,16);break}}else if((p|0)==2){z=b[f+160>>1]|0;A=b[f+162>>1]|0;C=c[f+144>>2]|0;B=a+4|0;o=c[a+204>>2]|0;if((o|0)!=0?(c[o+4>>2]|0)==(c[B>>2]|0):0)if((c[o>>2]|0)>>>0<6){w=o+172|0;w=e[w>>1]|e[w+2>>1]<<16;m=1;o=c[o+108>>2]|0;r=w&65535;w=w>>>16&65535}else{m=1;o=-1;r=0;w=0}else{m=0;o=-1;r=0;w=0}b:do if((o|0)==(C|0)){n=r;o=w}else{n=c[a+200>>2]|0;if((n|0)!=0?(c[n+4>>2]|0)==(c[B>>2]|0):0)if((c[n>>2]|0)>>>0<6){o=n+152|0;o=e[o>>1]|e[o+2>>1]<<16;q=1;s=o&65535;o=o>>>16&65535;p=c[n+104>>2]|0}else{q=1;s=0;o=0;p=-1}else{q=0;s=0;o=0;p=-1}n=c[a+208>>2]|0;if((n|0)!=0?(c[n+4>>2]|0)==(c[B>>2]|0):0)if((c[n>>2]|0)>>>0<6){t=n+172|0;n=c[n+108>>2]|0;t=e[t>>1]|e[t+2>>1]<<16}else{n=-1;t=0}else T=54;do if((T|0)==54){n=c[a+212>>2]|0;if((n|0)!=0?(c[n+4>>2]|0)==(c[B>>2]|0):0){if((c[n>>2]|0)>>>0>=6){n=-1;t=0;break}t=n+192|0;n=c[n+112>>2]|0;t=e[t>>1]|e[t+2>>1]<<16;break}if((q|0)==0|(m|0)!=0){n=-1;t=0}else{n=s;break b}}while(0);m=(p|0)==(C|0);if((((n|0)==(C|0)&1)+(m&1)|0)==1){if(m){n=m?s:r;o=m?o:w;break}n=t&65535;o=t>>>16&65535;break}n=s<<16>>16;l=r<<16>>16;p=t<<16>>16;if(r<<16>>16>s<<16>>16)m=l;else{m=n;n=(l|0)<(n|0)?l:n}if((m|0)<(p|0))q=m;else q=(n|0)>(p|0)?n:p;n=o<<16>>16;m=w<<16>>16;l=t>>16;if(w<<16>>16>o<<16>>16)o=m;else{o=n;n=(m|0)<(n|0)?m:n}if((o|0)>=(l|0))o=(n|0)>(l|0)?n:l;n=q&65535;o=o&65535}while(0);n=(n&65535)+(z&65535)|0;o=(o&65535)+(A&65535)|0;if(((n<<16>>16)+8192|0)>>>0>16383){G=1;i=X;return G|0}if(((o<<16>>16)+2048|0)>>>0>4095){G=1;i=X;return G|0}m=ic(g,C)|0;if(!m){G=1;i=X;return G|0}A=a+132|0;x=a+136|0;y=a+140|0;z=a+144|0;q=a+148|0;p=a+152|0;G=a+156|0;v=a+160|0;b[a+160>>1]=n;b[a+162>>1]=o;v=e[v>>1]|e[v+2>>1]<<16;b[G>>1]=v;b[G+2>>1]=v>>>16;b[p>>1]=v;b[p+2>>1]=v>>>16;b[q>>1]=v;b[q+2>>1]=v>>>16;b[z>>1]=v;b[z+2>>1]=v>>>16;b[y>>1]=v;b[y+2>>1]=v>>>16;b[x>>1]=v;b[x+2>>1]=v>>>16;b[A>>1]=v;b[A+2>>1]=v>>>16;c[a+100>>2]=C;c[a+104>>2]=C;A=a+116|0;c[A>>2]=m;c[a+120>>2]=m;x=b[f+164>>1]|0;y=b[f+166>>1]|0;z=c[f+148>>2]|0;q=c[a+200>>2]|0;p=(q|0)==0;if((!p?(c[q+4>>2]|0)==(c[B>>2]|0):0)?(c[q>>2]|0)>>>0<6:0){w=q+184|0;w=e[w>>1]|e[w+2>>1]<<16;r=w&65535;w=w>>>16&65535;o=c[q+112>>2]|0}else{r=0;w=0;o=-1}do if((o|0)!=(z|0)){s=v&65535;n=v>>>16;u=n&65535;if((!p?(c[q+4>>2]|0)==(c[B>>2]|0):0)?(c[q>>2]|0)>>>0<6:0){t=q+160|0;p=c[q+104>>2]|0;t=e[t>>1]|e[t+2>>1]<<16}else{p=-1;t=0}o=(C|0)==(z|0);if((((p|0)==(z|0)&1)+(o&1)|0)==1){m=o?v:t;o=o?n:t>>>16;break}o=r<<16>>16;p=v<<16>>16;q=t<<16>>16;if(s<<16>>16>r<<16>>16)m=p;else{m=o;o=(p|0)<(o|0)?p:o}if((m|0)>=(q|0))m=(o|0)>(q|0)?o:q;n=w<<16>>16;l=v>>16;p=t>>16;if(u<<16>>16>w<<16>>16)o=l;else{o=n;n=(l|0)<(n|0)?l:n}if((o|0)>=(p|0))o=(n|0)>(p|0)?n:p}else{o=w&65535;m=o<<16|r&65535}while(0);m=(m&65535)+(x&65535)|0;n=(o&65535)+(y&65535)|0;if(((m<<16>>16)+8192|0)>>>0>16383){G=1;i=X;return G|0}if(((n<<16>>16)+2048|0)>>>0>4095){G=1;i=X;return G|0}o=ic(g,z)|0;if(!o){G=1;i=X;return G|0}else{G=a+164|0;E=a+168|0;D=a+172|0;C=a+176|0;B=a+180|0;y=a+184|0;x=a+188|0;F=a+192|0;b[a+192>>1]=m;b[a+194>>1]=n;F=e[F>>1]|e[F+2>>1]<<16;b[x>>1]=F;b[x+2>>1]=F>>>16;b[y>>1]=F;b[y+2>>1]=F>>>16;b[B>>1]=F;b[B+2>>1]=F>>>16;b[C>>1]=F;b[C+2>>1]=F>>>16;b[D>>1]=F;b[D+2>>1]=F>>>16;b[E>>1]=F;b[E+2>>1]=F>>>16;b[G>>1]=F;b[G+2>>1]=F>>>16;c[a+108>>2]=z;c[a+112>>2]=z;F=a+124|0;c[F>>2]=o;c[a+128>>2]=o;c[W>>2]=c[A>>2];dc(k,a+132|0,W,V,U,0,0,16,8);c[W>>2]=c[F>>2];dc(k,G,W,V,U,0,8,16,8);break}}else{S=a+4|0;H=0;c:while(1){D=f+(H<<2)+176|0;G=eb(c[D>>2]|0)|0;E=f+(H<<2)+192|0;c[a+(H<<2)+100>>2]=c[E>>2];F=ic(g,c[E>>2]|0)|0;c[a+(H<<2)+116>>2]=F;if(!F){l=1;T=212;break}if(G){J=H<<2;K=a+(J<<2)+132|0;O=a+(J<<2)+134|0;P=J|1;L=a+(P<<2)+132|0;P=a+(P<<2)+134|0;Q=J|2;M=a+(Q<<2)+132|0;Q=a+(Q<<2)+134|0;R=J|3;N=a+(R<<2)+132|0;R=a+(R<<2)+134|0;I=0;do{C=b[f+(H<<4)+(I<<2)+208>>1]|0;B=b[f+(H<<4)+(I<<2)+210>>1]|0;F=hb(c[D>>2]|0)|0;n=c[E>>2]|0;s=ub(a,c[6288+(H<<7)+(F<<5)+(I<<3)>>2]|0)|0;r=d[6288+(H<<7)+(F<<5)+(I<<3)+4>>0]|0;if((s|0)!=0?(c[s+4>>2]|0)==(c[S>>2]|0):0)if((c[s>>2]|0)>>>0<6){q=s+(r<<2)+132|0;q=e[q>>1]|e[q+2>>1]<<16;A=c[s+(r>>>2<<2)+100>>2]|0;o=q&65535;z=1;q=q>>>16&65535}else{A=-1;o=0;z=1;q=0}else{A=-1;o=0;z=0;q=0}v=ub(a,c[5776+(H<<7)+(F<<5)+(I<<3)>>2]|0)|0;l=d[5776+(H<<7)+(F<<5)+(I<<3)+4>>0]|0;if((v|0)!=0?(c[v+4>>2]|0)==(c[S>>2]|0):0)if((c[v>>2]|0)>>>0<6){p=v+(l<<2)+132|0;p=e[p>>1]|e[p+2>>1]<<16;y=1;x=c[v+(l>>>2<<2)+100>>2]|0;m=p&65535;p=p>>>16&65535}else{y=1;x=-1;m=0;p=0}else{y=0;x=-1;m=0;p=0}w=ub(a,c[5264+(H<<7)+(F<<5)+(I<<3)>>2]|0)|0;v=d[5264+(H<<7)+(F<<5)+(I<<3)+4>>0]|0;if((w|0)!=0?(c[w+4>>2]|0)==(c[S>>2]|0):0)if((c[w>>2]|0)>>>0<6){z=w+(v<<2)+132|0;z=e[z>>1]|e[z+2>>1]<<16;v=c[w+(v>>>2<<2)+100>>2]|0;T=180}else{z=0;v=-1;T=180}else T=175;do if((T|0)==175){T=0;w=ub(a,c[4752+(H<<7)+(F<<5)+(I<<3)>>2]|0)|0;v=d[4752+(H<<7)+(F<<5)+(I<<3)+4>>0]|0;if((w|0)!=0?(c[w+4>>2]|0)==(c[S>>2]|0):0){if((c[w>>2]|0)>>>0>=6){z=0;v=-1;T=180;break}z=w+(v<<2)+132|0;z=e[z>>1]|e[z+2>>1]<<16;v=c[w+(v>>>2<<2)+100>>2]|0;T=180;break}if((z|0)==0|(y|0)!=0){z=0;v=-1;T=180}else{v=o;t=q}}while(0);do if((T|0)==180){l=(A|0)==(n|0);w=(x|0)==(n|0);if(((w&1)+(l&1)+((v|0)==(n|0)&1)|0)==1){if(l|w){v=l?o:m;t=l?q:p;break}v=z&65535;t=z>>>16&65535;break}u=o<<16>>16;w=m<<16>>16;l=z<<16>>16;if(m<<16>>16>o<<16>>16)v=w;else{v=u;u=(w|0)<(u|0)?w:u}if((v|0)<(l|0))w=v;else w=(u|0)>(l|0)?u:l;t=q<<16>>16;v=p<<16>>16;l=z>>16;if(p<<16>>16>q<<16>>16)s=v;else{s=t;t=(v|0)<(t|0)?v:t}if((s|0)>=(l|0))s=(t|0)>(l|0)?t:l;v=w&65535;t=s&65535}while(0);C=(v&65535)+(C&65535)|0;q=C&65535;s=(t&65535)+(B&65535)|0;r=s&65535;if(((C<<16>>16)+8192|0)>>>0>16383){l=1;T=212;break c}if(((s<<16>>16)+2048|0)>>>0>4095){l=1;T=212;break c}if(!F){b[K>>1]=q;b[O>>1]=r;b[L>>1]=q;b[P>>1]=r;b[M>>1]=q;b[Q>>1]=r;b[N>>1]=q;b[R>>1]=r}else if((F|0)==1){F=(I<<1)+J|0;b[a+(F<<2)+132>>1]=q;b[a+(F<<2)+134>>1]=r;F=F|1;b[a+(F<<2)+132>>1]=q;b[a+(F<<2)+134>>1]=r}else if((F|0)==2){F=I+J|0;b[a+(F<<2)+132>>1]=q;b[a+(F<<2)+134>>1]=r;F=F+2|0;b[a+(F<<2)+132>>1]=q;b[a+(F<<2)+134>>1]=r}else if((F|0)==3){F=I+J|0;b[a+(F<<2)+132>>1]=q;b[a+(F<<2)+134>>1]=r}I=I+1|0}while(I>>>0>>0)}H=H+1|0;if(H>>>0>=4){T=201;break}}if((T|0)==201){o=0;do{c[W>>2]=c[a+(o<<2)+116>>2];m=hb(c[f+(o<<2)+176>>2]|0)|0;l=o<<3&8;n=o>>>0<2?0:8;if(!m)dc(k,a+(o<<2<<2)+132|0,W,V,U,l,n,8,8);else if((m|0)==1){G=o<<2;dc(k,a+(G<<2)+132|0,W,V,U,l,n,8,4);dc(k,a+((G|2)<<2)+132|0,W,V,U,l,n|4,8,4)}else if((m|0)==2){G=o<<2;dc(k,a+(G<<2)+132|0,W,V,U,l,n,4,8);dc(k,a+((G|1)<<2)+132|0,W,V,U,l|4,n,4,8)}else{E=o<<2;dc(k,a+(E<<2)+132|0,W,V,U,l,n,4,4);F=l|4;dc(k,a+((E|1)<<2)+132|0,W,V,U,F,n,4,4);G=n|4;dc(k,a+((E|2)<<2)+132|0,W,V,U,l,G,4,4);dc(k,a+((E|3)<<2)+132|0,W,V,U,F,G,4,4)}o=o+1|0}while((o|0)!=4)}else if((T|0)==212){i=X;return l|0}}while(0);if((c[a+196>>2]|0)>>>0>1){G=0;i=X;return G|0}if(!(c[a>>2]|0)){sc(j,k);G=0;i=X;return G|0}else{tc(j,h,k,f+328|0);G=0;i=X;return G|0}return 0}function Tb(b,c,e,f,g,h,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;B=i;i=i+144|0;m=B;if((e|0)>=0?!((e+1+k|0)>>>0>g>>>0|(f|0)<0|(l+f|0)>>>0>h>>>0):0)m=b;else{A=k+1|0;Ub(b,m,e,f,g,h,A,l,A);Ub(b+(Z(h,g)|0)|0,m+(Z(A,l)|0)|0,e,f,g,h,A,l,A);h=l;g=A;e=0;f=0}A=8-j|0;v=l>>>1;z=(v|0)==0;w=k>>>1;y=(w|0)==0;x=16-k|0;u=(g<<1)-k|0;s=g+1|0;t=g+2|0;p=w<<1;r=0;do{l=m+((Z((Z(r,h)|0)+f|0,g)|0)+e)|0;if(!(z|y)){q=c+(r<<6)|0;o=v;while(1){k=q;b=l;n=w;while(1){D=d[b>>0]|0;E=d[b+s>>0]|0;F=b;b=b+2|0;C=d[F+1>>0]|0;a[k+8>>0]=(((Z(E,j)|0)+(Z(d[F+g>>0]|0,A)|0)<<3)+32|0)>>>6;a[k>>0]=(((Z(C,j)|0)+(Z(D,A)|0)<<3)+32|0)>>>6;D=d[b>>0]|0;a[k+9>>0]=(((Z(d[F+t>>0]|0,j)|0)+(Z(E,A)|0)<<3)+32|0)>>>6;a[k+1>>0]=(((Z(D,j)|0)+(Z(C,A)|0)<<3)+32|0)>>>6;n=n+-1|0;if(!n)break;else k=k+2|0}o=o+-1|0;if(!o)break;else{q=q+(p+x)|0;l=l+(p+u)|0}}}r=r+1|0}while((r|0)!=2);i=B;return}function Ub(a,b,c,d,e,f,g,h,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;k=g+c|0;o=h+d|0;s=(c|0)<0|(k|0)>(e|0)?2:1;m=(o|0)<0?0-h|0:d;d=(k|0)<0?0-g|0:c;m=(m|0)>(f|0)?f:m;d=(d|0)>(e|0)?e:d;k=d+g|0;l=m+h|0;if((d|0)>0)a=a+d|0;if((m|0)>0)a=a+(Z(m,e)|0)|0;r=(d|0)<0?0-d|0:0;q=(k|0)>(e|0)?k-e|0:0;p=g-r-q|0;g=0-m|0;m=(m|0)<0?g:0;c=l-f|0;n=(l|0)>(f|0)?c:0;k=h-m|0;d=k-n|0;if(m){m=h+-1-((o|0)>0?o:0)|0;l=~f;l=(m|0)>(l|0)?m:l;m=~l;m=Z(l+((m|0)>0?m:0)+1|0,j)|0;l=b;while(1){xa[s&3](a,l,r,p,q);g=g+-1|0;if(!g)break;else l=l+j|0}b=b+m|0}if((k|0)!=(n|0)){l=h+-1|0;g=l-((o|0)>0?o:0)|0;k=~f;k=(g|0)>(k|0)?g:k;l=l-k|0;g=~k;g=h+f+-1-((l|0)<(f|0)?f:l)-k-((g|0)>0?g:0)|0;k=Z(g,j)|0;g=Z(g,e)|0;l=b;m=a;while(1){xa[s&3](m,l,r,p,q);d=d+-1|0;if(!d)break;else{l=l+j|0;m=m+e|0}}b=b+k|0;a=a+g|0}a=a+(0-e)|0;if(!n){i=t;return}while(1){xa[s&3](a,b,r,p,q);c=c+-1|0;if(!c)break;else b=b+j|0}i=t;return}function Vb(b,c,e,f,g,h,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;C=i;i=i+144|0;m=C;if(((e|0)>=0?!((k+e|0)>>>0>g>>>0|(f|0)<0):0)?(f+1+l|0)>>>0<=h>>>0:0)m=b;else{A=l+1|0;Ub(b,m,e,f,g,h,k,A,k);Ub(b+(Z(h,g)|0)|0,m+(Z(A,k)|0)|0,e,f,g,h,k,A,k);h=A;g=k;e=0;f=0}B=8-j|0;w=l>>>1;A=(w|0)==0;x=k>>>1;z=(x|0)==0;y=16-k|0;v=g<<1;u=v-k|0;t=v|1;s=g+1|0;p=x<<1;r=0;do{l=m+((Z((Z(r,h)|0)+f|0,g)|0)+e)|0;if(!(A|z)){q=c+(r<<6)|0;o=w;while(1){k=q;b=l;n=x;while(1){D=d[b+g>>0]|0;E=d[b>>0]|0;a[k+8>>0]=(((Z(D,B)|0)+(Z(d[b+v>>0]|0,j)|0)<<3)+32|0)>>>6;a[k>>0]=(((Z(E,B)|0)+(Z(D,j)|0)<<3)+32|0)>>>6;D=d[b+s>>0]|0;E=d[b+1>>0]|0;a[k+9>>0]=(((Z(D,B)|0)+(Z(d[b+t>>0]|0,j)|0)<<3)+32|0)>>>6;a[k+1>>0]=(((Z(E,B)|0)+(Z(D,j)|0)<<3)+32|0)>>>6;n=n+-1|0;if(!n)break;else{k=k+2|0;b=b+2|0}}o=o+-1|0;if(!o)break;else{q=q+(p+y)|0;l=l+(p+u)|0}}}r=r+1|0}while((r|0)!=2);i=C;return}function Wb(b,c,e,f,g,h,j,k,l,m){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;I=i;i=i+176|0;n=I;if(((e|0)>=0?!((e+1+l|0)>>>0>g>>>0|(f|0)<0):0)?(f+1+m|0)>>>0<=h>>>0:0)n=b;else{B=l+1|0;A=m+1|0;Ub(b,n,e,f,g,h,B,A,B);Ub(b+(Z(h,g)|0)|0,n+(Z(A,B)|0)|0,e,f,g,h,B,A,B);h=A;g=B;e=0;f=0}G=8-j|0;H=8-k|0;B=m>>>1;E=(B|0)==0;A=g<<1;C=l>>>1;F=(C|0)==0;D=16-l|0;z=A-l|0;v=g+1|0;w=A|1;x=g+2|0;y=A+2|0;s=C<<1;u=0;do{l=n+((Z((Z(u,h)|0)+f|0,g)|0)+e)|0;if(!(E|F)){t=c+(u<<6)|0;r=B;while(1){p=d[l+g>>0]|0;m=t;b=l;o=(Z(p,k)|0)+(Z(d[l>>0]|0,H)|0)|0;p=(Z(d[l+A>>0]|0,k)|0)+(Z(p,H)|0)|0;q=C;while(1){K=d[b+v>>0]|0;J=(Z(K,k)|0)+(Z(d[b+1>>0]|0,H)|0)|0;K=(Z(d[b+w>>0]|0,k)|0)+(Z(K,H)|0)|0;M=((Z(o,G)|0)+32+(Z(J,j)|0)|0)>>>6;a[m+8>>0]=((Z(p,G)|0)+32+(Z(K,j)|0)|0)>>>6;a[m>>0]=M;M=b;b=b+2|0;L=d[M+x>>0]|0;o=(Z(L,k)|0)+(Z(d[b>>0]|0,H)|0)|0;p=(Z(d[M+y>>0]|0,k)|0)+(Z(L,H)|0)|0;J=((Z(J,G)|0)+32+(Z(o,j)|0)|0)>>>6;a[m+9>>0]=((Z(K,G)|0)+32+(Z(p,j)|0)|0)>>>6;a[m+1>>0]=J;q=q+-1|0;if(!q)break;else m=m+2|0}r=r+-1|0;if(!r)break;else{t=t+(s+D)|0;l=l+(s+z)|0}}}u=u+1|0}while((u|0)!=2);i=I;return}function Xb(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;r=i;i=i+448|0;l=r;if(((e|0)>=0?!((j+e|0)>>>0>g>>>0|(f|0)<0):0)?(f+5+k|0)>>>0<=h>>>0:0)l=b;else{Ub(b,l,e,f,g,h,j,k+5|0,j);g=j;e=0;f=0}h=e+g+(Z(f,g)|0)|0;b=k>>>2;if(!b){i=r;return}n=g<<2;q=0-g|0;o=q<<1;p=g<<1;if(!j){i=r;return}else{m=l+h|0;e=l+(h+(g*5|0))|0}while(1){l=j;h=c;k=m;f=e;while(1){u=d[f+o>>0]|0;v=d[f+q>>0]|0;w=d[f+g>>0]|0;y=d[f>>0]|0;x=w+u|0;s=d[k+p>>0]|0;a[h+48>>0]=a[((d[f+p>>0]|0)+16-x-(x<<2)+s+((y+v|0)*20|0)>>5)+3984>>0]|0;x=s+y|0;t=d[k+g>>0]|0;a[h+32>>0]=a[(w+16-x-(x<<2)+t+((v+u|0)*20|0)>>5)+3984>>0]|0;x=t+v|0;w=d[k>>0]|0;a[h+16>>0]=a[(y+16-x-(x<<2)+w+((s+u|0)*20|0)>>5)+3984>>0]|0;u=w+u|0;a[h>>0]=a[(v+16-u-(u<<2)+(d[k+q>>0]|0)+((t+s|0)*20|0)>>5)+3984>>0]|0;l=l+-1|0;if(!l)break;else{h=h+1|0;k=k+1|0;f=f+1|0}}b=b+-1|0;if(!b)break;else{c=c+64|0;m=m+n|0;e=e+n|0}}i=r;return}function Yb(b,c,e,f,g,h,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;v=i;i=i+448|0;m=v;if(((e|0)>=0?!((j+e|0)>>>0>g>>>0|(f|0)<0):0)?(f+5+k|0)>>>0<=h>>>0:0)m=b;else{Ub(b,m,e,f,g,h,j,k+5|0,j);g=j;e=0;f=0}h=e+g+(Z(f,g)|0)|0;b=k>>>2;if(!b){i=v;return}u=(j|0)==0;s=(g<<2)-j|0;t=64-j|0;r=0-g|0;p=r<<1;q=g<<1;e=m+h|0;f=m+(h+(Z(g,l+2|0)|0))|0;m=m+(h+(g*5|0))|0;while(1){if(u){h=c;k=f}else{k=f+j|0;h=c+j|0;l=j;o=e;n=m;while(1){y=d[n+p>>0]|0;z=d[n+r>>0]|0;A=d[n+g>>0]|0;C=d[n>>0]|0;B=A+y|0;w=d[o+q>>0]|0;a[c+48>>0]=((d[((d[n+q>>0]|0)+16-B-(B<<2)+w+((C+z|0)*20|0)>>5)+3984>>0]|0)+1+(d[f+q>>0]|0)|0)>>>1;B=w+C|0;x=d[o+g>>0]|0;a[c+32>>0]=((d[(A+16-B-(B<<2)+x+((z+y|0)*20|0)>>5)+3984>>0]|0)+1+(d[f+g>>0]|0)|0)>>>1;B=x+z|0;A=d[o>>0]|0;a[c+16>>0]=((d[(C+16-B-(B<<2)+A+((w+y|0)*20|0)>>5)+3984>>0]|0)+1+(d[f>>0]|0)|0)>>>1;y=A+y|0;a[c>>0]=((d[(z+16-y-(y<<2)+(d[o+r>>0]|0)+((x+w|0)*20|0)>>5)+3984>>0]|0)+1+(d[f+r>>0]|0)|0)>>>1;l=l+-1|0;if(!l)break;else{c=c+1|0;o=o+1|0;f=f+1|0;n=n+1|0}}e=e+j|0;m=m+j|0}b=b+-1|0;if(!b)break;else{c=h+t|0;e=e+s|0;f=k+s|0;m=m+s|0}}i=v;return}function Zb(b,c,e,f,g,h,j,k){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+448|0;l=u;if((e|0)>=0?!((e+5+j|0)>>>0>g>>>0|(f|0)<0|(k+f|0)>>>0>h>>>0):0)l=b;else{n=j+5|0;Ub(b,l,e,f,g,h,n,k,n);g=n;e=0;f=0}if(!k){i=u;return}r=j>>>2;t=(r|0)==0;s=g-j|0;q=16-j|0;p=r<<2;b=c;l=l+(e+5+(Z(f,g)|0))|0;o=k;while(1){if(t)h=b;else{h=b+p|0;e=l;g=d[l+-1>>0]|0;k=d[l+-2>>0]|0;m=d[l+-3>>0]|0;n=d[l+-4>>0]|0;j=d[l+-5>>0]|0;c=r;while(1){f=n+g|0;v=n;n=d[e>>0]|0;a[b>>0]=a[(j+16-f-(f<<2)+n+((m+k|0)*20|0)>>5)+3984>>0]|0;j=n+m|0;f=m;m=d[e+1>>0]|0;a[b+1>>0]=a[(v+16-j-(j<<2)+m+((k+g|0)*20|0)>>5)+3984>>0]|0;j=m+k|0;v=k;k=d[e+2>>0]|0;a[b+2>>0]=a[(f+16-j-(j<<2)+k+((n+g|0)*20|0)>>5)+3984>>0]|0;j=k+g|0;f=d[e+3>>0]|0;a[b+3>>0]=a[(v+16-j-(j<<2)+f+((m+n|0)*20|0)>>5)+3984>>0]|0;c=c+-1|0;if(!c)break;else{j=g;b=b+4|0;e=e+4|0;g=f}}l=l+p|0}o=o+-1|0;if(!o)break;else{b=h+q|0;l=l+s|0}}i=u;return}function _b(b,c,e,f,g,h,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=i;i=i+448|0;m=v;if((e|0)>=0?!((e+5+j|0)>>>0>g>>>0|(f|0)<0|(k+f|0)>>>0>h>>>0):0)m=b;else{o=j+5|0;Ub(b,m,e,f,g,h,o,k,o);g=o;e=0;f=0}if(!k){i=v;return}s=j>>>2;u=(s|0)==0;t=g-j|0;r=16-j|0;q=(l|0)!=0;p=s<<2;b=c;m=m+(e+5+(Z(f,g)|0))|0;while(1){if(u)h=b;else{h=b+p|0;l=m;e=d[m+-1>>0]|0;g=d[m+-2>>0]|0;n=d[m+-3>>0]|0;o=d[m+-4>>0]|0;j=d[m+-5>>0]|0;c=s;while(1){f=o+e|0;w=o;o=d[l>>0]|0;a[b>>0]=((q?g:n)+1+(d[(j+16-f-(f<<2)+o+((n+g|0)*20|0)>>5)+3984>>0]|0)|0)>>>1;j=o+n|0;f=n;n=d[l+1>>0]|0;a[b+1>>0]=((q?e:g)+1+(d[(w+16-j-(j<<2)+n+((g+e|0)*20|0)>>5)+3984>>0]|0)|0)>>>1;j=n+g|0;w=g;g=d[l+2>>0]|0;a[b+2>>0]=((q?o:e)+1+(d[(f+16-j-(j<<2)+g+((o+e|0)*20|0)>>5)+3984>>0]|0)|0)>>>1;j=g+e|0;f=d[l+3>>0]|0;a[b+3>>0]=((q?n:o)+1+(d[(w+16-j-(j<<2)+f+((n+o|0)*20|0)>>5)+3984>>0]|0)|0)>>>1;c=c+-1|0;if(!c)break;else{j=e;b=b+4|0;l=l+4|0;e=f}}m=m+p|0}k=k+-1|0;if(!k)break;else{b=h+r|0;m=m+t|0}}i=v;return}function $b(b,c,e,f,g,h,j,k,l){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;z=i;i=i+448|0;m=z;if(((e|0)>=0?!((e+5+j|0)>>>0>g>>>0|(f|0)<0):0)?(f+5+k|0)>>>0<=h>>>0:0)m=b;else{y=j+5|0;Ub(b,m,e,f,g,h,y,k+5|0,y);g=y;e=0;f=0}b=(Z(f,g)|0)+e|0;y=(l&1|2)+g+b|0;n=m+y|0;if(!k){i=z;return}u=j>>>2;w=(u|0)==0;v=g-j|0;x=16-j|0;t=u<<2;b=m+((Z(g,l>>>1&1|2)|0)+5+b)|0;s=k;while(1){if(!w){r=c+t|0;h=b;e=d[b+-1>>0]|0;f=d[b+-2>>0]|0;o=d[b+-3>>0]|0;p=d[b+-4>>0]|0;l=d[b+-5>>0]|0;q=u;while(1){A=p+e|0;B=p;p=d[h>>0]|0;a[c>>0]=a[(l+16-A-(A<<2)+p+((o+f|0)*20|0)>>5)+3984>>0]|0;A=p+o|0;l=o;o=d[h+1>>0]|0;a[c+1>>0]=a[(B+16-A-(A<<2)+o+((f+e|0)*20|0)>>5)+3984>>0]|0;A=o+f|0;B=f;f=d[h+2>>0]|0;a[c+2>>0]=a[(l+16-A-(A<<2)+f+((p+e|0)*20|0)>>5)+3984>>0]|0;A=f+e|0;l=d[h+3>>0]|0;a[c+3>>0]=a[(B+16-A-(A<<2)+l+((o+p|0)*20|0)>>5)+3984>>0]|0;q=q+-1|0;if(!q)break;else{A=e;c=c+4|0;h=h+4|0;e=l;l=A}}c=r;b=b+t|0}s=s+-1|0;if(!s)break;else{c=c+x|0;b=b+v|0}}b=k>>>2;if(!b){i=z;return}t=(j|0)==0;p=(g<<2)-j|0;o=64-j|0;q=0-g|0;s=q<<1;r=g<<1;c=c+(x-(k<<4))|0;h=m+(y+(g*5|0))|0;l=b;while(1){if(t){b=c;m=n}else{b=c+j|0;m=c;e=n;f=h;c=j;while(1){x=d[f+s>>0]|0;w=d[f+q>>0]|0;u=d[f+g>>0]|0;B=d[f>>0]|0;y=u+x|0;k=d[e+r>>0]|0;A=m+48|0;a[A>>0]=((d[((d[f+r>>0]|0)+16-y-(y<<2)+k+((B+w|0)*20|0)>>5)+3984>>0]|0)+1+(d[A>>0]|0)|0)>>>1;A=k+B|0;y=d[e+g>>0]|0;v=m+32|0;a[v>>0]=((d[(u+16-A-(A<<2)+y+((w+x|0)*20|0)>>5)+3984>>0]|0)+1+(d[v>>0]|0)|0)>>>1;v=d[e>>0]|0;A=y+w|0;u=m+16|0;a[u>>0]=((d[(B+16-A-(A<<2)+v+((k+x|0)*20|0)>>5)+3984>>0]|0)+1+(d[u>>0]|0)|0)>>>1;x=v+x|0;a[m>>0]=((d[(w+16-x-(x<<2)+(d[e+q>>0]|0)+((y+k|0)*20|0)>>5)+3984>>0]|0)+1+(d[m>>0]|0)|0)>>>1;c=c+-1|0;if(!c)break;else{m=m+1|0;e=e+1|0;f=f+1|0}}m=n+j|0;h=h+j|0}l=l+-1|0;if(!l)break;else{c=b+o|0;n=m+p|0;h=h+p|0}}i=z;return}function ac(b,e,f,g,h,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=i;i=i+1792|0;m=x+1344|0;w=x;if(((f|0)>=0?!((f+5+k|0)>>>0>h>>>0|(g|0)<0):0)?(g+5+l|0)>>>0<=j>>>0:0){o=l+5|0;m=b;n=f+5|0}else{n=k+5|0;o=l+5|0;Ub(b,m,f,g,h,j,n,o,n);h=n;n=5;g=0}if(o){t=k>>>2;v=(t|0)==0;s=h-k|0;u=t<<2;f=w;m=m+(n+(Z(g,h)|0))|0;while(1){if(v)b=f;else{b=f+(u<<2)|0;g=m;h=d[m+-1>>0]|0;j=d[m+-2>>0]|0;p=d[m+-3>>0]|0;q=d[m+-4>>0]|0;n=d[m+-5>>0]|0;r=t;while(1){y=q+h|0;z=q;q=d[g>>0]|0;c[f>>2]=n-y-(y<<2)+q+((p+j|0)*20|0);y=q+p|0;n=p;p=d[g+1>>0]|0;c[f+4>>2]=z-y+p-(y<<2)+((j+h|0)*20|0);y=p+j|0;z=j;j=d[g+2>>0]|0;c[f+8>>2]=n-y+j-(y<<2)+((q+h|0)*20|0);y=j+h|0;n=d[g+3>>0]|0;c[f+12>>2]=z-y+n-(y<<2)+((p+q|0)*20|0);r=r+-1|0;if(!r)break;else{y=h;f=f+16|0;g=g+4|0;h=n;n=y}}m=m+u|0}o=o+-1|0;if(!o)break;else{f=b;m=m+s|0}}}h=l>>>2;if(!h){i=x;return}u=(k|0)==0;s=64-k|0;p=k*3|0;t=0-k|0;q=t<<1;r=k<<1;g=e;b=w+(k<<2)|0;m=w+(k*6<<2)|0;o=h;while(1){if(u)h=g;else{h=g+k|0;f=b;j=m;n=k;while(1){e=c[j+(q<<2)>>2]|0;w=c[j+(t<<2)>>2]|0;z=c[j+(k<<2)>>2]|0;A=c[j>>2]|0;y=z+e|0;v=c[f+(r<<2)>>2]|0;a[g+48>>0]=a[((c[j+(r<<2)>>2]|0)+512-y-(y<<2)+v+((A+w|0)*20|0)>>10)+3984>>0]|0;y=v+A|0;l=c[f+(k<<2)>>2]|0;a[g+32>>0]=a[(z+512-y-(y<<2)+l+((w+e|0)*20|0)>>10)+3984>>0]|0;y=c[f>>2]|0;z=l+w|0;a[g+16>>0]=a[(A+512-z-(z<<2)+y+((v+e|0)*20|0)>>10)+3984>>0]|0;e=y+e|0;a[g>>0]=a[(w+512-e-(e<<2)+(c[f+(t<<2)>>2]|0)+((l+v|0)*20|0)>>10)+3984>>0]|0;n=n+-1|0;if(!n)break;else{g=g+1|0;f=f+4|0;j=j+4|0}}b=b+(k<<2)|0;m=m+(k<<2)|0}o=o+-1|0;if(!o)break;else{g=h+s|0;b=b+(p<<2)|0;m=m+(p<<2)|0}}i=x;return}function bc(b,e,f,g,h,j,k,l,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;y=i;i=i+1792|0;n=y+1344|0;x=y;if(((f|0)>=0?!((f+5+k|0)>>>0>h>>>0|(g|0)<0):0)?(g+5+l|0)>>>0<=j>>>0:0){o=l+5|0;n=b;f=f+5|0}else{q=k+5|0;o=l+5|0;Ub(b,n,f,g,h,j,q,o,q);h=q;f=5;g=0}if(o){v=k>>>2;t=(v|0)==0;u=h-k|0;w=v<<2;p=x;n=n+(f+(Z(g,h)|0))|0;s=o;while(1){if(t)b=p;else{b=p+(w<<2)|0;g=n;f=d[n+-1>>0]|0;h=d[n+-2>>0]|0;j=d[n+-3>>0]|0;q=d[n+-4>>0]|0;o=d[n+-5>>0]|0;r=v;while(1){z=q+f|0;A=q;q=d[g>>0]|0;c[p>>2]=o-z-(z<<2)+q+((j+h|0)*20|0);z=q+j|0;o=j;j=d[g+1>>0]|0;c[p+4>>2]=A-z+j-(z<<2)+((h+f|0)*20|0);z=j+h|0;A=h;h=d[g+2>>0]|0;c[p+8>>2]=o-z+h-(z<<2)+((q+f|0)*20|0);z=h+f|0;o=d[g+3>>0]|0;c[p+12>>2]=A-z+o-(z<<2)+((j+q|0)*20|0);r=r+-1|0;if(!r)break;else{z=f;p=p+16|0;g=g+4|0;f=o;o=z}}n=n+w|0}s=s+-1|0;if(!s)break;else{p=b;n=n+u|0}}}f=l>>>2;if(!f){i=y;return}w=(k|0)==0;u=64-k|0;q=k*3|0;v=0-k|0;t=v<<1;s=k<<1;b=x+(k<<2)|0;n=x+((Z(m+2|0,k)|0)+k<<2)|0;h=x+(k*6<<2)|0;r=f;while(1){if(w){g=e;f=n}else{f=n+(k<<2)|0;g=e+k|0;p=b;j=h;o=k;while(1){m=c[j+(t<<2)>>2]|0;l=c[j+(v<<2)>>2]|0;B=c[j+(k<<2)>>2]|0;C=c[j>>2]|0;A=B+m|0;z=c[p+(s<<2)>>2]|0;a[e+48>>0]=((d[((c[j+(s<<2)>>2]|0)+512-A-(A<<2)+z+((C+l|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[n+(s<<2)>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;A=z+C|0;x=c[p+(k<<2)>>2]|0;a[e+32>>0]=((d[(B+512-A-(A<<2)+x+((l+m|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[n+(k<<2)>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;A=c[p>>2]|0;B=x+l|0;a[e+16>>0]=((d[(C+512-B-(B<<2)+A+((z+m|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[n>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;m=A+m|0;a[e>>0]=((d[(l+512-m-(m<<2)+(c[p+(v<<2)>>2]|0)+((x+z|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[n+(v<<2)>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;o=o+-1|0;if(!o)break;else{e=e+1|0;p=p+4|0;n=n+4|0;j=j+4|0}}b=b+(k<<2)|0;h=h+(k<<2)|0}r=r+-1|0;if(!r)break;else{e=g+u|0;b=b+(q<<2)|0;n=f+(q<<2)|0;h=h+(q<<2)|0}}i=y;return}function cc(b,e,f,g,h,j,k,l,m){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;B=i;i=i+1792|0;n=B+1344|0;A=B;z=k+5|0;if(((f|0)>=0?!((f+5+k|0)>>>0>h>>>0|(g|0)<0):0)?(g+5+l|0)>>>0<=j>>>0:0)n=b;else{Ub(b,n,f,g,h,j,z,l+5|0,z);h=z;f=0;g=0}s=f+h+(Z(g,h)|0)|0;g=l>>>2;if(g){y=(z|0)==0;x=(h<<2)-k+-5|0;t=z*3|0;p=0-h|0;w=p<<1;v=h<<1;u=z<<1;q=-5-k|0;j=A+(z<<2)|0;r=n+s|0;f=n+(s+(h*5|0))|0;while(1){if(y)s=j;else{s=j+(z<<2)|0;n=r;b=f;o=z;while(1){E=d[b+w>>0]|0;F=d[b+p>>0]|0;H=d[b+h>>0]|0;I=d[b>>0]|0;G=H+E|0;C=d[n+v>>0]|0;c[j+(u<<2)>>2]=(d[b+v>>0]|0)-G-(G<<2)+C+((I+F|0)*20|0);G=C+I|0;D=d[n+h>>0]|0;c[j+(z<<2)>>2]=H-G+D-(G<<2)+((F+E|0)*20|0);G=d[n>>0]|0;H=D+F|0;c[j>>2]=I-H+G-(H<<2)+((C+E|0)*20|0);E=G+E|0;c[j+(q<<2)>>2]=F-E+(d[n+p>>0]|0)-(E<<2)+((D+C|0)*20|0);o=o+-1|0;if(!o)break;else{j=j+4|0;n=n+1|0;b=b+1|0}}r=r+z|0;f=f+z|0}g=g+-1|0;if(!g)break;else{j=s+(t<<2)|0;r=r+x|0;f=f+x|0}}}if(!l){i=B;return}v=k>>>2;w=(v|0)==0;u=16-k|0;t=v<<2;h=A+(m+2<<2)|0;g=A+20|0;while(1){if(w)f=h;else{f=h+(t<<2)|0;s=e;n=g;j=c[g+-4>>2]|0;o=c[g+-8>>2]|0;p=c[g+-12>>2]|0;q=c[g+-16>>2]|0;b=c[g+-20>>2]|0;r=v;while(1){m=q+j|0;k=q;q=c[n>>2]|0;a[s>>0]=((d[(b+512-m-(m<<2)+q+((p+o|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[h>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;m=q+p|0;b=p;p=c[n+4>>2]|0;a[s+1>>0]=((d[(k+512-m-(m<<2)+p+((o+j|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[h+4>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;m=p+o|0;k=o;o=c[n+8>>2]|0;a[s+2>>0]=((d[(b+512-m-(m<<2)+o+((q+j|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[h+8>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;m=o+j|0;b=c[n+12>>2]|0;a[s+3>>0]=((d[(k+512-m-(m<<2)+b+((p+q|0)*20|0)>>10)+3984>>0]|0)+1+(d[((c[h+12>>2]|0)+16>>5)+3984>>0]|0)|0)>>>1;r=r+-1|0;if(!r)break;else{m=j;s=s+4|0;h=h+16|0;n=n+16|0;j=b;b=m}}e=e+t|0;g=g+(t<<2)|0}l=l+-1|0;if(!l)break;else{e=e+u|0;h=f+20|0;g=g+20|0}}i=B;return}function dc(a,d,e,f,g,h,j,k,l){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;q=a+((j<<4)+h)|0;u=b[d>>1]|0;w=d+2|0;t=b[w>>1]|0;s=e+4|0;p=c[s>>2]<<4;r=e+8|0;o=c[r>>2]<<4;f=h+f|0;m=f+(u>>2)|0;g=j+g|0;n=g+(t>>2)|0;do switch(c[6800+((u&3)<<4)+((t&3)<<2)>>2]|0){case 10:{ac(c[e>>2]|0,q,m+-2|0,n+-2|0,p,o,k,l);break}case 6:{cc(c[e>>2]|0,q,m+-2|0,n+-2|0,p,o,k,l,0);break}case 4:{_b(c[e>>2]|0,q,m+-2|0,n,p,o,k,l,0);break}case 1:{Yb(c[e>>2]|0,q,m,n+-2|0,p,o,k,l,0);break}case 2:{Xb(c[e>>2]|0,q,m,n+-2|0,p,o,k,l);break}case 12:{_b(c[e>>2]|0,q,m+-2|0,n,p,o,k,l,1);break}case 14:{cc(c[e>>2]|0,q,m+-2|0,n+-2|0,p,o,k,l,1);break}case 7:{$b(c[e>>2]|0,q,m+-2|0,n+-2|0,p,o,k,l,2);break}case 13:{$b(c[e>>2]|0,q,m+-2|0,n+-2|0,p,o,k,l,1);break}case 5:{$b(c[e>>2]|0,q,m+-2|0,n+-2|0,p,o,k,l,0);break}case 0:{Ub(c[e>>2]|0,q,m,n,p,o,k,l,16);break}case 9:{bc(c[e>>2]|0,q,m+-2|0,n+-2|0,p,o,k,l,0);break}case 8:{Zb(c[e>>2]|0,q,m+-2|0,n,p,o,k,l);break}case 3:{Yb(c[e>>2]|0,q,m,n+-2|0,p,o,k,l,1);break}case 11:{bc(c[e>>2]|0,q,m+-2|0,n+-2|0,p,o,k,l,1);break}default:$b(c[e>>2]|0,q,m+-2|0,n+-2|0,p,o,k,l,3)}while(0);u=(h>>>1)+256+(j>>>1<<3)|0;v=a+u|0;t=c[e>>2]|0;m=c[s>>2]|0;j=c[r>>2]|0;r=m<<3;s=j<<3;p=b[d>>1]|0;e=(p>>3)+(f>>>1)|0;q=b[w>>1]|0;o=(q>>3)+(g>>>1)|0;p=p&7;q=q&7;g=k>>>1;h=l>>>1;j=Z(m<<8,j)|0;f=t+j|0;m=(p|0)!=0;n=(q|0)!=0;if(m&n){Wb(f,v,e,o,r,s,p,q,g,h);i=x;return}if(m){Tb(f,v,e,o,r,s,p,g,h);i=x;return}if(n){Vb(f,v,e,o,r,s,q,g,h);i=x;return}else{Ub(f,v,e,o,r,s,g,h,8);Ub(t+((Z(s,r)|0)+j)|0,a+(u+64)|0,e,o,r,s,g,h,8);i=x;return}}function ec(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0;j=i;if(d){nd(c|0,a[b>>0]|0,d|0)|0;c=c+d|0}if(e){h=c+e|0;g=e;d=b;while(1){a[c>>0]=a[d>>0]|0;g=g+-1|0;if(!g)break;else{c=c+1|0;d=d+1|0}}c=h;b=b+e|0}if(!f){i=j;return}nd(c|0,a[b+-1>>0]|0,f|0)|0;i=j;return}function fc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;c=i;hd(b,a,d);i=c;return}function gc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;f=c[a+40>>2]|0;if(f){h=c[a>>2]|0;k=a+32|0;j=0;do{if(((c[h+(j*40|0)+20>>2]|0)+-1|0)>>>0<2){g=c[h+(j*40|0)+12>>2]|0;if(g>>>0>d>>>0)g=g-(c[k>>2]|0)|0;c[h+(j*40|0)+8>>2]=g}j=j+1|0}while((j|0)!=(f|0))}if(!(c[b>>2]|0)){p=0;i=q;return p|0}g=c[b+4>>2]|0;if(g>>>0>=3){p=0;i=q;return p|0}o=a+32|0;p=a+24|0;n=a+4|0;f=d;m=0;a:while(1){b:do if(g>>>0<2){k=c[b+(m*12|0)+8>>2]|0;if(!g){g=f-k|0;if((g|0)<0)g=(c[o>>2]|0)+g|0}else{l=k+f|0;g=c[o>>2]|0;g=l-((l|0)<(g|0)?0:g)|0}if(g>>>0>d>>>0)f=g-(c[o>>2]|0)|0;else f=g;j=c[p>>2]|0;if(!j){f=1;g=37;break a}k=c[a>>2]|0;l=0;while(1){h=c[k+(l*40|0)+20>>2]|0;if((h+-1|0)>>>0<2?(c[k+(l*40|0)+8>>2]|0)==(f|0):0){f=g;break b}l=l+1|0;if(l>>>0>=j>>>0){f=1;g=37;break a}}}else{j=c[b+(m*12|0)+12>>2]|0;h=c[p>>2]|0;if(!h){f=1;g=37;break a}k=c[a>>2]|0;g=0;while(1){if((c[k+(g*40|0)+20>>2]|0)==3?(c[k+(g*40|0)+8>>2]|0)==(j|0):0){h=3;l=g;break b}g=g+1|0;if(g>>>0>=h>>>0){f=1;g=37;break a}}}while(0);if(!((l|0)>-1&h>>>0>1)){f=1;g=37;break}if(m>>>0>>0){k=e;do{j=k;k=k+-1|0;h=c[n>>2]|0;c[h+(j<<2)>>2]=c[h+(k<<2)>>2]}while(k>>>0>m>>>0);k=c[a>>2]|0}c[(c[n>>2]|0)+(m<<2)>>2]=k+(l*40|0);m=m+1|0;if(m>>>0<=e>>>0){g=m;k=m;do{j=c[n>>2]|0;h=c[j+(g<<2)>>2]|0;if((h|0)!=((c[a>>2]|0)+(l*40|0)|0)){c[j+(k<<2)>>2]=h;k=k+1|0}g=g+1|0}while(g>>>0<=e>>>0)}g=c[b+(m*12|0)+4>>2]|0;if(g>>>0>=3){f=0;g=37;break}}if((g|0)==37){i=q;return f|0}return 0}function hc(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=i;I=c[d>>2]|0;J=c[a+8>>2]|0;if((I|0)!=(c[J>>2]|0)){D=1;i=K;return D|0}B=a+52|0;c[B>>2]=0;G=c[a+56>>2]|0;o=(G|0)==0;H=o&1;do if(!b){c[J+20>>2]=0;c[J+12>>2]=e;c[J+8>>2]=e;c[J+16>>2]=f;c[J+24>>2]=H;if(o){d=a+44|0;c[d>>2]=(c[d>>2]|0)+1;d=0;r=0}else{d=G;r=0}}else{if(g){k=a+20|0;c[k>>2]=0;l=a+16|0;c[l>>2]=0;r=c[a>>2]|0;s=a+44|0;q=0;do{p=r+(q*40|0)+20|0;if((c[p>>2]|0)!=0?(c[p>>2]=0,(c[r+(q*40|0)+24>>2]|0)==0):0)c[s>>2]=(c[s>>2]|0)+-1;q=q+1|0}while((q|0)!=16);a:do if(o){n=c[a+28>>2]|0;m=a+12|0;q=0;while(1){e=0;p=2147483647;o=0;do{if(c[r+(e*40|0)+24>>2]|0){C=c[r+(e*40|0)+16>>2]|0;D=(C|0)<(p|0);p=D?C:p;o=D?r+(e*40|0)|0:o}e=e+1|0}while(e>>>0<=n>>>0);if(!o){d=0;break a}D=c[m>>2]|0;c[D+(q<<4)>>2]=c[o>>2];c[D+(q<<4)+12>>2]=c[o+36>>2];c[D+(q<<4)+4>>2]=c[o+28>>2];c[D+(q<<4)+8>>2]=c[o+32>>2];q=q+1|0;c[l>>2]=q;c[o+24>>2]=0;if(c[o+20>>2]|0)continue;c[s>>2]=(c[s>>2]|0)+-1}}else d=G;while(0);p=a+40|0;c[p>>2]=0;o=a+36|0;c[o>>2]=65535;c[a+48>>2]=0;if(!(c[b>>2]|d))d=0;else{c[l>>2]=0;c[k>>2]=0}r=(c[b+4>>2]|0)==0;c[J+20>>2]=r?2:3;c[o>>2]=r?65535:0;c[J+12>>2]=0;c[J+8>>2]=0;c[J+16>>2]=0;c[J+24>>2]=H;c[s>>2]=1;c[p>>2]=1;r=0;break}if(!(c[b+8>>2]|0)){d=a+40|0;q=c[d>>2]|0;p=c[a+24>>2]|0;if(q>>>0>=p>>>0)if(q){l=c[a>>2]|0;m=0;o=-1;n=0;do{if(((c[l+(m*40|0)+20>>2]|0)+-1|0)>>>0<2){D=c[l+(m*40|0)+8>>2]|0;C=(D|0)<(n|0)|(o|0)==-1;o=C?m:o;n=C?D:n}m=m+1|0}while((m|0)!=(q|0));if((o|0)>-1){q=q+-1|0;c[l+(o*40|0)+20>>2]=0;c[d>>2]=q;if(!(c[l+(o*40|0)+24>>2]|0)){d=a+44|0;c[d>>2]=(c[d>>2]|0)+-1;d=G;n=0}else{d=G;n=0}}else{d=G;n=1}}else{q=0;d=G;n=1}else{d=G;n=0}}else{E=a+24|0;C=a+40|0;v=a+44|0;x=a+36|0;A=a+48|0;u=a+28|0;y=a+16|0;z=a+12|0;r=G;d=G;t=0;w=0;b:while(1){switch(c[b+(t*20|0)+12>>2]|0){case 4:{l=c[b+(t*20|0)+28>>2]|0;c[x>>2]=l;m=c[E>>2]|0;if(!m)s=w;else{n=c[a>>2]|0;s=l;o=0;do{k=n+(o*40|0)+20|0;do if((c[k>>2]|0)==3){if((c[n+(o*40|0)+8>>2]|0)>>>0<=l>>>0)if((s|0)==65535)s=65535;else break;c[k>>2]=0;c[C>>2]=(c[C>>2]|0)+-1;if(!(c[n+(o*40|0)+24>>2]|0))c[v>>2]=(c[v>>2]|0)+-1}while(0);o=o+1|0}while((o|0)!=(m|0));s=w}break}case 1:{n=e-(c[b+(t*20|0)+16>>2]|0)|0;l=c[E>>2]|0;if(!l){n=1;break b}m=c[a>>2]|0;s=0;while(1){k=m+(s*40|0)+20|0;if(((c[k>>2]|0)+-1|0)>>>0<2?(c[m+(s*40|0)+8>>2]|0)==(n|0):0)break;s=s+1|0;if(s>>>0>=l>>>0){n=1;break b}}if((s|0)<0){n=1;break b}c[k>>2]=0;c[C>>2]=(c[C>>2]|0)+-1;if(!(c[m+(s*40|0)+24>>2]|0)){c[v>>2]=(c[v>>2]|0)+-1;s=w}else s=w;break}case 6:{m=c[b+(t*20|0)+24>>2]|0;s=c[x>>2]|0;if((s|0)==65535|s>>>0>>0){n=1;F=101;break b}r=c[E>>2]|0;c:do if(r){l=c[a>>2]|0;s=0;while(1){k=l+(s*40|0)+20|0;if((c[k>>2]|0)==3?(c[l+(s*40|0)+8>>2]|0)==(m|0):0)break;s=s+1|0;if(s>>>0>=r>>>0){F=88;break c}}c[k>>2]=0;k=(c[C>>2]|0)+-1|0;c[C>>2]=k;if(!(c[l+(s*40|0)+24>>2]|0)){c[v>>2]=(c[v>>2]|0)+-1;s=k}else s=k}else{r=0;F=88}while(0);if((F|0)==88){F=0;s=c[C>>2]|0}if(s>>>0>=r>>>0){n=1;F=101;break b}c[J+12>>2]=e;c[J+8>>2]=m;c[J+16>>2]=f;c[J+20>>2]=3;c[J+24>>2]=H;c[C>>2]=s+1;c[v>>2]=(c[v>>2]|0)+1;r=G;d=G;s=1;break}case 2:{l=c[b+(t*20|0)+20>>2]|0;m=c[E>>2]|0;if(!m){n=1;break b}n=c[a>>2]|0;s=0;while(1){k=n+(s*40|0)+20|0;if((c[k>>2]|0)==3?(c[n+(s*40|0)+8>>2]|0)==(l|0):0)break;s=s+1|0;if(s>>>0>=m>>>0){n=1;break b}}if((s|0)<0){n=1;break b}c[k>>2]=0;c[C>>2]=(c[C>>2]|0)+-1;if(!(c[n+(s*40|0)+24>>2]|0)){c[v>>2]=(c[v>>2]|0)+-1;s=w}else s=w;break}case 3:{s=c[b+(t*20|0)+16>>2]|0;n=c[b+(t*20|0)+24>>2]|0;k=c[x>>2]|0;if((k|0)==65535|k>>>0>>0){n=1;break b}o=c[E>>2]|0;if(!o){n=1;break b}p=c[a>>2]|0;k=0;while(1){m=p+(k*40|0)+20|0;if((c[m>>2]|0)==3?(c[p+(k*40|0)+8>>2]|0)==(n|0):0){F=47;break}l=k+1|0;if(l>>>0>>0)k=l;else break}if((F|0)==47?(F=0,c[m>>2]=0,c[C>>2]=(c[C>>2]|0)+-1,(c[p+(k*40|0)+24>>2]|0)==0):0)c[v>>2]=(c[v>>2]|0)+-1;m=e-s|0;s=0;while(1){l=p+(s*40|0)+20|0;k=c[l>>2]|0;if((k+-1|0)>>>0<2?(D=p+(s*40|0)+8|0,(c[D>>2]|0)==(m|0)):0)break;s=s+1|0;if(s>>>0>=o>>>0){n=1;break b}}if(!((s|0)>-1&k>>>0>1)){n=1;break b}c[l>>2]=3;c[D>>2]=n;s=w;break}case 5:{n=c[a>>2]|0;q=0;do{p=n+(q*40|0)+20|0;if((c[p>>2]|0)!=0?(c[p>>2]=0,(c[n+(q*40|0)+24>>2]|0)==0):0)c[v>>2]=(c[v>>2]|0)+-1;q=q+1|0}while((q|0)!=16);d:do if(!d){l=c[u>>2]|0;m=r;while(1){d=0;s=2147483647;k=0;do{if(c[n+(d*40|0)+24>>2]|0){o=c[n+(d*40|0)+16>>2]|0;e=(o|0)<(s|0);s=e?o:s;k=e?n+(d*40|0)|0:k}d=d+1|0}while(d>>>0<=l>>>0);if(!k){r=m;d=0;break d}s=c[y>>2]|0;d=c[z>>2]|0;c[d+(s<<4)>>2]=c[k>>2];c[d+(s<<4)+12>>2]=c[k+36>>2];c[d+(s<<4)+4>>2]=c[k+28>>2];c[d+(s<<4)+8>>2]=c[k+32>>2];c[y>>2]=s+1;c[k+24>>2]=0;if(!(c[k+20>>2]|0))c[v>>2]=(c[v>>2]|0)+-1;if(!m)m=0;else{r=m;d=m;break}}}while(0);c[C>>2]=0;c[x>>2]=65535;c[A>>2]=0;c[B>>2]=1;e=0;s=w;break}case 0:{n=0;F=101;break b}default:{n=1;break b}}t=t+1|0;w=s}if(w){r=n;break}q=c[C>>2]|0;p=c[E>>2]|0}if(q>>>0

>>0){c[J+12>>2]=e;c[J+8>>2]=e;c[J+16>>2]=f;c[J+20>>2]=2;c[J+24>>2]=H;r=a+44|0;c[r>>2]=(c[r>>2]|0)+1;c[a+40>>2]=q+1;r=n}else r=1}while(0);c[J+36>>2]=g;c[J+28>>2]=h;c[J+32>>2]=j;if(!d){o=a+44|0;d=c[o>>2]|0;k=c[a+28>>2]|0;if(d>>>0>k>>>0){p=a+16|0;q=a+12|0;do{n=c[a>>2]|0;e=0;l=2147483647;m=0;do{if(c[n+(e*40|0)+24>>2]|0){C=c[n+(e*40|0)+16>>2]|0;D=(C|0)<(l|0);l=D?C:l;m=D?n+(e*40|0)|0:m}e=e+1|0}while(e>>>0<=k>>>0);if((m|0)!=0?(D=c[p>>2]|0,C=c[q>>2]|0,c[C+(D<<4)>>2]=c[m>>2],c[C+(D<<4)+12>>2]=c[m+36>>2],c[C+(D<<4)+4>>2]=c[m+28>>2],c[C+(D<<4)+8>>2]=c[m+32>>2],c[p>>2]=D+1,c[m+24>>2]=0,(c[m+20>>2]|0)==0):0){d=d+-1|0;c[o>>2]=d}}while(d>>>0>k>>>0)}}else{k=a+16|0;D=c[k>>2]|0;C=c[a+12>>2]|0;c[C+(D<<4)>>2]=I;c[C+(D<<4)+12>>2]=g;c[C+(D<<4)+4>>2]=h;c[C+(D<<4)+8>>2]=j;c[k>>2]=D+1;k=c[a+28>>2]|0}rc(c[a>>2]|0,k+1|0);D=r;i=K;return D|0}function ic(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;if((b>>>0<=16?(d=c[(c[a+4>>2]|0)+(b<<2)>>2]|0,(d|0)!=0):0)?(c[d+20>>2]|0)>>>0>1:0)d=c[d>>2]|0;else d=0;i=e;return d|0}function jc(a){a=a|0;var b=0;b=(c[a>>2]|0)+((c[a+28>>2]|0)*40|0)|0;c[a+8>>2]=b;return c[b>>2]|0}function kc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0;j=i;c[a+36>>2]=65535;e=e>>>0>1?e:1;c[a+24>>2]=e;h=a+28|0;c[h>>2]=(g|0)==0?d:e;c[a+32>>2]=f;c[a+56>>2]=g;c[a+44>>2]=0;c[a+40>>2]=0;c[a+48>>2]=0;g=fd(680)|0;c[a>>2]=g;if(!g){g=65535;i=j;return g|0}id(g,0,680);a:do if((c[h>>2]|0)!=-1){f=b*384|47;e=0;while(1){d=fd(f)|0;g=c[a>>2]|0;c[g+(e*40|0)+4>>2]=d;if(!d){g=65535;break}c[g+(e*40|0)>>2]=d+(0-d&15);e=e+1|0;if(e>>>0>=((c[h>>2]|0)+1|0)>>>0)break a}i=j;return g|0}while(0);g=a+4|0;c[g>>2]=fd(68)|0;f=fd((c[h>>2]<<4)+16|0)|0;c[a+12>>2]=f;g=c[g>>2]|0;if((g|0)==0|(f|0)==0){g=65535;i=j;return g|0}id(g,0,68);c[a+20>>2]=0;c[a+16>>2]=0;g=0;i=j;return g|0}function lc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;h=c[a>>2]|0;if(h){k=a+28|0;if((c[k>>2]|0)!=-1){j=0;do{gd(c[h+(j*40|0)+4>>2]|0);h=c[a>>2]|0;c[h+(j*40|0)+4>>2]=0;j=j+1|0}while(j>>>0<((c[k>>2]|0)+1|0)>>>0)}}else h=0;gd(h);c[a>>2]=0;h=a+4|0;gd(c[h>>2]|0);c[h>>2]=0;h=a+12|0;gd(c[h>>2]|0);c[h>>2]=0;h=kc(a,b,d,e,f,g)|0;i=l;return h|0}function mc(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;b=c[a>>2]|0;if(b){e=a+28|0;if((c[e>>2]|0)!=-1){d=0;do{gd(c[b+(d*40|0)+4>>2]|0);b=c[a>>2]|0;c[b+(d*40|0)+4>>2]=0;d=d+1|0}while(d>>>0<((c[e>>2]|0)+1|0)>>>0)}}else b=0;gd(b);c[a>>2]=0;b=a+4|0;gd(c[b>>2]|0);c[b>>2]=0;b=a+12|0;gd(c[b>>2]|0);c[b>>2]=0;i=f;return}function nc(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;b=c[a+40>>2]|0;if(!b){i=f;return}e=a+4|0;d=0;do{c[(c[e>>2]|0)+(d<<2)>>2]=(c[a>>2]|0)+(d*40|0);d=d+1|0}while(d>>>0>>0);i=f;return}function oc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=i;v=a+16|0;c[v>>2]=0;c[a+20>>2]=0;if(!e){b=0;i=y;return b|0}x=a+48|0;e=c[x>>2]|0;f=(e|0)==(b|0);a:do if(!f?(u=a+32|0,l=c[u>>2]|0,k=((e+1|0)>>>0)%(l>>>0)|0,(k|0)!=(b|0)):0){t=a+28|0;w=c[(c[a>>2]|0)+((c[t>>2]|0)*40|0)>>2]|0;r=a+40|0;p=a+24|0;o=a+44|0;q=a+56|0;s=a+12|0;n=k;while(1){k=c[r>>2]|0;if(!k)k=0;else{j=c[a>>2]|0;h=0;do{if(((c[j+(h*40|0)+20>>2]|0)+-1|0)>>>0<2){e=c[j+(h*40|0)+12>>2]|0;c[j+(h*40|0)+8>>2]=e-(e>>>0>n>>>0?l:0)}h=h+1|0}while((h|0)!=(k|0))}if(k>>>0>=(c[p>>2]|0)>>>0){if(!k){e=1;g=46;break}f=c[a>>2]|0;h=0;l=-1;j=0;while(1){if(((c[f+(h*40|0)+20>>2]|0)+-1|0)>>>0<2){e=c[f+(h*40|0)+8>>2]|0;m=(e|0)<(j|0)|(l|0)==-1;g=m?h:l;j=m?e:j}else g=l;h=h+1|0;if((h|0)==(k|0))break;else l=g}if((g|0)<=-1){e=1;g=46;break}l=k+-1|0;c[f+(g*40|0)+20>>2]=0;c[r>>2]=l;if(!(c[f+(g*40|0)+24>>2]|0)){c[o>>2]=(c[o>>2]|0)+-1;k=l}else k=l}l=c[o>>2]|0;m=c[t>>2]|0;if(l>>>0>=m>>>0){e=(c[q>>2]|0)==0;do if(e){g=c[a>>2]|0;f=0;j=2147483647;h=0;do{if(c[g+(f*40|0)+24>>2]|0){A=c[g+(f*40|0)+16>>2]|0;z=(A|0)<(j|0);j=z?A:j;h=z?g+(f*40|0)|0:h}f=f+1|0}while(f>>>0<=m>>>0);if((h|0)!=0?(f=c[v>>2]|0,g=c[s>>2]|0,c[g+(f<<4)>>2]=c[h>>2],c[g+(f<<4)+12>>2]=c[h+36>>2],c[g+(f<<4)+4>>2]=c[h+28>>2],c[g+(f<<4)+8>>2]=c[h+32>>2],c[v>>2]=f+1,c[h+24>>2]=0,(c[h+20>>2]|0)==0):0){l=l+-1|0;c[o>>2]=l}}while(l>>>0>=m>>>0)}e=c[a>>2]|0;c[e+(m*40|0)+20>>2]=1;c[e+(m*40|0)+12>>2]=n;c[e+(m*40|0)+8>>2]=n;c[e+(m*40|0)+16>>2]=0;c[e+(m*40|0)+24>>2]=0;c[o>>2]=l+1;c[r>>2]=k+1;rc(e,m+1|0);l=c[u>>2]|0;n=((n+1|0)>>>0)%(l>>>0)|0;if((n|0)==(b|0)){g=31;break}}if((g|0)==31){g=c[v>>2]|0;if(!g){g=41;break}e=c[s>>2]|0;h=c[t>>2]|0;j=c[a>>2]|0;l=j+(h*40|0)|0;k=c[l>>2]|0;f=0;while(1){if((c[e+(f<<4)>>2]|0)==(k|0))break;f=f+1|0;if(f>>>0>=g>>>0){g=41;break a}}if(!h){g=41;break}else e=0;while(1){f=j+(e*40|0)|0;e=e+1|0;if((c[f>>2]|0)==(w|0))break;if(e>>>0>=h>>>0){g=41;break a}}c[f>>2]=k;c[l>>2]=w;g=41;break}else if((g|0)==46){i=y;return e|0}}else g=39;while(0);if((g|0)==39)if(d)if(f){b=1;i=y;return b|0}else g=41;do if((g|0)==41){if(!d){e=c[x>>2]|0;break}c[x>>2]=b;b=0;i=y;return b|0}while(0);if((e|0)==(b|0)){b=0;i=y;return b|0}a=c[a+32>>2]|0;c[x>>2]=((b+-1+a|0)>>>0)%(a>>>0)|0;b=0;i=y;return b|0}function pc(a){a=a|0;var b=0,d=0,e=0;e=i;d=a+20|0;b=c[d>>2]|0;if(b>>>0>=(c[a+16>>2]|0)>>>0){b=0;i=e;return b|0}a=c[a+12>>2]|0;c[d>>2]=b+1;b=a+(b<<4)|0;i=e;return b|0}function qc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;f=c[a>>2]|0;if(!f){i=k;return}c[a+60>>2]=1;if(c[a+56>>2]|0){i=k;return}g=c[a+28>>2]|0;h=a+16|0;j=a+12|0;e=a+44|0;a=0;b=2147483647;d=0;while(1){if(c[f+(a*40|0)+24>>2]|0){m=c[f+(a*40|0)+16>>2]|0;l=(m|0)<(b|0);b=l?m:b;d=l?f+(a*40|0)|0:d}a=a+1|0;if(a>>>0<=g>>>0)continue;if(!d)break;l=c[h>>2]|0;b=c[j>>2]|0;c[b+(l<<4)>>2]=c[d>>2];c[b+(l<<4)+12>>2]=c[d+36>>2];c[b+(l<<4)+4>>2]=c[d+28>>2];c[b+(l<<4)+8>>2]=c[d+32>>2];c[h>>2]=l+1;c[d+24>>2]=0;if(c[d+20>>2]|0){a=0;b=2147483647;d=0;continue}c[e>>2]=(c[e>>2]|0)+-1;a=0;b=2147483647;d=0}i=k;return}function rc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+32|0;q=v+16|0;t=v;o=7;do{if(o>>>0>>0){n=o;do{m=a+(n*40|0)|0;l=c[m>>2]|0;m=c[m+4>>2]|0;p=c[a+(n*40|0)+8>>2]|0;k=a+(n*40|0)+12|0;s=c[k+4>>2]|0;r=q;c[r>>2]=c[k>>2];c[r+4>>2]=s;r=c[a+(n*40|0)+20>>2]|0;s=c[a+(n*40|0)+24>>2]|0;k=a+(n*40|0)+28|0;c[t+0>>2]=c[k+0>>2];c[t+4>>2]=c[k+4>>2];c[t+8>>2]=c[k+8>>2];a:do if(n>>>0>>0){d=n;u=8}else{f=(s|0)==0;j=r+-1|0;k=j>>>0<2;b:do if(!r){e=n;while(1){d=e-o|0;if(c[a+(d*40|0)+20>>2]|0){d=e;break b}if((c[a+(d*40|0)+24>>2]|0)!=0|f){d=e;break b}e=a+(e*40|0)+0|0;g=a+(d*40|0)+0|0;h=e+40|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(h|0));if(d>>>0>>0){u=8;break a}else e=d}}else{d=n;while(1){f=d-o|0;e=c[a+(f*40|0)+20>>2]|0;do if(e){e=e+-1|0;if((e|j)>>>0<2){e=c[a+(f*40|0)+8>>2]|0;if((e|0)>(p|0))break b;d=a+(d*40|0)|0;if((e|0)<(p|0))break;else break a}if(e>>>0<2)break b;if(!k?(c[a+(f*40|0)+8>>2]|0)<=(p|0):0)break b;else u=16}else u=16;while(0);if((u|0)==16){u=0;d=a+(d*40|0)|0}e=d+0|0;g=a+(f*40|0)+0|0;h=e+40|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(h|0));if(f>>>0>>0){d=f;u=8;break a}else d=f}}while(0);d=a+(d*40|0)|0}while(0);if((u|0)==8){u=0;d=a+(d*40|0)|0}k=d;c[k>>2]=l;c[k+4>>2]=m;c[d+8>>2]=p;k=q;l=c[k+4>>2]|0;m=d+12|0;c[m>>2]=c[k>>2];c[m+4>>2]=l;c[d+20>>2]=r;c[d+24>>2]=s;m=d+28|0;c[m+0>>2]=c[t+0>>2];c[m+4>>2]=c[t+4>>2];c[m+8>>2]=c[t+8>>2];n=n+1|0}while((n|0)!=(b|0))}o=o>>>1}while((o|0)!=0);i=v;return}function sc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;e=c[a+4>>2]|0;f=c[a+16>>2]|0;g=c[a+20>>2]|0;j=e<<2;k=b+256|0;h=16;a=c[a+12>>2]|0;d=b;while(1){m=c[d+4>>2]|0;c[a>>2]=c[d>>2];c[a+4>>2]=m;m=c[d+12>>2]|0;c[a+8>>2]=c[d+8>>2];c[a+12>>2]=m;h=h+-1|0;if(!h)break;else{a=a+(j<<2)|0;d=d+16|0}}j=e<<1&2147483646;h=c[b+260>>2]|0;c[f>>2]=c[k>>2];c[f+4>>2]=h;k=c[b+268>>2]|0;c[f+(j<<2)>>2]=c[b+264>>2];c[f+((j|1)<<2)>>2]=k;k=e<<2;h=c[b+276>>2]|0;c[f+(k<<2)>>2]=c[b+272>>2];c[f+((k|1)<<2)>>2]=h;k=k+j|0;h=c[b+284>>2]|0;c[f+(k<<2)>>2]=c[b+280>>2];c[f+((k|1)<<2)>>2]=h;k=k+j|0;h=c[b+292>>2]|0;c[f+(k<<2)>>2]=c[b+288>>2];c[f+((k|1)<<2)>>2]=h;k=k+j|0;h=c[b+300>>2]|0;c[f+(k<<2)>>2]=c[b+296>>2];c[f+((k|1)<<2)>>2]=h;k=k+j|0;h=c[b+308>>2]|0;c[f+(k<<2)>>2]=c[b+304>>2];c[f+((k|1)<<2)>>2]=h;k=k+j|0;h=c[b+316>>2]|0;c[f+(k<<2)>>2]=c[b+312>>2];c[f+((k|1)<<2)>>2]=h;k=c[b+324>>2]|0;c[g>>2]=c[b+320>>2];c[g+4>>2]=k;k=c[b+332>>2]|0;c[g+(j<<2)>>2]=c[b+328>>2];c[g+((j|1)<<2)>>2]=k;k=e<<2;h=c[b+340>>2]|0;c[g+(k<<2)>>2]=c[b+336>>2];c[g+((k|1)<<2)>>2]=h;k=k+j|0;h=c[b+348>>2]|0;c[g+(k<<2)>>2]=c[b+344>>2];c[g+((k|1)<<2)>>2]=h;k=k+j|0;h=c[b+356>>2]|0;c[g+(k<<2)>>2]=c[b+352>>2];c[g+((k|1)<<2)>>2]=h;k=k+j|0;h=c[b+364>>2]|0;c[g+(k<<2)>>2]=c[b+360>>2];c[g+((k|1)<<2)>>2]=h;k=k+j|0;h=c[b+372>>2]|0;c[g+(k<<2)>>2]=c[b+368>>2];c[g+((k|1)<<2)>>2]=h;k=k+j|0;j=c[b+380>>2]|0;c[g+(k<<2)>>2]=c[b+376>>2];c[g+((k|1)<<2)>>2]=j;i=l;return}function tc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=i;r=c[b+4>>2]|0;s=Z(c[b+8>>2]|0,r)|0;w=(e>>>0)%(r>>>0)|0;x=c[b>>2]|0;u=e-w|0;b=(u<<8)+(w<<4)|0;v=s<<8;w=w<<3;p=r<<4;o=r<<2&1073741820;l=o<<1;m=l+o|0;n=0;do{k=c[3344+(n<<2)>>2]|0;j=c[3408+(n<<2)>>2]|0;e=(j<<4)+k|0;h=f+e|0;j=b+k+(Z(j,p)|0)|0;k=x+j|0;q=c[g+(n<<6)>>2]|0;if((q|0)==16777215){j=c[f+(e+16)>>2]|0;c[k>>2]=c[h>>2];c[k+(o<<2)>>2]=j;j=c[f+(e+48)>>2]|0;c[k+(l<<2)>>2]=c[f+(e+32)>>2];c[k+(m<<2)>>2]=j}else{A=d[f+(e+1)>>0]|0;z=c[g+(n<<6)+4>>2]|0;a[k>>0]=a[3472+(q+512+(d[h>>0]|0))>>0]|0;q=d[f+(e+2)>>0]|0;t=c[g+(n<<6)+8>>2]|0;a[x+(j+1)>>0]=a[3472+((A|512)+z)>>0]|0;k=d[f+(e+3)>>0]|0;h=c[g+(n<<6)+12>>2]|0;a[x+(j+2)>>0]=a[3472+(t+512+q)>>0]|0;a[x+(j+3)>>0]=a[3472+(h+512+k)>>0]|0;k=j+p|0;h=d[f+(e+17)>>0]|0;j=c[g+(n<<6)+20>>2]|0;a[x+k>>0]=a[3472+((c[g+(n<<6)+16>>2]|0)+512+(d[f+(e+16)>>0]|0))>>0]|0;q=d[f+(e+18)>>0]|0;t=c[g+(n<<6)+24>>2]|0;a[x+(k+1)>>0]=a[3472+((h|512)+j)>>0]|0;j=d[f+(e+19)>>0]|0;h=c[g+(n<<6)+28>>2]|0;a[x+(k+2)>>0]=a[3472+(t+512+q)>>0]|0;a[x+(k+3)>>0]=a[3472+(h+512+j)>>0]|0;k=k+p|0;j=d[f+(e+33)>>0]|0;h=c[g+(n<<6)+36>>2]|0;a[x+k>>0]=a[3472+((c[g+(n<<6)+32>>2]|0)+512+(d[f+(e+32)>>0]|0))>>0]|0;q=d[f+(e+34)>>0]|0;t=c[g+(n<<6)+40>>2]|0;a[x+(k+1)>>0]=a[3472+((j|512)+h)>>0]|0;h=d[f+(e+35)>>0]|0;j=c[g+(n<<6)+44>>2]|0;a[x+(k+2)>>0]=a[3472+(t+512+q)>>0]|0;a[x+(k+3)>>0]=a[3472+(j+512+h)>>0]|0;k=k+p|0;h=d[f+(e+49)>>0]|0;j=c[g+(n<<6)+52>>2]|0;a[x+k>>0]=a[3472+((c[g+(n<<6)+48>>2]|0)+512+(d[f+(e+48)>>0]|0))>>0]|0;q=d[f+(e+50)>>0]|0;t=c[g+(n<<6)+56>>2]|0;a[x+(k+1)>>0]=a[3472+((h|512)+j)>>0]|0;j=d[f+(e+51)>>0]|0;h=c[g+(n<<6)+60>>2]|0;a[x+(k+2)>>0]=a[3472+(t+512+q)>>0]|0;a[x+(k+3)>>0]=a[3472+(h+512+j)>>0]|0}n=n+1|0}while((n|0)!=16);t=s<<6;s=r<<3&2147483640;r=f+256|0;f=f+320|0;l=w+v+(u<<6)|0;p=s>>>2;j=s>>>1;k=j+p|0;o=16;do{q=o&3;h=c[3344+(q<<2)>>2]|0;q=c[3408+(q<<2)>>2]|0;e=o>>>0>19;m=e?f:r;n=(q<<3)+h|0;b=m+n|0;q=l+(e?t:0)+h+(Z(q,s)|0)|0;h=x+q|0;e=c[g+(o<<6)>>2]|0;if((e|0)==16777215){z=c[m+(n+8)>>2]|0;c[h>>2]=c[b>>2];c[h+(p<<2)>>2]=z;z=c[m+(n+24)>>2]|0;c[h+(j<<2)>>2]=c[m+(n+16)>>2];c[h+(k<<2)>>2]=z}else{v=d[m+(n+1)>>0]|0;z=c[g+(o<<6)+4>>2]|0;a[h>>0]=a[3472+(e+512+(d[b>>0]|0))>>0]|0;w=d[m+(n+2)>>0]|0;u=c[g+(o<<6)+8>>2]|0;a[x+(q+1)>>0]=a[3472+((v|512)+z)>>0]|0;z=d[m+(n+3)>>0]|0;v=c[g+(o<<6)+12>>2]|0;a[x+(q+2)>>0]=a[3472+(u+512+w)>>0]|0;a[x+(q+3)>>0]=a[3472+(v+512+z)>>0]|0;z=q+s|0;v=d[m+(n+9)>>0]|0;w=c[g+(o<<6)+20>>2]|0;a[x+z>>0]=a[3472+((c[g+(o<<6)+16>>2]|0)+512+(d[m+(n+8)>>0]|0))>>0]|0;u=d[m+(n+10)>>0]|0;q=c[g+(o<<6)+24>>2]|0;a[x+(z+1)>>0]=a[3472+((v|512)+w)>>0]|0;w=d[m+(n+11)>>0]|0;v=c[g+(o<<6)+28>>2]|0;a[x+(z+2)>>0]=a[3472+(q+512+u)>>0]|0;a[x+(z+3)>>0]=a[3472+(v+512+w)>>0]|0;z=z+s|0;w=d[m+(n+17)>>0]|0;v=c[g+(o<<6)+36>>2]|0;a[x+z>>0]=a[3472+((c[g+(o<<6)+32>>2]|0)+512+(d[m+(n+16)>>0]|0))>>0]|0;u=d[m+(n+18)>>0]|0;q=c[g+(o<<6)+40>>2]|0;a[x+(z+1)>>0]=a[3472+((w|512)+v)>>0]|0;v=d[m+(n+19)>>0]|0;w=c[g+(o<<6)+44>>2]|0;a[x+(z+2)>>0]=a[3472+(q+512+u)>>0]|0;a[x+(z+3)>>0]=a[3472+(w+512+v)>>0]|0;z=z+s|0;v=d[m+(n+25)>>0]|0;w=c[g+(o<<6)+52>>2]|0;a[x+z>>0]=a[3472+((c[g+(o<<6)+48>>2]|0)+512+(d[m+(n+24)>>0]|0))>>0]|0;u=d[m+(n+26)>>0]|0;q=c[g+(o<<6)+56>>2]|0;a[x+(z+1)>>0]=a[3472+((v|512)+w)>>0]|0;w=d[m+(n+27)>>0]|0;v=c[g+(o<<6)+60>>2]|0;a[x+(z+2)>>0]=a[3472+(q+512+u)>>0]|0;a[x+(z+3)>>0]=a[3472+(v+512+w)>>0]|0}o=o+1|0}while((o|0)!=24);i=y;return}function uc(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0;bb=i;i=i+176|0;ia=bb+40|0;La=bb;ea=c[e+4>>2]|0;ka=e+8|0;Wa=c[ka>>2]|0;g=Z(Wa,ea)|0;if(!Wa){i=bb;return}Za=ia+24|0;_a=ia+16|0;$a=ia+8|0;la=ia+100|0;ma=ia+68|0;na=ia+36|0;oa=ia+4|0;Ma=ia+120|0;Na=ia+112|0;Pa=ia+104|0;Qa=ia+96|0;Ra=ia+88|0;Sa=ia+80|0;Ta=ia+72|0;Ua=ia+64|0;Va=ia+56|0;Wa=ia+48|0;Xa=ia+40|0;Ya=ia+32|0;pa=ia+124|0;qa=ia+116|0;ra=ia+108|0;sa=ia+92|0;ta=ia+84|0;ua=ia+76|0;va=ia+60|0;wa=ia+52|0;xa=ia+44|0;ya=ia+28|0;za=ia+20|0;Aa=ia+12|0;ha=La+28|0;ja=La+32|0;Ka=La+24|0;Da=ea<<4;Ja=0-Da|0;Ca=Ja<<1;Ha=Z(ea,-48)|0;Ia=ea<<5;Ea=Ja<<2;Ga=ea*48|0;Ba=ea<<6;ga=La+24|0;fa=La+12|0;Fa=g<<8;ba=g<<6;ca=ea<<3;W=Da|4;Y=La+16|0;$=La+20|0;da=La+12|0;X=La+4|0;_=La+8|0;U=0;aa=0;V=f;while(1){f=c[V+8>>2]|0;do if((f|0)!=1){T=V+200|0;n=c[T>>2]|0;do if(!n)g=1;else{if((f|0)==2?(c[V+4>>2]|0)!=(c[n+4>>2]|0):0){g=1;break}g=5}while(0);S=V+204|0;l=c[S>>2]|0;do if(l){if((f|0)==2?(c[V+4>>2]|0)!=(c[l+4>>2]|0):0)break;g=g|2}while(0);R=(g&2|0)==0;do if(R){c[Za>>2]=0;c[_a>>2]=0;c[$a>>2]=0;c[ia>>2]=0;m=0}else{if((c[V>>2]|0)>>>0<=5?(c[l>>2]|0)>>>0<=5:0){if((b[V+28>>1]|0)==0?(b[l+48>>1]|0)==0:0)if((c[V+116>>2]|0)==(c[l+124>>2]|0)?(B=(b[V+132>>1]|0)-(b[l+172>>1]|0)|0,(((B|0)>-1?B:0-B|0)|0)<=3):0){h=(b[V+134>>1]|0)-(b[l+174>>1]|0)|0;h=(((h|0)>-1?h:0-h|0)|0)>3&1}else h=1;else h=2;c[ia>>2]=h;if((b[V+30>>1]|0)==0?(b[l+50>>1]|0)==0:0)if((c[V+116>>2]|0)==(c[l+124>>2]|0)?(B=(b[V+136>>1]|0)-(b[l+176>>1]|0)|0,(((B|0)>-1?B:0-B|0)|0)<=3):0){j=(b[V+138>>1]|0)-(b[l+178>>1]|0)|0;j=(((j|0)>-1?j:0-j|0)|0)>3&1}else j=1;else j=2;c[$a>>2]=j;if((b[V+36>>1]|0)==0?(b[l+56>>1]|0)==0:0)if((c[V+120>>2]|0)==(c[l+128>>2]|0)?(B=(b[V+148>>1]|0)-(b[l+188>>1]|0)|0,(((B|0)>-1?B:0-B|0)|0)<=3):0){k=(b[V+150>>1]|0)-(b[l+190>>1]|0)|0;k=(((k|0)>-1?k:0-k|0)|0)>3&1}else k=1;else k=2;c[_a>>2]=k;if((b[V+38>>1]|0)==0?(b[l+58>>1]|0)==0:0)if((c[V+120>>2]|0)==(c[l+128>>2]|0)?(B=(b[V+152>>1]|0)-(b[l+192>>1]|0)|0,(((B|0)>-1?B:0-B|0)|0)<=3):0){f=(b[V+154>>1]|0)-(b[l+194>>1]|0)|0;f=(((f|0)>-1?f:0-f|0)|0)>3&1}else f=1;else f=2;c[Za>>2]=f;m=(j|h|k|f|0)!=0&1;break}c[Za>>2]=4;c[_a>>2]=4;c[$a>>2]=4;c[ia>>2]=4;m=1}while(0);Q=(g&4|0)==0;do if(Q){c[la>>2]=0;c[ma>>2]=0;c[na>>2]=0;c[oa>>2]=0;k=c[V>>2]|0}else{k=c[V>>2]|0;if(k>>>0<=5?(c[n>>2]|0)>>>0<=5:0){if((b[V+28>>1]|0)==0?(b[n+38>>1]|0)==0:0)if((c[V+116>>2]|0)==(c[n+120>>2]|0)?(B=(b[V+132>>1]|0)-(b[n+152>>1]|0)|0,(((B|0)>-1?B:0-B|0)|0)<=3):0){j=(b[V+134>>1]|0)-(b[n+154>>1]|0)|0;j=(((j|0)>-1?j:0-j|0)|0)>3&1}else j=1;else j=2;c[oa>>2]=j;if((b[V+32>>1]|0)==0?(b[n+42>>1]|0)==0:0)if((c[V+116>>2]|0)==(c[n+120>>2]|0)?(B=(b[V+140>>1]|0)-(b[n+160>>1]|0)|0,(((B|0)>-1?B:0-B|0)|0)<=3):0){h=(b[V+142>>1]|0)-(b[n+162>>1]|0)|0;h=(((h|0)>-1?h:0-h|0)|0)>3&1}else h=1;else h=2;c[na>>2]=h;if((b[V+44>>1]|0)==0?(b[n+54>>1]|0)==0:0)if((c[V+124>>2]|0)==(c[n+128>>2]|0)?(B=(b[V+164>>1]|0)-(b[n+184>>1]|0)|0,(((B|0)>-1?B:0-B|0)|0)<=3):0){f=(b[V+166>>1]|0)-(b[n+186>>1]|0)|0;f=(((f|0)>-1?f:0-f|0)|0)>3&1}else f=1;else f=2;c[ma>>2]=f;if((b[V+48>>1]|0)==0?(b[n+58>>1]|0)==0:0)if((c[V+124>>2]|0)==(c[n+128>>2]|0)?(B=(b[V+172>>1]|0)-(b[n+192>>1]|0)|0,(((B|0)>-1?B:0-B|0)|0)<=3):0){l=(b[V+174>>1]|0)-(b[n+194>>1]|0)|0;l=(((l|0)>-1?l:0-l|0)|0)>3&1}else l=1;else l=2;c[la>>2]=l;if(m)break;m=(h|j|f|l|0)!=0&1;break}c[la>>2]=4;c[ma>>2]=4;c[na>>2]=4;c[oa>>2]=4;m=1}while(0);if(k>>>0<=5){do if((db(k)|0)!=1){f=c[V>>2]|0;if((f|0)==2){w=V+28|0;x=b[V+32>>1]|0;if(!(x<<16>>16))f=(b[w>>1]|0)!=0?2:0;else f=2;c[Ya>>2]=f;q=b[V+34>>1]|0;A=q<<16>>16==0;if(A)f=(b[V+30>>1]|0)!=0?2:0;else f=2;c[Xa>>2]=f;g=b[V+40>>1]|0;z=g<<16>>16==0;if(z)l=(b[V+36>>1]|0)!=0?2:0;else l=2;c[Wa>>2]=l;v=b[V+42>>1]|0;y=v<<16>>16==0;if(y)l=(b[V+38>>1]|0)!=0?2:0;else l=2;c[Va>>2]=l;h=b[V+48>>1]|0;if(!(h<<16>>16))l=(b[V+44>>1]|0)!=0?2:0;else l=2;c[Qa>>2]=l;k=b[V+50>>1]|0;B=k<<16>>16==0;if(B)l=(b[V+46>>1]|0)!=0?2:0;else l=2;c[Pa>>2]=l;p=b[V+56>>1]|0;f=p<<16>>16==0;if(f)n=(b[V+52>>1]|0)!=0?2:0;else n=2;c[Na>>2]=n;j=(b[V+58>>1]|0)==0;if(j)n=(b[V+54>>1]|0)!=0?2:0;else n=2;c[Ma>>2]=n;r=b[V+44>>1]|0;o=b[V+166>>1]|0;n=b[V+142>>1]|0;do if(!((r|x)<<16>>16)){u=(b[V+164>>1]|0)-(b[V+140>>1]|0)|0;if((((u|0)>-1?u:0-u|0)|0)>3){n=1;break}u=o-n|0;if((((u|0)>-1?u:0-u|0)|0)>3){n=1;break}n=(c[V+124>>2]|0)!=(c[V+116>>2]|0)&1}else n=2;while(0);c[Ua>>2]=n;s=b[V+46>>1]|0;o=b[V+170>>1]|0;n=b[V+146>>1]|0;do if(!((s|q)<<16>>16)){u=(b[V+168>>1]|0)-(b[V+144>>1]|0)|0;if((((u|0)>-1?u:0-u|0)|0)>3){o=1;break}u=o-n|0;if((((u|0)>-1?u:0-u|0)|0)>3){o=1;break}o=(c[V+124>>2]|0)!=(c[V+116>>2]|0)&1}else o=2;while(0);c[Ta>>2]=o;t=b[V+52>>1]|0;o=b[V+182>>1]|0;n=b[V+158>>1]|0;do if(!((t|g)<<16>>16)){u=(b[V+180>>1]|0)-(b[V+156>>1]|0)|0;if((((u|0)>-1?u:0-u|0)|0)>3){o=1;break}u=o-n|0;if((((u|0)>-1?u:0-u|0)|0)>3){o=1;break}o=(c[V+128>>2]|0)!=(c[V+120>>2]|0)&1}else o=2;while(0);c[Sa>>2]=o;u=b[V+54>>1]|0;o=b[V+186>>1]|0;n=b[V+162>>1]|0;do if(!((u|v)<<16>>16)){v=(b[V+184>>1]|0)-(b[V+160>>1]|0)|0;if((((v|0)>-1?v:0-v|0)|0)>3){o=1;break}v=o-n|0;if((((v|0)>-1?v:0-v|0)|0)>3){o=1;break}o=(c[V+128>>2]|0)!=(c[V+120>>2]|0)&1}else o=2;while(0);c[Ra>>2]=o;l=b[V+30>>1]|0;if(!(l<<16>>16))o=(b[w>>1]|0)!=0?2:0;else o=2;c[Aa>>2]=o;n=b[V+36>>1]|0;if(!(n<<16>>16))o=l<<16>>16!=0?2:0;else o=2;c[za>>2]=o;if(!(b[V+38>>1]|0))o=n<<16>>16!=0?2:0;else o=2;c[ya>>2]=o;if(A)n=x<<16>>16!=0?2:0;else n=2;c[xa>>2]=n;if(z)l=q<<16>>16!=0?2:0;else l=2;c[wa>>2]=l;if(y)l=g<<16>>16!=0?2:0;else l=2;c[va>>2]=l;if(!(s<<16>>16))l=r<<16>>16!=0?2:0;else l=2;c[ua>>2]=l;if(!(t<<16>>16))l=s<<16>>16!=0?2:0;else l=2;c[ta>>2]=l;if(!(u<<16>>16))l=t<<16>>16!=0?2:0;else l=2;c[sa>>2]=l;if(B)h=h<<16>>16!=0?2:0;else h=2;c[ra>>2]=h;if(f)f=k<<16>>16!=0?2:0;else f=2;c[qa>>2]=f;if(j)f=p<<16>>16!=0?2:0;else f=2;c[pa>>2]=f;break}else if((f|0)==3){j=V+28|0;v=b[V+32>>1]|0;if(!(v<<16>>16))f=(b[j>>1]|0)!=0?2:0;else f=2;c[Ya>>2]=f;B=b[V+34>>1]|0;p=B<<16>>16==0;if(p)h=(b[V+30>>1]|0)!=0?2:0;else h=2;c[Xa>>2]=h;z=b[V+40>>1]|0;if(!(z<<16>>16))k=(b[V+36>>1]|0)!=0?2:0;else k=2;c[Wa>>2]=k;o=b[V+42>>1]|0;h=o<<16>>16==0;if(h)l=(b[V+38>>1]|0)!=0?2:0;else l=2;c[Va>>2]=l;f=b[V+44>>1]|0;if(!(f<<16>>16))l=v<<16>>16!=0?2:0;else l=2;c[Ua>>2]=l;A=b[V+46>>1]|0;g=A<<16>>16==0;if(g)l=B<<16>>16!=0?2:0;else l=2;c[Ta>>2]=l;y=b[V+52>>1]|0;if(!(y<<16>>16))l=z<<16>>16!=0?2:0;else l=2;c[Sa>>2]=l;k=b[V+54>>1]|0;q=k<<16>>16==0;if(q)l=o<<16>>16!=0?2:0;else l=2;c[Ra>>2]=l;r=b[V+48>>1]|0;if(!(r<<16>>16))n=f<<16>>16!=0?2:0;else n=2;c[Qa>>2]=n;x=b[V+50>>1]|0;s=x<<16>>16==0;if(s)n=A<<16>>16!=0?2:0;else n=2;c[Pa>>2]=n;w=b[V+56>>1]|0;if(!(w<<16>>16))o=y<<16>>16!=0?2:0;else o=2;c[Na>>2]=o;u=(b[V+58>>1]|0)==0;if(u)o=k<<16>>16!=0?2:0;else o=2;c[Ma>>2]=o;t=b[V+30>>1]|0;if(!(t<<16>>16))o=(b[j>>1]|0)!=0?2:0;else o=2;c[Aa>>2]=o;if(!(b[V+38>>1]|0))o=(b[V+36>>1]|0)!=0?2:0;else o=2;c[ya>>2]=o;if(p)n=v<<16>>16!=0?2:0;else n=2;c[xa>>2]=n;if(h)n=z<<16>>16!=0?2:0;else n=2;c[va>>2]=n;if(g)l=f<<16>>16!=0?2:0;else l=2;c[ua>>2]=l;if(q)l=y<<16>>16!=0?2:0;else l=2;c[sa>>2]=l;if(s)l=r<<16>>16!=0?2:0;else l=2;c[ra>>2]=l;if(u)l=w<<16>>16!=0?2:0;else l=2;c[pa>>2]=l;l=b[V+150>>1]|0;k=b[V+138>>1]|0;do if(!((b[V+36>>1]|t)<<16>>16)){v=(b[V+148>>1]|0)-(b[V+136>>1]|0)|0;if((((v|0)>-1?v:0-v|0)|0)>3){l=1;break}v=l-k|0;if((((v|0)>-1?v:0-v|0)|0)>3){l=1;break}l=(c[V+120>>2]|0)!=(c[V+116>>2]|0)&1}else l=2;while(0);c[za>>2]=l;l=b[V+158>>1]|0;k=b[V+146>>1]|0;do if(!((z|B)<<16>>16)){B=(b[V+156>>1]|0)-(b[V+144>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){k=1;break}B=l-k|0;if((((B|0)>-1?B:0-B|0)|0)>3){k=1;break}k=(c[V+120>>2]|0)!=(c[V+116>>2]|0)&1}else k=2;while(0);c[wa>>2]=k;l=b[V+182>>1]|0;k=b[V+170>>1]|0;do if(!((y|A)<<16>>16)){B=(b[V+180>>1]|0)-(b[V+168>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){f=1;break}B=l-k|0;if((((B|0)>-1?B:0-B|0)|0)>3){f=1;break}f=(c[V+128>>2]|0)!=(c[V+124>>2]|0)&1}else f=2;while(0);c[ta>>2]=f;f=b[V+190>>1]|0;g=b[V+178>>1]|0;do if(!((w|x)<<16>>16)){B=(b[V+188>>1]|0)-(b[V+176>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){f=1;break}B=f-g|0;if((((B|0)>-1?B:0-B|0)|0)>3){f=1;break}f=(c[V+128>>2]|0)!=(c[V+124>>2]|0)&1}else f=2;while(0);c[qa>>2]=f;break}else{K=b[V+32>>1]|0;z=b[V+28>>1]|0;P=b[V+142>>1]|0;q=b[V+134>>1]|0;if(!((z|K)<<16>>16)){B=(b[V+140>>1]|0)-(b[V+132>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3)k=1;else{k=P-q|0;k=(((k|0)>-1?k:0-k|0)|0)>3&1}}else k=2;c[Ya>>2]=k;L=b[V+34>>1]|0;y=b[V+30>>1]|0;O=b[V+146>>1]|0;r=b[V+138>>1]|0;if(!((y|L)<<16>>16)){B=(b[V+144>>1]|0)-(b[V+136>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3)l=1;else{l=O-r|0;l=(((l|0)>-1?l:0-l|0)|0)>3&1}}else l=2;c[Xa>>2]=l;M=b[V+40>>1]|0;x=b[V+36>>1]|0;N=b[V+158>>1]|0;s=b[V+150>>1]|0;if(!((x|M)<<16>>16)){B=(b[V+156>>1]|0)-(b[V+148>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3)n=1;else{n=N-s|0;n=(((n|0)>-1?n:0-n|0)|0)>3&1}}else n=2;c[Wa>>2]=n;n=b[V+42>>1]|0;B=b[V+38>>1]|0;J=b[V+162>>1]|0;A=b[V+154>>1]|0;if(!((B|n)<<16>>16)){w=(b[V+160>>1]|0)-(b[V+152>>1]|0)|0;if((((w|0)>-1?w:0-w|0)|0)>3)o=1;else{o=J-A|0;o=(((o|0)>-1?o:0-o|0)|0)>3&1}}else o=2;c[Va>>2]=o;D=b[V+44>>1]|0;I=b[V+166>>1]|0;do if(!((D|K)<<16>>16)){w=(b[V+164>>1]|0)-(b[V+140>>1]|0)|0;if((((w|0)>-1?w:0-w|0)|0)>3)o=1;else{w=I-P|0;if((((w|0)>-1?w:0-w|0)|0)>3){o=1;break}o=(c[V+124>>2]|0)!=(c[V+116>>2]|0)&1}}else o=2;while(0);c[Ua>>2]=o;E=b[V+46>>1]|0;H=b[V+170>>1]|0;do if(!((E|L)<<16>>16)){w=(b[V+168>>1]|0)-(b[V+144>>1]|0)|0;if((((w|0)>-1?w:0-w|0)|0)>3){o=1;break}w=H-O|0;if((((w|0)>-1?w:0-w|0)|0)>3){o=1;break}o=(c[V+124>>2]|0)!=(c[V+116>>2]|0)&1}else o=2;while(0);c[Ta>>2]=o;F=b[V+52>>1]|0;G=b[V+182>>1]|0;do if(!((F|M)<<16>>16)){w=(b[V+180>>1]|0)-(b[V+156>>1]|0)|0;if((((w|0)>-1?w:0-w|0)|0)>3){o=1;break}w=G-N|0;if((((w|0)>-1?w:0-w|0)|0)>3){o=1;break}o=(c[V+128>>2]|0)!=(c[V+120>>2]|0)&1}else o=2;while(0);c[Sa>>2]=o;g=b[V+54>>1]|0;l=b[V+186>>1]|0;do if(!((g|n)<<16>>16)){w=(b[V+184>>1]|0)-(b[V+160>>1]|0)|0;if((((w|0)>-1?w:0-w|0)|0)>3){u=1;break}w=l-J|0;if((((w|0)>-1?w:0-w|0)|0)>3){u=1;break}u=(c[V+128>>2]|0)!=(c[V+120>>2]|0)&1}else u=2;while(0);c[Ra>>2]=u;f=b[V+48>>1]|0;C=b[V+174>>1]|0;do if(!((f|D)<<16>>16)){w=(b[V+172>>1]|0)-(b[V+164>>1]|0)|0;if((((w|0)>-1?w:0-w|0)|0)>3){u=1;break}u=C-I|0;u=(((u|0)>-1?u:0-u|0)|0)>3&1}else u=2;while(0);c[Qa>>2]=u;h=b[V+50>>1]|0;k=b[V+178>>1]|0;do if(!((h|E)<<16>>16)){w=(b[V+176>>1]|0)-(b[V+168>>1]|0)|0;if((((w|0)>-1?w:0-w|0)|0)>3){u=1;break}u=k-H|0;u=(((u|0)>-1?u:0-u|0)|0)>3&1}else u=2;while(0);c[Pa>>2]=u;j=b[V+56>>1]|0;p=b[V+190>>1]|0;do if(!((j|F)<<16>>16)){w=(b[V+188>>1]|0)-(b[V+180>>1]|0)|0;if((((w|0)>-1?w:0-w|0)|0)>3){u=1;break}u=p-G|0;u=(((u|0)>-1?u:0-u|0)|0)>3&1}else u=2;while(0);c[Na>>2]=u;w=b[V+58>>1]|0;t=b[V+194>>1]|0;do if(!((w|g)<<16>>16)){v=(b[V+192>>1]|0)-(b[V+184>>1]|0)|0;if((((v|0)>-1?v:0-v|0)|0)>3){v=1;break}v=t-l|0;v=(((v|0)>-1?v:0-v|0)|0)>3&1}else v=2;while(0);c[Ma>>2]=v;do if(!((y|z)<<16>>16)){z=(b[V+136>>1]|0)-(b[V+132>>1]|0)|0;if((((z|0)>-1?z:0-z|0)|0)>3){u=1;break}u=r-q|0;u=(((u|0)>-1?u:0-u|0)|0)>3&1}else u=2;while(0);c[Aa>>2]=u;do if(!((x|y)<<16>>16)){z=(b[V+148>>1]|0)-(b[V+136>>1]|0)|0;if((((z|0)>-1?z:0-z|0)|0)>3){u=1;break}z=s-r|0;if((((z|0)>-1?z:0-z|0)|0)>3){u=1;break}u=(c[V+120>>2]|0)!=(c[V+116>>2]|0)&1}else u=2;while(0);c[za>>2]=u;do if(!((B|x)<<16>>16)){B=(b[V+152>>1]|0)-(b[V+148>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){u=1;break}u=A-s|0;u=(((u|0)>-1?u:0-u|0)|0)>3&1}else u=2;while(0);c[ya>>2]=u;do if(!((L|K)<<16>>16)){B=(b[V+144>>1]|0)-(b[V+140>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){o=1;break}o=O-P|0;o=(((o|0)>-1?o:0-o|0)|0)>3&1}else o=2;while(0);c[xa>>2]=o;do if(!((M|L)<<16>>16)){B=(b[V+156>>1]|0)-(b[V+144>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){o=1;break}B=N-O|0;if((((B|0)>-1?B:0-B|0)|0)>3){o=1;break}o=(c[V+120>>2]|0)!=(c[V+116>>2]|0)&1}else o=2;while(0);c[wa>>2]=o;do if(!((n|M)<<16>>16)){B=(b[V+160>>1]|0)-(b[V+156>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){o=1;break}o=J-N|0;o=(((o|0)>-1?o:0-o|0)|0)>3&1}else o=2;while(0);c[va>>2]=o;do if(!((E|D)<<16>>16)){B=(b[V+168>>1]|0)-(b[V+164>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){n=1;break}n=H-I|0;n=(((n|0)>-1?n:0-n|0)|0)>3&1}else n=2;while(0);c[ua>>2]=n;do if(!((F|E)<<16>>16)){B=(b[V+180>>1]|0)-(b[V+168>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){n=1;break}B=G-H|0;if((((B|0)>-1?B:0-B|0)|0)>3){n=1;break}n=(c[V+128>>2]|0)!=(c[V+124>>2]|0)&1}else n=2;while(0);c[ta>>2]=n;do if(!((g|F)<<16>>16)){B=(b[V+184>>1]|0)-(b[V+180>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){l=1;break}l=l-G|0;l=(((l|0)>-1?l:0-l|0)|0)>3&1}else l=2;while(0);c[sa>>2]=l;do if(!((h|f)<<16>>16)){B=(b[V+176>>1]|0)-(b[V+172>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){l=1;break}l=k-C|0;l=(((l|0)>-1?l:0-l|0)|0)>3&1}else l=2;while(0);c[ra>>2]=l;do if(!((j|h)<<16>>16)){B=(b[V+188>>1]|0)-(b[V+176>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){k=1;break}B=p-k|0;if((((B|0)>-1?B:0-B|0)|0)>3){k=1;break}k=(c[V+128>>2]|0)!=(c[V+124>>2]|0)&1}else k=2;while(0);c[qa>>2]=k;do if(!((w|j)<<16>>16)){B=(b[V+192>>1]|0)-(b[V+188>>1]|0)|0;if((((B|0)>-1?B:0-B|0)|0)>3){f=1;break}f=t-p|0;f=(((f|0)>-1?f:0-f|0)|0)>3&1}else f=2;while(0);c[pa>>2]=f;break}}else vc(V,ia);while(0);if(!(m|c[Ya>>2]|c[Xa>>2]|c[Wa>>2]|c[Va>>2]|c[Ua>>2]|c[Ta>>2]|c[Sa>>2]|c[Ra>>2]|c[Qa>>2]|c[Pa>>2]|c[Na>>2]|c[Ma>>2]|c[Aa>>2]|c[za>>2]|c[ya>>2]|c[xa>>2]|c[wa>>2]|c[va>>2]|c[ua>>2]|c[ta>>2]|c[sa>>2]|c[ra>>2]|c[qa>>2]|c[pa>>2]))break}else{c[Ma>>2]=3;c[Na>>2]=3;c[Pa>>2]=3;c[Qa>>2]=3;c[Ra>>2]=3;c[Sa>>2]=3;c[Ta>>2]=3;c[Ua>>2]=3;c[Va>>2]=3;c[Wa>>2]=3;c[Xa>>2]=3;c[Ya>>2]=3;c[pa>>2]=3;c[qa>>2]=3;c[ra>>2]=3;c[sa>>2]=3;c[ta>>2]=3;c[ua>>2]=3;c[va>>2]=3;c[wa>>2]=3;c[xa>>2]=3;c[ya>>2]=3;c[za>>2]=3;c[Aa>>2]=3}J=V+20|0;g=c[J>>2]|0;L=V+12|0;k=Oa(0,51,(c[L>>2]|0)+g|0)|0;K=V+16|0;h=Oa(0,51,(c[K>>2]|0)+g|0)|0;j=d[6864+k>>0]|0;c[ha>>2]=j;h=d[6920+h>>0]|0;c[ja>>2]=h;k=6976+(k*3|0)|0;c[Ka>>2]=k;do if(!R){l=c[(c[S>>2]|0)+20>>2]|0;if((l|0)==(g|0)){c[X>>2]=j;c[_>>2]=h;c[La>>2]=k;break}else{A=(g+1+l|0)>>>1;B=Oa(0,51,(c[L>>2]|0)+A|0)|0;A=Oa(0,51,(c[K>>2]|0)+A|0)|0;c[X>>2]=d[6864+B>>0];c[_>>2]=d[6920+A>>0];c[La>>2]=6976+(B*3|0);break}}while(0);do if(!Q){f=c[(c[T>>2]|0)+20>>2]|0;if((f|0)==(g|0)){c[Y>>2]=c[ha>>2];c[$>>2]=c[ja>>2];c[da>>2]=c[Ka>>2];break}else{A=(g+1+f|0)>>>1;B=Oa(0,51,(c[L>>2]|0)+A|0)|0;A=Oa(0,51,(c[K>>2]|0)+A|0)|0;c[Y>>2]=d[6864+B>>0];c[$>>2]=d[6920+A>>0];c[da>>2]=6976+(B*3|0);break}}while(0);M=Z(aa,ea)|0;P=3;o=0;O=(c[e>>2]|0)+((M<<8)+(U<<4))|0;N=ia;while(1){l=c[N+4>>2]|0;if(l)wc(O,l,fa,Da);l=c[N+12>>2]|0;if(l)wc(O+4|0,l,ga,Da);k=N+16|0;m=c[N+20>>2]|0;if(m)wc(O+8|0,m,ga,Da);j=N+24|0;m=c[N+28>>2]|0;if(m)wc(O+12|0,m,ga,Da);n=c[N>>2]|0;l=N+8|0;m=c[l>>2]|0;a:do if(((n|0)==(m|0)?(n|0)==(c[k>>2]|0):0)?(n|0)==(c[j>>2]|0):0){if(!n)break;y=c[La+(o*12|0)+4>>2]|0;x=c[La+(o*12|0)+8>>2]|0;if(n>>>0<4){t=d[(c[La+(o*12|0)>>2]|0)+(n+-1)>>0]|0;k=0-t|0;j=t+1|0;f=O;h=16;while(1){o=f+Ca|0;s=d[o>>0]|0;u=f+Ja|0;r=d[u>>0]|0;q=d[f>>0]|0;m=f+Da|0;g=d[m>>0]|0;B=r-q|0;do if(((B|0)>-1?B:0-B|0)>>>0>>0){B=s-r|0;if(((B|0)>-1?B:0-B|0)>>>0>=x>>>0)break;B=g-q|0;if(((B|0)>-1?B:0-B|0)>>>0>=x>>>0)break;n=d[f+Ha>>0]|0;B=n-r|0;if(((B|0)>-1?B:0-B|0)>>>0>>0){a[o>>0]=(Oa(k,t,((r+1+q|0)>>>1)-(s<<1)+n>>1)|0)+s;o=j}else o=t;n=d[f+Ia>>0]|0;B=n-q|0;if(((B|0)>-1?B:0-B|0)>>>0>>0){a[m>>0]=(Oa(k,t,((r+1+q|0)>>>1)-(g<<1)+n>>1)|0)+g;o=o+1|0}A=Oa(0-o|0,o,s+4-g+(q-r<<2)>>3)|0;B=a[3472+((q|512)-A)>>0]|0;a[u>>0]=a[3472+(A+(r|512))>>0]|0;a[f>>0]=B}while(0);h=h+-1|0;if(!h)break a;else f=f+1|0}}n=(y>>>2)+2|0;t=O;u=16;while(1){m=t+Ca|0;f=d[m>>0]|0;l=t+Ja|0;g=d[l>>0]|0;p=d[t>>0]|0;k=t+Da|0;q=d[k>>0]|0;o=g-p|0;o=(o|0)>-1?o:0-o|0;b:do if(o>>>0>>0){B=f-g|0;if(((B|0)>-1?B:0-B|0)>>>0>=x>>>0)break;B=q-p|0;if(((B|0)>-1?B:0-B|0)>>>0>=x>>>0)break;j=t+Ha|0;r=d[j>>0]|0;h=t+Ia|0;s=d[h>>0]|0;do if(o>>>0>>0){B=r-g|0;if(((B|0)>-1?B:0-B|0)>>>0>>0){B=g+f+p|0;a[l>>0]=(q+4+(B<<1)+r|0)>>>3;a[m>>0]=(B+2+r|0)>>>2;a[j>>0]=(B+4+(r*3|0)+(d[t+Ea>>0]<<1)|0)>>>3}else a[l>>0]=(g+2+(f<<1)+q|0)>>>2;B=s-p|0;if(((B|0)>-1?B:0-B|0)>>>0>=x>>>0)break;B=p+g+q|0;a[t>>0]=(f+4+(B<<1)+s|0)>>>3;a[k>>0]=(B+2+s|0)>>>2;a[h>>0]=(B+4+(s*3|0)+(d[t+Ga>>0]<<1)|0)>>>3;break b}else a[l>>0]=(g+2+(f<<1)+q|0)>>>2;while(0);a[t>>0]=(f+2+p+(q<<1)|0)>>>2}while(0);u=u+-1|0;if(!u)break;else t=t+1|0}}else ab=311;while(0);do if((ab|0)==311){ab=0;if(n){xc(O,n,La+(o*12|0)|0,Da);m=c[l>>2]|0}if(m)xc(O+4|0,m,La+(o*12|0)|0,Da);m=c[k>>2]|0;if(m)xc(O+8|0,m,La+(o*12|0)|0,Da);l=c[j>>2]|0;if(!l)break;xc(O+12|0,l,La+(o*12|0)|0,Da)}while(0);if(!P)break;else{P=P+-1|0;o=2;O=O+Ba|0;N=N+32|0}}h=c[V+24>>2]|0;g=c[192+((Oa(0,51,(c[J>>2]|0)+h|0)|0)<<2)>>2]|0;m=Oa(0,51,(c[L>>2]|0)+g|0)|0;j=Oa(0,51,(c[K>>2]|0)+g|0)|0;k=d[6864+m>>0]|0;c[ha>>2]=k;j=d[6920+j>>0]|0;c[ja>>2]=j;m=6976+(m*3|0)|0;c[Ka>>2]=m;do if(!R){l=c[(c[S>>2]|0)+20>>2]|0;if((l|0)==(c[J>>2]|0)){c[X>>2]=k;c[_>>2]=j;c[La>>2]=m;break}else{A=(g+1+(c[192+((Oa(0,51,l+h|0)|0)<<2)>>2]|0)|0)>>>1;B=Oa(0,51,A+(c[L>>2]|0)|0)|0;A=Oa(0,51,(c[K>>2]|0)+A|0)|0;c[X>>2]=d[6864+B>>0];c[_>>2]=d[6920+A>>0];c[La>>2]=6976+(B*3|0);break}}while(0);do if(!Q){f=c[(c[T>>2]|0)+20>>2]|0;if((f|0)==(c[J>>2]|0)){c[Y>>2]=c[ha>>2];c[$>>2]=c[ja>>2];c[da>>2]=c[Ka>>2];break}else{A=(g+1+(c[192+((Oa(0,51,f+h|0)|0)<<2)>>2]|0)|0)>>>1;B=Oa(0,51,A+(c[L>>2]|0)|0)|0;A=Oa(0,51,(c[K>>2]|0)+A|0)|0;c[Y>>2]=d[6864+B>>0];c[$>>2]=d[6920+A>>0];c[da>>2]=6976+(B*3|0);break}}while(0);j=c[e>>2]|0;l=(U<<3)+Fa+(M<<6)|0;n=j+l|0;l=j+(l+ba)|0;j=0;h=ia;o=0;while(1){g=h+4|0;f=c[g>>2]|0;if(f){yc(n,f,fa,ca);yc(l,c[g>>2]|0,fa,ca)}g=h+36|0;f=c[g>>2]|0;if(f){yc(n+Da|0,f,fa,ca);yc(l+Da|0,c[g>>2]|0,fa,ca)}m=h+16|0;g=h+20|0;f=c[g>>2]|0;if(f){yc(n+4|0,f,ga,ca);yc(l+4|0,c[g>>2]|0,ga,ca)}g=h+52|0;f=c[g>>2]|0;if(f){yc(n+W|0,f,ga,ca);yc(l+W|0,c[g>>2]|0,ga,ca)}g=c[h>>2]|0;k=h+8|0;f=c[k>>2]|0;do if((g|0)==(f|0)){if((g|0)!=(c[m>>2]|0)){ab=342;break}if((g|0)!=(c[h+24>>2]|0)){ab=342;break}if(!g)break;B=La+(j*12|0)|0;zc(n,g,B,ca);zc(l,c[h>>2]|0,B,ca)}else ab=342;while(0);do if((ab|0)==342){ab=0;if(g){f=La+(j*12|0)|0;Ac(n,g,f,ca);Ac(l,c[h>>2]|0,f,ca);f=c[k>>2]|0}if(f){B=La+(j*12|0)|0;Ac(n+2|0,f,B,ca);Ac(l+2|0,c[k>>2]|0,B,ca)}f=c[m>>2]|0;if(f){B=La+(j*12|0)|0;Ac(n+4|0,f,B,ca);Ac(l+4|0,c[m>>2]|0,B,ca)}g=h+24|0;f=c[g>>2]|0;if(!f)break;B=La+(j*12|0)|0;Ac(n+6|0,f,B,ca);Ac(l+6|0,c[g>>2]|0,B,ca)}while(0);o=o+1|0;if((o|0)==2)break;else{n=n+Ia|0;l=l+Ia|0;j=2;h=h+64|0}}}while(0);f=U+1|0;g=(f|0)==(ea|0);aa=(g&1)+aa|0;if(aa>>>0>=(c[ka>>2]|0)>>>0)break;else{U=g?0:f;V=V+216|0}}i=bb;return}function vc(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;l=a+28|0;y=b[a+32>>1]|0;if(!(y<<16>>16))e=(b[l>>1]|0)!=0?2:0;else e=2;c[d+32>>2]=e;z=b[a+34>>1]|0;x=z<<16>>16==0;if(x)e=(b[a+30>>1]|0)!=0?2:0;else e=2;c[d+40>>2]=e;A=b[a+40>>1]|0;v=A<<16>>16==0;if(v)e=(b[a+36>>1]|0)!=0?2:0;else e=2;c[d+48>>2]=e;f=b[a+42>>1]|0;w=f<<16>>16==0;if(w)e=(b[a+38>>1]|0)!=0?2:0;else e=2;c[d+56>>2]=e;s=b[a+44>>1]|0;if(!(s<<16>>16))e=y<<16>>16!=0?2:0;else e=2;c[d+64>>2]=e;t=b[a+46>>1]|0;p=t<<16>>16==0;if(p)e=z<<16>>16!=0?2:0;else e=2;c[d+72>>2]=e;u=b[a+52>>1]|0;q=u<<16>>16==0;if(q)e=A<<16>>16!=0?2:0;else e=2;c[d+80>>2]=e;g=b[a+54>>1]|0;r=g<<16>>16==0;if(r)e=f<<16>>16!=0?2:0;else e=2;c[d+88>>2]=e;m=b[a+48>>1]|0;if(!(m<<16>>16))e=s<<16>>16!=0?2:0;else e=2;c[d+96>>2]=e;n=b[a+50>>1]|0;h=n<<16>>16==0;if(h)e=t<<16>>16!=0?2:0;else e=2;c[d+104>>2]=e;o=b[a+56>>1]|0;j=o<<16>>16==0;if(j)f=u<<16>>16!=0?2:0;else f=2;c[d+112>>2]=f;k=(b[a+58>>1]|0)==0;if(k)f=g<<16>>16!=0?2:0;else f=2;c[d+120>>2]=f;g=b[a+30>>1]|0;if(!(g<<16>>16))f=(b[l>>1]|0)!=0?2:0;else f=2;c[d+12>>2]=f;e=b[a+36>>1]|0;if(!(e<<16>>16))f=g<<16>>16!=0?2:0;else f=2;c[d+20>>2]=f;if(!(b[a+38>>1]|0))e=e<<16>>16!=0?2:0;else e=2;c[d+28>>2]=e;if(x)e=y<<16>>16!=0?2:0;else e=2;c[d+44>>2]=e;if(v)e=z<<16>>16!=0?2:0;else e=2;c[d+52>>2]=e;if(w)e=A<<16>>16!=0?2:0;else e=2;c[d+60>>2]=e;if(p)e=s<<16>>16!=0?2:0;else e=2;c[d+76>>2]=e;if(q)e=t<<16>>16!=0?2:0;else e=2;c[d+84>>2]=e;if(r)e=u<<16>>16!=0?2:0;else e=2;c[d+92>>2]=e;if(h)e=m<<16>>16!=0?2:0;else e=2;c[d+108>>2]=e;if(j)e=n<<16>>16!=0?2:0;else e=2;c[d+116>>2]=e;if(!k){y=2;z=d+124|0;c[z>>2]=y;i=B;return}y=o<<16>>16!=0?2:0;z=d+124|0;c[z>>2]=y;i=B;return}function wc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;u=c[f+4>>2]|0;v=c[f+8>>2]|0;if(e>>>0<4){l=d[(c[f>>2]|0)+(e+-1)>>0]|0;n=0-l|0;m=l+1|0;k=4;while(1){f=b+-2|0;s=d[f>>0]|0;t=b+-1|0;r=d[t>>0]|0;q=d[b>>0]|0;j=b+1|0;h=d[j>>0]|0;o=r-q|0;if((((o|0)>-1?o:0-o|0)>>>0>>0?(o=s-r|0,((o|0)>-1?o:0-o|0)>>>0>>0):0)?(o=h-q|0,((o|0)>-1?o:0-o|0)>>>0>>0):0){e=d[b+-3>>0]|0;p=d[b+2>>0]|0;o=e-r|0;if(((o|0)>-1?o:0-o|0)>>>0>>0){a[f>>0]=(Oa(n,l,((r+1+q|0)>>>1)-(s<<1)+e>>1)|0)+s;f=m}else f=l;o=p-q|0;if(((o|0)>-1?o:0-o|0)>>>0>>0){a[j>>0]=(Oa(n,l,((r+1+q|0)>>>1)-(h<<1)+p>>1)|0)+h;f=f+1|0}j=Oa(0-f|0,f,s+4-h+(q-r<<2)>>3)|0;o=a[3472+((q|512)-j)>>0]|0;a[t>>0]=a[3472+((r|512)+j)>>0]|0;a[b>>0]=o}k=k+-1|0;if(!k)break;else b=b+g|0}i=w;return}t=(u>>>2)+2|0;s=4;while(1){k=b+-2|0;q=d[k>>0]|0;l=b+-1|0;r=d[l>>0]|0;m=d[b>>0]|0;e=b+1|0;n=d[e>>0]|0;f=r-m|0;f=(f|0)>-1?f:0-f|0;do if((f>>>0>>0?(o=q-r|0,((o|0)>-1?o:0-o|0)>>>0>>0):0)?(o=n-m|0,((o|0)>-1?o:0-o|0)>>>0>>0):0){h=b+-3|0;o=d[h>>0]|0;j=b+2|0;p=d[j>>0]|0;if(f>>>0>>0){f=o-r|0;if(((f|0)>-1?f:0-f|0)>>>0>>0){f=r+q+m|0;a[l>>0]=(n+4+(f<<1)+o|0)>>>3;a[k>>0]=(f+2+o|0)>>>2;a[h>>0]=(f+4+(o*3|0)+((d[b+-4>>0]|0)<<1)|0)>>>3}else a[l>>0]=(r+2+(q<<1)+n|0)>>>2;o=p-m|0;if(((o|0)>-1?o:0-o|0)>>>0>>0){o=m+r+n|0;a[b>>0]=(q+4+(o<<1)+p|0)>>>3;a[e>>0]=(o+2+p|0)>>>2;a[j>>0]=(o+4+(p*3|0)+((d[b+3>>0]|0)<<1)|0)>>>3;break}}else a[l>>0]=(r+2+(q<<1)+n|0)>>>2;a[b>>0]=(q+2+m+(n<<1)|0)>>>2}while(0);s=s+-1|0;if(!s)break;else b=b+g|0}i=w;return}function xc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=i;u=d[(c[f>>2]|0)+(e+-1)>>0]|0;w=0-g|0;v=w<<1;t=f+4|0;o=f+8|0;q=Z(g,-3)|0;s=0-u|0;p=u+1|0;r=g<<1;n=4;while(1){e=b+v|0;k=b+w|0;j=b+g|0;f=a[j>>0]|0;l=d[k>>0]|0;m=d[b>>0]|0;h=l-m|0;if((((h|0)>-1?h:0-h|0)>>>0<(c[t>>2]|0)>>>0?(y=d[e>>0]|0,h=y-l|0,x=c[o>>2]|0,((h|0)>-1?h:0-h|0)>>>0>>0):0)?(z=f&255,f=z-m|0,((f|0)>-1?f:0-f|0)>>>0>>0):0){f=d[b+q>>0]|0;h=f-l|0;if(((h|0)>-1?h:0-h|0)>>>0>>0){a[e>>0]=(Oa(s,u,((l+1+m|0)>>>1)-(y<<1)+f>>1)|0)+y;e=c[o>>2]|0;f=p}else{e=x;f=u}h=d[b+r>>0]|0;B=h-m|0;if(((B|0)>-1?B:0-B|0)>>>0>>0){a[j>>0]=(Oa(s,u,((l+1+m|0)>>>1)-(z<<1)+h>>1)|0)+z;f=f+1|0}f=Oa(0-f|0,f,4-z+(m-l<<2)+y>>3)|0;e=a[3472+((m|512)-f)>>0]|0;a[k>>0]=a[3472+((l|512)+f)>>0]|0;a[b>>0]=e}n=n+-1|0;if(!n)break;else b=b+1|0}i=A;return} +function ya(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function za(){return i|0}function Aa(a){a=a|0;i=a}function Ba(a,b){a=a|0;b=b|0;if(!m){m=a;n=b}}function Ca(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function Da(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function Ea(a){a=a|0;B=a}function Fa(){return B|0}function Ga(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;k=i;g=d[8+b>>0]|0;j=d[64+b>>0]|0;b=c[120+(j*12|0)>>2]<>2]<>2]<>2]=Z(c[a>>2]|0,b)|0;a:do if(!(f&65436)){if(f&98){n=a+4|0;l=Z(c[n>>2]|0,h)|0;j=a+20|0;m=Z(c[j>>2]|0,b)|0;e=a+24|0;g=Z(c[e>>2]|0,h)|0;h=c[a>>2]|0;b=(l>>1)-g|0;g=l+(g>>1)|0;l=m+h+32|0;f=l+g>>6;c[a>>2]=f;m=h-m+32|0;h=m+b>>6;c[n>>2]=h;b=m-b>>6;c[a+8>>2]=b;g=l-g>>6;c[a+12>>2]=g;c[a+48>>2]=f;c[a+32>>2]=f;c[a+16>>2]=f;c[a+52>>2]=h;c[a+36>>2]=h;c[j>>2]=h;c[a+56>>2]=b;c[a+40>>2]=b;c[e>>2]=b;c[a+60>>2]=g;c[a+44>>2]=g;c[a+28>>2]=g;if((f+512|0)>>>0>1023|(h+512|0)>>>0>1023|(b+512|0)>>>0>1023|(g+512|0)>>>0>1023)g=1;else break;i=k;return g|0}g=(c[a>>2]|0)+32>>6;if((g+512|0)>>>0>1023){m=1;i=k;return m|0}else{c[a+60>>2]=g;c[a+56>>2]=g;c[a+52>>2]=g;c[a+48>>2]=g;c[a+44>>2]=g;c[a+40>>2]=g;c[a+36>>2]=g;c[a+32>>2]=g;c[a+28>>2]=g;c[a+24>>2]=g;c[a+20>>2]=g;c[a+16>>2]=g;c[a+12>>2]=g;c[a+8>>2]=g;c[a+4>>2]=g;c[a>>2]=g;break}}else{z=a+4|0;s=a+56|0;w=a+60|0;t=c[w>>2]|0;u=Z(c[z>>2]|0,h)|0;c[s>>2]=Z(c[s>>2]|0,h)|0;c[w>>2]=Z(t,g)|0;w=a+8|0;t=c[w>>2]|0;s=a+16|0;y=Z(c[a+20>>2]|0,b)|0;o=Z(c[s>>2]|0,g)|0;q=a+12|0;p=c[q>>2]|0;f=Z(c[a+32>>2]|0,h)|0;e=Z(c[a+24>>2]|0,h)|0;r=c[a+28>>2]|0;j=Z(c[a+48>>2]|0,g)|0;n=Z(c[a+36>>2]|0,h)|0;l=c[a+44>>2]|0;m=Z(c[a+40>>2]|0,g)|0;g=Z(c[a+52>>2]|0,h)|0;x=c[a>>2]|0;v=y+x|0;y=x-y|0;x=(u>>1)-e|0;u=(e>>1)+u|0;e=u+v|0;c[a>>2]=e;c[z>>2]=x+y;c[w>>2]=y-x;c[q>>2]=v-u;q=Z(h,r+t|0)|0;r=Z(t-r|0,h)|0;h=(o>>1)-j|0;o=(j>>1)+o|0;j=o+q|0;c[s>>2]=j;c[a+20>>2]=h+r;c[a+24>>2]=r-h;c[a+28>>2]=q-o;o=Z(b,l+p|0)|0;b=Z(p-l|0,b)|0;l=(f>>1)-g|0;f=(g>>1)+f|0;h=f+o|0;c[a+32>>2]=h;c[a+36>>2]=l+b;c[a+40>>2]=b-l;c[a+44>>2]=o-f;f=a+56|0;o=c[f>>2]|0;l=o+n|0;o=n-o|0;b=a+60|0;g=c[b>>2]|0;n=(m>>1)-g|0;m=(g>>1)+m|0;g=m+l|0;c[a+48>>2]=g;c[a+52>>2]=n+o;c[f>>2]=o-n;c[b>>2]=l-m;b=j;j=3;while(1){v=(b>>1)-g|0;g=(g>>1)+b|0;w=h+e+32|0;x=w+g>>6;c[a>>2]=x;b=e-h+32|0;y=b+v>>6;c[a+16>>2]=y;b=b-v>>6;c[a+32>>2]=b;g=w-g>>6;c[a+48>>2]=g;if((x+512|0)>>>0>1023|(y+512|0)>>>0>1023){g=1;b=14;break}if((b+512|0)>>>0>1023|(g+512|0)>>>0>1023){g=1;b=14;break}f=a+4|0;if(!j)break a;e=c[f>>2]|0;h=c[a+36>>2]|0;b=c[a+20>>2]|0;g=c[a+52>>2]|0;a=f;j=j+-1|0}if((b|0)==14){i=k;return g|0}}while(0);y=0;i=k;return y|0}function Ha(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;B=i;e=a[64+d>>0]|0;s=a[8+d>>0]|0;D=b+8|0;u=c[D>>2]|0;j=c[b+20>>2]|0;q=b+16|0;y=c[q>>2]|0;r=b+32|0;z=c[r>>2]|0;E=b+12|0;v=c[E>>2]|0;f=c[b+24>>2]|0;m=c[b+28>>2]|0;o=b+48|0;g=c[o>>2]|0;C=c[b+36>>2]|0;A=c[b+40>>2]|0;F=c[b+44>>2]|0;h=c[b+52>>2]|0;p=c[b>>2]|0;l=j+p|0;j=p-j|0;p=b+4|0;x=c[p>>2]|0;t=x-f|0;x=f+x|0;f=x+l|0;c[b>>2]=f;k=t+j|0;c[p>>2]=k;t=j-t|0;c[D>>2]=t;x=l-x|0;c[E>>2]=x;E=m+u|0;m=u-m|0;u=y-g|0;y=g+y|0;g=y+E|0;c[q>>2]=g;l=u+m|0;c[b+20>>2]=l;u=m-u|0;c[b+24>>2]=u;y=E-y|0;c[b+28>>2]=y;E=F+v|0;F=v-F|0;v=z-h|0;z=h+z|0;h=z+E|0;c[b+32>>2]=h;m=v+F|0;c[b+36>>2]=m;v=F-v|0;c[b+40>>2]=v;z=E-z|0;c[b+44>>2]=z;E=b+56|0;F=c[E>>2]|0;D=F+C|0;F=C-F|0;C=b+60|0;j=c[C>>2]|0;w=A-j|0;A=j+A|0;j=A+D|0;c[b+48>>2]=j;n=w+F|0;c[b+52>>2]=n;w=F-w|0;c[E>>2]=w;A=D-A|0;c[C>>2]=A;s=s&255;e=c[120+((e&255)*12|0)>>2]|0;if(d>>>0>11){d=e<>2]=Z(e+s|0,d)|0;c[q>>2]=Z(f+h|0,d)|0;c[r>>2]=Z(h-f|0,d)|0;c[o>>2]=Z(s-e|0,d)|0;r=m+k|0;e=k-m|0;q=l-n|0;s=n+l|0;c[p>>2]=Z(s+r|0,d)|0;c[b+20>>2]=Z(q+e|0,d)|0;c[b+36>>2]=Z(e-q|0,d)|0;c[b+52>>2]=Z(r-s|0,d)|0;s=v+t|0;t=t-v|0;v=u-w|0;w=w+u|0;c[b+8>>2]=Z(w+s|0,d)|0;c[b+24>>2]=Z(v+t|0,d)|0;c[b+40>>2]=Z(t-v|0,d)|0;c[b+56>>2]=Z(s-w|0,d)|0;w=z+x|0;v=x-z|0;x=y-A|0;y=A+y|0;c[b+12>>2]=Z(y+w|0,d)|0;c[b+28>>2]=Z(x+v|0,d)|0;c[b+44>>2]=Z(v-x|0,d)|0;c[b+60>>2]=Z(w-y|0,d)|0;i=B;return}else{C=(d+-6|0)>>>0<6?1:2;d=2-s|0;s=h+f|0;D=f-h|0;h=g-j|0;f=j+g|0;c[b>>2]=(Z(f+s|0,e)|0)+C>>d;c[q>>2]=(Z(h+D|0,e)|0)+C>>d;c[r>>2]=(Z(D-h|0,e)|0)+C>>d;c[o>>2]=(Z(s-f|0,e)|0)+C>>d;r=m+k|0;f=k-m|0;q=l-n|0;s=n+l|0;c[p>>2]=(Z(s+r|0,e)|0)+C>>d;c[b+20>>2]=(Z(q+f|0,e)|0)+C>>d;c[b+36>>2]=(Z(f-q|0,e)|0)+C>>d;c[b+52>>2]=(Z(r-s|0,e)|0)+C>>d;s=v+t|0;t=t-v|0;v=u-w|0;w=w+u|0;c[b+8>>2]=(Z(w+s|0,e)|0)+C>>d;c[b+24>>2]=(Z(v+t|0,e)|0)+C>>d;c[b+40>>2]=(Z(t-v|0,e)|0)+C>>d;c[b+56>>2]=(Z(s-w|0,e)|0)+C>>d;w=z+x|0;v=x-z|0;x=y-A|0;y=A+y|0;c[b+12>>2]=(Z(y+w|0,e)|0)+C>>d;c[b+28>>2]=(Z(x+v|0,e)|0)+C>>d;c[b+44>>2]=(Z(v-x|0,e)|0)+C>>d;c[b+60>>2]=(Z(w-y|0,e)|0)+C>>d;i=B;return}}function Ia(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=c[120+((d[64+b>>0]|0)*12|0)>>2]|0;if(b>>>0>5){e=e<<(d[8+b>>0]|0)+-1;b=0}else b=1;k=c[a>>2]|0;g=a+8|0;h=c[g>>2]|0;m=h+k|0;h=k-h|0;k=a+4|0;j=c[k>>2]|0;l=a+12|0;f=c[l>>2]|0;i=j-f|0;j=f+j|0;c[a>>2]=(Z(j+m|0,e)|0)>>b;c[k>>2]=(Z(m-j|0,e)|0)>>b;c[g>>2]=(Z(i+h|0,e)|0)>>b;c[l>>2]=(Z(h-i|0,e)|0)>>b;l=a+16|0;i=c[l>>2]|0;h=a+24|0;g=c[h>>2]|0;k=g+i|0;g=i-g|0;i=a+20|0;j=c[i>>2]|0;a=a+28|0;m=c[a>>2]|0;f=j-m|0;j=m+j|0;c[l>>2]=(Z(j+k|0,e)|0)>>b;c[i>>2]=(Z(k-j|0,e)|0)>>b;c[h>>2]=(Z(f+g|0,e)|0)>>b;c[a>>2]=(Z(g-f|0,e)|0)>>b;return}function Ja(a,b){a=a|0;b=b|0;var c=0,d=0;d=i;b=1<>>1}while((c|0)!=0&(c&a|0)==0);i=d;return b|0}function Ka(a){a=a|0;var b=0,d=0;d=i;b=8-(c[a+8>>2]|0)|0;a=jb(a,b)|0;if((a|0)==-1){a=1;i=d;return a|0}a=(a|0)!=(c[400+(b+-1<<2)>>2]|0)&1;i=d;return a|0}function La(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;f=c[a+12>>2]<<3;e=c[a+16>>2]|0;b=f-e|0;if((f|0)==(e|0)){a=0;i=d;return a|0}if(b>>>0>8){a=1;i=d;return a|0}else{a=((kb(a)|0)>>>(32-b|0)|0)!=(1<>2]|0;do{d=d+1|0;if(d>>>0>=b>>>0)break}while((c[a+(d<<2)>>2]|0)!=(e|0));i=f;return ((d|0)==(b|0)?0:d)|0}function Na(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=c[a+4>>2]|0;f=(b>>>0)%(e>>>0)|0;d=b-f|0;b=Z(c[a+8>>2]|0,e)|0;e=c[a>>2]|0;c[a+12>>2]=e+((d<<8)+(f<<4));d=(f<<3)+(b<<8)+(d<<6)|0;c[a+16>>2]=e+d;c[a+20>>2]=e+(d+(b<<6));return}function Oa(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)>=(a|0))a=(c|0)>(b|0)?b:c;return a|0}function Pa(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;a:do if(((e>>>0>3?(a[b>>0]|0)==0:0)?(a[b+1>>0]|0)==0:0)?(h=a[b+2>>0]|0,(h&255)<2):0){b:do if((e|0)!=3){p=-3;q=3;k=b+3|0;j=2;while(1){if(h<<24>>24)if(h<<24>>24==1&j>>>0>1){o=q;h=0;m=0;l=0;break}else j=0;else j=j+1|0;l=q+1|0;if((l|0)==(e|0))break b;h=a[k>>0]|0;p=~q;q=l;k=k+1|0}while(1){r=a[k>>0]|0;n=o+1|0;j=r<<24>>24!=0;l=(j&1^1)+l|0;h=r<<24>>24==3&(l|0)==2?1:h;if(r<<24>>24==1&l>>>0>1){r=14;break}if(j){m=l>>>0>2?1:m;l=0}if((n|0)==(e|0)){r=18;break}else{o=n;k=k+1|0}}if((r|0)==14){n=p+o-l|0;c[f+12>>2]=n;j=q;l=l-(l>>>0<3?l:3)|0;break a}else if((r|0)==18){n=p+e-l|0;c[f+12>>2]=n;j=q;break a}}while(0);c[g>>2]=e;q=1;i=s;return q|0}else r=19;while(0);if((r|0)==19){c[f+12>>2]=e;n=e;h=1;j=0;m=0;l=0}k=b+j|0;c[f>>2]=k;c[f+4>>2]=k;c[f+8>>2]=0;c[f+16>>2]=0;o=f+12|0;c[g>>2]=l+j+n;if(m){q=1;i=s;return q|0}if(!h){q=0;i=s;return q|0}l=c[o>>2]|0;h=k;m=k;j=0;c:while(1){while(1){q=l;l=l+-1|0;if(!q){r=31;break c}k=a[h>>0]|0;if((j|0)!=2)break;if(k<<24>>24!=3){r=29;break}if(!l){h=1;r=32;break c}h=h+1|0;if((d[h>>0]|0)>3){h=1;r=32;break c}else j=0}if((r|0)==29){r=0;if((k&255)<3){h=1;r=32;break}else j=2}a[m>>0]=k;h=h+1|0;m=m+1|0;j=k<<24>>24==0?j+1|0:0}if((r|0)==31){c[o>>2]=m-h+(c[o>>2]|0);q=0;i=s;return q|0}else if((r|0)==32){i=s;return h|0}return 0}function Qa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+16|0;n=o;id(b,0,92);f=jb(a,8)|0;a:do if((((f|0)!=-1?(c[b>>2]=f,jb(a,1)|0,jb(a,1)|0,(jb(a,1)|0)!=-1):0)?(jb(a,5)|0)!=-1:0)?(e=jb(a,8)|0,(e|0)!=-1):0){m=b+4|0;c[m>>2]=e;f=b+8|0;d=nb(a,f)|0;if(!d)if((c[f>>2]|0)>>>0<=31){d=nb(a,n)|0;if(!d){f=c[n>>2]|0;if(f>>>0<=12){c[b+12>>2]=1<>2]|0;if(f>>>0<=2){c[b+16>>2]=f;b:do if(!f){d=nb(a,n)|0;if(d)break a;f=c[n>>2]|0;if(f>>>0>12){d=1;break a}c[b+20>>2]=1<>2]=(f|0)==1&1;d=ob(a,b+28|0)|0;if(d)break a;d=ob(a,b+32|0)|0;if(d)break a;h=b+36|0;d=nb(a,h)|0;if(d)break a;f=c[h>>2]|0;if(f>>>0>255){d=1;break a}if(!f){c[b+40>>2]=0;break}f=fd(f<<2)|0;g=b+40|0;c[g>>2]=f;if(!f){d=65535;break a}if(c[h>>2]|0){e=0;while(1){d=ob(a,f+(e<<2)|0)|0;e=e+1|0;if(d)break a;if(e>>>0>=(c[h>>2]|0)>>>0)break b;f=c[g>>2]|0}}}while(0);l=b+44|0;d=nb(a,l)|0;if(!d)if((c[l>>2]|0)>>>0<=16?(k=jb(a,1)|0,(k|0)!=-1):0){c[b+48>>2]=(k|0)==1&1;d=nb(a,n)|0;if(!d){e=b+52|0;c[e>>2]=(c[n>>2]|0)+1;d=nb(a,n)|0;if(!d){k=b+56|0;c[k>>2]=(c[n>>2]|0)+1;h=jb(a,1)|0;if((!((h|0)==0|(h|0)==-1)?(jb(a,1)|0)!=-1:0)?(j=jb(a,1)|0,(j|0)!=-1):0){j=(j|0)==1;c[b+60>>2]=j&1;if(j){j=b+64|0;d=nb(a,j)|0;if(d)break;f=b+68|0;d=nb(a,f)|0;if(d)break;h=b+72|0;d=nb(a,h)|0;if(d)break;g=b+76|0;d=nb(a,g)|0;if(d)break;e=c[e>>2]|0;if((c[j>>2]|0)>((e<<3)+~c[f>>2]|0)){d=1;break}f=c[k>>2]|0;if((c[h>>2]|0)>((f<<3)+~c[g>>2]|0)){d=1;break}}else{e=c[e>>2]|0;f=c[k>>2]|0}d=Z(f,e)|0;do switch(c[m>>2]|0){case 11:{f=396;e=345600;g=58;break}case 12:{f=396;e=912384;g=58;break}case 13:{f=396;e=912384;g=58;break}case 20:{f=396;e=912384;g=58;break}case 21:{f=792;e=1824768;g=58;break}case 22:{f=1620;e=3110400;g=58;break}case 30:{f=1620;e=3110400;g=58;break}case 31:{f=3600;e=6912e3;g=58;break}case 32:{f=5120;e=7864320;g=58;break}case 40:{f=8192;e=12582912;g=58;break}case 41:{f=8192;e=12582912;g=58;break}case 42:{f=8704;e=13369344;g=58;break}case 50:{f=22080;e=42393600;g=58;break}case 51:{f=36864;e=70778880;g=58;break}case 10:{f=99;e=152064;g=58;break}default:g=60}while(0);do if((g|0)==58){if(f>>>0>>0){g=60;break}e=(e>>>0)/((d*384|0)>>>0)|0;e=e>>>0<16?e:16;c[n>>2]=e;f=c[l>>2]|0;if(f>>>0>e>>>0){e=f;g=61}}while(0);if((g|0)==60){c[n>>2]=2147483647;e=c[l>>2]|0;g=61}if((g|0)==61)c[n>>2]=e;g=b+88|0;c[g>>2]=e;e=jb(a,1)|0;if((e|0)==-1){d=1;break}n=(e|0)==1;c[b+80>>2]=n&1;do if(n){e=fd(952)|0;f=b+84|0;c[f>>2]=e;if(!e){d=65535;break a}d=Ec(a,e)|0;if(d)break a;d=c[f>>2]|0;if(!(c[d+920>>2]|0))break;e=c[d+948>>2]|0;if((c[d+944>>2]|0)>>>0>e>>>0){d=1;break a}if(e>>>0<(c[l>>2]|0)>>>0){d=1;break a}if(e>>>0>(c[g>>2]|0)>>>0){d=1;break a}c[g>>2]=(e|0)==0?1:e}while(0);Ka(a)|0;d=0}else d=1}}}else d=1}else d=1}}else d=1}}else d=1}else d=1;while(0);i=o;return d|0}function Ra(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;if((c[a>>2]|0)!=(c[b>>2]|0)){d=1;i=j;return d|0}if((c[a+4>>2]|0)!=(c[b+4>>2]|0)){d=1;i=j;return d|0}if((c[a+12>>2]|0)!=(c[b+12>>2]|0)){d=1;i=j;return d|0}d=c[a+16>>2]|0;if((d|0)!=(c[b+16>>2]|0)){d=1;i=j;return d|0}if((c[a+44>>2]|0)!=(c[b+44>>2]|0)){d=1;i=j;return d|0}if((c[a+48>>2]|0)!=(c[b+48>>2]|0)){d=1;i=j;return d|0}if((c[a+52>>2]|0)!=(c[b+52>>2]|0)){d=1;i=j;return d|0}if((c[a+56>>2]|0)!=(c[b+56>>2]|0)){d=1;i=j;return d|0}h=c[a+60>>2]|0;if((h|0)!=(c[b+60>>2]|0)){d=1;i=j;return d|0}if((c[a+80>>2]|0)!=(c[b+80>>2]|0)){d=1;i=j;return d|0}a:do if(!d){if((c[a+20>>2]|0)!=(c[b+20>>2]|0)){d=1;i=j;return d|0}}else if((d|0)==1){if((c[a+24>>2]|0)!=(c[b+24>>2]|0)){d=1;i=j;return d|0}if((c[a+28>>2]|0)!=(c[b+28>>2]|0)){d=1;i=j;return d|0}if((c[a+32>>2]|0)!=(c[b+32>>2]|0)){d=1;i=j;return d|0}d=c[a+36>>2]|0;if((d|0)!=(c[b+36>>2]|0)){d=1;i=j;return d|0}if(d){e=c[a+40>>2]|0;f=c[b+40>>2]|0;g=0;while(1){if((c[e+(g<<2)>>2]|0)!=(c[f+(g<<2)>>2]|0)){d=1;break}g=g+1|0;if(g>>>0>=d>>>0)break a}i=j;return d|0}}while(0);if(h){if((c[a+64>>2]|0)!=(c[b+64>>2]|0)){d=1;i=j;return d|0}if((c[a+68>>2]|0)!=(c[b+68>>2]|0)){d=1;i=j;return d|0}if((c[a+72>>2]|0)!=(c[b+72>>2]|0)){d=1;i=j;return d|0}if((c[a+76>>2]|0)!=(c[b+76>>2]|0)){d=1;i=j;return d|0}}d=0;i=j;return d|0}function Sa(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;j=l+4|0;k=l;id(b,0,72);d=nb(a,b)|0;if(d){i=l;return d|0}if((c[b>>2]|0)>>>0>255){d=1;i=l;return d|0}e=b+4|0;d=nb(a,e)|0;if(d){i=l;return d|0}if((c[e>>2]|0)>>>0>31){d=1;i=l;return d|0}if(jb(a,1)|0){d=1;i=l;return d|0}d=jb(a,1)|0;if((d|0)==-1){d=1;i=l;return d|0}c[b+8>>2]=(d|0)==1&1;d=nb(a,j)|0;if(d){i=l;return d|0}d=(c[j>>2]|0)+1|0;h=b+12|0;c[h>>2]=d;if(d>>>0>8){d=1;i=l;return d|0}a:do if(d>>>0>1){d=b+16|0;e=nb(a,d)|0;if(e){d=e;i=l;return d|0}d=c[d>>2]|0;if(d>>>0>6){d=1;i=l;return d|0}switch(d|0){case 5:case 4:case 3:{d=jb(a,1)|0;if((d|0)==-1){d=1;i=l;return d|0}c[b+32>>2]=(d|0)==1&1;d=nb(a,j)|0;if(!d){c[b+36>>2]=(c[j>>2]|0)+1;break a}else{i=l;return d|0}}case 0:{d=fd(c[h>>2]<<2)|0;f=b+20|0;c[f>>2]=d;if(!d){d=65535;i=l;return d|0}if(!(c[h>>2]|0))break a;else e=0;while(1){d=nb(a,j)|0;if(d)break;c[(c[f>>2]|0)+(e<<2)>>2]=(c[j>>2]|0)+1;e=e+1|0;if(e>>>0>=(c[h>>2]|0)>>>0)break a}i=l;return d|0}case 2:{e=b+24|0;c[e>>2]=fd((c[h>>2]<<2)+-4|0)|0;d=fd((c[h>>2]<<2)+-4|0)|0;g=b+28|0;c[g>>2]=d;if((c[e>>2]|0)==0|(d|0)==0){d=65535;i=l;return d|0}if((c[h>>2]|0)==1)break a;else f=0;while(1){d=nb(a,j)|0;if(d){e=46;break}c[(c[e>>2]|0)+(f<<2)>>2]=c[j>>2];d=nb(a,j)|0;if(d){e=46;break}c[(c[g>>2]|0)+(f<<2)>>2]=c[j>>2];f=f+1|0;if(f>>>0>=((c[h>>2]|0)+-1|0)>>>0)break a}if((e|0)==46){i=l;return d|0}break}case 6:{d=nb(a,j)|0;if(d){i=l;return d|0}e=(c[j>>2]|0)+1|0;d=b+40|0;c[d>>2]=e;e=fd(e<<2)|0;g=b+44|0;c[g>>2]=e;if(!e){d=65535;i=l;return d|0}f=c[432+((c[h>>2]|0)+-1<<2)>>2]|0;if(!(c[d>>2]|0))break a;else e=0;while(1){m=jb(a,f)|0;c[(c[g>>2]|0)+(e<<2)>>2]=m;e=e+1|0;if(m>>>0>=(c[h>>2]|0)>>>0){d=1;break}if(e>>>0>=(c[d>>2]|0)>>>0)break a}i=l;return d|0}default:break a}}while(0);d=nb(a,j)|0;if(d){a=d;i=l;return a|0}d=c[j>>2]|0;if(d>>>0>31){a=1;i=l;return a|0}c[b+48>>2]=d+1;d=nb(a,j)|0;if(d){a=d;i=l;return a|0}if((c[j>>2]|0)>>>0>31){a=1;i=l;return a|0}if(jb(a,1)|0){a=1;i=l;return a|0}if((jb(a,2)|0)>>>0>2){a=1;i=l;return a|0}d=ob(a,k)|0;if(d){a=d;i=l;return a|0}d=(c[k>>2]|0)+26|0;if(d>>>0>51){a=1;i=l;return a|0}c[b+52>>2]=d;d=ob(a,k)|0;if(d){a=d;i=l;return a|0}if(((c[k>>2]|0)+26|0)>>>0>51){a=1;i=l;return a|0}d=ob(a,k)|0;if(d){a=d;i=l;return a|0}d=c[k>>2]|0;if((d+12|0)>>>0>24){a=1;i=l;return a|0}c[b+56>>2]=d;d=jb(a,1)|0;if((d|0)==-1){a=1;i=l;return a|0}c[b+60>>2]=(d|0)==1&1;d=jb(a,1)|0;if((d|0)==-1){a=1;i=l;return a|0}c[b+64>>2]=(d|0)==1&1;d=jb(a,1)|0;if((d|0)==-1){a=1;i=l;return a|0}c[b+68>>2]=(d|0)==1&1;Ka(a)|0;a=0;i=l;return a|0}function Ta(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+32|0;s=w+20|0;q=w+16|0;o=w+12|0;l=w+8|0;v=w+4|0;t=w;id(b,0,988);u=Z(c[d+56>>2]|0,c[d+52>>2]|0)|0;k=nb(a,v)|0;if(k){f=k;i=w;return f|0}n=c[v>>2]|0;c[b>>2]=n;if(n>>>0>=u>>>0){f=1;i=w;return f|0}k=nb(a,v)|0;if(k){f=k;i=w;return f|0}k=c[v>>2]|0;m=b+4|0;c[m>>2]=k;if((k|0)==5|(k|0)==0)j=5;else if(!((k|0)==7|(k|0)==2)){f=1;i=w;return f|0}if((j|0)==5){if((c[f>>2]|0)==5){f=1;i=w;return f|0}if(!(c[d+44>>2]|0)){f=1;i=w;return f|0}}k=nb(a,v)|0;if(k){f=k;i=w;return f|0}n=c[v>>2]|0;c[b+8>>2]=n;if((n|0)!=(c[e>>2]|0)){f=1;i=w;return f|0}n=d+12|0;k=c[n>>2]|0;j=0;while(1)if(!(k>>>j))break;else j=j+1|0;k=jb(a,j+-1|0)|0;if((k|0)==-1){f=1;i=w;return f|0}j=(c[f>>2]|0)==5;if(j&(k|0)!=0){f=1;i=w;return f|0}c[b+12>>2]=k;if(j){k=nb(a,v)|0;if(k){f=k;i=w;return f|0}k=c[v>>2]|0;c[b+16>>2]=k;if(k>>>0>65535){f=1;i=w;return f|0}}g=d+16|0;k=c[g>>2]|0;if(!k){h=d+20|0;k=c[h>>2]|0;j=0;while(1)if(!(k>>>j))break;else j=j+1|0;k=jb(a,j+-1|0)|0;if((k|0)==-1){f=1;i=w;return f|0}j=b+20|0;c[j>>2]=k;do if(c[e+8>>2]|0){k=ob(a,t)|0;if(!k){c[b+24>>2]=c[t>>2];break}else{f=k;i=w;return f|0}}while(0);if((c[f>>2]|0)==5){k=c[j>>2]|0;if(k>>>0>(c[h>>2]|0)>>>1>>>0){f=1;i=w;return f|0}j=c[b+24>>2]|0;if((k|0)!=(((j|0)>0?0:0-j|0)|0)){f=1;i=w;return f|0}}k=c[g>>2]|0}if((k|0)==1?(c[d+24>>2]|0)==0:0){k=ob(a,t)|0;if(k){f=k;i=w;return f|0}k=b+28|0;c[k>>2]=c[t>>2];do if(c[e+8>>2]|0){j=ob(a,t)|0;if(!j){c[b+32>>2]=c[t>>2];break}else{f=j;i=w;return f|0}}while(0);if((c[f>>2]|0)==5?(j=c[k>>2]|0,k=(c[d+32>>2]|0)+j+(c[b+32>>2]|0)|0,(((j|0)<(k|0)?j:k)|0)!=0):0){f=1;i=w;return f|0}}if(c[e+68>>2]|0){k=nb(a,v)|0;if(k){f=k;i=w;return f|0}k=c[v>>2]|0;c[b+36>>2]=k;if(k>>>0>127){f=1;i=w;return f|0}}k=c[m>>2]|0;if((k|0)==5|(k|0)==0){k=jb(a,1)|0;if((k|0)==-1){f=1;i=w;return f|0}c[b+40>>2]=k;do if(!k){k=c[e+48>>2]|0;if(k>>>0>16){f=1;i=w;return f|0}else{c[b+44>>2]=k;break}}else{k=nb(a,v)|0;if(k){f=k;i=w;return f|0}k=c[v>>2]|0;if(k>>>0>15){f=1;i=w;return f|0}else{c[b+44>>2]=k+1;break}}while(0);k=c[m>>2]|0}do if((k|0)==5|(k|0)==0){g=c[b+44>>2]|0;j=c[n>>2]|0;k=jb(a,1)|0;if((k|0)==-1){f=1;i=w;return f|0}c[b+68>>2]=k;if(k){h=0;a:while(1){if(h>>>0>g>>>0){r=1;j=110;break}k=nb(a,l)|0;if(k){r=k;j=110;break}k=c[l>>2]|0;if(k>>>0>3){r=1;j=110;break}c[b+(h*12|0)+72>>2]=k;do if(k>>>0<2){k=nb(a,o)|0;if(k){r=k;j=110;break a}k=c[o>>2]|0;if(k>>>0>=j>>>0){r=1;j=110;break a}c[b+(h*12|0)+76>>2]=k+1}else{if((k|0)!=2)break;k=nb(a,o)|0;if(k){r=k;j=110;break a}c[b+(h*12|0)+80>>2]=c[o>>2]}while(0);if((c[l>>2]|0)==3){j=61;break}else h=h+1|0}if((j|0)==61){if(!h)r=1;else break;i=w;return r|0}else if((j|0)==110){i=w;return r|0}}}while(0);do if(c[f+4>>2]|0){n=c[d+44>>2]|0;f=(c[f>>2]|0)==5;k=jb(a,1)|0;j=(k|0)==-1;if(f){if(j){f=1;i=w;return f|0}c[b+276>>2]=k;g=jb(a,1)|0;if((g|0)==-1){f=1;i=w;return f|0}c[b+280>>2]=g;if((n|0)!=0|(g|0)==0)break;else r=1;i=w;return r|0}if(j){f=1;i=w;return f|0}c[b+284>>2]=k;if(k){j=(n<<1)+2|0;h=0;d=0;g=0;l=0;m=0;while(1){if(h>>>0>j>>>0){r=1;j=110;break}k=nb(a,q)|0;if(k){r=k;j=110;break}k=c[q>>2]|0;if(k>>>0>6){r=1;j=110;break}c[b+(h*20|0)+288>>2]=k;if((k&-3|0)==1){k=nb(a,s)|0;if(k){r=k;j=110;break}c[b+(h*20|0)+292>>2]=(c[s>>2]|0)+1;k=c[q>>2]|0}if((k|0)==2){k=nb(a,s)|0;if(k){r=k;j=110;break}c[b+(h*20|0)+296>>2]=c[s>>2];k=c[q>>2]|0}if((k|0)==3|(k|0)==6){k=nb(a,s)|0;if(k){r=k;j=110;break}c[b+(h*20|0)+300>>2]=c[s>>2];k=c[q>>2]|0}if((k|0)==4){k=nb(a,s)|0;if(k){r=k;j=110;break}k=c[s>>2]|0;if(k>>>0>n>>>0){r=1;j=110;break}if(!k)c[b+(h*20|0)+304>>2]=65535;else c[b+(h*20|0)+304>>2]=k+-1;k=c[q>>2]|0;p=g+1|0}else p=g;l=((k|0)==5&1)+l|0;d=((k|0)!=0&k>>>0<4&1)+d|0;m=((k|0)==6&1)+m|0;if(!k){j=90;break}else{h=h+1|0;g=p}}if((j|0)==90){if(p>>>0>1|l>>>0>1|m>>>0>1){f=1;i=w;return f|0}if((d|0)!=0&(l|0)!=0)r=1;else break;i=w;return r|0}else if((j|0)==110){i=w;return r|0}}}while(0);g=ob(a,t)|0;if(g){f=g;i=w;return f|0}f=c[t>>2]|0;c[b+48>>2]=f;f=f+(c[e+52>>2]|0)|0;c[t>>2]=f;if(f>>>0>51){f=1;i=w;return f|0}do if(c[e+60>>2]|0){g=nb(a,v)|0;if(g){f=g;i=w;return f|0}g=c[v>>2]|0;c[b+52>>2]=g;if(g>>>0>2){f=1;i=w;return f|0}if((g|0)==1)break;g=ob(a,t)|0;if(g){f=g;i=w;return f|0}g=c[t>>2]|0;if((g+6|0)>>>0>12){f=1;i=w;return f|0}c[b+56>>2]=g<<1;g=ob(a,t)|0;if(g){f=g;i=w;return f|0}g=c[t>>2]|0;if((g+6|0)>>>0>12){f=1;i=w;return f|0}else{c[b+60>>2]=g<<1;break}}while(0);do if((c[e+12>>2]|0)>>>0>1?((c[e+16>>2]|0)+-3|0)>>>0<3:0){k=e+36|0;j=c[k>>2]|0;j=(((u>>>0)%(j>>>0)|0|0)==0?1:2)+((u>>>0)/(j>>>0)|0)|0;h=0;while(1){g=h+1|0;if(!(-1<>2]=g;if((g|0)==-1){f=1;i=w;return f|0}c[b+64>>2]=g;f=c[k>>2]|0;if(g>>>0>(((u+-1+f|0)>>>0)/(f>>>0)|0)>>>0)r=1;else break;i=w;return r|0}while(0);f=0;i=w;return f|0}function Ua(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+32|0;e=f+20|0;d=f;c[d+0>>2]=c[a+0>>2];c[d+4>>2]=c[a+4>>2];c[d+8>>2]=c[a+8>>2];c[d+12>>2]=c[a+12>>2];c[d+16>>2]=c[a+16>>2];a=nb(d,e)|0;if(!a){a=nb(d,e)|0;if(!a){a=nb(d,e)|0;if(!a){a=c[e>>2]|0;if(a>>>0>255)a=1;else{c[b>>2]=a;a=0}}}}i=f;return a|0}function Va(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+32|0;e=g+20|0;f=g;c[f+0>>2]=c[a+0>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];a=nb(f,e)|0;if(a){i=g;return a|0}a=nb(f,e)|0;if(a){i=g;return a|0}a=nb(f,e)|0;if(!a)a=0;else{i=g;return a|0}while(1)if(!(b>>>a))break;else a=a+1|0;a=jb(f,a+-1|0)|0;if((a|0)==-1){a=1;i=g;return a|0}c[d>>2]=a;a=0;i=g;return a|0}function Wa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+32|0;f=h+20|0;g=h;if((d|0)!=5){d=1;i=h;return d|0};c[g+0>>2]=c[a+0>>2];c[g+4>>2]=c[a+4>>2];c[g+8>>2]=c[a+8>>2];c[g+12>>2]=c[a+12>>2];c[g+16>>2]=c[a+16>>2];d=nb(g,f)|0;if(d){i=h;return d|0}d=nb(g,f)|0;if(d){i=h;return d|0}d=nb(g,f)|0;if(!d)d=0;else{i=h;return d|0}while(1)if(!(b>>>d))break;else d=d+1|0;if((jb(g,d+-1|0)|0)==-1){d=1;i=h;return d|0}d=nb(g,e)|0;i=h;return d|0}function Xa(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;h=k+20|0;j=k;c[j+0>>2]=c[a+0>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[j+16>>2]=c[a+16>>2];a=nb(j,h)|0;if(a){f=a;i=k;return f|0}a=nb(j,h)|0;if(a){f=a;i=k;return f|0}a=nb(j,h)|0;if(a){f=a;i=k;return f|0}a=c[b+12>>2]|0;f=0;while(1)if(!(a>>>f))break;else f=f+1|0;if((jb(j,f+-1|0)|0)==-1){f=1;i=k;return f|0}if((d|0)==5?(g=nb(j,h)|0,(g|0)!=0):0){f=g;i=k;return f|0}f=c[b+20>>2]|0;a=0;while(1)if(!(f>>>a))break;else a=a+1|0;f=jb(j,a+-1|0)|0;if((f|0)==-1){f=1;i=k;return f|0}c[e>>2]=f;f=0;i=k;return f|0}function Ya(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;h=k+20|0;j=k;c[j+0>>2]=c[a+0>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];c[j+16>>2]=c[a+16>>2];a=nb(j,h)|0;if(a){f=a;i=k;return f|0}a=nb(j,h)|0;if(a){f=a;i=k;return f|0}a=nb(j,h)|0;if(a){f=a;i=k;return f|0}a=c[b+12>>2]|0;f=0;while(1)if(!(a>>>f))break;else f=f+1|0;if((jb(j,f+-1|0)|0)==-1){f=1;i=k;return f|0}if((d|0)==5?(g=nb(j,h)|0,(g|0)!=0):0){f=g;i=k;return f|0}f=c[b+20>>2]|0;a=0;while(1)if(!(f>>>a))break;else a=a+1|0;if((jb(j,a+-1|0)|0)==-1){f=1;i=k;return f|0}f=ob(j,e)|0;i=k;return f|0}function Za(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;j=m+20|0;l=m;c[l+0>>2]=c[a+0>>2];c[l+4>>2]=c[a+4>>2];c[l+8>>2]=c[a+8>>2];c[l+12>>2]=c[a+12>>2];c[l+16>>2]=c[a+16>>2];g=nb(l,j)|0;if(g){l=g;i=m;return l|0}g=nb(l,j)|0;if(g){l=g;i=m;return l|0}g=nb(l,j)|0;if(g){l=g;i=m;return l|0}g=c[b+12>>2]|0;a=0;while(1)if(!(g>>>a))break;else a=a+1|0;if((jb(l,a+-1|0)|0)==-1){l=1;i=m;return l|0}if((d|0)==5?(h=nb(l,j)|0,(h|0)!=0):0){l=h;i=m;return l|0}g=ob(l,f)|0;if(g){l=g;i=m;return l|0}if((e|0)!=0?(k=ob(l,f+4|0)|0,(k|0)!=0):0){l=k;i=m;return l|0}l=0;i=m;return l|0}function _a(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+32|0;l=m+24|0;j=m+20|0;k=m;c[k+0>>2]=c[b+0>>2];c[k+4>>2]=c[b+4>>2];c[k+8>>2]=c[b+8>>2];c[k+12>>2]=c[b+12>>2];c[k+16>>2]=c[b+16>>2];f=nb(k,l)|0;if(f){n=f;i=m;return n|0}f=nb(k,l)|0;if(f){n=f;i=m;return n|0}f=nb(k,l)|0;if(f){n=f;i=m;return n|0}f=c[d+12>>2]|0;b=0;while(1)if(!(f>>>b))break;else b=b+1|0;if((jb(k,b+-1|0)|0)==-1){n=1;i=m;return n|0}f=nb(k,l)|0;if(f){n=f;i=m;return n|0}g=d+16|0;f=c[g>>2]|0;if(!f){b=c[d+20>>2]|0;f=0;while(1)if(!(b>>>f))break;else f=f+1|0;if((jb(k,f+-1|0)|0)==-1){n=1;i=m;return n|0}if((c[e+8>>2]|0)!=0?(h=ob(k,j)|0,(h|0)!=0):0){n=h;i=m;return n|0}f=c[g>>2]|0}if((f|0)==1?(c[d+24>>2]|0)==0:0){f=ob(k,j)|0;if(f){n=f;i=m;return n|0}if((c[e+8>>2]|0)!=0?(n=ob(k,j)|0,(n|0)!=0):0){i=m;return n|0}}if((c[e+68>>2]|0)!=0?(o=nb(k,l)|0,(o|0)!=0):0){n=o;i=m;return n|0}n=jb(k,1)|0;c[a>>2]=n;n=(n|0)==-1&1;i=m;return n|0}function $a(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;C=i;i=i+448|0;p=C+8|0;x=C+4|0;v=C;p=p+(0-p&15)|0;n=c[b+3376>>2]|0;j=c[e>>2]|0;c[x>>2]=0;y=b+1192|0;c[y>>2]=(c[y>>2]|0)+1;q=b+1200|0;c[q>>2]=0;o=b+12|0;c[v>>2]=(c[e+48>>2]|0)+(c[(c[o>>2]|0)+52>>2]|0);w=e+36|0;r=b+1212|0;s=e+52|0;t=e+56|0;u=e+60|0;z=e+4|0;l=e+44|0;h=b+1220|0;m=b+1172|0;B=b+1176|0;k=n+12|0;A=0;f=0;while(1){e=c[r>>2]|0;if((c[w>>2]|0)==0?(c[e+(j*216|0)+196>>2]|0)!=0:0){f=1;e=22;break}g=c[(c[o>>2]|0)+56>>2]|0;F=c[s>>2]|0;E=c[t>>2]|0;D=c[u>>2]|0;c[e+(j*216|0)+4>>2]=c[y>>2];c[e+(j*216|0)+8>>2]=F;c[e+(j*216|0)+12>>2]=E;c[e+(j*216|0)+16>>2]=D;c[e+(j*216|0)+24>>2]=g;e=c[z>>2]|0;if((e|0)!=2?!((e|0)==7|(f|0)!=0):0){f=nb(a,x)|0;if(f){e=22;break}e=c[x>>2]|0;if(e>>>0>((c[B>>2]|0)-j|0)>>>0){f=1;e=22;break}if(!e)f=0;else{id(k,0,164);c[n>>2]=0;f=1}}e=c[x>>2]|0;if(!e){f=bb(a,n,(c[r>>2]|0)+(j*216|0)|0,c[z>>2]|0,c[l>>2]|0)|0;if(!f)g=0;else{e=22;break}}else{c[x>>2]=e+-1;g=f}f=gb((c[r>>2]|0)+(j*216|0)|0,n,d,h,v,j,c[(c[o>>2]|0)+64>>2]|0,p)|0;if(f){e=22;break}A=((c[(c[r>>2]|0)+(j*216|0)+196>>2]|0)==1&1)+A|0;if(!(La(a)|0))e=(c[x>>2]|0)!=0;else e=1;f=c[z>>2]|0;if((f|0)==7|(f|0)==2)c[q>>2]=j;j=Ma(c[m>>2]|0,c[B>>2]|0,j)|0;if(!((j|0)!=0|e^1)){f=1;e=22;break}if(!e){e=20;break}else f=g}if((e|0)==20){e=b+1196|0;f=(c[e>>2]|0)+A|0;if(f>>>0>(c[B>>2]|0)>>>0){y=1;i=C;return y|0}c[e>>2]=f;y=0;i=C;return y|0}else if((e|0)==22){i=C;return f|0}return 0}function ab(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;h=c[a+1192>>2]|0;d=c[a+1200>>2]|0;j=a+1212|0;a:do if(!d)d=b;else{e=a+16|0;f=0;do{do{d=d+-1|0;if(d>>>0<=b>>>0)break a}while((c[(c[j>>2]|0)+(d*216|0)+4>>2]|0)!=(h|0));f=f+1|0;g=c[(c[e>>2]|0)+52>>2]|0}while(f>>>0<(g>>>0>10?g:10)>>>0)}while(0);g=a+1172|0;b=a+1176|0;while(1){e=c[j>>2]|0;if((c[e+(d*216|0)+4>>2]|0)!=(h|0)){d=11;break}f=e+(d*216|0)+196|0;e=c[f>>2]|0;if(!e){d=11;break}c[f>>2]=e+-1;d=Ma(c[g>>2]|0,c[b>>2]|0,d)|0;if(!d){d=11;break}}if((d|0)==11){i=k;return}}function bb(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+32|0;u=B+20|0;v=B+16|0;q=B+12|0;p=B+8|0;z=B+4|0;y=B;id(d,0,2088);l=nb(a,z)|0;m=c[z>>2]|0;do if((f|0)==2|(f|0)==7){m=m+6|0;if(m>>>0>31|(l|0)!=0){e=1;i=B;return e|0}else{c[d>>2]=m;o=m;break}}else{m=m+1|0;if(m>>>0>31|(l|0)!=0){e=1;i=B;return e|0}else{c[d>>2]=m;o=m;break}}while(0);a:do if((o|0)!=31){b:do if(o>>>0>=6){o=(o|0)!=6;p=o&1;if(!p){c[v>>2]=0;q=0;while(1){f=kb(a)|0;c[u>>2]=f;t=f>>>31;c[d+(q<<2)+12>>2]=t;if(!t){c[d+(q<<2)+76>>2]=f>>>28&7;m=f<<4;n=1}else{m=f<<1;n=0}f=q|1;t=m>>>31;c[d+(f<<2)+12>>2]=t;if(!t){c[d+(f<<2)+76>>2]=m>>>28&7;l=m<<4;n=n+1|0}else l=m<<1;m=f+1|0;t=l>>>31;c[d+(m<<2)+12>>2]=t;if(!t){c[d+(m<<2)+76>>2]=l>>>28&7;m=l<<4;n=n+1|0}else m=l<<1;l=q|3;t=m>>>31;c[d+(l<<2)+12>>2]=t;if(!t){c[d+(l<<2)+76>>2]=m>>>28&7;f=m<<4;n=n+1|0}else f=m<<1;m=l+1|0;t=f>>>31;c[d+(m<<2)+12>>2]=t;if(!t){c[d+(m<<2)+76>>2]=f>>>28&7;f=f<<4;n=n+1|0}else f=f<<1;m=l+2|0;t=f>>>31;c[d+(m<<2)+12>>2]=t;if(!t){c[d+(m<<2)+76>>2]=f>>>28&7;f=f<<4;n=n+1|0}else f=f<<1;m=l+3|0;t=f>>>31;c[d+(m<<2)+12>>2]=t;if(!t){c[d+(m<<2)+76>>2]=f>>>28&7;f=f<<4;n=n+1|0}else f=f<<1;m=q|7;t=f>>>31;c[d+(m<<2)+12>>2]=t;if(!t){c[d+(m<<2)+76>>2]=f>>>28&7;m=f<<4;n=n+1|0}else m=f<<1;c[u>>2]=m;if((lb(a,(n*3|0)+8|0)|0)==-1){w=1;t=68;break b}t=(c[v>>2]|0)+1|0;c[v>>2]=t;if((t|0)<2)q=q+8|0;else{t=52;break}}}else if((p|0)==1)t=52;if((t|0)==52){v=(nb(a,u)|0)!=0;l=c[u>>2]|0;if(v|l>>>0>3){w=1;t=68;break}c[d+140>>2]=l}if(o){v=c[d>>2]|0;s=v+-7|0;u=s>>>2;c[d+4>>2]=(s>>>0>11?u+268435453|0:u)<<4|(v>>>0>18?15:0)}else{x=p;t=70}}else{if((o|0)==0|(o|0)==1){r=v;s=u}else if(!((o|0)==3|(o|0)==2)){f=0;do{l=(nb(a,q)|0)!=0;m=c[q>>2]|0;if(l|m>>>0>3){n=1;t=96;break}c[d+(f<<2)+176>>2]=m;f=f+1|0}while(f>>>0<4);if((t|0)==96){i=B;return n|0}c:do if(g>>>0>1&(o|0)!=5){m=g>>>0>2&1;f=0;while(1){if(qb(a,q,m)|0){n=1;t=96;break}n=c[q>>2]|0;if(n>>>0>=g>>>0){n=1;t=96;break}c[d+(f<<2)+192>>2]=n;f=f+1|0;if(f>>>0>=4){h=0;break c}}if((t|0)==96){i=B;return n|0}}else h=0;while(0);d:while(1){n=c[d+(h<<2)+176>>2]|0;if(!n)n=0;else if((n|0)==2|(n|0)==1)n=1;else n=3;c[q>>2]=n;m=0;while(1){n=ob(a,p)|0;if(n){t=96;break d}b[d+(h<<4)+(m<<2)+208>>1]=c[p>>2];n=ob(a,p)|0;if(n){t=96;break d}b[d+(h<<4)+(m<<2)+210>>1]=c[p>>2];t=c[q>>2]|0;c[q>>2]=t+-1;if(!t)break;else m=m+1|0}h=h+1|0;if(h>>>0>=4){x=2;t=70;break b}}if((t|0)==96){i=B;return n|0}}else{r=v;s=u}if(g>>>0>1){if((o|0)==0|(o|0)==1)n=0;else if((o|0)==3|(o|0)==2)n=1;else n=3;l=g>>>0>2&1;f=0;while(1){if(qb(a,u,l)|0){w=1;t=68;break b}m=c[u>>2]|0;if(m>>>0>=g>>>0){w=1;t=68;break b}c[d+(f<<2)+144>>2]=m;if(!n)break;else{n=n+-1|0;f=f+1|0}}}if((o|0)==0|(o|0)==1){l=0;m=0}else if((o|0)==3|(o|0)==2){l=1;m=0}else{l=3;m=0}while(1){f=ob(a,v)|0;if(f){w=f;t=68;break b}b[d+(m<<2)+160>>1]=c[v>>2];f=ob(a,v)|0;if(f){w=f;t=68;break b}b[d+(m<<2)+162>>1]=c[v>>2];if(!l){x=2;t=70;break}else{l=l+-1|0;m=m+1|0}}}while(0);if((t|0)==68){e=w;i=B;return e|0}do if((t|0)==70){h=pb(a,z,(x|0)==0&1)|0;if(!h){z=c[z>>2]|0;c[d+4>>2]=z;if(!z)break a;else break}else{e=h;i=B;return e|0}}while(0);z=(ob(a,y)|0)!=0;h=c[y>>2]|0;if(z|(h|0)<-26|(h|0)>25){e=1;i=B;return e|0}c[d+8>>2]=h;l=c[d+4>>2]|0;o=d+272|0;e:do if((c[d>>2]|0)>>>0>=7){h=rb(a,d+1864|0,ib(e,0,o)|0,16)|0;if(!(h&15)){b[d+320>>1]=h>>>4&255;h=0;m=3;while(1){n=l>>>1;if(!(l&1))h=h+4|0;else{f=3;while(1){l=rb(a,d+(h<<6)+332|0,ib(e,h,o)|0,15)|0;c[d+(h<<2)+1992>>2]=l>>>15;if(l&15){j=l;break e}b[d+(h<<1)+272>>1]=l>>>4&255;h=h+1|0;if(!f)break;else f=f+-1|0}}if(!m){k=h;A=n;t=87;break}else{l=n;m=m+-1|0}}}else j=h}else{h=0;m=3;while(1){n=l>>>1;if(!(l&1))h=h+4|0;else{f=3;while(1){l=rb(a,d+(h<<6)+328|0,ib(e,h,o)|0,16)|0;c[d+(h<<2)+1992>>2]=l>>>16;if(l&15){j=l;break e}b[d+(h<<1)+272>>1]=l>>>4&255;h=h+1|0;if(!f)break;else f=f+-1|0}}if(!m){k=h;A=n;t=87;break}else{l=n;m=m+-1|0}}}while(0);f:do if((t|0)==87){if(A&3){j=rb(a,d+1928|0,-1,4)|0;if(j&15)break;b[d+322>>1]=j>>>4&255;j=rb(a,d+1944|0,-1,4)|0;if(j&15)break;b[d+324>>1]=j>>>4&255}if(!(A&2))j=0;else{h=7;while(1){j=rb(a,d+(k<<6)+332|0,ib(e,k,o)|0,15)|0;if(j&15)break f;b[d+(k<<1)+272>>1]=j>>>4&255;c[d+(k<<2)+1992>>2]=j>>>15;if(!h){j=0;break}else{k=k+1|0;h=h+-1|0}}}}while(0);c[a+16>>2]=((c[a+4>>2]|0)-(c[a>>2]|0)<<3)+(c[a+8>>2]|0);if(j){e=j;i=B;return e|0}}else{while(1){if(mb(a)|0)break;if(jb(a,1)|0){n=1;t=96;break}}if((t|0)==96){i=B;return n|0}k=0;j=d+328|0;while(1){h=jb(a,8)|0;c[z>>2]=h;if((h|0)==-1){n=1;break}c[j>>2]=h;k=k+1|0;if(k>>>0>=384)break a;else j=j+4|0}i=B;return n|0}while(0);e=0;i=B;return e|0}function cb(a){a=a|0;if(a>>>0<6)a=2;else a=(a|0)!=6&1;return a|0}function db(a){a=a|0;var b=0;b=i;if((a|0)==0|(a|0)==1)a=1;else if((a|0)==3|(a|0)==2)a=2;else a=4;i=b;return a|0}function eb(a){a=a|0;var b=0;b=i;if(!a)a=1;else if((a|0)==2|(a|0)==1)a=2;else a=4;i=b;return a|0}function fb(a){a=a|0;return a+1&3|0}function gb(d,e,f,g,h,j,k,l){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;s=c[e>>2]|0;c[d>>2]=s;o=d+196|0;c[o>>2]=(c[o>>2]|0)+1;Na(f,j);if((s|0)==31){m=d+28|0;c[d+20>>2]=0;if((c[o>>2]|0)>>>0>1){b[m>>1]=16;b[d+30>>1]=16;b[d+32>>1]=16;b[d+34>>1]=16;b[d+36>>1]=16;b[d+38>>1]=16;b[d+40>>1]=16;b[d+42>>1]=16;b[d+44>>1]=16;b[d+46>>1]=16;b[d+48>>1]=16;b[d+50>>1]=16;b[d+52>>1]=16;b[d+54>>1]=16;b[d+56>>1]=16;b[d+58>>1]=16;b[d+60>>1]=16;b[d+62>>1]=16;b[d+64>>1]=16;b[d+66>>1]=16;b[d+68>>1]=16;b[d+70>>1]=16;b[d+72>>1]=16;b[d+74>>1]=16;t=0;i=v;return t|0}o=23;h=e+328|0;n=l;while(1){b[m>>1]=16;a[n>>0]=c[h>>2];a[n+1>>0]=c[h+4>>2];a[n+2>>0]=c[h+8>>2];a[n+3>>0]=c[h+12>>2];a[n+4>>0]=c[h+16>>2];a[n+5>>0]=c[h+20>>2];a[n+6>>0]=c[h+24>>2];a[n+7>>0]=c[h+28>>2];a[n+8>>0]=c[h+32>>2];a[n+9>>0]=c[h+36>>2];a[n+10>>0]=c[h+40>>2];a[n+11>>0]=c[h+44>>2];a[n+12>>0]=c[h+48>>2];a[n+13>>0]=c[h+52>>2];a[n+14>>0]=c[h+56>>2];a[n+15>>0]=c[h+60>>2];if(!o)break;else{o=o+-1|0;h=h+64|0;n=n+16|0;m=m+2|0}}sc(f,l);t=0;i=v;return t|0}m=d+28|0;if(s){hd(m,e+272|0,54);n=c[e+8>>2]|0;o=c[h>>2]|0;do if(n){o=o+n|0;c[h>>2]=o;if((o|0)<0){o=o+52|0;c[h>>2]=o;break}if((o|0)>51){o=o+-52|0;c[h>>2]=o}}while(0);r=d+20|0;c[r>>2]=o;n=e+328|0;h=e+1992|0;a:do if((c[d>>2]|0)>>>0<7){q=15;o=m;while(1){if(b[o>>1]|0){if(Ga(n,c[r>>2]|0,0,c[h>>2]|0)|0){m=1;break}}else c[n>>2]=16777215;n=n+64|0;o=o+2|0;h=h+4|0;if(!q)break a;else q=q+-1|0}i=v;return m|0}else{if(!(b[d+76>>1]|0)){q=464;p=15;o=m}else{Ha(e+1864|0,o);q=464;p=15;o=m}while(1){m=c[e+(c[q>>2]<<2)+1864>>2]|0;q=q+4|0;c[n>>2]=m;if((m|0)==0?(b[o>>1]|0)==0:0)c[n>>2]=16777215;else u=18;if((u|0)==18?(u=0,(Ga(n,c[r>>2]|0,1,c[h>>2]|0)|0)!=0):0){m=1;break}n=n+64|0;o=o+2|0;h=h+4|0;if(!p)break a;else p=p+-1|0}i=v;return m|0}while(0);q=c[192+((Oa(0,51,(c[d+24>>2]|0)+(c[r>>2]|0)|0)|0)<<2)>>2]|0;if((b[d+78>>1]|0)==0?(b[d+80>>1]|0)==0:0){p=e+1928|0;m=7}else{p=e+1928|0;Ia(p,q);m=7}while(1){r=c[p>>2]|0;p=p+4|0;c[n>>2]=r;if((r|0)==0?(b[o>>1]|0)==0:0)c[n>>2]=16777215;else u=31;if((u|0)==31?(u=0,(Ga(n,q,1,c[h>>2]|0)|0)!=0):0){m=1;u=39;break}if(!m)break;else{n=n+64|0;h=h+4|0;m=m+-1|0;o=o+2|0}}if((u|0)==39){i=v;return m|0}if(s>>>0>=6){o=Mb(d,e,f,j,k,l)|0;if(o){t=o;i=v;return t|0}}else u=37}else{id(m,0,54);c[d+20>>2]=c[h>>2];u=37}if((u|0)==37?(t=Sb(d,e,g,j,f,l)|0,(t|0)!=0):0){i=v;return t|0}t=0;i=v;return t|0}function hb(a){a=a|0;return a|0}function ib(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;l=vb(e)|0;g=wb(e)|0;h=a[l+4>>0]|0;j=a[g+4>>0]|0;g=(c[g>>2]|0)==4;if((c[l>>2]|0)==4){e=b[f+((h&255)<<1)>>1]|0;if(g){e=e+1+(b[f+((j&255)<<1)>>1]|0)>>1;i=k;return e|0}g=d+204|0;if(!(zb(d,c[g>>2]|0)|0)){i=k;return e|0}e=e+1+(b[(c[g>>2]|0)+((j&255)<<1)+28>>1]|0)>>1;i=k;return e|0}if(g){e=b[f+((j&255)<<1)>>1]|0;g=d+200|0;if(!(zb(d,c[g>>2]|0)|0)){i=k;return e|0}e=e+1+(b[(c[g>>2]|0)+((h&255)<<1)+28>>1]|0)>>1;i=k;return e|0}g=d+200|0;if(!(zb(d,c[g>>2]|0)|0)){h=0;f=0}else{h=b[(c[g>>2]|0)+((h&255)<<1)+28>>1]|0;f=1}g=d+204|0;if(!(zb(d,c[g>>2]|0)|0)){e=h;i=k;return e|0}e=b[(c[g>>2]|0)+((j&255)<<1)+28>>1]|0;if(!f){i=k;return e|0}e=h+1+e>>1;i=k;return e|0}function jb(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;n=a+4|0;j=c[n>>2]|0;m=c[a+12>>2]<<3;o=a+16|0;l=c[o>>2]|0;g=m-l|0;if((g|0)>31){e=a+8|0;g=c[e>>2]|0;f=(d[j+1>>0]|0)<<16|(d[j>>0]|0)<<24|(d[j+2>>0]|0)<<8|(d[j+3>>0]|0);if(!g)h=e;else{h=e;f=(d[j+4>>0]|0)>>>(8-g|0)|f<0){e=c[h>>2]|0;k=e+24|0;f=(d[j>>0]|0)<0){e=g;g=k;do{j=j+1|0;g=g+-8|0;f=(d[j>>0]|0)<0)}}else f=0}e=l+b|0;c[o>>2]=e;c[h>>2]=e&7;if(e>>>0>m>>>0){n=-1;i=p;return n|0}c[n>>2]=(c[a>>2]|0)+(e>>>3);n=f>>>(32-b|0);i=p;return n|0}function kb(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;g=i;f=c[a+4>>2]|0;e=(c[a+12>>2]<<3)-(c[a+16>>2]|0)|0;if((e|0)>31){b=c[a+8>>2]|0;a=(d[f+1>>0]|0)<<16|(d[f>>0]|0)<<24|(d[f+2>>0]|0)<<8|(d[f+3>>0]|0);if(!b){b=a;i=g;return b|0}b=(d[f+4>>0]|0)>>>(8-b|0)|a<>2]|0;a=h+24|0;b=(d[f>>0]|0)<>0]|0)<0);i=g;return b|0}function lb(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=a+16|0;b=(c[e>>2]|0)+b|0;c[e>>2]=b;c[a+8>>2]=b&7;if(b>>>0>c[a+12>>2]<<3>>>0){b=-1;i=d;return b|0}c[a+4>>2]=(c[a>>2]|0)+(b>>>3);b=0;i=d;return b|0}function mb(a){a=a|0;return (c[a+8>>2]|0)==0|0}function nb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;d=kb(a)|0;do if((d|0)>=0){if(d>>>0>1073741823){if((lb(a,3)|0)==-1){d=1;break}c[b>>2]=(d>>>29&1)+1;d=0;break}if(d>>>0>536870911){if((lb(a,5)|0)==-1){d=1;break}c[b>>2]=(d>>>27&3)+3;d=0;break}if(d>>>0>268435455){if((lb(a,7)|0)==-1){d=1;break}c[b>>2]=(d>>>25&7)+7;d=0;break}d=Ja(d,28)|0;e=d+4|0;if((e|0)!=32){lb(a,d+5|0)|0;d=jb(a,e)|0;if((d|0)==-1){d=1;break}c[b>>2]=(1<>2]=0;lb(a,32)|0;if((jb(a,1)|0)==1?(f=kb(a)|0,(lb(a,32)|0)!=-1):0)if((f|0)==1){c[b>>2]=-1;d=1;break}else if(!f){c[b>>2]=-1;d=0;break}else{d=1;break}else d=1}else{lb(a,1)|0;c[b>>2]=0;d=0}while(0);i=g;return d|0}function ob(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=0;d=nb(a,f)|0;a=c[f>>2]|0;d=(d|0)==0;if((a|0)==-1)if(d)a=1;else{c[b>>2]=-2147483648;a=0}else if(d){d=(a+1|0)>>>1;c[b>>2]=(a&1|0)!=0?d:0-d|0;a=0}else a=1;i=e;return a|0}function pb(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g;if(nb(a,f)|0){f=1;i=g;return f|0}f=c[f>>2]|0;if(f>>>0>47){f=1;i=g;return f|0}c[b>>2]=d[((e|0)==0?576:528)+f>>0];f=0;i=g;return f|0}function qb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;if(!d){d=jb(a,1)|0;c[b>>2]=d;if((d|0)==-1)d=1;else{c[b>>2]=d^1;d=0}}else d=nb(a,b)|0;i=e;return d|0}function rb(a,b,f,g){a=a|0;b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;O=i;i=i+128|0;M=O+64|0;N=O;n=kb(a)|0;p=n>>>16;do if(f>>>0<2)if((n|0)>=0){if(n>>>0>201326591){o=e[1264+(n>>>26<<1)>>1]|0;k=25;break}if(n>>>0>16777215){o=e[1328+(n>>>22<<1)>>1]|0;k=25;break}if(n>>>0>2097151){o=e[1424+((n>>>18)+-8<<1)>>1]|0;k=25;break}else{o=e[1536+(p<<1)>>1]|0;k=25;break}}else q=1;else if(f>>>0<4){if((n|0)<0){q=(p&16384|0)!=0?2:2082;break}if(n>>>0>268435455){o=e[1600+(n>>>26<<1)>>1]|0;k=25;break}if(n>>>0>33554431){o=e[1664+(n>>>23<<1)>>1]|0;k=25;break}else{o=e[1728+(n>>>18<<1)>>1]|0;k=25;break}}else{if(f>>>0<8){f=n>>>26;if((f+-8|0)>>>0<56){o=e[1984+(f<<1)>>1]|0;k=25;break}o=e[2112+(n>>>22<<1)>>1]|0;k=25;break}if(f>>>0<17){o=e[2368+(n>>>26<<1)>>1]|0;k=25;break}f=n>>>29;if(f){o=e[2496+(f<<1)>>1]|0;k=25;break}o=e[2512+(n>>>24<<1)>>1]|0;k=25;break}while(0);if((k|0)==25)if(!o){C=1;i=O;return C|0}else q=o;o=q&31;f=n<>>11&31;if(I>>>0>g>>>0){C=1;i=O;return C|0}v=q>>>5&63;do if(I){if(!v)o=0;else{do if(p>>>0>>0)if((lb(a,o)|0)==-1){C=1;i=O;return C|0}else{p=32;f=kb(a)|0;break}while(0);n=f>>>(32-v|0);f=f<>2]=(o&n|0)!=0?-1:1;o=o>>>1;k=k+1|0}while((o|0)!=0);p=p-v|0;o=k}u=v>>>0<3;a:do if(o>>>0>>0){t=o;s=I>>>0>10&u&1;b:while(1){if(p>>>0<16){if((lb(a,32-p|0)|0)==-1){J=1;k=127;break}r=32;f=kb(a)|0}else r=p;do if((f|0)>=0)if(f>>>0<=1073741823)if(f>>>0<=536870911)if(f>>>0<=268435455)if(f>>>0<=134217727)if(f>>>0<=67108863)if(f>>>0<=33554431)if(f>>>0<=16777215)if(f>>>0<=8388607)if(f>>>0>4194303){H=9;k=59}else{if(f>>>0>2097151){H=10;k=59;break}if(f>>>0>1048575){H=11;k=59;break}if(f>>>0>524287){H=12;k=59;break}if(f>>>0>262143){H=13;k=59;break}if(f>>>0>131071){p=14;o=f<<15;n=r+-15|0;q=s;k=(s|0)!=0?s:4}else{if(f>>>0<65536){J=1;k=127;break b}p=15;o=f<<16;n=r+-16|0;q=(s|0)!=0?s:1;k=12}G=p<>>0>>0){if((lb(a,32-y|0)|0)==-1){J=1;k=127;break}o=32;f=kb(a)|0}else{o=y;f=B}E=o-x|0;F=f<>>(32-x|0))+G|0;C=z;D=w}s=(t|0)==(v|0)&u?A+2|0:A;o=(s+2|0)>>>1;n=D?1:C;c[M+(t<<2)>>2]=(s&1|0)==0?o:0-o|0;t=t+1|0;if(t>>>0>=I>>>0){l=E;m=F;break a}else{p=E;f=F;s=((o|0)>(3<>>0<6&1)+n|0}}if((k|0)==127){i=O;return J|0}}else{l=p;m=f}while(0);if(I>>>0>>0){do if(l>>>0<9)if((lb(a,32-l|0)|0)==-1){C=1;i=O;return C|0}else{l=32;m=kb(a)|0;break}while(0);k=m>>>23;c:do if((g|0)==4)if((m|0)>=0)if((I|0)!=3)if(m>>>0<=1073741823)if((I|0)==2)k=34;else k=m>>>0>536870911?35:51;else k=18;else k=17;else k=1;else{do switch(I|0){case 8:{k=d[1056+(m>>>26)>>0]|0;break}case 9:{k=d[1120+(m>>>26)>>0]|0;break}case 2:{k=d[736+(m>>>26)>>0]|0;break}case 1:{if(m>>>0>268435455)k=d[672+(m>>>27)>>0]|0;else k=d[704+k>>0]|0;break}case 13:{k=d[1248+(m>>>29)>>0]|0;break}case 14:{k=d[1256+(m>>>30)>>0]|0;break}case 3:{k=d[800+(m>>>26)>>0]|0;break}case 4:{k=d[864+(m>>>27)>>0]|0;break}case 5:{k=d[896+(m>>>27)>>0]|0;break}case 10:{k=d[1184+(m>>>27)>>0]|0;break}case 6:{k=d[928+(m>>>26)>>0]|0;break}case 7:{k=d[992+(m>>>26)>>0]|0;break}case 11:{k=d[1216+(m>>>28)>>0]|0;break}case 12:{k=d[1232+(m>>>28)>>0]|0;break}default:{k=m>>31&16|1;break c}}while(0);if(!k){C=1;i=O;return C|0}}while(0);n=k&15;l=l-n|0;m=m<>>4&15}else n=0;p=I+-1|0;f=(p|0)==0;if(f){c[b+(n<<2)>>2]=c[M+(p<<2)>>2];K=l;h=1<>2]=1;L=l;j=0}else{if(l>>>0<11){if((lb(a,32-l|0)|0)==-1){J=1;k=127;break}l=32;k=kb(a)|0}switch(n|0){case 4:{m=d[648+(k>>>29)>>0]|0;break}case 5:{m=d[656+(k>>>29)>>0]|0;break}case 6:{m=d[664+(k>>>29)>>0]|0;break}case 1:{m=d[624+(k>>>31)>>0]|0;break}case 2:{m=d[632+(k>>>30)>>0]|0;break}case 3:{m=d[640+(k>>>30)>>0]|0;break}default:{do if(k>>>0<=536870911)if(k>>>0<=268435455)if(k>>>0<=134217727)if(k>>>0<=67108863)if(k>>>0<=33554431)if(k>>>0>16777215)m=184;else{if(k>>>0>8388607){m=201;break}if(k>>>0>4194303){m=218;break}m=k>>>0<2097152?0:235}else m=167;else m=150;else m=133;else m=116;else m=k>>>29<<4^115;while(0);if((m>>>4&15)>>>0>n>>>0){J=1;k=127;break d}}}if(!m){J=1;k=127;break}C=m&15;j=m>>>4&15;c[N+(o<<2)>>2]=j+1;L=l-C|0;k=k<>>0>=p>>>0){k=122;break}else{l=L;n=j}}if((k|0)==122){c[b+(j<<2)>>2]=c[M+(p<<2)>>2];h=1<>2]|0)+j|0;h=1<>2]=c[M+(k<<2)>>2];if(!k){K=L;break}else k=k+-1|0}}else if((k|0)==127){i=O;return J|0}}else{K=p;h=0}while(0);if(lb(a,32-K|0)|0){C=1;i=O;return C|0}C=h<<16|I<<4;i=O;return C|0}function sb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;a:do if((jb(a,1)|0)!=-1?(e=b+4|0,c[e>>2]=jb(a,2)|0,d=jb(a,5)|0,c[b>>2]=d,(d+-2|0)>>>0>=3):0){switch(d|0){case 6:case 9:case 10:case 11:case 12:{if(c[e>>2]|0){d=1;break a}break}case 5:case 7:case 8:{if(!(c[e>>2]|0)){d=1;break a}switch(d|0){case 6:case 9:case 10:case 11:case 12:{d=1;break a}default:{}}break}default:{}}d=0}else d=1;while(0);i=f;return d|0}function tb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;if(!d){i=o;return}m=b+-1|0;j=1-b|0;k=~b;g=0;h=0;l=0;while(1){f=(g|0)!=0;if(f)c[a+(h*216|0)+200>>2]=a+((h+-1|0)*216|0);else c[a+(h*216|0)+200>>2]=0;e=(l|0)!=0;if(e){c[a+(h*216|0)+204>>2]=a+((h-b|0)*216|0);if(g>>>0>>0)c[a+(h*216|0)+208>>2]=a+((j+h|0)*216|0);else n=10}else{c[a+(h*216|0)+204>>2]=0;n=10}if((n|0)==10){n=0;c[a+(h*216|0)+208>>2]=0}if(e&f)c[a+(h*216|0)+212>>2]=a+((h+k|0)*216|0);else c[a+(h*216|0)+212>>2]=0;e=g+1|0;f=(e|0)==(b|0);h=h+1|0;if((h|0)==(d|0))break;else{g=f?0:e;l=(f&1)+l|0}}i=o;return}function ub(a,b){a=a|0;b=b|0;var d=0;d=i;switch(b|0){case 1:{a=c[a+204>>2]|0;break}case 3:{a=c[a+212>>2]|0;break}case 4:break;case 2:{a=c[a+208>>2]|0;break}case 0:{a=c[a+200>>2]|0;break}default:a=0}i=d;return a|0}function vb(a){a=a|0;return 3152+(a<<3)|0}function wb(a){a=a|0;return 2960+(a<<3)|0}function xb(a){a=a|0;return 2768+(a<<3)|0}function yb(a){a=a|0;return 2576+(a<<3)|0}function zb(a,b){a=a|0;b=b|0;var d=0;d=i;if(!b){i=d;return 0}else{i=d;return (c[a+4>>2]|0)==(c[b+4>>2]|0)|0}return 0}function Ab(a){a=a|0;var b=0;b=i;id(a,0,3388);c[a+8>>2]=32;c[a+4>>2]=256;c[a+1332>>2]=1;i=b;return}function Bb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;f=c[b+8>>2]|0;g=a+(f<<2)+20|0;e=c[g>>2]|0;do if(!e){d=fd(92)|0;c[g>>2]=d;if(!d){d=65535;i=h;return d|0}}else{d=a+8|0;if((f|0)!=(c[d>>2]|0)){gd(c[e+40>>2]|0);c[(c[g>>2]|0)+40>>2]=0;gd(c[(c[g>>2]|0)+84>>2]|0);c[(c[g>>2]|0)+84>>2]=0;break}f=a+16|0;if(Ra(b,c[f>>2]|0)|0){gd(c[(c[g>>2]|0)+40>>2]|0);c[(c[g>>2]|0)+40>>2]=0;gd(c[(c[g>>2]|0)+84>>2]|0);c[(c[g>>2]|0)+84>>2]=0;c[d>>2]=33;c[a+4>>2]=257;c[f>>2]=0;c[a+12>>2]=0;break}d=b+40|0;gd(c[d>>2]|0);c[d>>2]=0;d=b+84|0;gd(c[d>>2]|0);c[d>>2]=0;d=0;i=h;return d|0}while(0);f=(c[g>>2]|0)+0|0;d=b+0|0;e=f+92|0;do{c[f>>2]=c[d>>2];f=f+4|0;d=d+4|0}while((f|0)<(e|0));d=0;i=h;return d|0}function Cb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;f=c[b>>2]|0;g=a+(f<<2)+148|0;d=c[g>>2]|0;do if(!d){d=fd(72)|0;c[g>>2]=d;if(!d){d=65535;i=h;return d|0}}else{e=a+4|0;if((f|0)!=(c[e>>2]|0)){gd(c[d+20>>2]|0);c[(c[g>>2]|0)+20>>2]=0;gd(c[(c[g>>2]|0)+24>>2]|0);c[(c[g>>2]|0)+24>>2]=0;gd(c[(c[g>>2]|0)+28>>2]|0);c[(c[g>>2]|0)+28>>2]=0;gd(c[(c[g>>2]|0)+44>>2]|0);c[(c[g>>2]|0)+44>>2]=0;break}if((c[b+4>>2]|0)!=(c[a+8>>2]|0)){c[e>>2]=257;d=c[g>>2]|0}gd(c[d+20>>2]|0);c[(c[g>>2]|0)+20>>2]=0;gd(c[(c[g>>2]|0)+24>>2]|0);c[(c[g>>2]|0)+24>>2]=0;gd(c[(c[g>>2]|0)+28>>2]|0);c[(c[g>>2]|0)+28>>2]=0;gd(c[(c[g>>2]|0)+44>>2]|0);c[(c[g>>2]|0)+44>>2]=0}while(0);f=(c[g>>2]|0)+0|0;d=b+0|0;e=f+72|0;do{c[f>>2]=c[d>>2];f=f+4|0;d=d+4|0}while((f|0)<(e|0));d=0;i=h;return d|0}function Db(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;o=a+(b<<2)+148|0;f=c[o>>2]|0;if(!f){o=1;i=q;return o|0}n=c[f+4>>2]|0;g=c[a+(n<<2)+20>>2]|0;if(!g){o=1;i=q;return o|0}l=c[g+52>>2]|0;m=Z(c[g+56>>2]|0,l)|0;h=c[f+12>>2]|0;a:do if(h>>>0>1){g=c[f+16>>2]|0;if((g|0)==2){k=c[f+24>>2]|0;j=c[f+28>>2]|0;h=h+-1|0;e=0;while(1){f=c[k+(e<<2)>>2]|0;g=c[j+(e<<2)>>2]|0;if(!(f>>>0<=g>>>0&g>>>0>>0)){e=1;g=33;break}e=e+1|0;if(((f>>>0)%(l>>>0)|0)>>>0>((g>>>0)%(l>>>0)|0)>>>0){e=1;g=33;break}if(e>>>0>=h>>>0)break a}if((g|0)==33){i=q;return e|0}}else if(!g){g=c[f+20>>2]|0;f=0;while(1){if((c[g+(f<<2)>>2]|0)>>>0>m>>>0){e=1;break}f=f+1|0;if(f>>>0>=h>>>0)break a}i=q;return e|0}else{if((g+-3|0)>>>0<3){if((c[f+36>>2]|0)>>>0>m>>>0)e=1;else break;i=q;return e|0}if((g|0)!=6)break;if((c[f+40>>2]|0)>>>0>>0)e=1;else break;i=q;return e|0}}while(0);f=a+4|0;g=c[f>>2]|0;do if((g|0)!=256){e=a+3380|0;if(!(c[e>>2]|0)){if((g|0)==(b|0))break;g=a+8|0;if((n|0)==(c[g>>2]|0)){c[f>>2]=b;c[a+12>>2]=c[o>>2];break}if(!d){o=1;i=q;return o|0}else{c[f>>2]=b;o=c[o>>2]|0;c[a+12>>2]=o;o=c[o+4>>2]|0;c[g>>2]=o;o=c[a+(o<<2)+20>>2]|0;c[a+16>>2]=o;n=c[o+52>>2]|0;o=c[o+56>>2]|0;c[a+1176>>2]=Z(o,n)|0;c[a+1340>>2]=n;c[a+1344>>2]=o;c[e>>2]=1;break}}c[e>>2]=0;e=a+1212|0;gd(c[e>>2]|0);c[e>>2]=0;f=a+1172|0;gd(c[f>>2]|0);c[f>>2]=0;g=a+1176|0;c[e>>2]=fd((c[g>>2]|0)*216|0)|0;o=fd(c[g>>2]<<2)|0;c[f>>2]=o;f=c[e>>2]|0;if((f|0)==0|(o|0)==0){o=65535;i=q;return o|0}id(f,0,(c[g>>2]|0)*216|0);f=a+16|0;tb(c[e>>2]|0,c[(c[f>>2]|0)+52>>2]|0,c[g>>2]|0);f=c[f>>2]|0;do if((c[a+1216>>2]|0)==0?(c[f+16>>2]|0)!=2:0){if(((c[f+80>>2]|0)!=0?(p=c[f+84>>2]|0,(c[p+920>>2]|0)!=0):0)?(c[p+944>>2]|0)==0:0){e=1;break}e=0}else e=1;while(0);o=Z(c[f+56>>2]|0,c[f+52>>2]|0)|0;e=lc(a+1220|0,o,c[f+88>>2]|0,c[f+44>>2]|0,c[f+12>>2]|0,e)|0;if(e){o=e;i=q;return o|0}}else{c[f>>2]=b;o=c[o>>2]|0;c[a+12>>2]=o;o=c[o+4>>2]|0;c[a+8>>2]=o;o=c[a+(o<<2)+20>>2]|0;c[a+16>>2]=o;n=c[o+52>>2]|0;o=c[o+56>>2]|0;c[a+1176>>2]=Z(o,n)|0;c[a+1340>>2]=n;c[a+1344>>2]=o;c[a+3380>>2]=1}while(0);o=0;i=q;return o|0}function Eb(a){a=a|0;var b=0,d=0,e=0;e=i;c[a+1196>>2]=0;c[a+1192>>2]=0;d=c[a+1176>>2]|0;if(!d){i=e;return}a=c[a+1212>>2]|0;b=0;do{c[a+(b*216|0)+4>>2]=0;c[a+(b*216|0)+196>>2]=0;b=b+1|0}while(b>>>0>>0);i=e;return}function Fb(a){a=a|0;return (c[a+1188>>2]|0)==0|0}function Gb(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;if(!(c[a+1404>>2]|0)){if((c[a+1196>>2]|0)==(c[a+1176>>2]|0)){a=1;i=f;return a|0}}else{e=c[a+1176>>2]|0;if(!e){a=1;i=f;return a|0}a=c[a+1212>>2]|0;b=0;d=0;do{d=((c[a+(b*216|0)+196>>2]|0)!=0&1)+d|0;b=b+1|0}while(b>>>0>>0);if((d|0)==(e|0)){a=1;i=f;return a|0}}a=0;i=f;return a|0}function Hb(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;e=c[a+16>>2]|0;Kb(c[a+1172>>2]|0,c[a+12>>2]|0,b,c[e+52>>2]|0,c[e+56>>2]|0);i=d;return}function Ib(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+32|0;g=t+24|0;j=t+20|0;k=t+16|0;n=t+12|0;r=t+8|0;q=t;c[e>>2]=0;switch(c[b>>2]|0){case 5:case 1:{s=d+1300|0;h=d+1332|0;if(c[h>>2]|0){c[e>>2]=1;c[h>>2]=0}h=Ua(a,g)|0;if(h){o=h;i=t;return o|0}l=c[d+(c[g>>2]<<2)+148>>2]|0;if(!l){o=65520;i=t;return o|0}h=c[l+4>>2]|0;m=c[d+(h<<2)+20>>2]|0;if(!m){o=65520;i=t;return o|0}g=c[d+8>>2]|0;if(!((g|0)==32|(h|0)==(g|0))?(c[b>>2]|0)!=5:0){o=65520;i=t;return o|0}g=c[d+1304>>2]|0;h=c[b+4>>2]|0;if((g|0)!=(h|0)?(g|0)==0|(h|0)==0:0)c[e>>2]=1;h=(c[b>>2]|0)==5;if((c[s>>2]|0)==5){if(!h)f=16}else if(h)f=16;if((f|0)==16)c[e>>2]=1;g=m+12|0;if(Va(a,c[g>>2]|0,j)|0){o=1;i=t;return o|0}f=d+1308|0;h=c[j>>2]|0;if((c[f>>2]|0)!=(h|0)){c[f>>2]=h;c[e>>2]=1}if((c[b>>2]|0)==5){if(Wa(a,c[g>>2]|0,5,k)|0){o=1;i=t;return o|0}if((c[s>>2]|0)==5){h=d+1312|0;f=c[h>>2]|0;g=c[k>>2]|0;if((f|0)==(g|0))g=f;else c[e>>2]=1}else{g=c[k>>2]|0;h=d+1312|0}c[h>>2]=g}g=c[m+16>>2]|0;if((g|0)==1){if(!(c[m+24>>2]|0)){h=l+8|0;g=Za(a,m,c[b>>2]|0,c[h>>2]|0,q)|0;if(g){o=g;i=t;return o|0}f=d+1324|0;g=c[q>>2]|0;if((c[f>>2]|0)!=(g|0)){c[f>>2]=g;c[e>>2]=1}if((c[h>>2]|0)!=0?(p=d+1328|0,o=c[q+4>>2]|0,(c[p>>2]|0)!=(o|0)):0){c[p>>2]=o;c[e>>2]=1}}}else if(!g){if(Xa(a,m,c[b>>2]|0,n)|0){o=1;i=t;return o|0}f=d+1316|0;g=c[n>>2]|0;if((c[f>>2]|0)!=(g|0)){c[f>>2]=g;c[e>>2]=1}if(c[l+8>>2]|0){f=Ya(a,m,c[b>>2]|0,r)|0;if(f){o=f;i=t;return o|0}g=d+1320|0;f=c[r>>2]|0;if((c[g>>2]|0)!=(f|0)){c[g>>2]=f;c[e>>2]=1}}}n=b;a=c[n+4>>2]|0;o=s;c[o>>2]=c[n>>2];c[o+4>>2]=a;o=0;i=t;return o|0}case 6:case 7:case 8:case 9:case 10:case 11:case 13:case 14:case 15:case 16:case 17:case 18:{c[e>>2]=1;o=0;i=t;return o|0}default:{o=0;i=t;return o|0}}return 0}function Jb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;l=0;a:while(1){b=c[a+(l<<2)+148>>2]|0;b:do if((b|0)!=0?(k=c[a+(c[b+4>>2]<<2)+20>>2]|0,(k|0)!=0):0){j=c[k+52>>2]|0;m=Z(c[k+56>>2]|0,j)|0;f=c[b+12>>2]|0;if(f>>>0<=1){b=0;d=18;break a}d=c[b+16>>2]|0;if((d|0)==2){h=c[b+24>>2]|0;g=c[b+28>>2]|0;f=f+-1|0;e=0;while(1){b=c[h+(e<<2)>>2]|0;d=c[g+(e<<2)>>2]|0;if(!(b>>>0<=d>>>0&d>>>0>>0))break b;e=e+1|0;if(((b>>>0)%(j>>>0)|0)>>>0>((d>>>0)%(j>>>0)|0)>>>0)break b;if(e>>>0>=f>>>0){b=0;d=18;break a}}}else if(d){if((d+-3|0)>>>0<3)if((c[b+36>>2]|0)>>>0>m>>>0)break;else{b=0;d=18;break a}if((d|0)!=6){b=0;d=18;break a}if((c[b+40>>2]|0)>>>0>>0)break;else{b=0;d=18;break a}}else{d=c[b+20>>2]|0;b=0;while(1){if((c[d+(b<<2)>>2]|0)>>>0>m>>>0)break b;b=b+1|0;if(b>>>0>=f>>>0){b=0;d=18;break a}}}}while(0);l=l+1|0;if(l>>>0>=256){b=1;d=18;break}}if((d|0)==18){i=n;return b|0}return 0}function Kb(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;t=Z(f,e)|0;o=c[b+12>>2]|0;if((o|0)==1){id(a,0,t<<2);i=v;return}k=c[b+16>>2]|0;if((k+-3|0)>>>0<3){d=Z(c[b+36>>2]|0,d)|0;d=d>>>0>>0?d:t;if((k&-2|0)==4){n=(c[b+32>>2]|0)==0?d:t-d|0;u=d}else{n=0;u=d}}else{n=0;u=0}switch(k|0){case 0:{l=c[b+20>>2]|0;if(!t){i=v;return}else{h=0;j=0}while(1){while(1)if(h>>>0>>0)break;else h=0;b=l+(h<<2)|0;d=c[b>>2]|0;a:do if(!d)d=0;else{k=0;do{g=k+j|0;if(g>>>0>=t>>>0)break a;c[a+(g<<2)>>2]=h;k=k+1|0;d=c[b>>2]|0}while(k>>>0>>0)}while(0);j=d+j|0;if(j>>>0>=t>>>0)break;else h=h+1|0}i=v;return}case 4:{h=c[b+32>>2]|0;if(!t){i=v;return}d=1-h|0;g=0;do{c[a+(g<<2)>>2]=g>>>0>>0?h:d;g=g+1|0}while((g|0)!=(t|0));i=v;return}case 1:{if(!t){i=v;return}else h=0;do{c[a+(h<<2)>>2]=((((Z((h>>>0)/(e>>>0)|0,o)|0)>>>1)+((h>>>0)%(e>>>0)|0)|0)>>>0)%(o>>>0)|0;h=h+1|0}while((h|0)!=(t|0));i=v;return}case 2:{n=c[b+24>>2]|0;m=c[b+28>>2]|0;h=o+-1|0;if(t){d=0;do{c[a+(d<<2)>>2]=h;d=d+1|0}while((d|0)!=(t|0))}if(!h){i=v;return}g=o+-2|0;while(1){j=c[n+(g<<2)>>2]|0;d=(j>>>0)/(e>>>0)|0;j=(j>>>0)%(e>>>0)|0;h=c[m+(g<<2)>>2]|0;l=(h>>>0)/(e>>>0)|0;h=(h>>>0)%(e>>>0)|0;b:do if(d>>>0<=l>>>0){if(j>>>0>h>>>0)while(1){d=d+1|0;if(d>>>0>l>>>0)break b}do{k=Z(d,e)|0;b=j;do{c[a+(b+k<<2)>>2]=g;b=b+1|0}while(b>>>0<=h>>>0);d=d+1|0}while(d>>>0<=l>>>0)}while(0);if(!g)break;else g=g+-1|0}i=v;return}case 5:{d=c[b+32>>2]|0;if(!e){i=v;return}k=1-d|0;if(!f){i=v;return}else{g=0;j=0}while(1){h=0;b=j;while(1){m=a+((Z(h,e)|0)+g<<2)|0;c[m>>2]=b>>>0>>0?d:k;h=h+1|0;if((h|0)==(f|0))break;else b=b+1|0}g=g+1|0;if((g|0)==(e|0))break;else j=j+f|0}i=v;return}case 3:{m=c[b+32>>2]|0;if(t){d=0;do{c[a+(d<<2)>>2]=1;d=d+1|0}while((d|0)!=(t|0))}l=(e-m|0)>>>1;n=(f-m|0)>>>1;if(!u){i=v;return}t=m<<1;r=t+-1|0;s=e+-1|0;t=1-t|0;q=f+-1|0;o=n;p=0;g=l;f=l;k=n;b=l;j=m+-1|0;d=n;while(1){n=a+((Z(d,e)|0)+b<<2)|0;l=(c[n>>2]|0)==1;h=l&1;if(l)c[n>>2]=0;do if(!((j|0)==-1&(b|0)==(g|0))){if((j|0)==1&(b|0)==(f|0)){b=f+1|0;b=(b|0)<(s|0)?b:s;n=o;l=g;f=b;j=0;m=t;break}if((m|0)==-1&(d|0)==(k|0)){d=k+-1|0;d=(d|0)>0?d:0;n=o;l=g;k=d;j=t;m=0;break}if((m|0)==1&(d|0)==(o|0)){d=o+1|0;d=(d|0)<(q|0)?d:q;n=d;l=g;j=r;m=0;break}else{n=o;l=g;b=b+j|0;d=d+m|0;break}}else{b=g+-1|0;b=(b|0)>0?b:0;n=o;l=b;j=0;m=r}while(0);p=h+p|0;if(p>>>0>=u>>>0)break;else{o=n;g=l}}i=v;return}default:{if(!t){i=v;return}g=c[b+44>>2]|0;h=0;do{c[a+(h<<2)>>2]=c[g+(h<<2)>>2];h=h+1|0}while((h|0)!=(t|0));i=v;return}}}function Lb(){return 3472}function Mb(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;k=i;i=i+80|0;h=k+32|0;j=k;Nb(d,h,j,e);if((cb(c[a>>2]|0)|0)==1){e=Ob(a,g,b+328|0,h,j,f)|0;if(e){i=k;return e|0}}else{e=Pb(a,g,b,h,j,f)|0;if(e){i=k;return e|0}}e=Qb(a,g+256|0,b+1352|0,h+21|0,j+16|0,c[b+140>>2]|0,f)|0;if(e){i=k;return e|0}if((c[a+196>>2]|0)>>>0>1){e=0;i=k;return e|0}sc(d,g);e=0;i=k;return e|0}function Nb(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;if(!f){i=s;return}p=c[b+4>>2]|0;q=Z(c[b+8>>2]|0,p)|0;n=(f>>>0)/(p>>>0)|0;g=Z(n,p)|0;o=f-g|0;k=p<<4;h=c[b>>2]|0;j=(o<<4)+(Z(p<<8,n)|0)|0;r=(n|0)!=0;if(r){m=j-(k|1)|0;a[d>>0]=a[h+m>>0]|0;a[d+1>>0]=a[h+(m+1)>>0]|0;a[d+2>>0]=a[h+(m+2)>>0]|0;a[d+3>>0]=a[h+(m+3)>>0]|0;a[d+4>>0]=a[h+(m+4)>>0]|0;a[d+5>>0]=a[h+(m+5)>>0]|0;a[d+6>>0]=a[h+(m+6)>>0]|0;a[d+7>>0]=a[h+(m+7)>>0]|0;a[d+8>>0]=a[h+(m+8)>>0]|0;a[d+9>>0]=a[h+(m+9)>>0]|0;a[d+10>>0]=a[h+(m+10)>>0]|0;a[d+11>>0]=a[h+(m+11)>>0]|0;a[d+12>>0]=a[h+(m+12)>>0]|0;a[d+13>>0]=a[h+(m+13)>>0]|0;a[d+14>>0]=a[h+(m+14)>>0]|0;a[d+15>>0]=a[h+(m+15)>>0]|0;a[d+16>>0]=a[h+(m+16)>>0]|0;a[d+17>>0]=a[h+(m+17)>>0]|0;a[d+18>>0]=a[h+(m+18)>>0]|0;a[d+19>>0]=a[h+(m+19)>>0]|0;a[d+20>>0]=a[h+(m+20)>>0]|0;m=d+21|0}else m=d;l=(g|0)!=(f|0);if(l){j=j+-1|0;a[e>>0]=a[h+j>>0]|0;j=j+k|0;a[e+1>>0]=a[h+j>>0]|0;j=j+k|0;a[e+2>>0]=a[h+j>>0]|0;j=j+k|0;a[e+3>>0]=a[h+j>>0]|0;j=j+k|0;a[e+4>>0]=a[h+j>>0]|0;j=j+k|0;a[e+5>>0]=a[h+j>>0]|0;j=j+k|0;a[e+6>>0]=a[h+j>>0]|0;j=j+k|0;a[e+7>>0]=a[h+j>>0]|0;j=j+k|0;a[e+8>>0]=a[h+j>>0]|0;j=j+k|0;a[e+9>>0]=a[h+j>>0]|0;j=j+k|0;a[e+10>>0]=a[h+j>>0]|0;j=j+k|0;a[e+11>>0]=a[h+j>>0]|0;j=j+k|0;a[e+12>>0]=a[h+j>>0]|0;j=j+k|0;a[e+13>>0]=a[h+j>>0]|0;j=j+k|0;a[e+14>>0]=a[h+j>>0]|0;a[e+15>>0]=a[h+(j+k)>>0]|0;e=e+16|0}d=p<<3&2147483640;f=c[b>>2]|0;g=(Z(n<<3,d)|0)+(q<<8)+(o<<3)|0;if(r){b=g-(d|1)|0;a[m>>0]=a[f+b>>0]|0;a[m+1>>0]=a[f+(b+1)>>0]|0;a[m+2>>0]=a[f+(b+2)>>0]|0;a[m+3>>0]=a[f+(b+3)>>0]|0;a[m+4>>0]=a[f+(b+4)>>0]|0;a[m+5>>0]=a[f+(b+5)>>0]|0;a[m+6>>0]=a[f+(b+6)>>0]|0;a[m+7>>0]=a[f+(b+7)>>0]|0;a[m+8>>0]=a[f+(b+8)>>0]|0;b=b+(q<<6)|0;a[m+9>>0]=a[f+b>>0]|0;a[m+10>>0]=a[f+(b+1)>>0]|0;a[m+11>>0]=a[f+(b+2)>>0]|0;a[m+12>>0]=a[f+(b+3)>>0]|0;a[m+13>>0]=a[f+(b+4)>>0]|0;a[m+14>>0]=a[f+(b+5)>>0]|0;a[m+15>>0]=a[f+(b+6)>>0]|0;a[m+16>>0]=a[f+(b+7)>>0]|0;a[m+17>>0]=a[f+(b+8)>>0]|0}if(!l){i=s;return}m=g+-1|0;a[e>>0]=a[f+m>>0]|0;m=m+d|0;a[e+1>>0]=a[f+m>>0]|0;m=m+d|0;a[e+2>>0]=a[f+m>>0]|0;m=m+d|0;a[e+3>>0]=a[f+m>>0]|0;m=m+d|0;a[e+4>>0]=a[f+m>>0]|0;m=m+d|0;a[e+5>>0]=a[f+m>>0]|0;m=m+d|0;a[e+6>>0]=a[f+m>>0]|0;m=m+d|0;a[e+7>>0]=a[f+m>>0]|0;m=m+(d+((q<<6)-(p<<6)))|0;a[e+8>>0]=a[f+m>>0]|0;m=m+d|0;a[e+9>>0]=a[f+m>>0]|0;m=m+d|0;a[e+10>>0]=a[f+m>>0]|0;m=m+d|0;a[e+11>>0]=a[f+m>>0]|0;m=m+d|0;a[e+12>>0]=a[f+m>>0]|0;m=m+d|0;a[e+13>>0]=a[f+m>>0]|0;m=m+d|0;a[e+14>>0]=a[f+m>>0]|0;a[e+15>>0]=a[f+(m+d)>>0]|0;i=s;return}function Ob(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;k=b+200|0;l=zb(b,c[k>>2]|0)|0;o=(j|0)!=0;if((l|0)!=0&o){n=(cb(c[c[k>>2]>>2]|0)|0)==2;n=n?0:l}else n=l;j=b+204|0;l=zb(b,c[j>>2]|0)|0;if((l|0)!=0&o){p=(cb(c[c[j>>2]>>2]|0)|0)==2;p=p?0:l}else p=l;j=b+212|0;l=zb(b,c[j>>2]|0)|0;if((l|0)!=0&o){r=(cb(c[c[j>>2]>>2]|0)|0)==2;l=r?0:l}j=fb(c[b>>2]|0)|0;if(!j){if(!p){r=1;i=z;return r|0}b=g+1|0;m=g+2|0;s=g+3|0;t=g+4|0;u=g+5|0;v=g+6|0;w=g+7|0;x=g+8|0;y=g+9|0;h=g+10|0;l=g+11|0;j=g+12|0;k=g+13|0;q=g+14|0;r=g+15|0;p=g+16|0;o=e;n=0;while(1){a[o>>0]=a[b>>0]|0;a[o+1>>0]=a[m>>0]|0;a[o+2>>0]=a[s>>0]|0;a[o+3>>0]=a[t>>0]|0;a[o+4>>0]=a[u>>0]|0;a[o+5>>0]=a[v>>0]|0;a[o+6>>0]=a[w>>0]|0;a[o+7>>0]=a[x>>0]|0;a[o+8>>0]=a[y>>0]|0;a[o+9>>0]=a[h>>0]|0;a[o+10>>0]=a[l>>0]|0;a[o+11>>0]=a[j>>0]|0;a[o+12>>0]=a[k>>0]|0;a[o+13>>0]=a[q>>0]|0;a[o+14>>0]=a[r>>0]|0;a[o+15>>0]=a[p>>0]|0;n=n+1|0;if((n|0)==16)break;else o=o+16|0}}else if((j|0)==2){l=g+1|0;k=(n|0)!=0;j=(p|0)!=0;do if(!(k&j)){if(k){k=((d[h>>0]|0)+8+(d[h+1>>0]|0)+(d[h+2>>0]|0)+(d[h+3>>0]|0)+(d[h+4>>0]|0)+(d[h+5>>0]|0)+(d[h+6>>0]|0)+(d[h+7>>0]|0)+(d[h+8>>0]|0)+(d[h+9>>0]|0)+(d[h+10>>0]|0)+(d[h+11>>0]|0)+(d[h+12>>0]|0)+(d[h+13>>0]|0)+(d[h+14>>0]|0)+(d[h+15>>0]|0)|0)>>>4;break}if(j)k=((d[l>>0]|0)+8+(d[g+2>>0]|0)+(d[g+3>>0]|0)+(d[g+4>>0]|0)+(d[g+5>>0]|0)+(d[g+6>>0]|0)+(d[g+7>>0]|0)+(d[g+8>>0]|0)+(d[g+9>>0]|0)+(d[g+10>>0]|0)+(d[g+11>>0]|0)+(d[g+12>>0]|0)+(d[g+13>>0]|0)+(d[g+14>>0]|0)+(d[g+15>>0]|0)+(d[g+16>>0]|0)|0)>>>4;else k=128}else{j=0;k=0;do{r=j;j=j+1|0;k=(d[g+j>>0]|0)+k+(d[h+r>>0]|0)|0}while((j|0)!=16);k=(k+16|0)>>>5}while(0);nd(e|0,k&255|0,256)|0}else if((j|0)==1)if(!n){r=1;i=z;return r|0}else{k=e;j=0;while(1){r=h+j|0;a[k>>0]=a[r>>0]|0;a[k+1>>0]=a[r>>0]|0;a[k+2>>0]=a[r>>0]|0;a[k+3>>0]=a[r>>0]|0;a[k+4>>0]=a[r>>0]|0;a[k+5>>0]=a[r>>0]|0;a[k+6>>0]=a[r>>0]|0;a[k+7>>0]=a[r>>0]|0;a[k+8>>0]=a[r>>0]|0;a[k+9>>0]=a[r>>0]|0;a[k+10>>0]=a[r>>0]|0;a[k+11>>0]=a[r>>0]|0;a[k+12>>0]=a[r>>0]|0;a[k+13>>0]=a[r>>0]|0;a[k+14>>0]=a[r>>0]|0;a[k+15>>0]=a[r>>0]|0;j=j+1|0;if((j|0)==16)break;else k=k+16|0}}else{if(!((n|0)!=0&(p|0)!=0&(l|0)!=0)){r=1;i=z;return r|0}j=d[g+16>>0]|0;m=d[h+15>>0]|0;o=d[g>>0]|0;p=(((d[g+9>>0]|0)-(d[g+7>>0]|0)+((d[g+10>>0]|0)-(d[g+6>>0]|0)<<1)+(((d[g+11>>0]|0)-(d[g+5>>0]|0)|0)*3|0)+((d[g+12>>0]|0)-(d[g+4>>0]|0)<<2)+(((d[g+13>>0]|0)-(d[g+3>>0]|0)|0)*5|0)+(((d[g+14>>0]|0)-(d[g+2>>0]|0)|0)*6|0)+(((d[g+15>>0]|0)-(d[g+1>>0]|0)|0)*7|0)+(j-o<<3)|0)*5|0)+32>>6;o=(((d[h+8>>0]|0)-(d[h+6>>0]|0)+(m-o<<3)+((d[h+9>>0]|0)-(d[h+5>>0]|0)<<1)+(((d[h+10>>0]|0)-(d[h+4>>0]|0)|0)*3|0)+((d[h+11>>0]|0)-(d[h+3>>0]|0)<<2)+(((d[h+12>>0]|0)-(d[h+2>>0]|0)|0)*5|0)+(((d[h+13>>0]|0)-(d[h+1>>0]|0)|0)*6|0)+(((d[h+14>>0]|0)-(d[h>>0]|0)|0)*7|0)|0)*5|0)+32>>6;j=(m+j<<4)+16|0;m=0;do{k=j+(Z(m+-7|0,o)|0)|0;n=m<<4;b=0;do{l=k+(Z(b+-7|0,p)|0)>>5;if((l|0)<0)l=0;else l=(l|0)>255?-1:l&255;a[e+(b+n)>>0]=l;b=b+1|0}while((b|0)!=16);m=m+1|0}while((m|0)!=16)}Rb(e,f,0);Rb(e,f+64|0,1);Rb(e,f+128|0,2);Rb(e,f+192|0,3);Rb(e,f+256|0,4);Rb(e,f+320|0,5);Rb(e,f+384|0,6);Rb(e,f+448|0,7);Rb(e,f+512|0,8);Rb(e,f+576|0,9);Rb(e,f+640|0,10);Rb(e,f+704|0,11);Rb(e,f+768|0,12);Rb(e,f+832|0,13);Rb(e,f+896|0,14);Rb(e,f+960|0,15);r=0;i=z;return r|0}function Pb(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;M=(j|0)!=0;L=0;a:while(1){l=vb(L)|0;n=c[l+4>>2]|0;l=ub(b,c[l>>2]|0)|0;j=zb(b,l)|0;if((j|0)!=0&M){E=(cb(c[l>>2]|0)|0)==2;j=E?0:j}o=wb(L)|0;m=c[o+4>>2]|0;o=ub(b,c[o>>2]|0)|0;k=zb(b,o)|0;if((k|0)!=0&M){E=(cb(c[o>>2]|0)|0)==2;k=E?0:k}G=(j|0)!=0;H=(k|0)!=0;I=G&H;if(I){if(!(cb(c[l>>2]|0)|0))n=d[l+(n&255)+82>>0]|0;else n=2;if(!(cb(c[o>>2]|0)|0))j=d[o+(m&255)+82>>0]|0;else j=2;j=n>>>0>>0?n:j}else j=2;if(!(c[f+(L<<2)+12>>2]|0)){E=c[f+(L<<2)+76>>2]|0;j=(E>>>0>=j>>>0&1)+E|0}a[b+L+82>>0]=j;l=c[(xb(L)|0)>>2]|0;l=ub(b,l)|0;m=zb(b,l)|0;if((m|0)!=0&M){E=(cb(c[l>>2]|0)|0)==2;m=E?0:m}l=c[(yb(L)|0)>>2]|0;l=ub(b,l)|0;n=zb(b,l)|0;if((n|0)!=0&M){E=(cb(c[l>>2]|0)|0)==2;n=E?0:n}J=c[3344+(L<<2)>>2]|0;K=c[3408+(L<<2)>>2]|0;r=(1285>>>L&1|0)!=0;if(r){o=h+K|0;l=h+(K+1)|0;p=h+(K+2)|0;q=h+(K+3)|0}else{q=(K<<4)+J|0;o=e+(q+-1)|0;l=e+(q+15)|0;p=e+(q+31)|0;q=e+(q+47)|0}A=a[o>>0]|0;y=a[l>>0]|0;F=a[p>>0]|0;E=a[q>>0]|0;do if(!(51>>>L&1)){x=K+-1|0;w=(x<<4)+J|0;o=a[e+w>>0]|0;q=a[e+(w+1)>>0]|0;s=a[e+(w+2)>>0]|0;u=a[e+(w+3)>>0]|0;t=a[e+(w+4)>>0]|0;l=a[e+(w+5)>>0]|0;v=a[e+(w+6)>>0]|0;p=a[e+(w+7)>>0]|0;if(r){D=v;C=u;u=p;B=q;z=s;v=h+x|0;break}else{D=v;C=u;u=p;B=q;z=s;v=e+(w+-1)|0;break}}else{D=a[g+(J+7)>>0]|0;C=a[g+(J+4)>>0]|0;t=a[g+(J+5)>>0]|0;l=a[g+(J+6)>>0]|0;o=a[g+(J+1)>>0]|0;u=a[g+(J+8)>>0]|0;B=a[g+(J+2)>>0]|0;z=a[g+(J+3)>>0]|0;v=g+J|0}while(0);v=a[v>>0]|0;switch(j|0){case 4:{if(!(I&(n|0)!=0)){k=1;j=51;break a}j=o&255;o=v&255;q=A&255;s=j+2|0;D=(s+q+(o<<1)|0)>>>2;u=D&255;k=B&255;o=o+2|0;v=((j<<1)+k+o|0)>>>2&255;j=z&255;s=((k<<1)+j+s|0)>>>2&255;z=y&255;o=(z+(q<<1)+o|0)>>>2;t=o&255;A=F&255;B=(q+2+(z<<1)+A|0)>>>2;q=u;p=t;n=B&255;m=v;l=s;j=((C&255)+2+k+(j<<1)|0)>>>2&255;k=u;r=v;o=(z+2+(A<<1)+(E&255)|0)>>>2&255|B<<8&65280|D<<24|o<<16&16711680;break}case 6:{if(!(I&(n|0)!=0)){k=1;j=51;break a}l=v&255;s=A&255;u=s+1|0;r=(u+l|0)>>>1&255;C=y&255;v=((s<<1)+2+C+l|0)>>>2&255;u=(u+C|0)>>>1&255;D=F&255;s=s+2|0;y=(s+(C<<1)+D|0)>>>2;A=(C+1+D|0)>>>1;E=E&255;j=o&255;s=(s+j+(l<<1)|0)>>>2&255;k=B&255;q=r;p=u;n=A&255;m=s;l=(k+2+(j<<1)+l|0)>>>2&255;j=((z&255)+2+(k<<1)+j|0)>>>2&255;k=v;t=y&255;o=y<<24|A<<16&16711680|(D+1+E|0)>>>1&255|C+2+(D<<1)+E<<6&65280;break}case 2:{do if(!I){if(G){j=((A&255)+2+(y&255)+(F&255)+(E&255)|0)>>>2;break}if(H)j=((C&255)+2+(z&255)+(B&255)+(o&255)|0)>>>2;else j=128}else j=((A&255)+4+(y&255)+(F&255)+(E&255)+(C&255)+(z&255)+(B&255)+(o&255)|0)>>>3;while(0);o=Z(j&255,16843009)|0;n=o&255;t=o>>>8&255;u=o>>>16&255;v=o>>>24&255;q=n;p=n;m=t;l=u;j=v;k=t;r=u;s=v;break}case 0:{if(!k){k=1;j=51;break a}q=o;p=o;n=o;m=B;l=z;j=C;k=B;r=z;s=C;t=B;u=z;v=C;o=(z&255)<<16|(C&255)<<24|(B&255)<<8|o&255;break}case 1:{if(!G){k=1;j=51;break a}j=Z(A&255,16843009)|0;s=Z(y&255,16843009)|0;v=Z(F&255,16843009)|0;q=j&255;p=s&255;n=v&255;m=j>>>8&255;l=j>>>16&255;j=j>>>24&255;k=s>>>8&255;r=s>>>16&255;s=s>>>24&255;t=v>>>8&255;u=v>>>16&255;v=v>>>24&255;o=Z(E&255,16843009)|0;break}case 7:{if(!k){k=1;j=51;break a}A=(m|0)==0;n=o&255;p=B&255;z=z&255;m=(z+1+p|0)>>>1&255;o=C&255;u=o+1|0;v=(u+z|0)>>>1&255;B=(A?C:t)&255;u=(u+B|0)>>>1&255;j=z+2|0;y=o+2|0;z=(y+p+(z<<1)|0)>>>2;o=(j+(o<<1)+B|0)>>>2;E=(A?C:l)&255;y=(y+E+(B<<1)|0)>>>2;q=(p+1+n|0)>>>1&255;p=(j+n+(p<<1)|0)>>>2&255;n=m;l=v;j=u;k=z&255;r=o&255;s=y&255;t=v;v=(B+1+E|0)>>>1&255;o=y<<16&16711680|z&255|(B+2+((A?C:D)&255)+(E<<1)|0)>>>2<<24|o<<8&65280;break}case 3:{if(!k){k=1;j=51;break a}n=(m|0)==0;q=B&255;m=z&255;p=m+2|0;k=C&255;B=k+2|0;m=(B+q+(m<<1)|0)>>>2&255;v=(n?C:t)&255;k=(p+(k<<1)+v|0)>>>2&255;E=(n?C:l)&255;B=(B+E+(v<<1)|0)>>>2;t=B&255;A=(n?C:D)&255;D=(v+2+A+(E<<1)|0)>>>2;v=D&255;C=(n?C:u)&255;E=(E+2+C+(A<<1)|0)>>>2;q=(p+(o&255)+(q<<1)|0)>>>2&255;p=m;n=k;l=k;j=t;r=t;s=v;u=v;v=E&255;o=(A+2+(C*3|0)|0)>>>2<<24|B&255|D<<8&65280|E<<16&16711680;break}case 5:{if(!(I&(n|0)!=0)){k=1;j=51;break a}n=v&255;u=o&255;t=(u+1+n|0)>>>1&255;x=B&255;E=(x+2+(u<<1)+n|0)>>>2;B=A&255;A=u+2|0;o=(A+B+(n<<1)|0)>>>2;u=(x+1+u|0)>>>1&255;s=z&255;A=((x<<1)+s+A|0)>>>2;v=(s+1+x|0)>>>1&255;C=C&255;D=y&255;q=t;p=o&255;n=(D+2+(B<<1)+n|0)>>>2&255;m=u;l=v;j=(C+1+s|0)>>>1&255;k=E&255;r=A&255;s=(C+2+x+(s<<1)|0)>>>2&255;o=A<<24|(B+2+(F&255)+(D<<1)|0)>>>2&255|E<<16&16711680|o<<8&65280;break}default:{if(!G){k=1;j=51;break a}s=A&255;j=y&255;m=F&255;l=(j+1+m|0)>>>1&255;o=E&255;k=(j+2+(m<<1)+o|0)>>>2&255;r=(m+1+o|0)>>>1&255;t=(m+2+(o*3|0)|0)>>>2&255;q=(s+1+j|0)>>>1&255;p=l;n=r;m=(s+2+(j<<1)+m|0)>>>2&255;j=k;s=t;u=E;v=E;o=o<<8|o|o<<16|o<<24}}E=(K<<4)+J|0;c[e+E>>2]=(l&255)<<16|(j&255)<<24|(m&255)<<8|q&255;c[e+(E+16)>>2]=(r&255)<<16|(s&255)<<24|(k&255)<<8|p&255;c[e+(E+32)>>2]=(u&255)<<16|(v&255)<<24|(t&255)<<8|n&255;c[e+(E+48)>>2]=o;Rb(e,f+(L<<6)+328|0,L);L=L+1|0;if(L>>>0>=16){k=0;j=51;break}}if((j|0)==51){i=N;return k|0}return 0}function Qb(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;m=b+200|0;l=zb(b,c[m>>2]|0)|0;n=(k|0)!=0;if((l|0)!=0&n){o=(cb(c[c[m>>2]>>2]|0)|0)==2;l=o?0:l}m=b+204|0;k=zb(b,c[m>>2]|0)|0;if((k|0)!=0&n){o=(cb(c[c[m>>2]>>2]|0)|0)==2;o=o?0:k}else o=k;m=b+212|0;k=zb(b,c[m>>2]|0)|0;if((k|0)!=0&n){n=(cb(c[c[m>>2]>>2]|0)|0)==2;k=n?0:k}w=(l|0)!=0;x=(o|0)!=0;v=w&x;u=v&(k|0)!=0;t=(l|0)==0;s=(o|0)==0;p=g;q=16;r=0;while(1){if((j|0)==1){if(t){l=1;k=29;break}else{n=e;b=8;m=h}while(1){b=b+-1|0;a[n>>0]=a[m>>0]|0;a[n+1>>0]=a[m>>0]|0;a[n+2>>0]=a[m>>0]|0;a[n+3>>0]=a[m>>0]|0;a[n+4>>0]=a[m>>0]|0;a[n+5>>0]=a[m>>0]|0;a[n+6>>0]=a[m>>0]|0;a[n+7>>0]=a[m>>0]|0;if(!b)break;else{n=n+8|0;m=m+1|0}}}else if((j|0)==2){if(s){l=1;k=29;break}else{n=p;b=e;m=8}while(1){n=n+1|0;m=m+-1|0;a[b>>0]=a[n>>0]|0;a[b+8>>0]=a[n>>0]|0;a[b+16>>0]=a[n>>0]|0;a[b+24>>0]=a[n>>0]|0;a[b+32>>0]=a[n>>0]|0;a[b+40>>0]=a[n>>0]|0;a[b+48>>0]=a[n>>0]|0;a[b+56>>0]=a[n>>0]|0;if(!m)break;else b=b+1|0}}else if(!j){m=p+1|0;do if(!v){if(x){n=((d[m>>0]|0)+2+(d[p+2>>0]|0)+(d[p+3>>0]|0)+(d[p+4>>0]|0)|0)>>>2;b=((d[p+5>>0]|0)+2+(d[p+6>>0]|0)+(d[p+7>>0]|0)+(d[p+8>>0]|0)|0)>>>2;break}if(w){b=((d[h>>0]|0)+2+(d[h+1>>0]|0)+(d[h+2>>0]|0)+(d[h+3>>0]|0)|0)>>>2;n=b}else{n=128;b=128}}else{n=((d[m>>0]|0)+4+(d[p+2>>0]|0)+(d[p+3>>0]|0)+(d[p+4>>0]|0)+(d[h>>0]|0)+(d[h+1>>0]|0)+(d[h+2>>0]|0)+(d[h+3>>0]|0)|0)>>>3;b=((d[p+5>>0]|0)+2+(d[p+6>>0]|0)+(d[p+7>>0]|0)+(d[p+8>>0]|0)|0)>>>2}while(0);n=n&255;o=b&255;nd(e|0,n|0,4)|0;nd(e+4|0,o|0,4)|0;nd(e+8|0,n|0,4)|0;nd(e+12|0,o|0,4)|0;nd(e+16|0,n|0,4)|0;nd(e+20|0,o|0,4)|0;g=e+32|0;nd(e+24|0,n|0,4)|0;nd(e+28|0,o|0,4)|0;if(w){o=d[h+4>>0]|0;n=d[h+5>>0]|0;b=d[h+6>>0]|0;m=d[h+7>>0]|0;k=(o+2+n+b+m|0)>>>2;if(x){l=k;n=(o+4+n+b+m+(d[p+5>>0]|0)+(d[p+6>>0]|0)+(d[p+7>>0]|0)+(d[p+8>>0]|0)|0)>>>3}else{l=k;n=k}}else if(x){l=((d[m>>0]|0)+2+(d[p+2>>0]|0)+(d[p+3>>0]|0)+(d[p+4>>0]|0)|0)>>>2;n=((d[p+5>>0]|0)+2+(d[p+6>>0]|0)+(d[p+7>>0]|0)+(d[p+8>>0]|0)|0)>>>2}else{l=128;n=128}b=l&255;o=n&255;nd(g|0,b|0,4)|0;nd(e+36|0,o|0,4)|0;nd(e+40|0,b|0,4)|0;nd(e+44|0,o|0,4)|0;nd(e+48|0,b|0,4)|0;nd(e+52|0,o|0,4)|0;nd(e+56|0,b|0,4)|0;nd(e+60|0,o|0,4)|0}else{if(!u){l=1;k=29;break}n=d[p+8>>0]|0;b=d[h+7>>0]|0;l=d[p>>0]|0;k=(((d[p+5>>0]|0)-(d[p+3>>0]|0)+((d[p+6>>0]|0)-(d[p+2>>0]|0)<<1)+(((d[p+7>>0]|0)-(d[p+1>>0]|0)|0)*3|0)+(n-l<<2)|0)*17|0)+16>>5;l=(((d[h+4>>0]|0)-(d[h+2>>0]|0)+(b-l<<2)+((d[h+5>>0]|0)-(d[h+1>>0]|0)<<1)+(((d[h+6>>0]|0)-(d[h>>0]|0)|0)*3|0)|0)*17|0)+16>>5;o=Z(k,-3)|0;n=(b+n<<4)+16+(Z(l,-3)|0)|0;b=e;m=8;while(1){m=m+-1|0;g=n+o|0;a[b>>0]=a[(g>>5)+3984>>0]|0;g=g+k|0;a[b+1>>0]=a[(g>>5)+3984>>0]|0;g=g+k|0;a[b+2>>0]=a[(g>>5)+3984>>0]|0;g=g+k|0;a[b+3>>0]=a[(g>>5)+3984>>0]|0;g=g+k|0;a[b+4>>0]=a[(g>>5)+3984>>0]|0;g=g+k|0;a[b+5>>0]=a[(g>>5)+3984>>0]|0;g=g+k|0;a[b+6>>0]=a[(g>>5)+3984>>0]|0;a[b+7>>0]=a[(g+k>>5)+3984>>0]|0;if(!m)break;else{n=n+l|0;b=b+8|0}}}Rb(e,f,q);g=q|1;Rb(e,f+64|0,g);Rb(e,f+128|0,g+1|0);Rb(e,f+192|0,q|3);r=r+1|0;if(r>>>0>=2){l=0;k=29;break}else{p=p+9|0;q=q+4|0;e=e+64|0;h=h+8|0;f=f+256|0}}if((k|0)==29){i=y;return l|0}return 0}function Rb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;h=i;g=c[e>>2]|0;if((g|0)==16777215){i=h;return}m=f>>>0<16;l=m?16:8;m=m?f:f&3;m=(Z(c[3408+(m<<2)>>2]|0,l)|0)+(c[3344+(m<<2)>>2]|0)|0;n=b+m|0;p=c[e+4>>2]|0;j=b+(m+1)|0;f=d[j>>0]|0;a[n>>0]=a[3472+(g+512+(d[n>>0]|0))>>0]|0;n=c[e+8>>2]|0;k=b+(m+2)|0;o=d[k>>0]|0;a[j>>0]=a[3472+(p+512+f)>>0]|0;g=b+(m+3)|0;j=a[3472+((c[e+12>>2]|0)+512+(d[g>>0]|0))>>0]|0;a[k>>0]=a[3472+(n+512+o)>>0]|0;a[g>>0]=j;g=m+l|0;m=b+g|0;j=c[e+20>>2]|0;k=b+(g+1)|0;o=d[k>>0]|0;a[m>>0]=a[3472+((c[e+16>>2]|0)+512+(d[m>>0]|0))>>0]|0;m=c[e+24>>2]|0;n=b+(g+2)|0;f=d[n>>0]|0;a[k>>0]=a[3472+(j+512+o)>>0]|0;k=b+(g+3)|0;o=a[3472+((c[e+28>>2]|0)+512+(d[k>>0]|0))>>0]|0;a[n>>0]=a[3472+(m+512+f)>>0]|0;a[k>>0]=o;g=g+l|0;k=b+g|0;o=c[e+36>>2]|0;n=b+(g+1)|0;f=d[n>>0]|0;a[k>>0]=a[3472+((c[e+32>>2]|0)+512+(d[k>>0]|0))>>0]|0;k=c[e+40>>2]|0;m=b+(g+2)|0;j=d[m>>0]|0;a[n>>0]=a[3472+(o+512+f)>>0]|0;n=b+(g+3)|0;f=a[3472+((c[e+44>>2]|0)+512+(d[n>>0]|0))>>0]|0;a[m>>0]=a[3472+(k+512+j)>>0]|0;a[n>>0]=f;g=g+l|0;l=b+g|0;n=c[e+52>>2]|0;f=b+(g+1)|0;m=d[f>>0]|0;a[l>>0]=a[3472+((c[e+48>>2]|0)+512+(d[l>>0]|0))>>0]|0;l=c[e+56>>2]|0;j=b+(g+2)|0;k=d[j>>0]|0;a[f>>0]=a[3472+(n+512+m)>>0]|0;g=b+(g+3)|0;f=a[3472+((c[e+60>>2]|0)+512+(d[g>>0]|0))>>0]|0;a[j>>0]=a[3472+(l+512+k)>>0]|0;a[g>>0]=f;i=h;return} +function yc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;l=b+-1|0;k=a[b+1>>0]|0;m=d[l>>0]|0;n=d[b>>0]|0;r=m-n|0;p=f+4|0;do if((((r|0)>-1?r:0-r|0)>>>0<(c[p>>2]|0)>>>0?(o=d[b+-2>>0]|0,r=o-m|0,j=c[f+8>>2]|0,((r|0)>-1?r:0-r|0)>>>0>>0):0)?(h=k&255,k=h-n|0,((k|0)>-1?k:0-k|0)>>>0>>0):0)if(e>>>0<4){k=d[(c[f>>2]|0)+(e+-1)>>0]|0;k=Oa(~k,k+1|0,4-h+(n-m<<2)+o>>3)|0;o=a[3472+((n|512)-k)>>0]|0;a[l>>0]=a[3472+((m|512)+k)>>0]|0;a[b>>0]=o;break}else{a[l>>0]=(m+2+h+(o<<1)|0)>>>2;a[b>>0]=(n+2+(h<<1)+o|0)>>>2;break}while(0);l=b+g|0;m=b+(g+-1)|0;o=d[m>>0]|0;n=d[l>>0]|0;k=o-n|0;if(((k|0)>-1?k:0-k|0)>>>0>=(c[p>>2]|0)>>>0){i=q;return}k=d[b+(g+-2)>>0]|0;p=k-o|0;j=c[f+8>>2]|0;if(((p|0)>-1?p:0-p|0)>>>0>=j>>>0){i=q;return}h=d[b+(g+1)>>0]|0;g=h-n|0;if(((g|0)>-1?g:0-g|0)>>>0>=j>>>0){i=q;return}if(e>>>0<4){b=d[(c[f>>2]|0)+(e+-1)>>0]|0;b=Oa(~b,b+1|0,4-h+(n-o<<2)+k>>3)|0;g=a[3472+((n|512)-b)>>0]|0;a[m>>0]=a[3472+((o|512)+b)>>0]|0;a[l>>0]=g;i=q;return}else{a[m>>0]=(o+2+h+(k<<1)|0)>>>2;a[l>>0]=(n+2+(h<<1)+k|0)>>>2;i=q;return}}function zc(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;if(e>>>0<4){n=d[(c[f>>2]|0)+(e+-1)>>0]|0;h=n+1|0;q=0-g|0;e=f+4|0;p=q<<1;o=f+8|0;n=~n;j=8;while(1){m=b+q|0;f=a[b+g>>0]|0;l=d[m>>0]|0;k=d[b>>0]|0;r=l-k|0;if((((r|0)>-1?r:0-r|0)>>>0<(c[e>>2]|0)>>>0?(t=d[b+p>>0]|0,r=t-l|0,s=c[o>>2]|0,((r|0)>-1?r:0-r|0)>>>0>>0):0)?(u=f&255,f=u-k|0,((f|0)>-1?f:0-f|0)>>>0>>0):0){r=Oa(n,h,4-u+(k-l<<2)+t>>3)|0;f=a[3472+((k|512)-r)>>0]|0;a[m>>0]=a[3472+((l|512)+r)>>0]|0;a[b>>0]=f}j=j+-1|0;if(!j)break;else b=b+1|0}i=v;return}else{o=0-g|0;m=f+4|0;n=o<<1;f=f+8|0;l=8;while(1){h=b+o|0;e=a[b+g>>0]|0;j=d[h>>0]|0;k=d[b>>0]|0;s=j-k|0;if((((s|0)>-1?s:0-s|0)>>>0<(c[m>>2]|0)>>>0?(p=d[b+n>>0]|0,s=p-j|0,q=c[f>>2]|0,((s|0)>-1?s:0-s|0)>>>0>>0):0)?(r=e&255,e=r-k|0,((e|0)>-1?e:0-e|0)>>>0>>0):0){a[h>>0]=(j+2+r+(p<<1)|0)>>>2;a[b>>0]=(k+2+(r<<1)+p|0)>>>2}l=l+-1|0;if(!l)break;else b=b+1|0}i=v;return}}function Ac(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;r=d[(c[f>>2]|0)+(e+-1)>>0]|0;s=r+1|0;l=0-g|0;h=f+4|0;q=l<<1;e=f+8|0;r=~r;l=b+l|0;m=a[b+g>>0]|0;k=d[l>>0]|0;j=d[b>>0]|0;u=k-j|0;f=c[h>>2]|0;if((((u|0)>-1?u:0-u|0)>>>0>>0?(o=d[b+q>>0]|0,u=o-k|0,n=c[e>>2]|0,((u|0)>-1?u:0-u|0)>>>0>>0):0)?(p=m&255,m=p-j|0,((m|0)>-1?m:0-m|0)>>>0>>0):0){p=Oa(r,s,4-p+(j-k<<2)+o>>3)|0;f=a[3472+((j|512)-p)>>0]|0;a[l>>0]=a[3472+((k|512)+p)>>0]|0;a[b>>0]=f;f=c[h>>2]|0}m=b+1|0;j=b+(1-g)|0;k=d[j>>0]|0;l=d[m>>0]|0;p=k-l|0;if(((p|0)>-1?p:0-p|0)>>>0>=f>>>0){i=t;return}h=d[b+(q|1)>>0]|0;p=h-k|0;f=c[e>>2]|0;if(((p|0)>-1?p:0-p|0)>>>0>=f>>>0){i=t;return}e=d[b+(g+1)>>0]|0;p=e-l|0;if(((p|0)>-1?p:0-p|0)>>>0>=f>>>0){i=t;return}o=Oa(r,s,4-e+(l-k<<2)+h>>3)|0;p=a[3472+((l|512)-o)>>0]|0;a[j>>0]=a[3472+((k|512)+o)>>0]|0;a[m>>0]=p;i=t;return}function Bc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;p=c[b+4>>2]|0;q=c[b+8>>2]|0;if(!((d|0)==0|(d|0)==5)?(c[a+3384>>2]|0)==0:0)f=0;else{g=a+1220|0;e=0;do{f=ic(g,e)|0;e=e+1|0}while(e>>>0<16&(f|0)==0)}l=a+1176|0;n=c[l>>2]|0;if(n){m=c[a+1212>>2]|0;e=0;j=0;g=0;do{if(c[m+(j*216|0)+196>>2]|0)break;j=j+1|0;e=e+1|0;o=(e|0)==(p|0);g=(o&1)+g|0;e=o?0:e}while(j>>>0>>0);if((j|0)!=(n|0)){o=a+1212|0;n=c[o>>2]|0;j=Z(g,p)|0;if(e){l=a+1204|0;h=e;do{h=h+-1|0;m=h+j|0;Cc(n+(m*216|0)|0,b,g,h,d,f);c[n+(m*216|0)+196>>2]=1;c[l>>2]=(c[l>>2]|0)+1}while((h|0)!=0)}e=e+1|0;if(e>>>0

>>0){m=a+1204|0;do{l=e+j|0;k=n+(l*216|0)+196|0;if(!(c[k>>2]|0)){Cc(n+(l*216|0)|0,b,g,e,d,f);c[k>>2]=1;c[m>>2]=(c[m>>2]|0)+1}e=e+1|0}while((e|0)!=(p|0))}if(g){if(p){n=g+-1|0;h=Z(n,p)|0;e=a+1204|0;l=0-p|0;k=0;do{m=n;j=(c[o>>2]|0)+((k+h|0)*216|0)|0;while(1){Cc(j,b,m,k,d,f);c[j+196>>2]=1;c[e>>2]=(c[e>>2]|0)+1;if(!m)break;else{m=m+-1|0;j=j+(l*216|0)|0}}k=k+1|0}while((k|0)!=(p|0))}}else g=0;g=g+1|0;if(g>>>0>=q>>>0){i=r;return 0}m=a+1204|0;if(!p){i=r;return 0}do{e=c[o>>2]|0;l=Z(g,p)|0;k=0;do{h=k+l|0;j=e+(h*216|0)+196|0;if(!(c[j>>2]|0)){Cc(e+(h*216|0)|0,b,g,k,d,f);c[j>>2]=1;c[m>>2]=(c[m>>2]|0)+1}k=k+1|0}while((k|0)!=(p|0));g=g+1|0}while((g|0)!=(q|0));i=r;return 0}}if((d|0)==2|(d|0)==7)if((c[a+3384>>2]|0)==0|(f|0)==0)g=13;else g=14;else if(!f)g=13;else g=14;if((g|0)==13)id(c[b>>2]|0,128,Z(p*384|0,q)|0);else if((g|0)==14)hd(c[b>>2]|0,f,Z(p*384|0,q)|0);g=c[l>>2]|0;c[a+1204>>2]=g;if(!g){i=r;return 0}e=c[a+1212>>2]|0;f=0;do{c[e+(f*216|0)+8>>2]=1;f=f+1|0}while(f>>>0>>0);i=r;return 0}function Cc(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0;sa=i;i=i+480|0;qa=sa+96|0;ra=sa+32|0;m=sa+24|0;n=sa;na=c[e+4>>2]|0;u=c[e+8>>2]|0;Na(e,(Z(na,f)|0)+g|0);p=c[e>>2]|0;k=f<<4;l=g<<4;o=(Z(f<<8,na)|0)+l|0;c[b+20>>2]=40;c[b+8>>2]=0;c[b>>2]=6;c[b+12>>2]=0;c[b+16>>2]=0;c[b+24>>2]=0;do if((h|0)==2|(h|0)==7)id(qa,0,384);else{c[m>>2]=0;c[n+4>>2]=na;c[n+8>>2]=u;c[n>>2]=j;if(!j){id(qa,0,384);break}dc(qa,m,n,l,k,0,0,16,16);sc(e,qa);i=sa;return}while(0);id(ra,0,64);if((f|0)!=0?(c[b+((0-na|0)*216|0)+196>>2]|0)!=0:0){v=o-(na<<4)|0;E=v|1;D=v|3;E=(d[p+E>>0]|0)+(d[p+v>>0]|0)+(d[p+(E+1)>>0]|0)+(d[p+D>>0]|0)|0;$=v|7;D=(d[p+(D+2)>>0]|0)+(d[p+(D+1)>>0]|0)+(d[p+(D+3)>>0]|0)+(d[p+$>>0]|0)|0;F=(d[p+($+2)>>0]|0)+(d[p+($+1)>>0]|0)+(d[p+($+3)>>0]|0)+(d[p+($+4)>>0]|0)|0;v=(d[p+($+6)>>0]|0)+(d[p+($+5)>>0]|0)+(d[p+($+7)>>0]|0)+(d[p+(v|15)>>0]|0)|0;$=D+E|0;c[ra>>2]=F+$+(c[ra>>2]|0)+v;s=ra+4|0;c[s>>2]=$-F-v+(c[s>>2]|0);s=1}else{E=0;D=0;F=0;v=0;s=0}if((u+-1|0)!=(f|0)?(c[b+(na*216|0)+196>>2]|0)!=0:0){z=o+(na<<8)|0;w=z|1;x=z|3;w=(d[p+w>>0]|0)+(d[p+z>>0]|0)+(d[p+(w+1)>>0]|0)+(d[p+x>>0]|0)|0;r=z|7;x=(d[p+(x+2)>>0]|0)+(d[p+(x+1)>>0]|0)+(d[p+(x+3)>>0]|0)+(d[p+r>>0]|0)|0;y=(d[p+(r+2)>>0]|0)+(d[p+(r+1)>>0]|0)+(d[p+(r+3)>>0]|0)+(d[p+(r+4)>>0]|0)|0;z=(d[p+(r+6)>>0]|0)+(d[p+(r+5)>>0]|0)+(d[p+(r+7)>>0]|0)+(d[p+(z|15)>>0]|0)|0;r=x+w|0;c[ra>>2]=y+r+(c[ra>>2]|0)+z;t=ra+4|0;c[t>>2]=r-y-z+(c[t>>2]|0);t=1;r=s+1|0}else{t=0;w=0;x=0;y=0;z=0;r=s}if((g|0)!=0?(c[b+-20>>2]|0)!=0:0){_=o+-1|0;$=na<<4;j=na<<5;ma=na*48|0;C=(d[p+(_+$)>>0]|0)+(d[p+_>>0]|0)+(d[p+(_+j)>>0]|0)+(d[p+(_+ma)>>0]|0)|0;h=na<<6;_=_+h|0;B=(d[p+(_+$)>>0]|0)+(d[p+_>>0]|0)+(d[p+(_+j)>>0]|0)+(d[p+(_+ma)>>0]|0)|0;_=_+h|0;A=(d[p+(_+$)>>0]|0)+(d[p+_>>0]|0)+(d[p+(_+j)>>0]|0)+(d[p+(_+ma)>>0]|0)|0;h=_+h|0;ma=(d[p+(h+$)>>0]|0)+(d[p+h>>0]|0)+(d[p+(h+j)>>0]|0)+(d[p+(h+ma)>>0]|0)|0;h=B+C|0;c[ra>>2]=A+h+(c[ra>>2]|0)+ma;j=ra+16|0;c[j>>2]=h-A-ma+(c[j>>2]|0);j=r+1|0;h=1}else{j=r;C=0;B=0;A=0;ma=0;h=0}do if((na+-1|0)!=(g|0)?(c[b+412>>2]|0)!=0:0){$=o+16|0;n=na<<4;m=na<<5;o=na*48|0;b=(d[p+($+n)>>0]|0)+(d[p+$>>0]|0)+(d[p+($+m)>>0]|0)+(d[p+($+o)>>0]|0)|0;q=na<<6;$=$+q|0;l=(d[p+($+n)>>0]|0)+(d[p+$>>0]|0)+(d[p+($+m)>>0]|0)+(d[p+($+o)>>0]|0)|0;$=$+q|0;k=(d[p+($+n)>>0]|0)+(d[p+$>>0]|0)+(d[p+($+m)>>0]|0)+(d[p+($+o)>>0]|0)|0;q=$+q|0;o=(d[p+(q+n)>>0]|0)+(d[p+q>>0]|0)+(d[p+(q+m)>>0]|0)+(d[p+(q+o)>>0]|0)|0;p=j+1|0;q=h+1|0;j=l+b|0;c[ra>>2]=k+j+(c[ra>>2]|0)+o;m=ra+16|0;j=j-k-o+(c[m>>2]|0)|0;c[m>>2]=j;m=(r|0)==0;n=(h|0)!=0;if(!(m&n)){if(!m){m=1;j=p;h=q;l=21;break}}else c[ra+4>>2]=A+ma+B+C-b-l-k-o>>5;m=1;o=(s|0)!=0;b=(t|0)!=0;h=q;l=27}else l=17;while(0);if((l|0)==17){n=(h|0)!=0;if(!r){m=0;p=j;l=23}else{m=0;l=21}}if((l|0)==21){p=ra+4|0;c[p>>2]=c[p>>2]>>r+3;p=j;l=23}do if((l|0)==23){j=(h|0)==0;o=(s|0)!=0;b=(t|0)!=0;if(j&o&b){c[ra+16>>2]=F+v+D+E-z-y-x-w>>5;pa=m;h=p;oa=n;o=1;b=1;break}if(j){pa=m;h=p;oa=n}else{j=c[ra+16>>2]|0;l=27}}while(0);if((l|0)==27){c[ra+16>>2]=j>>h+3;pa=m;h=p;oa=n}if((h|0)==1)c[ra>>2]=c[ra>>2]>>4;else if((h|0)==2)c[ra>>2]=c[ra>>2]>>5;else if((h|0)==3)c[ra>>2]=(c[ra>>2]|0)*21>>10;else c[ra>>2]=c[ra>>2]>>6;Dc(ra);n=0;j=qa;m=ra;while(1){h=c[m+((n>>>2&3)<<2)>>2]|0;if((h|0)<0)h=0;else h=(h|0)>255?-1:h&255;a[j>>0]=h;h=n+1|0;if((h|0)==256)break;else{n=h;j=j+1|0;m=(h&63|0)==0?m+16|0:m}}ta=Z(u,na)|0;V=na<<3;Y=0-V|0;G=Y|1;_=G+1|0;$=Y|3;aa=$+1|0;ba=$+2|0;ca=$+3|0;da=Y|7;W=ra+4|0;ka=na<<6;H=ka|1;ea=H+1|0;fa=ka|3;ga=fa+1|0;ha=fa+2|0;ia=fa+3|0;ja=ka|7;I=V+-1|0;U=na<<4;J=U+-1|0;K=J+V|0;L=J+U|0;M=L+V|0;N=L+U|0;O=N+V|0;X=ra+16|0;P=V+8|0;Q=U|8;R=Q+V|0;S=Q+U|0;T=S+V|0;U=S+U|0;V=U+V|0;la=ta<<6;q=E;p=D;h=F;t=v;n=w;j=x;l=y;u=z;F=0;m=C;k=B;r=A;s=ma;E=(c[e>>2]|0)+((Z(f<<6,na)|0)+(g<<3)+(ta<<8))|0;while(1){id(ra,0,64);if(o){q=(d[E+G>>0]|0)+(d[E+Y>>0]|0)|0;p=(d[E+$>>0]|0)+(d[E+_>>0]|0)|0;z=(d[E+ba>>0]|0)+(d[E+aa>>0]|0)|0;A=(d[E+da>>0]|0)+(d[E+ca>>0]|0)|0;t=p+q|0;c[ra>>2]=z+t+(c[ra>>2]|0)+A;c[W>>2]=t-z-A+(c[W>>2]|0);t=1}else{z=h;A=t;t=0}if(b){B=(d[E+H>>0]|0)+(d[E+ka>>0]|0)|0;C=(d[E+fa>>0]|0)+(d[E+ea>>0]|0)|0;D=(d[E+ha>>0]|0)+(d[E+ga>>0]|0)|0;u=(d[E+ja>>0]|0)+(d[E+ia>>0]|0)|0;h=C+B|0;c[ra>>2]=D+h+(c[ra>>2]|0)+u;c[W>>2]=h-D-u+(c[W>>2]|0);h=t+1|0}else{B=n;C=j;D=l;h=t}if(oa){v=(d[E+I>>0]|0)+(d[E+-1>>0]|0)|0;w=(d[E+K>>0]|0)+(d[E+J>>0]|0)|0;x=(d[E+M>>0]|0)+(d[E+L>>0]|0)|0;y=(d[E+O>>0]|0)+(d[E+N>>0]|0)|0;t=w+v|0;c[ra>>2]=x+t+(c[ra>>2]|0)+y;c[X>>2]=t-x-y+(c[X>>2]|0);t=h+1|0;s=1}else{t=h;v=m;w=k;x=r;y=s;s=0}do if(pa){l=(d[E+P>>0]|0)+(d[E+8>>0]|0)|0;m=(d[E+R>>0]|0)+(d[E+Q>>0]|0)|0;j=(d[E+T>>0]|0)+(d[E+S>>0]|0)|0;n=(d[E+V>>0]|0)+(d[E+U>>0]|0)|0;t=t+1|0;s=s+1|0;k=m+l|0;c[ra>>2]=j+k+(c[ra>>2]|0)+n;k=k-j-n+(c[X>>2]|0)|0;c[X>>2]=k;r=(h|0)==0;if(!(r&oa))if(r){l=54;break}else{l=49;break}else{c[W>>2]=x+y+w+v-l-m-j-n>>4;l=54;break}}else if(!h){r=s;l=50}else l=49;while(0);if((l|0)==49){c[W>>2]=c[W>>2]>>h+2;r=s;l=50}do if((l|0)==50){l=0;s=(r|0)==0;if(s&o&b){c[X>>2]=z+A+p+q-u-D-C-B>>4;break}if(!s){k=c[X>>2]|0;s=r;l=54}}while(0);if((l|0)==54)c[X>>2]=k>>s+2;if((t|0)==1)c[ra>>2]=c[ra>>2]>>3;else if((t|0)==2)c[ra>>2]=c[ra>>2]>>4;else if((t|0)==3)c[ra>>2]=(c[ra>>2]|0)*21>>9;else c[ra>>2]=c[ra>>2]>>5;Dc(ra);s=0;r=qa+((F<<6)+256)|0;k=ra;while(1){t=c[k+((s>>>1&3)<<2)>>2]|0;if((t|0)<0)t=0;else t=(t|0)>255?-1:t&255;a[r>>0]=t;t=s+1|0;if((t|0)==64)break;else{s=t;r=r+1|0;k=(t&15|0)==0?k+16|0:k}}F=F+1|0;if((F|0)==2)break;else{h=z;t=A;n=B;j=C;l=D;m=v;k=w;r=x;s=y;E=E+la|0}}sc(e,qa);i=sa;return}function Dc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;h=i;f=a+4|0;b=c[f>>2]|0;g=a+16|0;d=c[g>>2]|0;e=c[a>>2]|0;if(!(b|d)){c[a+60>>2]=e;c[a+56>>2]=e;c[a+52>>2]=e;c[a+48>>2]=e;c[a+44>>2]=e;c[a+40>>2]=e;c[a+36>>2]=e;c[a+32>>2]=e;c[a+28>>2]=e;c[a+24>>2]=e;c[a+20>>2]=e;c[g>>2]=e;c[a+12>>2]=e;c[a+8>>2]=e;c[f>>2]=e;i=h;return}else{k=b+e|0;g=b>>1;j=g+e|0;g=e-g|0;b=e-b|0;c[a>>2]=d+k;e=d>>1;c[a+16>>2]=e+k;c[a+32>>2]=k-e;c[a+48>>2]=k-d;c[f>>2]=d+j;c[a+20>>2]=e+j;c[a+36>>2]=j-e;c[a+52>>2]=j-d;c[a+8>>2]=d+g;c[a+24>>2]=e+g;c[a+40>>2]=g-e;c[a+56>>2]=g-d;c[a+12>>2]=d+b;c[a+28>>2]=e+b;c[a+44>>2]=b-e;c[a+60>>2]=b-d;i=h;return}}function Ec(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;id(b,0,952);d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}d=(d|0)==1;c[b>>2]=d&1;do if(d){d=jb(a,8)|0;if((d|0)==-1){d=1;i=h;return d|0}c[b+4>>2]=d;if((d|0)==255){d=jb(a,16)|0;if((d|0)==-1){d=1;i=h;return d|0}c[b+8>>2]=d;d=jb(a,16)|0;if((d|0)==-1){d=1;i=h;return d|0}else{c[b+12>>2]=d;break}}}while(0);d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}d=(d|0)==1;c[b+16>>2]=d&1;do if(d){d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}else{c[b+20>>2]=(d|0)==1&1;break}}while(0);d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}d=(d|0)==1;c[b+24>>2]=d&1;do if(d){d=jb(a,3)|0;if((d|0)==-1){d=1;i=h;return d|0}c[b+28>>2]=d;d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}c[b+32>>2]=(d|0)==1&1;d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}d=(d|0)==1;c[b+36>>2]=d&1;if(!d){c[b+40>>2]=2;c[b+44>>2]=2;c[b+48>>2]=2;break}d=jb(a,8)|0;if((d|0)==-1){d=1;i=h;return d|0}c[b+40>>2]=d;d=jb(a,8)|0;if((d|0)==-1){d=1;i=h;return d|0}c[b+44>>2]=d;d=jb(a,8)|0;if((d|0)==-1){d=1;i=h;return d|0}else{c[b+48>>2]=d;break}}else{c[b+28>>2]=5;c[b+40>>2]=2;c[b+44>>2]=2;c[b+48>>2]=2}while(0);d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}d=(d|0)==1;c[b+52>>2]=d&1;if(d){d=b+56|0;e=nb(a,d)|0;if(e){d=e;i=h;return d|0}if((c[d>>2]|0)>>>0>5){d=1;i=h;return d|0}d=b+60|0;e=nb(a,d)|0;if(e){d=e;i=h;return d|0}if((c[d>>2]|0)>>>0>5){d=1;i=h;return d|0}}d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}d=(d|0)==1;c[b+64>>2]=d&1;do if(d){d=kb(a)|0;if((lb(a,32)|0)==-1|(d|0)==0){d=1;i=h;return d|0}c[b+68>>2]=d;d=kb(a)|0;if((lb(a,32)|0)==-1|(d|0)==0){d=1;i=h;return d|0}c[b+72>>2]=d;d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}else{c[b+76>>2]=(d|0)==1&1;break}}while(0);d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}d=(d|0)==1;f=b+80|0;c[f>>2]=d&1;if(d){e=Fc(a,b+84|0)|0;if(e){d=e;i=h;return d|0}}else{c[b+84>>2]=1;c[b+96>>2]=288000001;c[b+224>>2]=288000001;c[b+480>>2]=24;c[b+484>>2]=24;c[b+488>>2]=24;c[b+492>>2]=24}e=jb(a,1)|0;if((e|0)==-1){d=1;i=h;return d|0}e=(e|0)==1;d=b+496|0;c[d>>2]=e&1;if(e){e=Fc(a,b+500|0)|0;if(e){d=e;i=h;return d|0}}else{c[b+500>>2]=1;c[b+512>>2]=240000001;c[b+640>>2]=240000001;c[b+896>>2]=24;c[b+900>>2]=24;c[b+904>>2]=24;c[b+908>>2]=24}if(!((c[f>>2]|0)==0?(c[d>>2]|0)==0:0))g=46;do if((g|0)==46){d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}else{c[b+912>>2]=(d|0)==1&1;break}}while(0);d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}c[b+916>>2]=(d|0)==1&1;d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}d=(d|0)==1;c[b+920>>2]=d&1;do if(d){d=jb(a,1)|0;if((d|0)==-1){d=1;i=h;return d|0}c[b+924>>2]=(d|0)==1&1;e=b+928|0;d=nb(a,e)|0;if(d){i=h;return d|0}if((c[e>>2]|0)>>>0>16){d=1;i=h;return d|0}e=b+932|0;d=nb(a,e)|0;if(d){i=h;return d|0}if((c[e>>2]|0)>>>0>16){d=1;i=h;return d|0}e=b+936|0;d=nb(a,e)|0;if(d){i=h;return d|0}if((c[e>>2]|0)>>>0>16){d=1;i=h;return d|0}e=b+940|0;d=nb(a,e)|0;if(d){i=h;return d|0}if((c[e>>2]|0)>>>0>16){d=1;i=h;return d|0}d=nb(a,b+944|0)|0;if(d){i=h;return d|0}d=nb(a,b+948|0)|0;if(!d)break;i=h;return d|0}else{c[b+924>>2]=1;c[b+928>>2]=2;c[b+932>>2]=1;c[b+936>>2]=16;c[b+940>>2]=16;c[b+944>>2]=16;c[b+948>>2]=16}while(0);d=0;i=h;return d|0}function Fc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;d=nb(a,b)|0;if(d){i=k;return d|0}d=(c[b>>2]|0)+1|0;c[b>>2]=d;if(d>>>0>32){d=1;i=k;return d|0}d=jb(a,4)|0;if((d|0)==-1){d=1;i=k;return d|0}j=b+4|0;c[j>>2]=d;e=jb(a,4)|0;if((e|0)==-1){d=1;i=k;return d|0}h=b+8|0;c[h>>2]=e;a:do if(c[b>>2]|0){g=0;while(1){f=b+(g<<2)+12|0;d=nb(a,f)|0;if(d){e=17;break}e=c[f>>2]|0;if((e|0)==-1){d=1;e=17;break}d=e+1|0;c[f>>2]=d;c[f>>2]=d<<(c[j>>2]|0)+6;f=b+(g<<2)+140|0;d=nb(a,f)|0;if(d){e=17;break}e=c[f>>2]|0;if((e|0)==-1){d=1;e=17;break}e=e+1|0;c[f>>2]=e;c[f>>2]=e<<(c[h>>2]|0)+4;e=jb(a,1)|0;if((e|0)==-1){d=1;e=17;break}c[b+(g<<2)+268>>2]=(e|0)==1&1;g=g+1|0;if(g>>>0>=(c[b>>2]|0)>>>0)break a}if((e|0)==17){i=k;return d|0}}while(0);d=jb(a,5)|0;if((d|0)==-1){d=1;i=k;return d|0}c[b+396>>2]=d+1;d=jb(a,5)|0;if((d|0)==-1){d=1;i=k;return d|0}c[b+400>>2]=d+1;d=jb(a,5)|0;if((d|0)==-1){d=1;i=k;return d|0}c[b+404>>2]=d+1;d=jb(a,5)|0;if((d|0)==-1){d=1;i=k;return d|0}c[b+408>>2]=d;d=0;i=k;return d|0}function Gc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;a:do if(!(c[d+284>>2]|0))o=0;else{h=0;while(1){j=c[d+(h*20|0)+288>>2]|0;if((j|0)==5){o=1;break a}else if(!j)break;h=h+1|0}o=0}while(0);j=c[b+16>>2]|0;if((j|0)==1){if((c[e>>2]|0)!=5){f=c[a+12>>2]|0;if((c[a+8>>2]|0)>>>0>(c[d+12>>2]|0)>>>0)f=(c[b+12>>2]|0)+f|0}else f=0;m=c[b+36>>2]|0;h=(m|0)==0;if(h)j=0;else j=(c[d+12>>2]|0)+f|0;e=(c[e+4>>2]|0)==0;k=((e&(j|0)!=0)<<31>>31)+j|0;l=(k|0)!=0;if(l){g=k+-1|0;n=(g>>>0)%(m>>>0)|0;g=(g>>>0)/(m>>>0)|0}else{n=0;g=0}if(h)j=0;else{k=c[b+40>>2]|0;j=0;h=0;do{j=(c[k+(h<<2)>>2]|0)+j|0;h=h+1|0}while(h>>>0>>0)}if(l){g=Z(j,g)|0;k=c[b+40>>2]|0;j=0;do{g=(c[k+(j<<2)>>2]|0)+g|0;j=j+1|0}while(j>>>0<=n>>>0)}else g=0;if(e)j=(c[b+28>>2]|0)+g|0;else j=g;g=(c[d+32>>2]|0)+(c[b+32>>2]|0)|0;h=a+12|0;if(!o){b=((g|0)<0?g:0)+j+(c[d+28>>2]|0)|0;c[h>>2]=f;c[a+8>>2]=c[d+12>>2];i=p;return b|0}else{c[h>>2]=0;c[a+8>>2]=0;b=0;i=p;return b|0}}else if(!j){if((c[e>>2]|0)!=5){h=c[a>>2]|0;j=c[d+20>>2]|0;if(h>>>0>j>>>0?(k=c[b+20>>2]|0,(h-j|0)>>>0>=k>>>1>>>0):0){h=(c[a+4>>2]|0)+k|0;k=a}else{k=a;m=11}}else{c[a+4>>2]=0;c[a>>2]=0;j=c[d+20>>2]|0;h=0;k=a;m=11}do if((m|0)==11){if(j>>>0>h>>>0?(g=c[b+20>>2]|0,(j-h|0)>>>0>g>>>1>>>0):0){h=(c[a+4>>2]|0)-g|0;break}h=c[a+4>>2]|0}while(0);if(!(c[e+4>>2]|0)){b=c[d+24>>2]|0;b=j+h+((b|0)<0?b:0)|0;i=p;return b|0}c[a+4>>2]=h;f=c[d+24>>2]|0;g=(f|0)<0;if(!o){c[k>>2]=j;b=j+h+(g?f:0)|0;i=p;return b|0}else{c[a+4>>2]=0;c[k>>2]=g?0-f|0:0;b=0;i=p;return b|0}}else{if((c[e>>2]|0)==5){k=0;g=0;f=a+12|0}else{j=c[d+12>>2]|0;f=a+12|0;h=c[f>>2]|0;if((c[a+8>>2]|0)>>>0>j>>>0)h=(c[b+12>>2]|0)+h|0;k=h;g=(j+h<<1)+(((c[e+4>>2]|0)==0)<<31>>31)|0}if(!o){c[f>>2]=k;c[a+8>>2]=c[d+12>>2];b=g;i=p;return b|0}else{c[f>>2]=0;c[a+8>>2]=0;b=0;i=p;return b|0}}return 0}function Hc(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;Ab(a);e=fd(2112)|0;c[a+3376>>2]=e;if(e)if(!b)b=0;else{c[a+1216>>2]=1;b=0}else b=1;i=d;return b|0}function Ic(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+208|0;l=r+204|0;p=r;g=r+112|0;h=r+40|0;q=r+16|0;j=r+12|0;n=r+8|0;c[j>>2]=0;o=a+3344|0;if((c[o>>2]|0)!=0?(c[a+3348>>2]|0)==(b|0):0){b=a+3356|0;c[q+0>>2]=c[b+0>>2];c[q+4>>2]=c[b+4>>2];c[q+8>>2]=c[b+8>>2];c[q+12>>2]=c[b+12>>2];c[q+4>>2]=c[q>>2];c[q+8>>2]=0;c[q+16>>2]=0;c[f>>2]=c[a+3352>>2]}else k=4;do if((k|0)==4)if(!(Pa(b,d,q,f)|0)){d=a+3356|0;c[d+0>>2]=c[q+0>>2];c[d+4>>2]=c[q+4>>2];c[d+8>>2]=c[q+8>>2];c[d+12>>2]=c[q+12>>2];c[d+16>>2]=c[q+16>>2];c[a+3352>>2]=c[f>>2];c[a+3348>>2]=b;break}else{n=3;i=r;return n|0}while(0);c[o>>2]=0;if(sb(q,p)|0){n=3;i=r;return n|0}if(((c[p>>2]|0)+-1|0)>>>0>11){n=0;i=r;return n|0}b=Ib(q,p,a,j)|0;if(!b){do if(!(c[j>>2]|0))k=19;else{if((c[a+1184>>2]|0)!=0?(c[a+16>>2]|0)!=0:0){if(c[a+3380>>2]|0){n=3;i=r;return n|0}if(!(c[a+1188>>2]|0)){m=a+1220|0;n=a+1336|0;c[n>>2]=jc(m)|0;nc(m);Bc(a,n,0)|0}else Bc(a,a+1336|0,c[a+1372>>2]|0)|0;c[f>>2]=0;c[o>>2]=1;c[a+1180>>2]=0;g=a+1336|0;b=a+1360|0;break}c[a+1188>>2]=0;c[a+1180>>2]=0;k=19}while(0);do if((k|0)==19){b=c[p>>2]|0;if((b|0)==7)if(!(Qa(q,g)|0)){Bb(a,g)|0;n=0;i=r;return n|0}else{n=g+40|0;gd(c[n>>2]|0);c[n>>2]=0;n=g+84|0;gd(c[n>>2]|0);c[n>>2]=0;n=3;i=r;return n|0}else if((b|0)==1|(b|0)==5){k=a+1180|0;if(c[a+1180>>2]|0){n=0;i=r;return n|0}c[a+1184>>2]=1;if(Fb(a)|0){c[a+1204>>2]=0;c[a+1208>>2]=e;Ua(q,l)|0;j=a+8|0;d=c[j>>2]|0;b=Db(a,c[l>>2]|0,(c[p>>2]|0)==5&1)|0;if(b){c[a+4>>2]=256;c[a+12>>2]=0;c[j>>2]=32;c[a+16>>2]=0;c[a+3380>>2]=0;n=(b|0)==65535?5:4;i=r;return n|0}if((d|0)!=(c[j>>2]|0)){d=c[a+16>>2]|0;c[n>>2]=1;b=c[a>>2]|0;if(b>>>0<32)b=c[a+(b<<2)+20>>2]|0;else b=0;c[f>>2]=0;c[o>>2]=1;if((((((c[p>>2]|0)==5?(l=_a(n,q,d,c[a+12>>2]|0,5)|0,(c[n>>2]|l|0)==0):0)?(m=a+1220|0,!((c[a+1276>>2]|0)!=0|(b|0)==0)):0)?(c[b+52>>2]|0)==(c[d+52>>2]|0):0)?(c[b+56>>2]|0)==(c[d+56>>2]|0):0)?(c[b+88>>2]|0)==(c[d+88>>2]|0):0)qc(m);else c[a+1280>>2]=0;c[a>>2]=c[j>>2];n=2;i=r;return n|0}}if(c[a+3380>>2]|0){n=3;i=r;return n|0}h=a+1368|0;j=a+2356|0;b=a+16|0;if(Ta(q,j,c[b>>2]|0,c[a+12>>2]|0,p)|0){n=3;i=r;return n|0}if(!(Fb(a)|0))d=a+1220|0;else{d=a+1220|0;if((c[p>>2]|0)!=5?(oc(d,c[a+2368>>2]|0,(c[p+4>>2]|0)!=0&1,c[(c[b>>2]|0)+48>>2]|0)|0)!=0:0){n=3;i=r;return n|0}c[a+1336>>2]=jc(d)|0}od(h|0,j|0,988)|0;c[a+1188>>2]=1;b=a+1360|0;l=p;m=c[l+4>>2]|0;n=b;c[n>>2]=c[l>>2];c[n+4>>2]=m;Hb(a,c[a+1432>>2]|0);nc(d);if(gc(d,a+1436|0,c[a+1380>>2]|0,c[a+1412>>2]|0)|0){n=3;i=r;return n|0}g=a+1336|0;if($a(q,a,g,h)|0){ab(a,c[h>>2]|0);n=3;i=r;return n|0}if(!(Gb(a)|0)){n=0;i=r;return n|0}else{c[k>>2]=1;break}}else if((b|0)==8)if(!(Sa(q,h)|0)){Cb(a,h)|0;n=0;i=r;return n|0}else{n=h+20|0;gd(c[n>>2]|0);c[n>>2]=0;n=h+24|0;gd(c[n>>2]|0);c[n>>2]=0;n=h+28|0;gd(c[n>>2]|0);c[n>>2]=0;n=h+44|0;gd(c[n>>2]|0);c[n>>2]=0;n=3;i=r;return n|0}else{n=0;i=r;return n|0}}while(0);uc(g,c[a+1212>>2]|0);Eb(a);j=Gc(a+1284|0,c[a+16>>2]|0,a+1368|0,b)|0;d=a+1188|0;do if(c[d>>2]|0){h=a+1220|0;if(!(c[a+1364>>2]|0)){hc(h,0,g,c[a+1380>>2]|0,j,(c[b>>2]|0)==5&1,c[a+1208>>2]|0,c[a+1204>>2]|0)|0;break}else{hc(h,a+1644|0,g,c[a+1380>>2]|0,j,(c[b>>2]|0)==5&1,c[a+1208>>2]|0,c[a+1204>>2]|0)|0;break}}while(0);c[a+1184>>2]=0;c[d>>2]=0;n=1;i=r;return n|0}else if((b|0)==65520){n=4;i=r;return n|0}else{n=3;i=r;return n|0}return 0}function Jc(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;e=0;do{d=a+(e<<2)+20|0;b=c[d>>2]|0;if(b){gd(c[b+40>>2]|0);c[(c[d>>2]|0)+40>>2]=0;gd(c[(c[d>>2]|0)+84>>2]|0);c[(c[d>>2]|0)+84>>2]=0;gd(c[d>>2]|0);c[d>>2]=0}e=e+1|0}while((e|0)!=32);e=0;do{d=a+(e<<2)+148|0;b=c[d>>2]|0;if(b){gd(c[b+20>>2]|0);c[(c[d>>2]|0)+20>>2]=0;gd(c[(c[d>>2]|0)+24>>2]|0);c[(c[d>>2]|0)+24>>2]=0;gd(c[(c[d>>2]|0)+28>>2]|0);c[(c[d>>2]|0)+28>>2]=0;gd(c[(c[d>>2]|0)+44>>2]|0);c[(c[d>>2]|0)+44>>2]=0;gd(c[d>>2]|0);c[d>>2]=0}e=e+1|0}while((e|0)!=256);b=a+3376|0;gd(c[b>>2]|0);c[b>>2]=0;b=a+1212|0;gd(c[b>>2]|0);c[b>>2]=0;b=a+1172|0;gd(c[b>>2]|0);c[b>>2]=0;mc(a+1220|0);i=f;return}function Kc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;a=pc(a+1220|0)|0;if(!a){a=0;i=f;return a|0}c[b>>2]=c[a+4>>2];c[d>>2]=c[a+12>>2];c[e>>2]=c[a+8>>2];a=c[a>>2]|0;i=f;return a|0}function Lc(a){a=a|0;var b=0;b=i;a=c[a+16>>2]|0;if(!a){a=0;i=b;return a|0}a=c[a+52>>2]|0;i=b;return a|0}function Mc(a){a=a|0;var b=0;b=i;a=c[a+16>>2]|0;if(!a){a=0;i=b;return a|0}a=c[a+56>>2]|0;i=b;return a|0}function Nc(a){a=a|0;var b=0;b=i;qc(a+1220|0);i=b;return}function Oc(a){a=a|0;var b=0;b=i;a=(Jb(a)|0)==0&1;i=b;return a|0}function Pc(a){a=a|0;var b=0,d=0;d=i;a=c[a+16>>2]|0;if(((((a|0)!=0?(c[a+80>>2]|0)!=0:0)?(b=c[a+84>>2]|0,(b|0)!=0):0)?(c[b+24>>2]|0)!=0:0)?(c[b+32>>2]|0)!=0:0){a=1;i=d;return a|0}a=0;i=d;return a|0}function Qc(a){a=a|0;var b=0,d=0;d=i;a=c[a+16>>2]|0;if(((((a|0)!=0?(c[a+80>>2]|0)!=0:0)?(b=c[a+84>>2]|0,(b|0)!=0):0)?(c[b+24>>2]|0)!=0:0)?(c[b+36>>2]|0)!=0:0)a=c[b+48>>2]|0;else a=2;i=d;return a|0}function Rc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=i;a=c[a+16>>2]|0;if((a|0)!=0?(c[a+60>>2]|0)!=0:0){c[b>>2]=1;b=a+64|0;c[d>>2]=c[b>>2]<<1;c[e>>2]=(c[a+52>>2]<<4)-((c[a+68>>2]|0)+(c[b>>2]|0)<<1);b=a+72|0;c[f>>2]=c[b>>2]<<1;a=(c[a+56>>2]<<4)-((c[a+76>>2]|0)+(c[b>>2]|0)<<1)|0;c[g>>2]=a;i=h;return}c[b>>2]=0;c[d>>2]=0;c[e>>2]=0;c[f>>2]=0;a=0;c[g>>2]=a;i=h;return}function Sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;a=c[a+16>>2]|0;a:do if((((a|0)!=0?(c[a+80>>2]|0)!=0:0)?(e=c[a+84>>2]|0,(e|0)!=0):0)?(c[e>>2]|0)!=0:0){a=c[e+4>>2]|0;do switch(a|0){case 8:{e=11;a=32;break a}case 13:{e=99;a=160;break a}case 12:{e=33;a=64;break a}case 6:{e=11;a=24;break a}case 7:{e=11;a=20;break a}case 255:{a=c[e+8>>2]|0;e=c[e+12>>2]|0;g=(a|0)==0|(e|0)==0;e=g?0:e;a=g?0:a;break a}case 5:{e=33;a=40;break a}case 4:{e=11;a=16;break a}case 3:{e=11;a=10;break a}case 1:case 0:{e=a;break a}case 2:{e=11;a=12;break a}case 10:{e=11;a=18;break a}case 9:{e=33;a=80;break a}case 11:{e=11;a=15;break a}default:{e=0;a=0;break a}}while(0)}else{e=1;a=1}while(0);c[b>>2]=a;c[d>>2]=e;i=f;return}function Tc(a){a=a|0;a=c[a+16>>2]|0;if(!a)a=0;else a=c[a>>2]|0;return a|0}function Uc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;do if(a){d=fd(3396)|0;if(d){e=d+8|0;if(!(Hc(e,b)|0)){c[d>>2]=1;c[d+4>>2]=0;c[a>>2]=d;d=0;break}else{Jc(e);gd(d);d=-4;break}}else d=-4}else d=-1;while(0);i=f;return d|0}function Vc(a,b){a=a|0;b=b|0;var d=0,e=0;e=i;if((a|0)==0|(b|0)==0){a=-1;i=e;return a|0}d=a+8|0;if(!(c[a+24>>2]|0)){a=-6;i=e;return a|0}if(!(c[a+20>>2]|0)){a=-6;i=e;return a|0}c[b+4>>2]=(Lc(d)|0)<<4;c[b+8>>2]=(Mc(d)|0)<<4;c[b+12>>2]=Pc(d)|0;c[b+16>>2]=Qc(d)|0;Rc(d,b+28|0,b+32|0,b+36|0,b+40|0,b+44|0);Sc(d,b+20|0,b+24|0);c[b>>2]=Tc(d)|0;a=0;i=e;return a|0}function Wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+16|0;j=m;a:do if((!((b|0)==0|(d|0)==0)?(f=c[b>>2]|0,(f|0)!=0):0)?(g=c[b+4>>2]|0,(g|0)!=0):0)if((a|0)!=0?(e=c[a>>2]|0,(e|0)!=0):0){c[d>>2]=0;c[j>>2]=0;k=a+8|0;c[a+3392>>2]=c[b+12>>2];h=b+8|0;b=1;while(1){if((e|0)==2){l=8;break}e=Ic(k,f,g,c[h>>2]|0,j)|0;n=c[j>>2]|0;f=f+n|0;g=g-n|0;g=(g|0)<0?0:g;c[d>>2]=f;if((e|0)==5){b=-4;break a}else if((e|0)==4){e=(Oc(k)|0|g|0)==0;b=e?-2:b}else if((e|0)==2)break;else if((e|0)==1){l=13;break}if(!g)break a;e=c[a>>2]|0}if((l|0)==8){c[a>>2]=1;c[d>>2]=f+(c[j>>2]|0)}else if((l|0)==13){b=a+4|0;c[b>>2]=(c[b>>2]|0)+1;b=(g|0)==0?2:3;break}b=a+1288|0;if((c[b>>2]|0)!=0?(c[a+1244>>2]|0)!=(c[a+1248>>2]|0):0){c[b>>2]=0;c[a>>2]=2;b=3}else b=4}else b=-3;else b=-1;while(0);i=m;return b|0}function Xc(a){a=a|0;c[a>>2]=2;c[a+4>>2]=3;return}function Yc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;f=h+8|0;e=h+4|0;g=h;if((a|0)==0|(b|0)==0){a=-1;i=h;return a|0}a=a+8|0;if(d)Nc(a);a=Kc(a,g,e,f)|0;if(!a){a=0;i=h;return a|0}c[b>>2]=a;c[b+4>>2]=c[g>>2];c[b+8>>2]=c[e>>2];c[b+12>>2]=c[f>>2];a=2;i=h;return a|0}function Zc(a){a=a|0;var b=0,d=0;d=i;b=jd(a)|0;c[1792]=b;c[1791]=b;c[1790]=a;c[1793]=b+a;i=d;return b|0}function _c(a){a=a|0;c[1790]=a;return}function $c(){var a=0;a=i;c[1786]=c[1791];c[1787]=c[1790];do bd()|0;while((c[1787]|0)!=0);i=a;return}function ad(){var a=0,b=0;b=i;if(Uc(7176,0)|0){da(7280)|0;a=c[1784]|0;if(a)kd(a)}else{c[1796]=1;c[1798]=1}i=b;return -1}function bd(){var a=0,b=0,d=0;b=i;c[1788]=c[1798];a=Wc(c[1794]|0,7144,7200)|0;switch(a|0){case 1:case -2:{c[1787]=0;i=b;return a|0}case 4:{if(Vc(c[1794]|0,7208)|0){a=-1;i=b;return a|0}c[1814]=(Z((c[1803]|0)*3|0,c[1804]|0)|0)>>>1;ra();a=c[1800]|0;c[1787]=(c[1786]|0)-a+(c[1787]|0);c[1786]=a;a=0;i=b;return a|0}case 2:{c[1787]=0;break}case 3:{d=c[1800]|0;c[1787]=(c[1786]|0)-d+(c[1787]|0);c[1786]=d;break}default:{i=b;return a|0}}c[1798]=(c[1798]|0)+1;if((Yc(c[1794]|0,7264,0)|0)!=2){i=b;return a|0}do{c[1796]=(c[1796]|0)+1;ca(c[1816]|0,c[1803]|0,c[1804]|0)}while((Yc(c[1794]|0,7264,0)|0)==2);i=b;return a|0}function cd(){var a=0,b=0;b=i;a=c[1784]|0;if(a)kd(a);i=b;return}function dd(){var a=0,b=0;b=i;i=i+16|0;a=b;Xc(a);i=b;return c[a>>2]|0}function ed(){var a=0,b=0;b=i;i=i+16|0;a=b;Xc(a);i=b;return c[a+4>>2]|0}function fd(a){a=a|0;var b=0;b=i;a=jd(a)|0;i=b;return a|0}function gd(a){a=a|0;var b=0;b=i;kd(a);i=b;return}function hd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;od(a|0,b|0,c|0)|0;i=d;return}function id(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=i;nd(a|0,b&255|0,c|0)|0;i=d;return}function jd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=i;do if(a>>>0<245){if(a>>>0<11)p=16;else p=a+11&-8;a=p>>>3;l=c[1828]|0;k=l>>>a;if(k&3){g=(k&1^1)+a|0;b=g<<1;h=7352+(b<<2)|0;b=7352+(b+2<<2)|0;e=c[b>>2]|0;j=e+8|0;f=c[j>>2]|0;do if((h|0)!=(f|0)){if(f>>>0<(c[1832]|0)>>>0)ka();d=f+12|0;if((c[d>>2]|0)==(e|0)){c[d>>2]=h;c[b>>2]=f;break}else ka()}else c[1828]=l&~(1<>2]=x|3;x=e+(x|4)|0;c[x>>2]=c[x>>2]|1;x=j;i=L;return x|0}j=c[1830]|0;if(p>>>0>j>>>0){if(k){g=2<>>12&16;g=g>>>a;h=g>>>5&8;g=g>>>h;d=g>>>2&4;g=g>>>d;e=g>>>1&2;g=g>>>e;f=g>>>1&1;f=(h|a|d|e|f)+(g>>>f)|0;g=f<<1;e=7352+(g<<2)|0;g=7352+(g+2<<2)|0;d=c[g>>2]|0;a=d+8|0;h=c[a>>2]|0;do if((e|0)!=(h|0)){if(h>>>0<(c[1832]|0)>>>0)ka();j=h+12|0;if((c[j>>2]|0)==(d|0)){c[j>>2]=e;c[g>>2]=h;m=c[1830]|0;break}else ka()}else{c[1828]=l&~(1<>2]=p|3;b=d+p|0;c[d+(p|4)>>2]=k|1;c[d+x>>2]=k;if(m){e=c[1833]|0;g=m>>>3;h=g<<1;f=7352+(h<<2)|0;j=c[1828]|0;g=1<>2]|0;if(h>>>0<(c[1832]|0)>>>0)ka();else{n=j;o=h}}else{c[1828]=j|g;n=7352+(h+2<<2)|0;o=f}c[n>>2]=e;c[o+12>>2]=e;c[e+8>>2]=o;c[e+12>>2]=f}c[1830]=k;c[1833]=b;x=a;i=L;return x|0}k=c[1829]|0;if(k){l=(k&0-k)+-1|0;w=l>>>12&16;l=l>>>w;v=l>>>5&8;l=l>>>v;x=l>>>2&4;l=l>>>x;j=l>>>1&2;l=l>>>j;m=l>>>1&1;m=c[7616+((v|w|x|j|m)+(l>>>m)<<2)>>2]|0;l=(c[m+4>>2]&-8)-p|0;j=m;while(1){d=c[j+16>>2]|0;if(!d){d=c[j+20>>2]|0;if(!d)break}j=(c[d+4>>2]&-8)-p|0;x=j>>>0>>0;l=x?j:l;j=d;m=x?d:m}k=c[1832]|0;if(m>>>0>>0)ka();b=m+p|0;if(m>>>0>=b>>>0)ka();a=c[m+24>>2]|0;g=c[m+12>>2]|0;do if((g|0)==(m|0)){h=m+20|0;j=c[h>>2]|0;if(!j){h=m+16|0;j=c[h>>2]|0;if(!j){e=0;break}}while(1){f=j+20|0;g=c[f>>2]|0;if(g){j=g;h=f;continue}f=j+16|0;g=c[f>>2]|0;if(!g)break;else{j=g;h=f}}if(h>>>0>>0)ka();else{c[h>>2]=0;e=j;break}}else{f=c[m+8>>2]|0;if(f>>>0>>0)ka();j=f+12|0;if((c[j>>2]|0)!=(m|0))ka();h=g+8|0;if((c[h>>2]|0)==(m|0)){c[j>>2]=g;c[h>>2]=f;e=g;break}else ka()}while(0);do if(a){j=c[m+28>>2]|0;h=7616+(j<<2)|0;if((m|0)==(c[h>>2]|0)){c[h>>2]=e;if(!e){c[1829]=c[1829]&~(1<>>0<(c[1832]|0)>>>0)ka();j=a+16|0;if((c[j>>2]|0)==(m|0))c[j>>2]=e;else c[a+20>>2]=e;if(!e)break}h=c[1832]|0;if(e>>>0>>0)ka();c[e+24>>2]=a;j=c[m+16>>2]|0;do if(j)if(j>>>0>>0)ka();else{c[e+16>>2]=j;c[j+24>>2]=e;break}while(0);f=c[m+20>>2]|0;if(f)if(f>>>0<(c[1832]|0)>>>0)ka();else{c[e+20>>2]=f;c[f+24>>2]=e;break}}while(0);if(l>>>0<16){x=l+p|0;c[m+4>>2]=x|3;x=m+(x+4)|0;c[x>>2]=c[x>>2]|1}else{c[m+4>>2]=p|3;c[m+(p|4)>>2]=l|1;c[m+(l+p)>>2]=l;d=c[1830]|0;if(d){e=c[1833]|0;g=d>>>3;h=g<<1;f=7352+(h<<2)|0;j=c[1828]|0;g=1<>2]|0;if(h>>>0<(c[1832]|0)>>>0)ka();else{r=j;q=h}}else{c[1828]=j|g;r=7352+(h+2<<2)|0;q=f}c[r>>2]=e;c[q+12>>2]=e;c[e+8>>2]=q;c[e+12>>2]=f}c[1830]=l;c[1833]=b}x=m+8|0;i=L;return x|0}}}else if(a>>>0<=4294967231){a=a+11|0;p=a&-8;m=c[1829]|0;if(m){h=0-p|0;a=a>>>8;if(a)if(p>>>0>16777215)l=31;else{q=(a+1048320|0)>>>16&8;r=a<>>16&4;r=r<>>16&2;l=14-(o|q|l)+(r<>>15)|0;l=p>>>(l+7|0)&1|l<<1}else l=0;j=c[7616+(l<<2)>>2]|0;a:do if(!j){a=0;k=0}else{if((l|0)==31)k=0;else k=25-(l>>>1)|0;f=h;a=0;e=p<>2]&-8;h=g-p|0;if(h>>>0>>0)if((g|0)==(p|0)){a=j;k=j;break a}else k=j;else h=f;r=c[j+20>>2]|0;j=c[j+(e>>>31<<2)+16>>2]|0;a=(r|0)==0|(r|0)==(j|0)?a:r;if(!j)break;else{f=h;e=e<<1}}}while(0);if((a|0)==0&(k|0)==0){a=2<>>12&16;r=r>>>n;m=r>>>5&8;r=r>>>m;o=r>>>2&4;r=r>>>o;q=r>>>1&2;r=r>>>q;a=r>>>1&1;a=c[7616+((m|n|o|q|a)+(r>>>a)<<2)>>2]|0}if(!a){n=h;m=k}else while(1){r=(c[a+4>>2]&-8)-p|0;j=r>>>0>>0;h=j?r:h;k=j?a:k;j=c[a+16>>2]|0;if(j){a=j;continue}a=c[a+20>>2]|0;if(!a){n=h;m=k;break}}if((m|0)!=0?n>>>0<((c[1830]|0)-p|0)>>>0:0){k=c[1832]|0;if(m>>>0>>0)ka();o=m+p|0;if(m>>>0>=o>>>0)ka();a=c[m+24>>2]|0;g=c[m+12>>2]|0;do if((g|0)==(m|0)){h=m+20|0;j=c[h>>2]|0;if(!j){h=m+16|0;j=c[h>>2]|0;if(!j){b=0;break}}while(1){f=j+20|0;g=c[f>>2]|0;if(g){j=g;h=f;continue}f=j+16|0;g=c[f>>2]|0;if(!g)break;else{j=g;h=f}}if(h>>>0>>0)ka();else{c[h>>2]=0;b=j;break}}else{f=c[m+8>>2]|0;if(f>>>0>>0)ka();j=f+12|0;if((c[j>>2]|0)!=(m|0))ka();h=g+8|0;if((c[h>>2]|0)==(m|0)){c[j>>2]=g;c[h>>2]=f;b=g;break}else ka()}while(0);do if(a){j=c[m+28>>2]|0;h=7616+(j<<2)|0;if((m|0)==(c[h>>2]|0)){c[h>>2]=b;if(!b){c[1829]=c[1829]&~(1<>>0<(c[1832]|0)>>>0)ka();j=a+16|0;if((c[j>>2]|0)==(m|0))c[j>>2]=b;else c[a+20>>2]=b;if(!b)break}h=c[1832]|0;if(b>>>0>>0)ka();c[b+24>>2]=a;j=c[m+16>>2]|0;do if(j)if(j>>>0>>0)ka();else{c[b+16>>2]=j;c[j+24>>2]=b;break}while(0);j=c[m+20>>2]|0;if(j)if(j>>>0<(c[1832]|0)>>>0)ka();else{c[b+20>>2]=j;c[j+24>>2]=b;break}}while(0);b:do if(n>>>0>=16){c[m+4>>2]=p|3;c[m+(p|4)>>2]=n|1;c[m+(n+p)>>2]=n;j=n>>>3;if(n>>>0<256){g=j<<1;d=7352+(g<<2)|0;h=c[1828]|0;j=1<>2]|0;if(e>>>0>=(c[1832]|0)>>>0){t=f;u=e;break}ka()}while(0);c[t>>2]=o;c[u+12>>2]=o;c[m+(p+8)>>2]=u;c[m+(p+12)>>2]=d;break}d=n>>>8;if(d)if(n>>>0>16777215)f=31;else{w=(d+1048320|0)>>>16&8;x=d<>>16&4;x=x<>>16&2;f=14-(u|w|f)+(x<>>15)|0;f=n>>>(f+7|0)&1|f<<1}else f=0;h=7616+(f<<2)|0;c[m+(p+28)>>2]=f;c[m+(p+20)>>2]=0;c[m+(p+16)>>2]=0;j=c[1829]|0;g=1<>2]=o;c[m+(p+24)>>2]=h;c[m+(p+12)>>2]=o;c[m+(p+8)>>2]=o;break}j=c[h>>2]|0;if((f|0)==31)d=0;else d=25-(f>>>1)|0;c:do if((c[j+4>>2]&-8|0)!=(n|0)){f=n<>>31<<2)+16|0;h=c[g>>2]|0;if(!h)break;if((c[h+4>>2]&-8|0)==(n|0)){v=h;break c}else{f=f<<1;j=h}}if(g>>>0<(c[1832]|0)>>>0)ka();else{c[g>>2]=o;c[m+(p+24)>>2]=j;c[m+(p+12)>>2]=o;c[m+(p+8)>>2]=o;break b}}else v=j;while(0);b=v+8|0;d=c[b>>2]|0;x=c[1832]|0;if(v>>>0>=x>>>0&d>>>0>=x>>>0){c[d+12>>2]=o;c[b>>2]=o;c[m+(p+8)>>2]=d;c[m+(p+12)>>2]=v;c[m+(p+24)>>2]=0;break}else ka()}else{x=n+p|0;c[m+4>>2]=x|3;x=m+(x+4)|0;c[x>>2]=c[x>>2]|1}while(0);x=m+8|0;i=L;return x|0}}}else p=-1;while(0);k=c[1830]|0;if(k>>>0>=p>>>0){d=k-p|0;b=c[1833]|0;if(d>>>0>15){c[1833]=b+p;c[1830]=d;c[b+(p+4)>>2]=d|1;c[b+k>>2]=d;c[b+4>>2]=p|3}else{c[1830]=0;c[1833]=0;c[b+4>>2]=k|3;x=b+(k+4)|0;c[x>>2]=c[x>>2]|1}x=b+8|0;i=L;return x|0}k=c[1831]|0;if(k>>>0>p>>>0){w=k-p|0;c[1831]=w;x=c[1834]|0;c[1834]=x+p;c[x+(p+4)>>2]=w|1;c[x+4>>2]=p|3;x=x+8|0;i=L;return x|0}do if(!(c[1946]|0)){k=ua(30)|0;if(!(k+-1&k)){c[1948]=k;c[1947]=k;c[1949]=-1;c[1950]=-1;c[1951]=0;c[1939]=0;c[1946]=(ta(0)|0)&-16^1431655768;break}else ka()}while(0);l=p+48|0;g=c[1948]|0;f=p+47|0;h=g+f|0;g=0-g|0;m=h&g;if(m>>>0<=p>>>0){x=0;i=L;return x|0}a=c[1938]|0;if((a|0)!=0?(u=c[1936]|0,v=u+m|0,v>>>0<=u>>>0|v>>>0>a>>>0):0){x=0;i=L;return x|0}d:do if(!(c[1939]&4)){j=c[1834]|0;e:do if(j){a=7760|0;while(1){k=c[a>>2]|0;if(k>>>0<=j>>>0?(s=a+4|0,(k+(c[s>>2]|0)|0)>>>0>j>>>0):0)break;a=c[a+8>>2]|0;if(!a){A=181;break e}}if(a){k=h-(c[1831]|0)&g;if(k>>>0<2147483647){j=ma(k|0)|0;if((j|0)==((c[a>>2]|0)+(c[s>>2]|0)|0))A=190;else A=191}else k=0}else A=181}else A=181;while(0);do if((A|0)==181){j=ma(0)|0;if((j|0)!=(-1|0)){a=j;k=c[1947]|0;h=k+-1|0;if(!(h&a))k=m;else k=m-a+(h+a&0-k)|0;a=c[1936]|0;h=a+k|0;if(k>>>0>p>>>0&k>>>0<2147483647){v=c[1938]|0;if((v|0)!=0?h>>>0<=a>>>0|h>>>0>v>>>0:0){k=0;break}h=ma(k|0)|0;if((h|0)==(j|0))A=190;else{j=h;A=191}}else k=0}else k=0}while(0);f:do if((A|0)==190){if((j|0)!=(-1|0)){w=j;s=k;A=201;break d}}else if((A|0)==191){a=0-k|0;do if((j|0)!=(-1|0)&k>>>0<2147483647&l>>>0>k>>>0?(d=c[1948]|0,d=f-k+d&0-d,d>>>0<2147483647):0)if((ma(d|0)|0)==(-1|0)){ma(a|0)|0;k=0;break f}else{k=d+k|0;break}while(0);if((j|0)==(-1|0))k=0;else{w=j;s=k;A=201;break d}}while(0);c[1939]=c[1939]|4;A=198}else{k=0;A=198}while(0);if((((A|0)==198?m>>>0<2147483647:0)?(w=ma(m|0)|0,x=ma(0)|0,(w|0)!=(-1|0)&(x|0)!=(-1|0)&w>>>0>>0):0)?(z=x-w|0,y=z>>>0>(p+40|0)>>>0,y):0){s=y?z:k;A=201}if((A|0)==201){j=(c[1936]|0)+s|0;c[1936]=j;if(j>>>0>(c[1937]|0)>>>0)c[1937]=j;o=c[1834]|0;g:do if(o){f=7760|0;while(1){k=c[f>>2]|0;g=f+4|0;j=c[g>>2]|0;if((w|0)==(k+j|0)){A=213;break}h=c[f+8>>2]|0;if(!h)break;else f=h}if(((A|0)==213?(c[f+12>>2]&8|0)==0:0)?o>>>0>=k>>>0&o>>>0>>0:0){c[g>>2]=j+s;d=(c[1831]|0)+s|0;b=o+8|0;if(!(b&7))b=0;else b=0-b&7;x=d-b|0;c[1834]=o+b;c[1831]=x;c[o+(b+4)>>2]=x|1;c[o+(d+4)>>2]=40;c[1835]=c[1950];break}k=c[1832]|0;if(w>>>0>>0){c[1832]=w;k=w}h=w+s|0;g=7760|0;while(1){if((c[g>>2]|0)==(h|0)){A=223;break}j=c[g+8>>2]|0;if(!j)break;else g=j}if((A|0)==223?(c[g+12>>2]&8|0)==0:0){c[g>>2]=w;j=g+4|0;c[j>>2]=(c[j>>2]|0)+s;j=w+8|0;if(!(j&7))r=0;else r=0-j&7;j=w+(s+8)|0;if(!(j&7))b=0;else b=0-j&7;j=w+(b+s)|0;q=r+p|0;n=w+q|0;d=j-(w+r)-p|0;c[w+(r+4)>>2]=p|3;h:do if((j|0)!=(o|0)){if((j|0)==(c[1833]|0)){x=(c[1830]|0)+d|0;c[1830]=x;c[1833]=n;c[w+(q+4)>>2]=x|1;c[w+(x+q)>>2]=x;break}l=s+4|0;h=c[w+(l+b)>>2]|0;if((h&3|0)==1){m=h&-8;e=h>>>3;i:do if(h>>>0>=256){a=c[w+((b|24)+s)>>2]|0;g=c[w+(s+12+b)>>2]|0;do if((g|0)==(j|0)){g=b|16;f=w+(l+g)|0;h=c[f>>2]|0;if(!h){g=w+(g+s)|0;h=c[g>>2]|0;if(!h){H=0;break}}else g=f;while(1){e=h+20|0;f=c[e>>2]|0;if(f){h=f;g=e;continue}e=h+16|0;f=c[e>>2]|0;if(!f)break;else{h=f;g=e}}if(g>>>0>>0)ka();else{c[g>>2]=0;H=h;break}}else{f=c[w+((b|8)+s)>>2]|0;if(f>>>0>>0)ka();k=f+12|0;if((c[k>>2]|0)!=(j|0))ka();h=g+8|0;if((c[h>>2]|0)==(j|0)){c[k>>2]=g;c[h>>2]=f;H=g;break}else ka()}while(0);if(!a)break;k=c[w+(s+28+b)>>2]|0;h=7616+(k<<2)|0;do if((j|0)!=(c[h>>2]|0)){if(a>>>0<(c[1832]|0)>>>0)ka();k=a+16|0;if((c[k>>2]|0)==(j|0))c[k>>2]=H;else c[a+20>>2]=H;if(!H)break i}else{c[h>>2]=H;if(H)break;c[1829]=c[1829]&~(1<>>0>>0)ka();c[H+24>>2]=a;j=b|16;k=c[w+(j+s)>>2]|0;do if(k)if(k>>>0>>0)ka();else{c[H+16>>2]=k;c[k+24>>2]=H;break}while(0);j=c[w+(l+j)>>2]|0;if(!j)break;if(j>>>0<(c[1832]|0)>>>0)ka();else{c[H+20>>2]=j;c[j+24>>2]=H;break}}else{g=c[w+((b|8)+s)>>2]|0;f=c[w+(s+12+b)>>2]|0;h=7352+(e<<1<<2)|0;do if((g|0)!=(h|0)){if(g>>>0>>0)ka();if((c[g+12>>2]|0)==(j|0))break;ka()}while(0);if((f|0)==(g|0)){c[1828]=c[1828]&~(1<>>0>>0)ka();k=f+8|0;if((c[k>>2]|0)==(j|0)){D=k;break}ka()}while(0);c[g+12>>2]=f;c[D>>2]=g}while(0);j=w+((m|b)+s)|0;k=m+d|0}else k=d;j=j+4|0;c[j>>2]=c[j>>2]&-2;c[w+(q+4)>>2]=k|1;c[w+(k+q)>>2]=k;j=k>>>3;if(k>>>0<256){g=j<<1;f=7352+(g<<2)|0;h=c[1828]|0;j=1<>2]|0;if(h>>>0>=(c[1832]|0)>>>0){I=j;J=h;break}ka()}while(0);c[I>>2]=n;c[J+12>>2]=n;c[w+(q+8)>>2]=J;c[w+(q+12)>>2]=f;break}d=k>>>8;do if(!d)f=0;else{if(k>>>0>16777215){f=31;break}v=(d+1048320|0)>>>16&8;x=d<>>16&4;x=x<>>16&2;f=14-(u|v|f)+(x<>>15)|0;f=k>>>(f+7|0)&1|f<<1}while(0);h=7616+(f<<2)|0;c[w+(q+28)>>2]=f;c[w+(q+20)>>2]=0;c[w+(q+16)>>2]=0;j=c[1829]|0;g=1<>2]=n;c[w+(q+24)>>2]=h;c[w+(q+12)>>2]=n;c[w+(q+8)>>2]=n;break}j=c[h>>2]|0;if((f|0)==31)h=0;else h=25-(f>>>1)|0;j:do if((c[j+4>>2]&-8|0)!=(k|0)){f=k<>>31<<2)+16|0;h=c[g>>2]|0;if(!h)break;if((c[h+4>>2]&-8|0)==(k|0)){K=h;break j}else{f=f<<1;j=h}}if(g>>>0<(c[1832]|0)>>>0)ka();else{c[g>>2]=n;c[w+(q+24)>>2]=j;c[w+(q+12)>>2]=n;c[w+(q+8)>>2]=n;break h}}else K=j;while(0);b=K+8|0;d=c[b>>2]|0;x=c[1832]|0;if(K>>>0>=x>>>0&d>>>0>=x>>>0){c[d+12>>2]=n;c[b>>2]=n;c[w+(q+8)>>2]=d;c[w+(q+12)>>2]=K;c[w+(q+24)>>2]=0;break}else ka()}else{x=(c[1831]|0)+d|0;c[1831]=x;c[1834]=n;c[w+(q+4)>>2]=x|1}while(0);x=w+(r|8)|0;i=L;return x|0}j=7760|0;while(1){h=c[j>>2]|0;if(h>>>0<=o>>>0?(B=c[j+4>>2]|0,C=h+B|0,C>>>0>o>>>0):0)break;j=c[j+8>>2]|0}j=h+(B+-39)|0;if(!(j&7))j=0;else j=0-j&7;g=h+(B+-47+j)|0;g=g>>>0<(o+16|0)>>>0?o:g;h=g+8|0;j=w+8|0;if(!(j&7))j=0;else j=0-j&7;f=s+-40-j|0;c[1834]=w+j;c[1831]=f;c[w+(j+4)>>2]=f|1;c[w+(s+-36)>>2]=40;c[1835]=c[1950];c[g+4>>2]=27;c[h+0>>2]=c[1940];c[h+4>>2]=c[1941];c[h+8>>2]=c[1942];c[h+12>>2]=c[1943];c[1940]=w;c[1941]=s;c[1943]=0;c[1942]=h;f=g+28|0;c[f>>2]=7;if((g+32|0)>>>0>>0)do{x=f;f=f+4|0;c[f>>2]=7}while((x+8|0)>>>0>>0);if((g|0)!=(o|0)){k=g-o|0;j=o+(k+4)|0;c[j>>2]=c[j>>2]&-2;c[o+4>>2]=k|1;c[o+k>>2]=k;j=k>>>3;if(k>>>0<256){g=j<<1;f=7352+(g<<2)|0;h=c[1828]|0;j=1<>2]|0;if(b>>>0>=(c[1832]|0)>>>0){E=d;F=b;break}ka()}while(0);c[E>>2]=o;c[F+12>>2]=o;c[o+8>>2]=F;c[o+12>>2]=f;break}d=k>>>8;if(d)if(k>>>0>16777215)g=31;else{w=(d+1048320|0)>>>16&8;x=d<>>16&4;x=x<>>16&2;g=14-(v|w|g)+(x<>>15)|0;g=k>>>(g+7|0)&1|g<<1}else g=0;h=7616+(g<<2)|0;c[o+28>>2]=g;c[o+20>>2]=0;c[o+16>>2]=0;e=c[1829]|0;j=1<>2]=o;c[o+24>>2]=h;c[o+12>>2]=o;c[o+8>>2]=o;break}e=c[h>>2]|0;if((g|0)==31)d=0;else d=25-(g>>>1)|0;k:do if((c[e+4>>2]&-8|0)!=(k|0)){j=k<>>31<<2)+16|0;d=c[h>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(k|0)){G=d;break k}else{j=j<<1;e=d}}if(h>>>0<(c[1832]|0)>>>0)ka();else{c[h>>2]=o;c[o+24>>2]=e;c[o+12>>2]=o;c[o+8>>2]=o;break g}}else G=e;while(0);b=G+8|0;d=c[b>>2]|0;x=c[1832]|0;if(G>>>0>=x>>>0&d>>>0>=x>>>0){c[d+12>>2]=o;c[b>>2]=o;c[o+8>>2]=d;c[o+12>>2]=G;c[o+24>>2]=0;break}else ka()}}else{x=c[1832]|0;if((x|0)==0|w>>>0>>0)c[1832]=w;c[1940]=w;c[1941]=s;c[1943]=0;c[1837]=c[1946];c[1836]=-1;b=0;do{x=b<<1;v=7352+(x<<2)|0;c[7352+(x+3<<2)>>2]=v;c[7352+(x+2<<2)>>2]=v;b=b+1|0}while((b|0)!=32);b=w+8|0;if(!(b&7))b=0;else b=0-b&7;x=s+-40-b|0;c[1834]=w+b;c[1831]=x;c[w+(b+4)>>2]=x|1;c[w+(s+-36)>>2]=40;c[1835]=c[1950]}while(0);b=c[1831]|0;if(b>>>0>p>>>0){w=b-p|0;c[1831]=w;x=c[1834]|0;c[1834]=x+p;c[x+(p+4)>>2]=w|1;c[x+4>>2]=p|3;x=x+8|0;i=L;return x|0}}c[(va()|0)>>2]=12;x=0;i=L;return x|0}function kd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;if(!a){i=w;return}f=a+-8|0;h=c[1832]|0;if(f>>>0>>0)ka();g=c[a+-4>>2]|0;e=g&3;if((e|0)==1)ka();q=g&-8;r=a+(q+-8)|0;do if(!(g&1)){g=c[f>>2]|0;if(!e){i=w;return}j=-8-g|0;m=a+j|0;n=g+q|0;if(m>>>0>>0)ka();if((m|0)==(c[1833]|0)){f=a+(q+-4)|0;g=c[f>>2]|0;if((g&3|0)!=3){v=m;l=n;break}c[1830]=n;c[f>>2]=g&-2;c[a+(j+4)>>2]=n|1;c[r>>2]=n;i=w;return}d=g>>>3;if(g>>>0<256){e=c[a+(j+8)>>2]|0;f=c[a+(j+12)>>2]|0;g=7352+(d<<1<<2)|0;if((e|0)!=(g|0)){if(e>>>0>>0)ka();if((c[e+12>>2]|0)!=(m|0))ka()}if((f|0)==(e|0)){c[1828]=c[1828]&~(1<>>0>>0)ka();g=f+8|0;if((c[g>>2]|0)==(m|0))b=g;else ka()}else b=f+8|0;c[e+12>>2]=f;c[b>>2]=e;v=m;l=n;break}b=c[a+(j+24)>>2]|0;e=c[a+(j+12)>>2]|0;do if((e|0)==(m|0)){f=a+(j+20)|0;g=c[f>>2]|0;if(!g){f=a+(j+16)|0;g=c[f>>2]|0;if(!g){k=0;break}}while(1){d=g+20|0;e=c[d>>2]|0;if(e){g=e;f=d;continue}d=g+16|0;e=c[d>>2]|0;if(!e)break;else{g=e;f=d}}if(f>>>0>>0)ka();else{c[f>>2]=0;k=g;break}}else{d=c[a+(j+8)>>2]|0;if(d>>>0>>0)ka();g=d+12|0;if((c[g>>2]|0)!=(m|0))ka();f=e+8|0;if((c[f>>2]|0)==(m|0)){c[g>>2]=e;c[f>>2]=d;k=e;break}else ka()}while(0);if(b){g=c[a+(j+28)>>2]|0;f=7616+(g<<2)|0;if((m|0)==(c[f>>2]|0)){c[f>>2]=k;if(!k){c[1829]=c[1829]&~(1<>>0<(c[1832]|0)>>>0)ka();g=b+16|0;if((c[g>>2]|0)==(m|0))c[g>>2]=k;else c[b+20>>2]=k;if(!k){v=m;l=n;break}}f=c[1832]|0;if(k>>>0>>0)ka();c[k+24>>2]=b;g=c[a+(j+16)>>2]|0;do if(g)if(g>>>0>>0)ka();else{c[k+16>>2]=g;c[g+24>>2]=k;break}while(0);g=c[a+(j+20)>>2]|0;if(g)if(g>>>0<(c[1832]|0)>>>0)ka();else{c[k+20>>2]=g;c[g+24>>2]=k;v=m;l=n;break}else{v=m;l=n}}else{v=m;l=n}}else{v=f;l=q}while(0);if(v>>>0>=r>>>0)ka();g=a+(q+-4)|0;f=c[g>>2]|0;if(!(f&1))ka();if(!(f&2)){if((r|0)==(c[1834]|0)){m=(c[1831]|0)+l|0;c[1831]=m;c[1834]=v;c[v+4>>2]=m|1;if((v|0)!=(c[1833]|0)){i=w;return}c[1833]=0;c[1830]=0;i=w;return}if((r|0)==(c[1833]|0)){m=(c[1830]|0)+l|0;c[1830]=m;c[1833]=v;c[v+4>>2]=m|1;c[v+m>>2]=m;i=w;return}h=(f&-8)+l|0;d=f>>>3;do if(f>>>0>=256){b=c[a+(q+16)>>2]|0;g=c[a+(q|4)>>2]|0;do if((g|0)==(r|0)){f=a+(q+12)|0;g=c[f>>2]|0;if(!g){f=a+(q+8)|0;g=c[f>>2]|0;if(!g){p=0;break}}while(1){d=g+20|0;e=c[d>>2]|0;if(e){g=e;f=d;continue}d=g+16|0;e=c[d>>2]|0;if(!e)break;else{g=e;f=d}}if(f>>>0<(c[1832]|0)>>>0)ka();else{c[f>>2]=0;p=g;break}}else{f=c[a+q>>2]|0;if(f>>>0<(c[1832]|0)>>>0)ka();e=f+12|0;if((c[e>>2]|0)!=(r|0))ka();d=g+8|0;if((c[d>>2]|0)==(r|0)){c[e>>2]=g;c[d>>2]=f;p=g;break}else ka()}while(0);if(b){g=c[a+(q+20)>>2]|0;f=7616+(g<<2)|0;if((r|0)==(c[f>>2]|0)){c[f>>2]=p;if(!p){c[1829]=c[1829]&~(1<>>0<(c[1832]|0)>>>0)ka();g=b+16|0;if((c[g>>2]|0)==(r|0))c[g>>2]=p;else c[b+20>>2]=p;if(!p)break}g=c[1832]|0;if(p>>>0>>0)ka();c[p+24>>2]=b;f=c[a+(q+8)>>2]|0;do if(f)if(f>>>0>>0)ka();else{c[p+16>>2]=f;c[f+24>>2]=p;break}while(0);d=c[a+(q+12)>>2]|0;if(d)if(d>>>0<(c[1832]|0)>>>0)ka();else{c[p+20>>2]=d;c[d+24>>2]=p;break}}}else{e=c[a+q>>2]|0;f=c[a+(q|4)>>2]|0;g=7352+(d<<1<<2)|0;if((e|0)!=(g|0)){if(e>>>0<(c[1832]|0)>>>0)ka();if((c[e+12>>2]|0)!=(r|0))ka()}if((f|0)==(e|0)){c[1828]=c[1828]&~(1<>>0<(c[1832]|0)>>>0)ka();g=f+8|0;if((c[g>>2]|0)==(r|0))o=g;else ka()}else o=f+8|0;c[e+12>>2]=f;c[o>>2]=e}while(0);c[v+4>>2]=h|1;c[v+h>>2]=h;if((v|0)==(c[1833]|0)){c[1830]=h;i=w;return}else g=h}else{c[g>>2]=f&-2;c[v+4>>2]=l|1;c[v+l>>2]=l;g=l}e=g>>>3;if(g>>>0<256){f=e<<1;g=7352+(f<<2)|0;d=c[1828]|0;e=1<>2]|0;if(b>>>0<(c[1832]|0)>>>0)ka();else{s=d;t=b}}else{c[1828]=d|e;s=7352+(f+2<<2)|0;t=g}c[s>>2]=v;c[t+12>>2]=v;c[v+8>>2]=t;c[v+12>>2]=g;i=w;return}d=g>>>8;if(d)if(g>>>0>16777215)f=31;else{l=(d+1048320|0)>>>16&8;m=d<>>16&4;m=m<>>16&2;f=14-(k|l|f)+(m<>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;b=7616+(f<<2)|0;c[v+28>>2]=f;c[v+20>>2]=0;c[v+16>>2]=0;d=c[1829]|0;e=1<>2]|0;if((f|0)==31)d=0;else d=25-(f>>>1)|0;b:do if((c[b+4>>2]&-8|0)!=(g|0)){f=g<>>31<<2)+16|0;d=c[e>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(g|0)){u=d;break b}else{f=f<<1;b=d}}if(e>>>0<(c[1832]|0)>>>0)ka();else{c[e>>2]=v;c[v+24>>2]=b;c[v+12>>2]=v;c[v+8>>2]=v;break a}}else u=b;while(0);d=u+8|0;b=c[d>>2]|0;m=c[1832]|0;if(u>>>0>=m>>>0&b>>>0>=m>>>0){c[b+12>>2]=v;c[d>>2]=v;c[v+8>>2]=b;c[v+12>>2]=u;c[v+24>>2]=0;break}else ka()}else{c[1829]=d|e;c[b>>2]=v;c[v+24>>2]=b;c[v+12>>2]=v;c[v+8>>2]=v}while(0);m=(c[1836]|0)+-1|0;c[1836]=m;if(!m)b=7768|0;else{i=w;return}while(1){b=c[b>>2]|0;if(!b)break;else b=b+8|0}c[1836]=-1;i=w;return}function ld(){}function md(b){b=b|0;var c=0;c=b;while(a[c>>0]|0)c=c+1|0;return c-b|0}function nd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function od(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return pa(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function pd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;xa[a&3](b|0,c|0,d|0,e|0,f|0)}function qd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_(0)} + +// EMSCRIPTEN_END_FUNCS +var xa=[qd,fc,ec,qd];return{_strlen:md,_free:kd,_broadwayGetMajorVersion:dd,_get_h264bsdClip:Lb,_broadwayExit:cd,_memset:nd,_broadwayCreateStream:Zc,_malloc:jd,_memcpy:od,_broadwayGetMinorVersion:ed,_broadwayPlayStream:$c,_broadwaySetStreamLength:_c,_broadwayInit:ad,runPostSets:ld,stackAlloc:ya,stackSave:za,stackRestore:Aa,setThrew:Ba,setTempRet0:Ea,getTempRet0:Fa,dynCall_viiiii:pd}}) + + +// EMSCRIPTEN_END_ASM +(p.Xc,p.Yc,Q),Bb=p._strlen=$._strlen,Ea=p._free=$._free;p._broadwayGetMajorVersion=$._broadwayGetMajorVersion;p._get_h264bsdClip=$._get_h264bsdClip;p._broadwayExit=$._broadwayExit;var Gb=p._memset=$._memset;p._broadwayCreateStream=$._broadwayCreateStream;var Ca=p._malloc=$._malloc,gc=p._memcpy=$._memcpy; +p._broadwayGetMinorVersion=$._broadwayGetMinorVersion;p._broadwayPlayStream=$._broadwayPlayStream;p._broadwaySetStreamLength=$._broadwaySetStreamLength;p._broadwayInit=$._broadwayInit;p.runPostSets=$.runPostSets;p.dynCall_viiiii=$.dynCall_viiiii;z.pb=$.stackAlloc;z.Tb=$.stackSave;z.Sb=$.stackRestore;z.Yd=$.setTempRet0;z.xd=$.getTempRet0; +if(T)if("function"===typeof p.locateFile?T=p.locateFile(T):p.memoryInitializerPrefixURL&&(T=p.memoryInitializerPrefixURL+T),t||da){var hc=p.readBinary(T);N.set(hc,Ia)}else Ya(),yb(T,function(a){N.set(a,Ia);Za()},function(){d("could not load memory initializer "+T)});function ia(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}ia.prototype=Error();var ic,jc=k,Xa=function kc(){!p.calledRun&&lc&&mc();p.calledRun||(Xa=kc)}; +p.callMain=p.ag=function(a){function b(){for(var a=0;3>a;a++)e.push(0)}w(0==S,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");w(0==Oa.length,"cannot call main when preRun functions remain to be called");a=a||[];Sa||(Sa=i,Na(R));var c=a.length+1,e=[M(Va(p.thisProgram),"i8",0)];b();for(var f=0;f y ? y : z); + } + + function OptimizedGetBoundaryStrengthsA($mb, $bS) { + var $totalCoeff = $mb + 28; + + var tc0 = HEAP16[$totalCoeff + 0 >> 1]; + var tc1 = HEAP16[$totalCoeff + 2 >> 1]; + var tc2 = HEAP16[$totalCoeff + 4 >> 1]; + var tc3 = HEAP16[$totalCoeff + 6 >> 1]; + var tc4 = HEAP16[$totalCoeff + 8 >> 1]; + var tc5 = HEAP16[$totalCoeff + 10 >> 1]; + var tc6 = HEAP16[$totalCoeff + 12 >> 1]; + var tc7 = HEAP16[$totalCoeff + 14 >> 1]; + var tc8 = HEAP16[$totalCoeff + 16 >> 1]; + var tc9 = HEAP16[$totalCoeff + 18 >> 1]; + var tc10 = HEAP16[$totalCoeff + 20 >> 1]; + var tc11 = HEAP16[$totalCoeff + 22 >> 1]; + var tc12 = HEAP16[$totalCoeff + 24 >> 1]; + var tc13 = HEAP16[$totalCoeff + 26 >> 1]; + var tc14 = HEAP16[$totalCoeff + 28 >> 1]; + var tc15 = HEAP16[$totalCoeff + 30 >> 1]; + + HEAP32[$bS + 32 >> 2] = tc2 || tc0 ? 2 : 0; + HEAP32[$bS + 40 >> 2] = tc3 || tc1 ? 2 : 0; + HEAP32[$bS + 48 >> 2] = tc6 || tc4 ? 2 : 0; + HEAP32[$bS + 56 >> 2] = tc7 || tc5 ? 2 : 0; + HEAP32[$bS + 64 >> 2] = tc8 || tc2 ? 2 : 0; + HEAP32[$bS + 72 >> 2] = tc9 || tc3 ? 2 : 0; + HEAP32[$bS + 80 >> 2] = tc12 || tc6 ? 2 : 0; + HEAP32[$bS + 88 >> 2] = tc13 || tc7 ? 2 : 0; + HEAP32[$bS + 96 >> 2] = tc10 || tc8 ? 2 : 0; + HEAP32[$bS + 104 >> 2] = tc11 || tc9 ? 2 : 0; + HEAP32[$bS + 112 >> 2] = tc14 || tc12 ? 2 : 0; + HEAP32[$bS + 120 >> 2] = tc15 || tc13 ? 2 : 0; + + HEAP32[$bS + 12 >> 2] = tc1 || tc0 ? 2 : 0; + HEAP32[$bS + 20 >> 2] = tc4 || tc1 ? 2 : 0; + HEAP32[$bS + 28 >> 2] = tc5 || tc4 ? 2 : 0; + HEAP32[$bS + 44 >> 2] = tc3 || tc2 ? 2 : 0; + HEAP32[$bS + 52 >> 2] = tc6 || tc3 ? 2 : 0; + HEAP32[$bS + 60 >> 2] = tc7 || tc6 ? 2 : 0; + HEAP32[$bS + 76 >> 2] = tc9 || tc8 ? 2 : 0; + HEAP32[$bS + 84 >> 2] = tc12 || tc9 ? 2 : 0; + HEAP32[$bS + 92 >> 2] = tc13 || tc12 ? 2 : 0; + HEAP32[$bS + 108 >> 2] = tc11 || tc10 ? 2 : 0; + HEAP32[$bS + 116 >> 2] = tc14 || tc11 ? 2 : 0; + HEAP32[$bS + 124 >> 2] = tc15 || tc14 ? 2 : 0; + } + + function OptimizedFilterVerLumaEdge ($data, bS, $thresholds, imageWidth) { + var delta, tc, tmp; + var p0, q0, p1, q1, p2, q2; + var tmpFlag; + var $clp = _h264bsdClip + 512; + var alpha = HEAP32[$thresholds + 4 >> 2]; + var beta = HEAP32[$thresholds + 8 >> 2]; + var val; + + if (bS < 4) { + tmp = tc = HEAPU8[HEAP32[$thresholds >> 2] + (bS - 1)] & 255; + for (var i = 4; i > 0; i--) { + p1 = HEAPU8[$data + -2] & 255; + p0 = HEAPU8[$data + -1] & 255; + q0 = HEAPU8[$data] & 255; + q1 = HEAPU8[$data + 1] & 255; + if ((Math.abs(p0 - q0) < alpha) && (Math.abs(p1 - p0) < beta) && (Math.abs(q1 - q0) < beta)) { + p2 = HEAPU8[$data - 3] & 255; + if (Math.abs(p2 - p0) < beta) { + val = (p2 + ((p0 + q0 + 1) >> 1) - (p1 << 1)) >> 1; + HEAP8[$data - 2] = p1 + clip(-tc, tc, val); + tmp++; + } + + q2 = HEAPU8[$data + 2] & 255; + if (Math.abs(q2 - q0) < beta) { + val = (q2 + ((p0 + q0 + 1) >> 1) - (q1 << 1)) >> 1; + HEAP8[$data + 1] = (q1 + clip(-tc, tc, val)); + tmp++; + } + + val = ((((q0 - p0) << 2) + (p1 - q1) + 4) >> 3); + delta = clip(-tmp, tmp, val); + + p0 = HEAPU8[$clp + (p0 + delta)] & 255; + q0 = HEAPU8[$clp + (q0 - delta)] & 255; + tmp = tc; + HEAP8[$data - 1] = p0; + HEAP8[$data] = q0; + + $data += imageWidth; + } + } + } else { + OriginalFilterVerLumaEdge($data, bS, $thresholds, imageWidth); + } + } + + /** + * Filter all four successive horizontal 4-pixel luma edges. This can be done when bS is equal to all four edges. + */ + function OptimizedFilterHorLuma ($data, bS, $thresholds, imageWidth) { + var delta, tc, tmp; + var p0, q0, p1, q1, p2, q2; + var tmpFlag; + var $clp = _h264bsdClip + 512; + var alpha = HEAP32[$thresholds + 4 >> 2]; + var beta = HEAP32[$thresholds + 8 >> 2]; + var val; + + if (bS < 4) { + tmp = tc = HEAPU8[HEAP32[$thresholds >> 2] + (bS - 1)] & 255; + for (var i = 16; i > 0; i--) { + p1 = HEAPU8[$data + (-imageWidth << 1)] & 255; + p0 = HEAPU8[$data + -imageWidth] & 255; + q0 = HEAPU8[$data] & 255; + q1 = HEAPU8[$data + imageWidth] & 255; + + if ((Math.abs(p0 - q0) < alpha) && (Math.abs(p1 - p0) < beta) && (Math.abs(q1 - q0) < beta)) { + p2 = HEAPU8[$data + (-imageWidth * 3)] & 255; + if (Math.abs(p2 - p0) < beta) { + val = (p2 + ((p0 + q0 + 1) >> 1) - (p1 << 1)) >> 1; + HEAP8[$data + (-imageWidth << 1)] = p1 + clip(-tc, tc, val); + tmp++; + } + + q2 = HEAPU8[$data + (imageWidth << 2)] & 255; + if (Math.abs(q2 - q0) < beta) { + val = (q2 + ((p0 + q0 + 1) >> 1) - (q1 << 1)) >> 1; + HEAP8[$data + imageWidth] = (q1 + clip(-tc, tc, val)); + tmp++; + } + + val = ((((q0 - p0) << 2) + (p1 - q1) + 4) >> 3); + delta = clip(-tmp, tmp, val); + + p0 = HEAPU8[$clp + (p0 + delta)] & 255; + q0 = HEAPU8[$clp + (q0 - delta)] & 255; + tmp = tc; + HEAP8[$data - imageWidth] = p0; + HEAP8[$data] = q0; + + $data ++; + } + } + } else { + OriginalFilterHorLuma($data, bS, $thresholds, imageWidth); + } + } + }; + + + Broadway.prototype = { + configure: function (config) { + // patchOptimizations(config, patches); + console.info("Broadway Configured: " + JSON.stringify(config)); + } + + }; + + + + + /* + + asm.js implementation of a yuv to rgb convertor + provided by @soliton4 + + based on + http://www.wordsaretoys.com/2013/10/18/making-yuv-conversion-a-little-faster/ + + */ + + + // factory to create asm.js yuv -> rgb convertor for a given resolution + var asmInstances = {}; + var getAsm = function(parWidth, parHeight){ + var idStr = "" + parWidth + "x" + parHeight; + if (asmInstances[idStr]){ + return asmInstances[idStr]; + }; + + var lumaSize = parWidth * parHeight; + var chromaSize = (lumaSize|0) >> 2; + + var inpSize = lumaSize + chromaSize + chromaSize; + var outSize = parWidth * parHeight * 4; + var cacheSize = Math.pow(2, 24) * 4; + var size = inpSize + outSize + cacheSize; + + var chunkSize = Math.pow(2, 24); + var heapSize = chunkSize; + while (heapSize < size){ + heapSize += chunkSize; + }; + var heap = new ArrayBuffer(heapSize); + + var res = asmFactory(global, {}, heap); + res.init(parWidth, parHeight); + asmInstances[idStr] = res; + + res.heap = heap; + res.out = new Uint8Array(heap, 0, outSize); + res.inp = new Uint8Array(heap, outSize, inpSize); + res.outSize = outSize; + + return res; + }; + + + function asmFactory(stdlib, foreign, heap) { + "use asm"; + + var imul = stdlib.Math.imul; + var min = stdlib.Math.min; + var max = stdlib.Math.max; + var pow = stdlib.Math.pow; + var out = new stdlib.Uint8Array(heap); + var out32 = new stdlib.Uint32Array(heap); + var inp = new stdlib.Uint8Array(heap); + var mem = new stdlib.Uint8Array(heap); + var mem32 = new stdlib.Uint32Array(heap); + + // for double algo + /*var vt = 1.370705; + var gt = 0.698001; + var gt2 = 0.337633; + var bt = 1.732446;*/ + + var width = 0; + var height = 0; + var lumaSize = 0; + var chromaSize = 0; + var inpSize = 0; + var outSize = 0; + + var inpStart = 0; + var outStart = 0; + + var widthFour = 0; + + var cacheStart = 0; + + + function init(parWidth, parHeight){ + parWidth = parWidth|0; + parHeight = parHeight|0; + + var i = 0; + var s = 0; + + width = parWidth; + widthFour = imul(parWidth, 4)|0; + height = parHeight; + lumaSize = imul(width|0, height|0)|0; + chromaSize = (lumaSize|0) >> 2; + outSize = imul(imul(width, height)|0, 4)|0; + inpSize = ((lumaSize + chromaSize)|0 + chromaSize)|0; + + outStart = 0; + inpStart = (outStart + outSize)|0; + cacheStart = (inpStart + inpSize)|0; + + // initializing memory (to be on the safe side) + s = ~~(+pow(+2, +24)); + s = imul(s, 4)|0; + + for (i = 0|0; ((i|0) < (s|0))|0; i = (i + 4)|0){ + mem32[((cacheStart + i)|0) >> 2] = 0; + }; + }; + + function doit(){ + var ystart = 0; + var ustart = 0; + var vstart = 0; + + var y = 0; + var yn = 0; + var u = 0; + var v = 0; + + var o = 0; + + var line = 0; + var col = 0; + + var usave = 0; + var vsave = 0; + + var ostart = 0; + var cacheAdr = 0; + + ostart = outStart|0; + + ystart = inpStart|0; + ustart = (ystart + lumaSize|0)|0; + vstart = (ustart + chromaSize)|0; + + for (line = 0; (line|0) < (height|0); line = (line + 2)|0){ + usave = ustart; + vsave = vstart; + for (col = 0; (col|0) < (width|0); col = (col + 2)|0){ + y = inp[ystart >> 0]|0; + yn = inp[((ystart + width)|0) >> 0]|0; + + u = inp[ustart >> 0]|0; + v = inp[vstart >> 0]|0; + + cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0; + o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; + if (o){}else{ + o = yuv2rgbcalc(y,u,v)|0; + mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; + }; + mem32[ostart >> 2] = o; + + cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0; + o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; + if (o){}else{ + o = yuv2rgbcalc(yn,u,v)|0; + mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; + }; + mem32[((ostart + widthFour)|0) >> 2] = o; + + //yuv2rgb5(y, u, v, ostart); + //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); + ostart = (ostart + 4)|0; + + // next step only for y. u and v stay the same + ystart = (ystart + 1)|0; + y = inp[ystart >> 0]|0; + yn = inp[((ystart + width)|0) >> 0]|0; + + //yuv2rgb5(y, u, v, ostart); + cacheAdr = (((((y << 16)|0) + ((u << 8)|0))|0) + v)|0; + o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; + if (o){}else{ + o = yuv2rgbcalc(y,u,v)|0; + mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; + }; + mem32[ostart >> 2] = o; + + //yuv2rgb5(yn, u, v, (ostart + widthFour)|0); + cacheAdr = (((((yn << 16)|0) + ((u << 8)|0))|0) + v)|0; + o = mem32[((cacheStart + cacheAdr)|0) >> 2]|0; + if (o){}else{ + o = yuv2rgbcalc(yn,u,v)|0; + mem32[((cacheStart + cacheAdr)|0) >> 2] = o|0; + }; + mem32[((ostart + widthFour)|0) >> 2] = o; + ostart = (ostart + 4)|0; + + //all positions inc 1 + + ystart = (ystart + 1)|0; + ustart = (ustart + 1)|0; + vstart = (vstart + 1)|0; + }; + ostart = (ostart + widthFour)|0; + ystart = (ystart + width)|0; + + }; + + }; + + function yuv2rgbcalc(y, u, v){ + y = y|0; + u = u|0; + v = v|0; + + var r = 0; + var g = 0; + var b = 0; + + var o = 0; + + var a0 = 0; + var a1 = 0; + var a2 = 0; + var a3 = 0; + var a4 = 0; + + a0 = imul(1192, (y - 16)|0)|0; + a1 = imul(1634, (v - 128)|0)|0; + a2 = imul(832, (v - 128)|0)|0; + a3 = imul(400, (u - 128)|0)|0; + a4 = imul(2066, (u - 128)|0)|0; + + r = (((a0 + a1)|0) >> 10)|0; + g = (((((a0 - a2)|0) - a3)|0) >> 10)|0; + b = (((a0 + a4)|0) >> 10)|0; + + if ((((r & 255)|0) != (r|0))|0){ + r = min(255, max(0, r|0)|0)|0; + }; + if ((((g & 255)|0) != (g|0))|0){ + g = min(255, max(0, g|0)|0)|0; + }; + if ((((b & 255)|0) != (b|0))|0){ + b = min(255, max(0, b|0)|0)|0; + }; + + o = 255; + o = (o << 8)|0; + o = (o + b)|0; + o = (o << 8)|0; + o = (o + g)|0; + o = (o << 8)|0; + o = (o + r)|0; + + return o|0; + + }; + + + + return { + init: init, + doit: doit + }; + }; + + + /* + potential worker initialization + + */ + + + if (typeof self != "undefined"){ + var isWorker = false; + var decoder; + var equeue = []; + + self.addEventListener('message', function(e) { + + if (isWorker){ + e.data.meta.wt1 = Date.now(); + if (equeue.length === 0) { + e.data.meta.wt2 = e.data.meta.wt1; + equeue.push(e.data); + decoder.decode(new Uint8Array(e.data.img)); + } else { + equeue.push(e.data); + } + } else { + if (e.data && e.data.type === "Broadway.js - Worker init"){ + isWorker = true; + decoder = new Broadway(e.data.options); + decoder.onPictureDecoded = function (buffer, width, height) { + if (buffer) { + buffer = new Uint8Array(buffer); + }; + + // post dimensions seperately + //postMessage({width: width, height: height}); + + // buffer needs to be copied because we give up ownership + var copyU8 = new Uint8Array(buffer.length); + copyU8.set( buffer, 0, buffer.length ); + + // only post the buffer (slightly faster) + // add 2nd parameter to indicate transfer of owner ship (this it was makes this worker implementation faster) + //postMessage({width: width, height: height, buf: copyU8.buffer}, [copyU8.buffer]); + var data = equeue.shift() + data.meta.wt3 = Date.now(); + + postMessage({width: width, height: height, length: buffer.length, buf: copyU8.buffer, meta: data.meta}, [copyU8.buffer]); + if (equeue.length > 0) { + //console.log("Worker - ", equeue[0].meta); + equeue[0].meta.wt2 = Date.now(); + decoder.decode(new Uint8Array(equeue[0].img)); + }; + + + }; + postMessage({consoleLog: "initialized" }); + }; + }; + + + }, false); + }; + + + return Broadway; + +})); + diff --git a/src/html5/include/broadway/LICENSE b/src/html5/include/lib/broadway/LICENSE similarity index 100% rename from src/html5/include/broadway/LICENSE rename to src/html5/include/lib/broadway/LICENSE diff --git a/src/html5/include/deflate.min.js b/src/html5/include/lib/deflate.min.js similarity index 100% rename from src/html5/include/deflate.min.js rename to src/html5/include/lib/deflate.min.js diff --git a/src/html5/include/forge.min.js b/src/html5/include/lib/forge.min.js similarity index 100% rename from src/html5/include/forge.min.js rename to src/html5/include/lib/forge.min.js diff --git a/src/html5/include/inflate.min.js b/src/html5/include/lib/inflate.min.js similarity index 100% rename from src/html5/include/inflate.min.js rename to src/html5/include/lib/inflate.min.js diff --git a/src/html5/include/jquery.min.js b/src/html5/include/lib/jquery.min.js similarity index 100% rename from src/html5/include/jquery.min.js rename to src/html5/include/lib/jquery.min.js diff --git a/src/html5/include/jquery.throttle-debounce.min.js b/src/html5/include/lib/jquery.throttle-debounce.min.js similarity index 100% rename from src/html5/include/jquery.throttle-debounce.min.js rename to src/html5/include/lib/jquery.throttle-debounce.min.js diff --git a/src/html5/include/jqueryui.min.js b/src/html5/include/lib/jqueryui.min.js similarity index 100% rename from src/html5/include/jqueryui.min.js rename to src/html5/include/lib/jqueryui.min.js diff --git a/src/html5/include/lz4.min.js b/src/html5/include/lib/lz4.min.js similarity index 100% rename from src/html5/include/lz4.min.js rename to src/html5/include/lib/lz4.min.js diff --git a/src/html5/include/websock.js b/src/html5/include/lib/websock.js similarity index 100% rename from src/html5/include/websock.js rename to src/html5/include/lib/websock.js diff --git a/src/html5/include/wsworker_check.js b/src/html5/include/lib/wsworker_check.js similarity index 100% rename from src/html5/include/wsworker_check.js rename to src/html5/include/lib/wsworker_check.js diff --git a/src/html5/include/xpra_client.js b/src/html5/include/xpra_client.js index c29d0cd5bf..0e24b6022f 100644 --- a/src/html5/include/xpra_client.js +++ b/src/html5/include/xpra_client.js @@ -165,7 +165,7 @@ XpraClient.prototype.connect = function(host, port, ssl) { console.log("we have webworker support"); // spawn worker that checks for a websocket var me = this; - var worker = new Worker('include/wsworker_check.js'); + var worker = new Worker('include/lib/wsworker_check.js'); worker.addEventListener('message', function(e) { var data = e.data; switch (data['result']) { diff --git a/src/html5/include/xpra_protocol.js b/src/html5/include/xpra_protocol.js index bc02cf9c54..02c525c518 100644 --- a/src/html5/include/xpra_protocol.js +++ b/src/html5/include/xpra_protocol.js @@ -331,11 +331,11 @@ If we are in a web worker, set up an instance of the protocol if (!(typeof window == "object" && typeof document == "object" && window.document === document)) { // some required imports // worker imports are relative to worker script path - importScripts('websock.js', - 'bencode.js', - 'inflate.min.js', - 'lz4.min.js', - 'forge.min.js'); + importScripts('lib/websock.js', + 'lib/bencode.js', + 'lib/inflate.min.js', + 'lib/lz4.min.js', + 'lib/forge.min.js'); // make protocol instance var protocol = new XpraProtocol(); // we create a custom packet handler which posts packet as a message diff --git a/src/html5/include/xpra_window.js b/src/html5/include/xpra_window.js index 220bfd7843..f486a12303 100644 --- a/src/html5/include/xpra_window.js +++ b/src/html5/include/xpra_window.js @@ -105,11 +105,11 @@ function XpraWindow(client, canvas_state, wid, x, y, w, h, metadata, override_re if(!this.override_redirect) { // create header jQuery(this.div).prepend('

'+ - ' '+ + ' '+ '' + this.title + ' '+ ' '+ - ' '+ - ' '+ + ' '+ + ' '+ '
'); // make draggable jQuery(this.div).draggable({ diff --git a/src/html5/index.html b/src/html5/index.html index 477b4401dd..e17b6a45cc 100644 --- a/src/html5/index.html +++ b/src/html5/index.html @@ -138,25 +138,25 @@ .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;} - + - - - + + + - - - - + + + + - + - - - + + + - +