From f6447710a76216b4c306a53413497890169d3087 Mon Sep 17 00:00:00 2001 From: sh Date: Wed, 11 Mar 2026 14:47:55 +0000 Subject: [PATCH 1/9] xftp-server: embed file download widget in XFTP server web page When a URL has a hash fragment (>50 chars), the server page shows the file download UI instead of the server info page. Embeds xftp-web assets (JS, CSS, crypto worker) and protocol overlay with matching website content. Overlay renders below the server navbar. --- apps/common/Web/static/index.html | 352 + .../Web/static/media/xftp-protocol-dark.svg | 115 + .../common/Web/static/media/xftp-protocol.svg | 130 + apps/xftp-server/XFTPWeb.hs | 14 +- apps/xftp-server/static/xftp/crypto.worker.js | 851 ++ apps/xftp-server/static/xftp/index.css | 131 + apps/xftp-server/static/xftp/index.js | 11599 ++++++++++++++++ simplexmq.cabal | 7 + 8 files changed, 13198 insertions(+), 1 deletion(-) create mode 100644 apps/common/Web/static/media/xftp-protocol-dark.svg create mode 100644 apps/common/Web/static/media/xftp-protocol.svg create mode 100644 apps/xftp-server/static/xftp/crypto.worker.js create mode 100644 apps/xftp-server/static/xftp/index.css create mode 100644 apps/xftp-server/static/xftp/index.js diff --git a/apps/common/Web/static/index.html b/apps/common/Web/static/index.html index fdc6fb054a..a31b97f6d2 100644 --- a/apps/common/Web/static/index.html +++ b/apps/common/Web/static/index.html @@ -81,6 +81,175 @@ color: #70F0F9; } + + + + @@ -209,6 +378,7 @@ window.addEventListener('scroll', changeHeaderBg); +
@@ -394,6 +564,188 @@

+
+ + + +
diff --git a/apps/common/Web/static/media/xftp-protocol-dark.svg b/apps/common/Web/static/media/xftp-protocol-dark.svg new file mode 100644 index 0000000000..f154fdeb6a --- /dev/null +++ b/apps/common/Web/static/media/xftp-protocol-dark.svg @@ -0,0 +1,115 @@ + + + + Sender's browser + encrypts file + + + + + + + encrypted chunks + + + + + + + + + + + + + + + + + SimpleX + XFTP server + + + + + + + + + + + + Flux + XFTP server + + + + + + + + + + + + SimpleX + XFTP server + + + + + + + + re-encrypted + per recipient + + + + encrypted chunks + + + + + + + Recipient's browser + decrypts file + + + + key in URL fragment — never sent to server + + + + + + + + + + + + + + + + + + + + + + + + + + + Each chunk uses unique anonymous credentials — no shared identifiers + + + + + + + diff --git a/apps/common/Web/static/media/xftp-protocol.svg b/apps/common/Web/static/media/xftp-protocol.svg new file mode 100644 index 0000000000..11ab03e77b --- /dev/null +++ b/apps/common/Web/static/media/xftp-protocol.svg @@ -0,0 +1,130 @@ + + + + Sender's browser + encrypts file + + + + + + + encrypted chunks + + + + + + + + + + + + + + + + + SimpleX + XFTP server + + + + + + + + + + + + Flux + XFTP server + + + + + + + + + + + + SimpleX + XFTP server + + + + + + + + re-encrypted + per recipient + + + + encrypted chunks + + + + + + + Recipient's browser + decrypts file + + + + key in URL fragment — never sent to server + + + + + + + + + + + + + + + + + + + + + + + + + + + Each chunk uses unique anonymous credentials — no shared identifiers + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/xftp-server/XFTPWeb.hs b/apps/xftp-server/XFTPWeb.hs index dd57d43c04..3182243748 100644 --- a/apps/xftp-server/XFTPWeb.hs +++ b/apps/xftp-server/XFTPWeb.hs @@ -1,12 +1,16 @@ {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE TemplateHaskell #-} module XFTPWeb ( xftpGenerateSite, xftpServerInformation, ) where +import Control.Monad (forM_) +import qualified Data.ByteString.Char8 as B import Data.ByteString (ByteString) +import Data.FileEmbed (embedDir) import Data.Maybe (isJust) import Data.String (fromString) import Web.Embedded (embeddedContent) @@ -18,10 +22,18 @@ import Simplex.Messaging.Server.Main (simplexmqSource) import qualified Simplex.Messaging.Server.Web as Web import Simplex.Messaging.Server.Web (render, serverInfoSubsts, timedTTLText) import Simplex.Messaging.Transport.Client (TransportHost (..)) +import System.Directory (createDirectoryIfMissing) +import System.FilePath (()) + +xftpWebContent :: [(FilePath, ByteString)] +xftpWebContent = $(embedDir "apps/xftp-server/static/xftp/") xftpGenerateSite :: XFTPServerConfig -> Maybe ServerPublicInfo -> Maybe TransportHost -> FilePath -> IO () -xftpGenerateSite cfg info onionHost path = +xftpGenerateSite cfg info onionHost path = do Web.generateSite embeddedContent (xftpServerInformation cfg info onionHost) [] path + let xftpDir = path "xftp" + createDirectoryIfMissing True xftpDir + forM_ xftpWebContent $ \(fp, content) -> B.writeFile (xftpDir fp) content xftpServerInformation :: XFTPServerConfig -> Maybe ServerPublicInfo -> Maybe TransportHost -> ByteString xftpServerInformation XFTPServerConfig {fileExpiration, logStatsInterval, allowNewFiles, newFileBasicAuth} information onionHost = render (Web.indexHtml embeddedContent) substs diff --git a/apps/xftp-server/static/xftp/crypto.worker.js b/apps/xftp-server/static/xftp/crypto.worker.js new file mode 100644 index 0000000000..20b6859acf --- /dev/null +++ b/apps/xftp-server/static/xftp/crypto.worker.js @@ -0,0 +1,851 @@ +// ESM polyfills for Node.js compatibility +// __dirname and __filename are not available in ESM, so we polyfill them for Node.js +var __filename$1, __dirname$1; +try { + // Only works in Node.js ESM - browsers will skip this + if (typeof process !== 'undefined' && process.versions && process.versions.node) { + var url = await import('url'); + var path = await import('./__vite-browser-external-C6dvzdW7.js'); + __filename$1 = url.fileURLToPath(import.meta.url); + __dirname$1 = path.dirname(__filename$1); + } +} catch (e) { + // In browser environments, these are not needed +} + +var Module = {}; + +// Set up getRandomValue for ESM environments (browsers and Node.js 19+) +// This must be done before the WASM module initializes +(function() { + try { + // Try globalThis.crypto first (works in browsers and Node.js 19+) + var crypto_ = globalThis.crypto; + if (crypto_ && typeof crypto_.getRandomValues === 'function') { + Module.getRandomValue = function() { + var buf = new Uint32Array(1); + crypto_.getRandomValues(buf); + return buf[0] >>> 0; + }; + return; + } + } catch (e) {} + + try { + // Fallback for older browsers: window.crypto or self.crypto + var window_ = typeof window !== 'undefined' ? window : self; + var crypto_ = window_.crypto || window_.msCrypto; + if (crypto_ && typeof crypto_.getRandomValues === 'function') { + Module.getRandomValue = function() { + var buf = new Uint32Array(1); + crypto_.getRandomValues(buf); + return buf[0] >>> 0; + }; + return; + } + } catch (e) {} + + // No crypto available - will fail at runtime if random bytes are needed +})(); + var Module; + if (typeof Module === 'undefined') { + Module = {}; + } + var root = Module; + if (typeof root['sodium'] !== 'object') { + if (typeof global === 'object') { + root = global; + } else if (typeof window === 'object') { + root = window; + } + } + if (typeof Module.getRandomValue === 'undefined') { + try { + var window_ = 'object' === typeof window ? window : self; + var crypto_ = typeof window_.crypto !== 'undefined' ? window_.crypto : window_.msCrypto; + var randomValuesStandard = function() { + var buf = new Uint32Array(1); + crypto_.getRandomValues(buf); + return buf[0] >>> 0; + }; + randomValuesStandard(); + Module.getRandomValue = randomValuesStandard; + } catch (e) { + try { + var crypto$1 = null; + var randomValueNodeJS = function() { + var buf = crypto$1['randomBytes'](4); + return (buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]) >>> 0; + }; + randomValueNodeJS(); + Module.getRandomValue = randomValueNodeJS; + } catch (e) { + throw 'No secure random number generator found'; + } + } + } + var _Module = Module; + Module.ready = new Promise(function(resolve, reject) { + var Module = _Module; + Module.onAbort = reject; + Module.print = function(what) { + typeof(console) !== 'undefined' && console.log(what); + }; + Module.printErr = function(what) { + typeof(console) !== 'undefined' && console.warn(what); + }; + Module.onRuntimeInitialized = function() { + try { + /* Test arbitrary wasm function */ + Module._crypto_secretbox_keybytes(); + resolve(); + } catch (err) { + reject(err); + } + }; + Module.useBackupModule = function() { + return new Promise(function(resolve, reject) { + var Module = {}; + Module.onAbort = reject; + Module.getRandomValue = _Module.getRandomValue; + + Module.onRuntimeInitialized = function() { + Object.keys(_Module).forEach(function(k) { + if (k !== 'getRandomValue') { + delete _Module[k]; + } + }); + Object.keys(Module).forEach(function(k) { + _Module[k] = Module[k]; + }); + resolve(); + }; + +var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename$1!="undefined"){_scriptName=__filename$1;}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href;}var scriptDirectory="";if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname$1+"/";if(process.argv.length>1){process.argv[1].replace(/\\/g,"/");}process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module;}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href;}catch{}}else;console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536);},Module:function(binary){},Instance:function(module,info){this.exports=( +// EMSCRIPTEN_START_ASM +function instantiate(ea){var a;var b=new Uint8Array(123);for(var c=25;c>=0;--c){b[48+c]=52+c;b[65+c]=c;b[97+c]=26+c;}b[43]=62;b[47]=63;function i(j,k,l){var d,e,c=0,f=k,g=l.length,h=k+(g*3>>2)-(l[g-2]=="=")-(l[g-1]=="=");for(;c>4;if(f>2;if(f>>0;r=r>>>0;if(p+r>a.length)throw "trap: invalid memory.fill";a.fill(q,p,p+r);}function s(){throw new Error("abort")}function t(p,u,r){a.copyWithin(p,u,u+r);}function da(n){var v=new ArrayBuffer(50331648);var w=new Int8Array(v);var x=new Int16Array(v);var y=new Int32Array(v);var z=new Uint8Array(v);var A=new Uint16Array(v);var B=new Uint32Array(v);var E=Math.imul;var H=Math.clz32;var O=n.a;var P=O.a;var Q=O.b;var R=O.c;var S=O.d;var T=106768;var U=0;var V=0;var W=0; +// EMSCRIPTEN_START_FUNCS +function Eb(a,b){var 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,x=0,y=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,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,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;ia=z[b+40|0]|z[b+41|0]<<8|(z[b+42|0]<<16|z[b+43|0]<<24);c=z[b+44|0]|z[b+45|0]<<8|(z[b+46|0]<<16|z[b+47|0]<<24);ka=c;Z=z[b+104|0]|z[b+105|0]<<8|(z[b+106|0]<<16|z[b+107|0]<<24);c=z[b+108|0]|z[b+109|0]<<8|(z[b+110|0]<<16|z[b+111|0]<<24);la=c;c=z[b+68|0]|z[b+69|0]<<8|(z[b+70|0]<<16|z[b+71|0]<<24);O=z[b+64|0]|z[b+65|0]<<8|(z[b+66|0]<<16|z[b+67|0]<<24);$=c;c=z[b+36|0]|z[b+37|0]<<8|(z[b+38|0]<<16|z[b+39|0]<<24);wa=c;s=c;da=z[b+120|0]|z[b+121|0]<<8|(z[b+122|0]<<16|z[b+123|0]<<24);c=z[b+124|0]|z[b+125|0]<<8|(z[b+126|0]<<16|z[b+127|0]<<24);qa=c;c=z[b+92|0]|z[b+93|0]<<8|(z[b+94|0]<<16|z[b+95|0]<<24);Aa=c;pa=z[b+88|0]|z[b+89|0]<<8|(z[b+90|0]<<16|z[b+91|0]<<24);N=c;ca=z[b+80|0]|z[b+81|0]<<8|(z[b+82|0]<<16|z[b+83|0]<<24);c=z[b+84|0]|z[b+85|0]<<8|(z[b+86|0]<<16|z[b+87|0]<<24);na=c;P=c;aa=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);fa=z[a+52|0]|z[a+53|0]<<8|(z[a+54|0]<<16|z[a+55|0]<<24);c=fa+s|0;ea=z[a+48|0]|z[a+49|0]<<8|(z[a+50|0]<<16|z[a+51|0]<<24);ga=z[b+32|0]|z[b+33|0]<<8|(z[b+34|0]<<16|z[b+35|0]<<24);L=ea+ga|0;c=(z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24))+(ea>>>0>L>>>0?c+1|0:c)|0;d=L;L=L+aa|0;aa=d>>>0>L>>>0?c+1|0:c;c=aa+ka|0;ja=L+ia|0;c=ja>>>0>>0?c+1|0:c;ba=ja;ja=c;L=Ci(L^(z[a+80|0]|z[a+81|0]<<8|(z[a+82|0]<<16|z[a+83|0]<<24))^-79577749,aa^(z[a+84|0]|z[a+85|0]<<8|(z[a+86|0]<<16|z[a+87|0]<<24))^528734635,32);c=W;ta=c;c=c+1013904242|0;aa=L;L=L-23791573|0;c=L>>>0<4271175723?c+1|0:c;S=c;fa=Ci(L^ea,c^fa,40);ea=fa+ba|0;c=ja;ja=W;c=c+ja|0;k=ea;l=k>>>0>>0?c+1|0:c;ea=Ci(aa^k,ta^l,48);J=W;c=S+J|0;m=ea;ea=L+m|0;c=ea>>>0>>0?c+1|0:c;o=ea;p=c;c=Ci(fa^o,ja^c,1);L=W;ea=c;S=L;ja=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);c=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);ta=c;ha=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);fa=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);aa=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);L=fa+aa|0;xa=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);Ba=z[a+44|0]|z[a+45|0]<<8|(z[a+46|0]<<16|z[a+47|0]<<24);c=xa+Ba|0;c=(z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24))+(L>>>0>>0?c+1|0:c)|0;d=L;L=L+ha|0;ba=d>>>0>L>>>0?c+1|0:c;c=ta+ba|0;ha=L+ja|0;c=ha>>>0>>0?c+1|0:c;d=Ci(L^(z[a+72|0]|z[a+73|0]<<8|(z[a+74|0]<<16|z[a+75|0]<<24))^725511199,ba^(z[a+76|0]|z[a+77|0]<<8|(z[a+78|0]<<16|z[a+79|0]<<24))^-1694144372,32);L=W;C=L;e=d-2067093701|0;H=C-((d>>>0<2067093701)+1150833018|0)|0;h=Ci(aa^e,Ba^H,40);L=h+ha|0;K=W;c=K+c|0;q=L;B=q>>>0>>0?c+1|0:c;c=B+S|0;L=q+ea|0;c=(q>>>0>L>>>0?c+1|0:c)+P|0;f=L;L=L+ca|0;aa=f>>>0>L>>>0?c+1|0:c;c=aa+N|0;N=L+pa|0;c=N>>>0>>0?c+1|0:c;F=N;j=c;n=ea;ra=S;S=L;ba=aa;ea=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);c=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);L=c;c=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);Ba=c;aa=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);Ca=aa;P=c;ua=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);g=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);c=ua+g|0;N=z[a+32|0]|z[a+33|0]<<8|(z[a+34|0]<<16|z[a+35|0]<<24);aa=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);f=N+aa|0;c=Ca+(N>>>0>f>>>0?c+1|0:c)|0;P=f+P|0;ha=P>>>0>>0?c+1|0:c;c=ha+L|0;f=P+ea|0;c=f>>>0

>>0?c+1|0:c;oa=f;f=c;i=N;c=a- -64|0;N=Ci(P^(z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24))^-1377402159,ha^(z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24))^1359893119,32);c=W;ha=c;c=c+1779033703|0;P=N;N=N-205731576|0;c=N>>>0<4089235720?c+1|0:c;r=N;x=c;g=Ci(i^r,c^g,40);N=g+oa|0;E=W;c=E+f|0;f=N;t=g>>>0>f>>>0?c+1|0:c;i=Ci(P^f,ha^t,48);U=W;c=Ci(i^S,U^ba,32);N=W;R=N;G=c;c=z[b+60|0]|z[b+61|0]<<8|(z[b+62|0]<<16|z[b+63|0]<<24);za=c;oa=z[b+56|0]|z[b+57|0]<<8|(z[b+58|0]<<16|z[b+59|0]<<24);ha=oa;v=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);ba=z[b+48|0]|z[b+49|0]<<8|(z[b+50|0]<<16|z[b+51|0]<<24);P=z[a+56|0]|z[a+57|0]<<8|(z[a+58|0]<<16|z[a+59|0]<<24);N=ba+P|0;va=z[b+52|0]|z[b+53|0]<<8|(z[b+54|0]<<16|z[b+55|0]<<24);D=z[a+60|0]|z[a+61|0]<<8|(z[a+62|0]<<16|z[a+63|0]<<24);c=va+D|0;c=(z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24))+(N>>>0

>>0?c+1|0:c)|0;u=N;N=v+N|0;S=u>>>0>N>>>0?c+1|0:c;c=za+S|0;v=N+ha|0;c=v>>>0>>0?c+1|0:c;S=Ci(N^(z[a+88|0]|z[a+89|0]<<8|(z[a+90|0]<<16|z[a+91|0]<<24))^327033209,S^(z[a+92|0]|z[a+93|0]<<8|(z[a+94|0]<<16|z[a+95|0]<<24))^1541459225,32);N=W;y=N;ha=S+1595750129|0;u=D;D=y-((S>>>0<2699217167)+1521486533|0)|0;P=Ci(P^ha,u^D,40);N=P+v|0;Y=W;c=Y+c|0;v=N;u=v>>>0

>>0?c+1|0:c;N=Ci(v^S,y^u,48);V=W;c=D+V|0;D=N;N=ha+D|0;c=N>>>0>>0?c+1|0:c;y=N;A=c;c=R+c|0;S=G+y|0;c=S>>>0>>0?c+1|0:c;Q=n^S;n=c;ha=Ci(Q,c^ra,40);N=ha+F|0;ra=W;c=ra+j|0;j=N;F=G^j;G=j>>>0>>0?c+1|0:c;N=Ci(F,R^G,48);_=W;c=n+_|0;F=N;n=S+F|0;c=n>>>0>>0?c+1|0:c;R=c;I=Ci(n^ha,ra^c,1);S=z[b+72|0]|z[b+73|0]<<8|(z[b+74|0]<<16|z[b+75|0]<<24);N=I+S|0;ma=W;ra=z[b+76|0]|z[b+77|0]<<8|(z[b+78|0]<<16|z[b+79|0]<<24);c=ma+ra|0;sa=N;M=N>>>0>>0?c+1|0:c;T=la;N=z[b+96|0]|z[b+97|0]<<8|(z[b+98|0]<<16|z[b+99|0]<<24);c=z[b+100|0]|z[b+101|0]<<8|(z[b+102|0]<<16|z[b+103|0]<<24);ha=c;c=k;k=Ci(y^P,A^Y,1);P=c+k|0;y=W;c=y+l|0;c=(k>>>0>P>>>0?c+1|0:c)+ha|0;l=P;P=N+P|0;l=l>>>0>P>>>0?c+1|0:c;c=l+T|0;A=P+Z|0;c=A>>>0

>>0?c+1|0:c;Q=A;A=c;q=Ci(d^q,B^C,48);C=W;c=Ci(q^P,C^l,32);P=W;Y=P;B=c;c=x+U|0;P=i+r|0;r=P>>>0>>0?c+1|0:c;c=Y+r|0;l=P;i=l+B|0;c=l>>>0>i>>>0?c+1|0:c;x=c;k=Ci(i^k,y^c,40);P=k+Q|0;U=W;c=U+A|0;A=P;y=k>>>0>A>>>0?c+1|0:c;c=y+M|0;P=A+sa|0;d=A>>>0>P>>>0?c+1|0:c;c=d+qa|0;M=P+da|0;c=M>>>0

>>0?c+1|0:c;sa=M;M=c;Q=P;T=d;P=z[b+116|0]|z[b+117|0]<<8|(z[b+118|0]<<16|z[b+119|0]<<24);b=z[b+112|0]|z[b+113|0]<<8|(z[b+114|0]<<16|z[b+115|0]<<24);g=Ci(g^l,r^E,1);d=g+v|0;E=W;c=E+u|0;c=(d>>>0>>0?c+1|0:c)+P|0;r=d;d=b+d|0;l=r>>>0>d>>>0?c+1|0:c;c=l+qa|0;r=d+da|0;c=r>>>0>>0?c+1|0:c;ya=r;r=c;c=Ci(d^m,l^J,32);d=W;X=d;m=c;l=d;c=C+H|0;d=e+q|0;c=d>>>0>>0?c+1|0:c;q=d;v=c;c=c+l|0;d=d+m|0;c=q>>>0>d>>>0?c+1|0:c;u=d;J=c;l=Ci(d^g,E^c,40);d=l+ya|0;E=W;c=E+r|0;e=d>>>0>>0?c+1|0:c;m=Ci(d^m,X^e,48);ya=W;c=Ci(m^Q,ya^T,32);g=W;X=g;r=c;Q=g;h=Ci(h^q,v^K,1);q=W;c=t+q|0;g=f;f=f+h|0;c=(g>>>0>f>>>0?c+1|0:c)+$|0;g=f+O|0;f=g>>>0>>0?c+1|0:c;c=f+ra|0;t=g+S|0;c=t>>>0>>0?c+1|0:c;T=t;t=c;v=h;g=Ci(g^D,f^V,32);h=g+o|0;D=W;c=D+p|0;f=h;p=g>>>0>f>>>0?c+1|0:c;o=Ci(v^f,p^q,40);h=o+T|0;V=W;c=V+t|0;q=h;t=h>>>0>>0?c+1|0:c;h=Ci(g^h,D^t,48);Da=W;c=p+Da|0;p=h;h=f+h|0;c=h>>>0>>0?c+1|0:c;v=h;D=c;c=c+Q|0;h=h+r|0;c=v>>>0>h>>>0?c+1|0:c;Q=h;h=h^I;I=c;g=Ci(h,ma^c,40);h=g+sa|0;ma=W;c=ma+M|0;M=h;T=g>>>0>h>>>0?c+1|0:c;c=Aa+T|0;h=h+pa|0;c=h>>>0>>0?c+1|0:c;sa=h;C=c;h=d;H=Z;K=la;d=Ci(B^A,y^Y,48);Y=W;c=x+Y|0;B=d;f=i+d|0;c=f>>>0>>0?c+1|0:c;x=c;d=Ci(f^k,U^c,1);i=W;c=i+K|0;k=d+H|0;c=(k>>>0>>0?c+1|0:c)+e|0;e=h+k|0;h=e>>>0>>0?c+1|0:c;c=va+h|0;k=e+ba|0;c=k>>>0>>0?c+1|0:c;A=k;k=c;e=Ci(e^p,h^Da,32);y=W;c=R+y|0;p=e;e=n+e|0;c=e>>>0>>0?c+1|0:c;n=c;h=Ci(d^e,c^i,40);d=h+A|0;c=k;k=W;c=c+k|0;i=d;A=d>>>0>>0?c+1|0:c;d=Ci(d^p,y^A,48);U=W;c=n+U|0;y=d;n=e+d|0;c=n>>>0>>0?c+1|0:c;R=c;d=Ci(h^n,k^c,1);k=W;c=k+C|0;e=d+sa|0;h=e>>>0>>0?c+1|0:c;c=za+h|0;p=e+oa|0;c=p>>>0>>0?c+1|0:c;sa=p;p=c;C=d;H=k;c=J+ya|0;d=m+u|0;c=d>>>0>>0?c+1|0:c;m=d;u=c;c=Ci(d^l,E^c,1);k=W;l=k;d=c;c=t+P|0;q=b+q|0;c=(q>>>0>>0?c+1|0:c)+k|0;k=d+q|0;q=k>>>0>>0?c+1|0:c;c=na+q|0;t=k+ca|0;c=t>>>0>>0?c+1|0:c;J=t;t=c;k=Ci(k^F,q^_,32);F=W;c=x+F|0;x=f;q=k;f=f+k|0;c=x>>>0>f>>>0?c+1|0:c;x=c;k=Ci(d^f,c^l,40);d=k+J|0;E=W;c=E+t|0;l=d;t=d^q;q=d>>>0>>0?c+1|0:c;d=Ci(t,F^q,48);_=W;c=x+_|0;x=d;d=f+d|0;c=d>>>0>>0?c+1|0:c;t=d;F=c;J=e;K=h;d=Ci(o^v,D^V,1);f=W;c=f+s|0;e=d+ga|0;c=G+(e>>>0>>0?c+1|0:c)|0;e=e+j|0;h=e>>>0>>0?c+1|0:c;c=$+h|0;j=e+O|0;c=j>>>0>>0?c+1|0:c;G=j;j=c;o=d;e=Ci(e^B,h^Y,32);d=e+m|0;m=W;c=m+u|0;h=d;B=d>>>0>>0?c+1|0:c;f=Ci(d^o,B^f,40);d=f+G|0;Y=W;c=Y+j|0;j=d;G=d>>>0>>0?c+1|0:c;v=Ci(d^e,m^G,48);c=K;K=W;e=Ci(v^J,c^K,32);d=e+t|0;J=W;c=J+F|0;m=d;u=d>>>0>>0?c+1|0:c;o=Ci(d^C,u^H,40);d=o+sa|0;C=W;c=C+p|0;p=d;D=d>>>0>>0?c+1|0:c;d=Ci(d^e,J^D,48);V=W;c=u+V|0;e=m;u=d;m=m+d|0;c=e>>>0>m>>>0?c+1|0:c;J=c;d=Ci(m^o,C^c,1);sa=W;c=qa+sa|0;C=d;d=da+d|0;c=d>>>0>>0?c+1|0:c;ya=d;o=c;e=ia;d=Ci(k^t,E^F,1);k=W;c=A+k|0;t=i;i=d+i|0;c=(t>>>0>i>>>0?c+1|0:c)+ka|0;e=e+i|0;t=e>>>0>>0?c+1|0:c;c=t+ta|0;i=e+ja|0;c=i>>>0>>0?c+1|0:c;H=i;A=c;F=d;i=Ci(r^M,T^X,48);E=W;c=Ci(i^e,E^t,32);d=W;X=d;r=c;e=d;c=B+K|0;d=h+v|0;c=d>>>0>>0?c+1|0:c;h=d;B=c;c=c+e|0;d=d+r|0;c=h>>>0>d>>>0?c+1|0:c;t=d;v=c;e=Ci(d^F,c^k,40);c=A;A=W;c=c+A|0;d=e+H|0;c=d>>>0>>0?c+1|0:c;F=d;M=c;c=c+o|0;k=d+ya|0;c=k>>>0>>0?c+1|0:c;T=c;o=c;d=Ci(f^h,B^Y,1);f=W;c=L+f|0;h=d+ea|0;c=q+(h>>>0>>0?c+1|0:c)|0;h=h+l|0;l=h>>>0>>0?c+1|0:c;c=ha+l|0;q=h+N|0;c=q>>>0>>0?c+1|0:c;H=q;q=c;B=d;c=Ci(h^y,l^U,32);d=W;K=d;h=c;l=d;c=E+I|0;d=i+Q|0;c=d>>>0>>0?c+1|0:c;y=d;I=c;c=c+l|0;i=d+h|0;c=i>>>0>>0?c+1|0:c;d=i^B;B=c;l=Ci(d,c^f,40);d=l+H|0;U=W;c=U+q|0;f=d;q=d>>>0>>0?c+1|0:c;Q=Ci(d^h,K^q,48);Y=W;c=Ci(Q^k,Y^o,32);d=W;ya=d;H=c;o=d;d=Ci(g^y,I^ma,1);g=W;c=G+g|0;h=d+j|0;c=ua+(h>>>0>>0?c+1|0:c)|0;h=h+aa|0;j=h>>>0>>0?c+1|0:c;c=j+xa|0;G=h+fa|0;c=G>>>0>>0?c+1|0:c;y=G;G=c;h=Ci(h^x,j^_,32);I=W;c=R+I|0;x=h;h=n+h|0;c=h>>>0>>0?c+1|0:c;j=g;g=c;j=Ci(d^h,j^c,40);d=j+y|0;_=W;c=_+G|0;n=d;y=d^x;x=d>>>0>>0?c+1|0:c;d=Ci(y,I^x,48);E=W;c=g+E|0;g=d;d=h+d|0;c=d>>>0>>0?c+1|0:c;G=d;y=c;c=c+o|0;o=d+H|0;c=o>>>0>>0?c+1|0:c;R=c;h=Ci(o^C,sa^c,40);I=W;c=T+I|0;d=h+k|0;c=(d>>>0>>0?c+1|0:c)+la|0;k=d;d=d+Z|0;c=k>>>0>d>>>0?c+1|0:c;T=d;C=c;K=$;k=Ci(r^F,M^X,48);d=k+t|0;ma=W;c=ma+v|0;r=d;t=d>>>0>>0?c+1|0:c;c=Ci(d^e,t^A,1);e=W;A=e;d=c;c=q+Aa|0;f=f+pa|0;c=(f>>>0>>0?c+1|0:c)+e|0;e=d+f|0;f=e>>>0>>0?c+1|0:c;c=f+K|0;q=e+O|0;c=q>>>0>>0?c+1|0:c;v=q;q=c;e=Ci(e^g,f^E,32);F=W;c=J+F|0;g=e+m|0;c=g>>>0>>0?c+1|0:c;m=c;f=Ci(d^g,c^A,40);d=f+v|0;M=W;c=M+q|0;q=d;A=d>>>0>>0?c+1|0:c;e=Ci(d^e,F^A,48);v=W;c=m+v|0;m=e+g|0;c=m>>>0>>0?c+1|0:c;F=c;d=Ci(f^m,M^c,1);M=W;c=M+C|0;g=d+T|0;c=ra+(g>>>0>>0?c+1|0:c)|0;g=g+S|0;f=g>>>0>>0?c+1|0:c;c=f+s|0;s=g+ga|0;c=s>>>0>>0?c+1|0:c;sa=s;s=c;J=d;K=g;E=f;g=ia;d=Ci(j^G,y^_,1);j=W;c=D+j|0;f=p;p=d+p|0;c=(f>>>0>p>>>0?c+1|0:c)+ka|0;g=g+p|0;f=g>>>0

>>0?c+1|0:c;c=xa+f|0;p=g+fa|0;c=p>>>0>>0?c+1|0:c;D=p;G=c;p=d;c=Ci(g^k,f^ma,32);d=W;y=d;f=c;c=B+Y|0;d=i+Q|0;i=d>>>0>>0?c+1|0:c;c=y+i|0;k=d+f|0;c=k>>>0>>0?c+1|0:c;B=c;p=Ci(k^p,c^j,40);g=p+D|0;Y=W;c=Y+G|0;D=g^f;f=g>>>0

>>0?c+1|0:c;G=Ci(D,y^f,48);_=W;c=Ci(G^K,_^E,32);j=W;ma=j;D=c;y=j;d=Ci(d^l,i^U,1);j=W;c=ha+j|0;i=d+N|0;c=x+(i>>>0>>0?c+1|0:c)|0;i=i+n|0;n=i>>>0>>0?c+1|0:c;c=ua+n|0;l=i+aa|0;c=l>>>0>>0?c+1|0:c;K=l;l=c;x=d;Q=j;i=Ci(i^u,n^V,32);d=i+r|0;u=W;c=u+t|0;j=d;r=d>>>0>>0?c+1|0:c;n=Ci(d^x,r^Q,40);d=n+K|0;U=W;c=U+l|0;x=d;t=d>>>0>>0?c+1|0:c;d=Ci(d^i,u^t,48);K=W;c=r+K|0;l=d;d=j+d|0;c=d>>>0>>0?c+1|0:c;r=d;u=c;c=c+y|0;d=d+D|0;c=r>>>0>d>>>0?c+1|0:c;y=d;i=M;M=c;i=Ci(d^J,i^c,40);c=s;s=W;c=c+s|0;d=i+sa|0;c=d>>>0>>0?c+1|0:c;Q=d;J=c;j=f;d=Ci(H^T,C^ya,48);V=W;c=R+V|0;R=d;d=o+d|0;c=d>>>0>>0?c+1|0:c;f=d^h;h=c;f=Ci(f,c^I,1);g=f+g|0;I=W;c=I+j|0;c=za+(g>>>0>>0?c+1|0:c)|0;g=g+oa|0;j=g>>>0>>0?c+1|0:c;c=j+L|0;o=g+ea|0;c=o>>>0>>0?c+1|0:c;T=o;o=c;g=Ci(g^l,j^K,32);C=W;c=F+C|0;F=g;j=m+g|0;c=j>>>0>>0?c+1|0:c;m=c;f=Ci(f^j,I^c,40);g=f+T|0;c=o;o=W;c=c+o|0;l=g;H=g^F;F=g>>>0>>0?c+1|0:c;g=Ci(H,C^F,48);sa=W;c=m+sa|0;I=g;m=j+g|0;c=m>>>0>>0?c+1|0:c;T=c;g=Ci(f^m,o^c,1);o=W;c=o+J|0;f=g+Q|0;c=Aa+(f>>>0>>0?c+1|0:c)|0;f=f+pa|0;j=f>>>0>>0?c+1|0:c;c=P+j|0;C=b+f|0;c=C>>>0>>0?c+1|0:c;ya=C;C=c;H=g;K=o;o=f;E=j;g=Ci(n^r,u^U,1);j=W;c=j+A|0;f=g+q|0;c=na+(f>>>0>>0?c+1|0:c)|0;f=f+ca|0;n=f>>>0>>0?c+1|0:c;c=n+P|0;q=b+f|0;c=q>>>0>>0?c+1|0:c;A=q;q=c;r=g;c=Ci(f^R,n^V,32);g=W;f=c;n=g;c=B+_|0;g=k+G|0;c=g>>>0>>0?c+1|0:c;k=g;B=c;c=c+n|0;g=g+f|0;c=k>>>0>g>>>0?c+1|0:c;G=g;g=g^r;r=c;j=Ci(g,c^j,40);g=j+A|0;U=W;c=U+q|0;q=g^f;f=g>>>0>>0?c+1|0:c;n=Ci(q,n^f,48);c=E;E=W;c=Ci(n^o,c^E,32);o=W;V=o;q=c;A=h;h=e;c=Ci(k^p,B^Y,1);e=W;u=e;k=c;c=t+ta|0;p=x+ja|0;c=(p>>>0>>0?c+1|0:c)+e|0;e=k+p|0;c=e>>>0

>>0?c+1|0:c;p=c;h=Ci(e^h,c^v,32);d=h+d|0;c=A;A=W;c=c+A|0;B=d>>>0>>0?c+1|0:c;k=Ci(d^k,u^B,40);Y=W;c=p+Y|0;t=e;x=k;e=e+k|0;c=va+(t>>>0>e>>>0?c+1|0:c)|0;k=e+ba|0;c=k>>>0>>0?c+1|0:c;t=c;e=Ci(h^k,A^c,48);_=W;c=B+_|0;v=d;h=e;d=d+e|0;c=v>>>0>d>>>0?c+1|0:c;B=d;A=c;c=c+o|0;o=d+q|0;c=o>>>0>>0?c+1|0:c;v=c;p=Ci(o^H,c^K,40);d=p+ya|0;ya=W;c=ya+C|0;u=d;R=d>>>0

>>0?c+1|0:c;d=Ci(D^Q,J^ma,48);D=W;c=D+M|0;e=d+y|0;c=e>>>0>>0?c+1|0:c;y=e;H=s;s=c;c=Ci(e^i,H^c,1);e=W;Q=e;i=c;c=f+za|0;g=g+oa|0;c=(g>>>0>>0?c+1|0:c)+e|0;e=g+i|0;g=e>>>0>>0?c+1|0:c;c=ra+g|0;f=e+S|0;c=f>>>0>>0?c+1|0:c;J=f;f=c;e=Ci(e^h,g^_,32);C=W;c=T+C|0;M=e;h=m+e|0;c=h>>>0>>0?c+1|0:c;e=h^i;i=c;g=Ci(e,Q^c,40);e=g+J|0;c=f;f=W;c=c+f|0;Q=e;m=e^M;M=e>>>0>>0?c+1|0:c;e=Ci(m,C^M,48);_=W;c=i+_|0;T=e;e=h+e|0;c=e>>>0>>0?c+1|0:c;h=c;g=Ci(e^g,f^c,1);m=W;c=m+R|0;f=g+u|0;c=qa+(f>>>0>>0?c+1|0:c)|0;f=f+da|0;i=f>>>0>>0?c+1|0:c;c=i+$|0;J=f+O|0;c=J>>>0>>0?c+1|0:c;X=J;J=c;C=g;H=f;K=i;g=Ci(x^B,A^Y,1);f=g+Z|0;A=W;c=A+la|0;c=F+(g>>>0>f>>>0?c+1|0:c)|0;f=f+l|0;c=f>>>0>>0?c+1|0:c;i=c;c=Ci(d^f,c^D,32);d=W;D=d;l=c;c=r+E|0;d=n+G|0;c=d>>>0>>0?c+1|0:c;n=d;B=c;c=D+c|0;d=d+l|0;c=n>>>0>d>>>0?c+1|0:c;r=d;x=c;d=Ci(d^g,A^c,40);E=W;c=i+E|0;G=d;d=f+d|0;c=ha+(d>>>0>>0?c+1|0:c)|0;d=d+N|0;c=d>>>0>>0?c+1|0:c;A=d;d=d^l;l=c;i=Ci(d,D^c,48);c=K;K=W;c=Ci(i^H,c^K,32);d=W;Y=d;D=c;F=d;d=Ci(j^n,B^U,1);f=W;c=ta+f|0;g=d+ja|0;c=t+(g>>>0>>0?c+1|0:c)|0;g=g+k|0;j=g>>>0>>0?c+1|0:c;c=j+L|0;n=g+ea|0;c=n>>>0>>0?c+1|0:c;t=n;n=c;k=d;B=f;g=Ci(g^I,j^sa,32);d=g+y|0;y=W;c=y+s|0;f=d;j=d^k;k=d>>>0>>0?c+1|0:c;j=Ci(j,k^B,40);d=j+t|0;U=W;c=U+n|0;n=d;s=d>>>0>>0?c+1|0:c;g=Ci(d^g,y^s,48);B=W;c=k+B|0;d=g+f|0;c=d>>>0>>0?c+1|0:c;t=d;y=c;c=c+F|0;k=d+D|0;c=k>>>0>>0?c+1|0:c;F=c;f=Ci(k^C,c^m,40);I=W;c=I+J|0;d=f+X|0;c=d>>>0>>0?c+1|0:c;J=d;C=c;d=e;m=h;h=g;e=Ci(q^u,R^V,48);X=W;c=v+X|0;q=e;g=o+e|0;c=g>>>0>>0?c+1|0:c;o=c;c=Ci(g^p,ya^c,1);e=W;v=e;p=c;c=l+wa|0;l=A+ga|0;c=(l>>>0>>0?c+1|0:c)+e|0;e=l+p|0;c=e>>>0>>0?c+1|0:c;l=c;h=Ci(e^h,c^B,32);d=h+d|0;A=W;c=A+m|0;m=d>>>0>>0?c+1|0:c;p=Ci(d^p,v^m,40);u=W;c=l+u|0;l=e;e=e+p|0;c=ua+(l>>>0>e>>>0?c+1|0:c)|0;l=e+aa|0;c=l>>>0>>0?c+1|0:c;B=c;e=Ci(h^l,A^c,48);V=W;c=m+V|0;A=e;m=d+e|0;c=m>>>0>>0?c+1|0:c;v=c;d=Ci(m^p,u^c,1);p=W;c=p+C|0;e=d+J|0;c=na+(e>>>0>>0?c+1|0:c)|0;e=e+ca|0;h=e>>>0>>0?c+1|0:c;c=qa+h|0;u=e+da|0;c=u>>>0>>0?c+1|0:c;ma=u;u=c;R=d;H=e;d=Ci(j^t,y^U,1);j=W;c=j+M|0;e=d+Q|0;c=xa+(e>>>0>>0?c+1|0:c)|0;e=e+fa|0;t=e>>>0>>0?c+1|0:c;c=va+t|0;y=e+ba|0;c=y>>>0>>0?c+1|0:c;Q=y;y=c;M=d;c=Ci(e^q,t^X,32);d=W;X=d;e=c;c=x+K|0;d=i+r|0;c=d>>>0>>0?c+1|0:c;r=d;q=c;c=X+c|0;i=d+e|0;c=i>>>0>>0?c+1|0:c;x=c;j=Ci(i^M,c^j,40);d=j+Q|0;K=W;c=K+y|0;t=d;y=d>>>0>>0?c+1|0:c;M=Ci(d^e,X^y,48);X=W;c=Ci(M^H,X^h,32);d=W;U=d;Q=c;h=d;e=ia;d=Ci(r^G,q^E,1);q=W;c=s+q|0;r=n;n=d+n|0;c=(r>>>0>n>>>0?c+1|0:c)+ka|0;e=e+n|0;n=e>>>0>>0?c+1|0:c;c=na+n|0;s=e+ca|0;c=s>>>0>>0?c+1|0:c;r=s;s=c;e=Ci(e^T,n^_,32);G=W;c=o+G|0;o=e;e=g+e|0;c=e>>>0>>0?c+1|0:c;g=q;q=c;g=Ci(d^e,g^c,40);d=g+r|0;E=W;c=E+s|0;n=d;s=d>>>0>>0?c+1|0:c;d=Ci(d^o,G^s,48);H=W;c=q+H|0;q=d;d=e+d|0;c=d>>>0>>0?c+1|0:c;r=d;G=c;c=c+h|0;o=d+Q|0;c=o>>>0>>0?c+1|0:c;d=o^R;R=c;p=Ci(d,c^p,40);d=p+ma|0;_=W;c=_+u|0;u=d;T=d>>>0

>>0?c+1|0:c;d=Ci(D^J,C^Y,48);Y=W;c=F+Y|0;D=d;d=k+d|0;c=d>>>0>>0?c+1|0:c;k=d;F=c;c=Ci(d^f,c^I,1);d=W;I=d;h=c;c=y+ra|0;e=t+S|0;c=(e>>>0>>0?c+1|0:c)+d|0;d=e+h|0;e=d>>>0>>0?c+1|0:c;c=ua+e|0;f=d+aa|0;c=f>>>0>>0?c+1|0:c;t=f;f=c;d=Ci(d^q,e^H,32);y=W;c=v+y|0;q=d;e=m+d|0;c=e>>>0>>0?c+1|0:c;m=c;h=Ci(e^h,I^c,40);d=h+t|0;I=W;c=I+f|0;t=d;f=d^q;q=d>>>0>>0?c+1|0:c;d=Ci(f,y^q,48);ma=W;c=m+ma|0;m=d;f=e+d|0;c=f>>>0>>0?c+1|0:c;v=c;d=Ci(f^h,I^c,1);y=W;c=y+T|0;e=d+u|0;c=ta+(e>>>0>>0?c+1|0:c)|0;e=e+ja|0;h=e>>>0>>0?c+1|0:c;c=h+la|0;I=e+Z|0;c=I>>>0>>0?c+1|0:c;sa=I;I=c;J=d;C=e;H=h;d=Ci(g^r,E^G,1);h=W;c=xa+h|0;e=d+fa|0;c=B+(e>>>0>>0?c+1|0:c)|0;e=e+l|0;g=e>>>0>>0?c+1|0:c;c=wa+g|0;l=e+ga|0;c=l>>>0>>0?c+1|0:c;G=l;l=c;B=d;r=h;c=Ci(e^D,g^Y,32);d=W;D=d;g=c;e=d;c=x+X|0;d=i+M|0;c=d>>>0>>0?c+1|0:c;i=d;x=c;c=c+e|0;h=d+g|0;c=h>>>0>>0?c+1|0:c;d=h^B;B=c;d=Ci(d,c^r,40);c=l;l=W;c=c+l|0;e=d+G|0;c=e>>>0>>0?c+1|0:c;r=e;G=c;D=Ci(e^g,D^c,48);c=H;H=W;c=Ci(D^C,c^H,32);e=W;E=e;M=c;e=Ci(i^j,x^K,1);i=W;c=i+ka|0;g=e+ia|0;c=s+(g>>>0>>0?c+1|0:c)|0;g=g+n|0;j=g>>>0>>0?c+1|0:c;c=za+j|0;n=g+oa|0;c=n>>>0>>0?c+1|0:c;K=n;n=c;s=e;x=i;g=Ci(g^A,j^V,32);e=g+k|0;A=W;c=A+F|0;i=e;k=e>>>0>>0?c+1|0:c;j=Ci(e^s,k^x,40);e=j+K|0;K=W;c=K+n|0;s=e;x=e>>>0>>0?c+1|0:c;e=Ci(e^g,A^x,48);X=W;c=k+X|0;A=e;e=i+e|0;c=e>>>0>>0?c+1|0:c;F=e;C=c;c=E+c|0;g=e+M|0;c=g>>>0>>0?c+1|0:c;e=y;y=c;i=Ci(g^J,e^c,40);e=i+sa|0;Y=W;c=Y+I|0;n=e;I=e>>>0>>0?c+1|0:c;c=Ci(e^M,E^I,48);e=W;E=e;M=c;e=d;c=B+H|0;d=h+D|0;c=d>>>0>>0?c+1|0:c;B=d;D=c;c=Ci(d^e,c^l,1);e=W;h=e;d=c;c=x+Aa|0;k=s+pa|0;c=(k>>>0>>0?c+1|0:c)+e|0;e=d+k|0;k=e>>>0>>0?c+1|0:c;c=ha+k|0;l=e+N|0;c=l>>>0>>0?c+1|0:c;H=l;l=c;s=d;x=h;d=Ci(u^Q,T^U,48);U=W;c=R+U|0;u=d;d=o+d|0;c=d>>>0>>0?c+1|0:c;o=d;e=Ci(e^m,k^ma,32);d=e+d|0;R=c;Q=W;c=c+Q|0;h=d;m=d>>>0>>0?c+1|0:c;k=Ci(d^s,m^x,40);d=k+H|0;T=W;c=T+l|0;l=d;s=d>>>0>>0?c+1|0:c;d=Ci(d^e,Q^s,48);V=W;c=m+V|0;x=d;m=h+d|0;c=m>>>0>>0?c+1|0:c;Q=c;d=Ci(k^m,T^c,1);H=W;c=ua+H|0;T=d;d=aa+d|0;c=d>>>0>>0?c+1|0:c;ma=d;h=c;d=Ci(p^o,R^_,1);k=W;c=k+G|0;e=d+r|0;c=va+(e>>>0>>0?c+1|0:c)|0;e=e+ba|0;o=e>>>0>>0?c+1|0:c;c=$+o|0;p=e+O|0;c=p>>>0>>0?c+1|0:c;R=p;p=c;r=k;e=Ci(e^A,o^X,32);X=W;c=v+X|0;G=e;k=f+e|0;c=k>>>0>>0?c+1|0:c;f=r;r=c;o=Ci(d^k,f^c,40);d=o+R|0;_=W;c=_+p|0;A=d;v=d>>>0>>0?c+1|0:c;c=v+h|0;h=d+ma|0;c=h>>>0>>0?c+1|0:c;p=c;c=Ci(h^M,c^E,32);d=W;R=c;J=d;d=Ci(j^F,C^K,1);f=W;c=f+q|0;e=d+t|0;c=P+(e>>>0>>0?c+1|0:c)|0;e=b+e|0;j=e>>>0>>0?c+1|0:c;c=j+L|0;q=e+ea|0;c=q>>>0>>0?c+1|0:c;C=q;q=c;t=d;F=f;e=Ci(e^u,j^U,32);d=e+B|0;u=W;c=u+D|0;f=d;B=d>>>0>>0?c+1|0:c;j=Ci(d^t,B^F,40);d=j+C|0;C=W;c=C+q|0;q=d;t=d>>>0>>0?c+1|0:c;d=Ci(d^e,u^t,48);U=W;c=B+U|0;B=d;d=f+d|0;c=d>>>0>>0?c+1|0:c;f=d;u=c;c=c+J|0;d=d+R|0;c=f>>>0>d>>>0?c+1|0:c;D=c;e=Ci(d^T,H^c,40);H=W;c=p+H|0;F=e;e=h+e|0;c=Aa+(e>>>0>>0?c+1|0:c)|0;e=e+pa|0;c=e>>>0>>0?c+1|0:c;T=e;h=e^R;R=c;e=Ci(h,J^c,48);J=W;c=D+J|0;p=d+e|0;c=p>>>0>>0?c+1|0:c;D=c;c=Ci(p^F,H^c,1);h=W;d=c;F=h;h=Ci(f^j,u^C,1);j=W;c=s+j|0;f=h+l|0;c=va+(f>>>0>>0?c+1|0:c)|0;f=f+ba|0;l=f>>>0>>0?c+1|0:c;c=na+l|0;s=f+ca|0;c=s>>>0>>0?c+1|0:c;H=s;s=c;u=h;C=j;c=y+E|0;h=g+M|0;c=h>>>0>>0?c+1|0:c;y=h;G=Ci(A^G,v^X,48);X=W;j=Ci(f^G,l^X,32);h=j+h|0;A=c;ma=W;c=c+ma|0;l=h;v=h>>>0>>0?c+1|0:c;h=Ci(h^u,v^C,40);u=W;c=u+s|0;g=h+H|0;c=g>>>0>>0?c+1|0:c;M=g;C=c;c=c+F|0;g=d+g|0;c=za+(M>>>0>g>>>0?c+1|0:c)|0;g=g+oa|0;f=g>>>0>>0?c+1|0:c;c=f+ka|0;s=g+ia|0;c=s>>>0>>0?c+1|0:c;sa=s;H=c;K=d;E=g;c=Ci(i^y,A^Y,1);g=W;i=g;d=c;c=t+xa|0;s=q+fa|0;c=(s>>>0>>0?c+1|0:c)+g|0;g=d+s|0;s=g>>>0>>0?c+1|0:c;c=ha+s|0;q=g+N|0;c=q>>>0>>0?c+1|0:c;A=q;q=c;t=d;c=Ci(g^x,s^V,32);d=W;y=d;g=c;s=d;c=r+X|0;d=k+G|0;c=d>>>0>>0?c+1|0:c;r=d;x=c;c=c+s|0;k=d+g|0;c=k>>>0>>0?c+1|0:c;d=k^t;t=c;s=Ci(d,c^i,40);d=s+A|0;X=W;c=X+q|0;q=d^g;g=d>>>0>>0?c+1|0:c;G=Ci(q,y^g,48);c=G^E;E=W;c=Ci(c,E^f,32);f=W;Y=f;A=c;q=f;f=Ci(o^r,x^_,1);o=W;c=$+o|0;i=f+O|0;c=I+(i>>>0>>0?c+1|0:c)|0;i=i+n|0;n=i>>>0>>0?c+1|0:c;c=ta+n|0;r=i+ja|0;c=r>>>0>>0?c+1|0:c;x=r;r=c;i=Ci(i^B,n^U,32);y=W;c=Q+y|0;B=i;i=m+i|0;c=i>>>0>>0?c+1|0:c;m=c;n=Ci(f^i,c^o,40);f=n+x|0;U=W;c=U+r|0;o=f;r=f^B;B=f>>>0>>0?c+1|0:c;f=Ci(r,y^B,48);V=W;c=m+V|0;r=f;f=i+f|0;c=f>>>0>>0?c+1|0:c;x=f;y=c;c=c+q|0;i=f+A|0;c=i>>>0>>0?c+1|0:c;f=F;F=c;m=Ci(i^K,f^c,40);f=m+sa|0;I=W;c=I+H|0;q=f;H=f^A;A=f>>>0>>0?c+1|0:c;f=Ci(H,Y^A,48);Y=W;c=F+Y|0;F=f;f=i+f|0;c=f>>>0>>0?c+1|0:c;i=c;c=Ci(f^m,I^c,1);m=W;I=c;_=c;Q=m;m=g;g=h;h=Ci(j^M,C^ma,48);ma=W;c=v+ma|0;v=h;h=l+h|0;c=h>>>0>>0?c+1|0:c;l=d;d=g^h;g=c;d=Ci(d,c^u,1);j=l+d|0;u=W;c=u+m|0;c=wa+(d>>>0>j>>>0?c+1|0:c)|0;j=j+ga|0;l=j>>>0>>0?c+1|0:c;c=la+l|0;m=j+Z|0;c=m>>>0>>0?c+1|0:c;M=m;m=c;j=Ci(j^r,l^V,32);C=W;c=D+C|0;l=j+p|0;c=l>>>0

>>0?c+1|0:c;r=c;p=Ci(d^l,u^c,40);d=p+M|0;V=W;c=V+m|0;u=d;D=d>>>0

>>0?c+1|0:c;j=Ci(d^j,C^D,48);M=W;c=r+M|0;d=j+l|0;c=d>>>0>>0?c+1|0:c;C=d;r=d;H=c;l=h;m=g;c=t+E|0;d=k+G|0;c=d>>>0>>0?c+1|0:c;k=d;d=d^s;s=c;c=Ci(d,X^c,1);d=W;K=d;t=c;g=c;c=B+L|0;h=o+ea|0;c=(h>>>0>>0?c+1|0:c)+d|0;d=h;h=g+h|0;c=d>>>0>h>>>0?c+1|0:c;o=c;g=Ci(e^h,c^J,32);d=g+l|0;c=m;m=W;c=c+m|0;G=d;e=d^t;t=d>>>0>>0?c+1|0:c;e=Ci(e,K^t,40);J=W;c=o+J|0;d=e+h|0;c=ra+(d>>>0>>0?c+1|0:c)|0;l=d+S|0;c=l>>>0>>0?c+1|0:c;K=c;m=Ci(g^l,m^c,48);c=W;sa=c;d=Ci(n^x,y^U,1);g=W;c=g+R|0;h=d+T|0;c=qa+(h>>>0>>0?c+1|0:c)|0;h=h+da|0;n=h>>>0>>0?c+1|0:c;c=P+n|0;o=b+h|0;c=o>>>0>>0?c+1|0:c;R=o;x=c;y=d;o=Ci(h^v,n^ma,32);d=o+k|0;U=W;c=U+s|0;s=d;v=d>>>0>>0?c+1|0:c;h=Ci(d^y,v^g,40);c=x;x=W;c=c+x|0;d=h+R|0;c=d>>>0>>0?c+1|0:c;y=d;R=c;g=c;c=P+Q|0;n=b+I|0;c=(n>>>0>>0?c+1|0:c)+g|0;g=d+n|0;c=g>>>0>>0?c+1|0:c;B=c;d=Ci(g^m,sa^c,32);I=W;c=I+H|0;n=d+r|0;c=n>>>0>>0?c+1|0:c;k=Ci(n^_,c^Q,40);Q=c;r=W;c=la+r|0;T=k+Z|0;c=B+(T>>>0>>0?c+1|0:c)|0;B=g+T|0;c=B>>>0>>0?c+1|0:c;g=I;I=c;g=Ci(d^B,g^c,48);c=Q;Q=W;c=c+Q|0;n=g+n|0;c=n>>>0>>0?c+1|0:c;d=k^n;k=c;c=Ci(d,c^r,1);d=W;T=c;_=c;E=d;r=f;X=i;f=h;h=Ci(o^y,R^U,48);y=W;c=v+y|0;d=h+s|0;c=d>>>0>>0?c+1|0:c;o=d;s=c;f=Ci(d^f,c^x,1);d=f+ga|0;R=W;c=R+wa|0;c=K+(d>>>0>>0?c+1|0:c)|0;i=d+l|0;c=i>>>0>>0?c+1|0:c;l=c;d=Ci(i^j,c^M,32);x=W;c=x+X|0;j=d+r|0;c=j>>>0>>0?c+1|0:c;r=j;v=c;f=Ci(f^j,c^R,40);ma=W;c=na+ma|0;R=f;f=ca+f|0;c=l+(f>>>0>>0?c+1|0:c)|0;f=f+i|0;c=f>>>0>>0?c+1|0:c;i=c;j=Ci(d^f,c^x,48);c=v;v=W;c=c+v|0;d=j+r|0;c=d>>>0>>0?c+1|0:c;M=d;x=d;K=c;c=t+sa|0;d=m+G|0;c=d>>>0>>0?c+1|0:c;r=d^e;e=c;c=Ci(r,c^J,1);l=W;J=l;r=c;c=D+ha|0;m=u+N|0;c=(m>>>0>>0?c+1|0:c)+l|0;t=m;m=m+r|0;c=t>>>0>m>>>0?c+1|0:c;t=c;l=Ci(m^F,Y^c,32);G=l;c=W;u=c;c=c+s|0;l=l+o|0;c=G>>>0>l>>>0?c+1|0:c;D=l;F=c;l=Ci(l^r,J^c,40);J=W;c=ka+J|0;o=l+ia|0;c=t+(o>>>0>>0?c+1|0:c)|0;r=m;m=m+o|0;c=r>>>0>m>>>0?c+1|0:c;o=c;r=Ci(m^G,c^u,48);c=W;Y=c;s=c;p=Ci(p^C,H^V,1);c=W;t=c;G=h;c=c+L|0;h=p+ea|0;c=A+(h>>>0>>0?c+1|0:c)|0;h=h+q|0;c=h>>>0>>0?c+1|0:c;q=h^G;G=c;q=Ci(q,c^y,32);d=q+d|0;V=W;c=V+e|0;A=d;e=t;t=d>>>0>>0?c+1|0:c;e=Ci(d^p,e^t,40);u=W;c=qa+u|0;d=e+da|0;c=G+(d>>>0>>0?c+1|0:c)|0;d=d+h|0;c=d>>>0>>0?c+1|0:c;G=d;y=c;h=c;c=E+va|0;p=T+ba|0;c=(p>>>0>>0?c+1|0:c)+h|0;h=d+p|0;c=h>>>0

>>0?c+1|0:c;T=c;d=Ci(h^r,c^s,32);C=W;c=C+K|0;p=d+x|0;c=p>>>0>>0?c+1|0:c;s=Ci(p^_,c^E,40);x=W;H=x;E=c;c=x+ta|0;x=s+ja|0;c=T+(x>>>0>>0?c+1|0:c)|0;x=h+x|0;c=x>>>0>>0?c+1|0:c;T=c;h=Ci(d^x,c^C,48);C=W;c=C+E|0;p=h+p|0;c=p>>>0>>0?c+1|0:c;d=p^s;s=c;c=Ci(d,c^H,1);d=W;H=c;E=d;X=n;U=j;j=e;e=Ci(q^G,y^V,48);q=W;c=q+t|0;d=e+A|0;c=d>>>0>>0?c+1|0:c;t=d;G=c;j=Ci(d^j,c^u,1);d=j+aa|0;u=W;c=u+ua|0;c=(d>>>0>>0?c+1|0:c)+o|0;n=d+m|0;c=n>>>0>>0?c+1|0:c;m=c;d=Ci(n^U,c^v,32);o=W;c=o+k|0;k=d+X|0;c=k>>>0>>0?c+1|0:c;A=k;v=c;j=Ci(j^k,c^u,40);U=W;c=za+U|0;u=j;j=oa+j|0;c=m+(j>>>0>>0?c+1|0:c)|0;k=j+n|0;c=k>>>0>>0?c+1|0:c;y=c;j=Ci(d^k,c^o,48);c=v;v=W;c=c+v|0;d=j+A|0;c=d>>>0>>0?c+1|0:c;A=d;X=c;m=g;n=f;c=F+Y|0;d=r+D|0;c=d>>>0>>0?c+1|0:c;g=c;f=Ci(d^l,c^J,1);l=W;c=l+$|0;o=f+O|0;c=(o>>>0>>0?c+1|0:c)+i|0;n=n+o|0;c=n>>>0>>0?c+1|0:c;i=Ci(m^n,c^Q,32);o=c;r=f;m=W;c=m+G|0;f=i+t|0;c=f>>>0>>0?c+1|0:c;t=f;f=f^r;r=c;f=Ci(f,c^l,40);G=W;c=Aa+G|0;l=f+pa|0;c=(l>>>0>>0?c+1|0:c)+o|0;o=l;l=l+n|0;c=o>>>0>l>>>0?c+1|0:c;D=c;m=Ci(i^l,c^m,48);c=W;Y=c;n=c;i=Ci(M^R,K^ma,1);c=W;F=c;R=g;c=c+ra|0;g=i+S|0;c=I+(g>>>0>>0?c+1|0:c)|0;g=g+B|0;c=g>>>0>>0?c+1|0:c;o=q;q=c;o=Ci(e^g,o^c,32);d=o+d|0;V=W;c=V+R|0;B=d;e=F;F=d>>>0>>0?c+1|0:c;e=Ci(d^i,e^F,40);R=W;c=xa+R|0;d=e+fa|0;c=q+(d>>>0>>0?c+1|0:c)|0;d=d+g|0;c=d>>>0>>0?c+1|0:c;I=d;M=c;g=c;c=E+ha|0;i=N+H|0;c=(i>>>0>>0?c+1|0:c)+g|0;g=d+i|0;c=g>>>0>>0?c+1|0:c;q=c;d=Ci(g^m,c^n,32);Q=W;c=Q+X|0;i=d+A|0;c=i>>>0>>0?c+1|0:c;n=Ci(i^H,c^E,40);H=c;J=W;c=L+J|0;K=n+ea|0;c=q+(K>>>0>>0?c+1|0:c)|0;q=g+K|0;c=q>>>0>>0?c+1|0:c;g=Q;Q=c;g=Ci(d^q,g^c,48);c=H;H=W;c=c+H|0;i=g+i|0;c=i>>>0>>0?c+1|0:c;d=i^n;n=c;c=Ci(d,c^J,1);d=W;J=c;K=d;E=j;j=e;e=Ci(o^I,M^V,48);c=F;F=W;c=c+F|0;d=e+B|0;c=d>>>0>>0?c+1|0:c;B=d;o=R;R=c;j=Ci(d^j,o^c,1);d=j+ja|0;I=W;c=I+ta|0;c=D+(d>>>0>>0?c+1|0:c)|0;o=l;l=d+l|0;c=o>>>0>l>>>0?c+1|0:c;d=v;v=c;d=Ci(l^E,d^c,32);c=s;s=W;c=c+s|0;o=d+p|0;c=o>>>0>>0?c+1|0:c;D=c;p=o;j=Ci(j^o,c^I,40);V=W;c=ra+V|0;I=j;j=S+j|0;c=v+(j>>>0>>0?c+1|0:c)|0;o=j+l|0;c=o>>>0>>0?c+1|0:c;v=c;j=Ci(d^o,c^s,48);c=D;D=W;c=c+D|0;d=j+p|0;c=d>>>0>>0?c+1|0:c;M=d;E=c;p=h;c=r+Y|0;d=m+t|0;c=d>>>0>>0?c+1|0:c;h=c;f=Ci(d^f,c^G,1);m=W;c=la+m|0;l=f+Z|0;c=y+(l>>>0>>0?c+1|0:c)|0;l=k+l|0;c=l>>>0>>0?c+1|0:c;r=l^p;p=c;k=Ci(r,c^C,32);c=W;s=c;r=f;c=c+R|0;f=k+B|0;c=f>>>0>>0?c+1|0:c;t=f;f=f^r;r=c;f=Ci(f,c^m,40);G=W;c=Aa+G|0;m=f+pa|0;c=p+(m>>>0>>0?c+1|0:c)|0;m=l+m|0;c=m>>>0>>0?c+1|0:c;y=c;p=Ci(k^m,c^s,48);c=W;Y=c;l=c;k=Ci(u^A,U^X,1);c=W;B=c;A=h;c=c+za|0;h=k+oa|0;c=T+(h>>>0>>0?c+1|0:c)|0;h=h+x|0;c=h>>>0>>0?c+1|0:c;x=c;s=Ci(e^h,c^F,32);d=s+d|0;_=W;c=_+A|0;A=d;u=d>>>0>>0?c+1|0:c;e=Ci(d^k,u^B,40);F=W;c=P+F|0;d=b+e|0;c=x+(d>>>0>>0?c+1|0:c)|0;d=d+h|0;c=d>>>0>>0?c+1|0:c;x=d;R=c;h=c;c=K+qa|0;k=J+da|0;c=(k>>>0>>0?c+1|0:c)+h|0;h=d+k|0;c=h>>>0>>0?c+1|0:c;B=c;d=Ci(h^p,c^l,32);T=W;c=T+E|0;k=d+M|0;c=k>>>0>>0?c+1|0:c;l=Ci(k^J,c^K,40);C=c;J=W;c=wa+J|0;K=l+ga|0;c=B+(K>>>0>>0?c+1|0:c)|0;B=h+K|0;c=B>>>0>>0?c+1|0:c;h=T;T=c;h=Ci(d^B,h^c,48);c=C;C=W;c=c+C|0;k=h+k|0;c=k>>>0>>0?c+1|0:c;d=k^l;l=c;c=Ci(d,c^J,1);d=W;J=c;ma=c;K=d;X=i;U=j;i=e;e=Ci(s^x,R^_,48);s=W;c=s+u|0;d=e+A|0;c=d>>>0>>0?c+1|0:c;x=d;A=c;i=Ci(d^i,c^F,1);d=i+ia|0;F=W;c=F+ka|0;c=y+(d>>>0>>0?c+1|0:c)|0;j=d+m|0;c=j>>>0>>0?c+1|0:c;m=c;d=Ci(j^U,c^D,32);u=W;c=u+n|0;n=d+X|0;c=n>>>0>>0?c+1|0:c;D=c;i=Ci(i^n,c^F,40);_=W;c=ua+_|0;y=i;i=aa+i|0;c=m+(i>>>0>>0?c+1|0:c)|0;m=i+j|0;c=m>>>0>>0?c+1|0:c;i=u;u=c;i=Ci(d^m,i^c,48);c=D;D=W;c=c+D|0;d=i+n|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;j=g;c=r+Y|0;d=p+t|0;c=d>>>0

>>0?c+1|0:c;g=c;f=Ci(d^f,c^G,1);p=W;c=p+xa|0;n=f+fa|0;c=v+(n>>>0>>0?c+1|0:c)|0;n=n+o|0;c=n>>>0>>0?c+1|0:c;j=Ci(j^n,c^H,32);o=W;r=o;o=c;t=f;c=r+A|0;f=j+x|0;c=f>>>0>>0?c+1|0:c;x=f;f=f^t;t=c;f=Ci(f,c^p,40);G=W;c=na+G|0;p=f+ca|0;c=(p>>>0>>0?c+1|0:c)+o|0;o=n+p|0;c=o>>>0

>>0?c+1|0:c;v=r;r=c;p=Ci(j^o,v^c,48);c=W;Y=c;n=c;j=Ci(M^I,E^V,1);c=W;A=c;v=g;c=c+$|0;g=j+O|0;c=Q+(g>>>0>>0?c+1|0:c)|0;g=g+q|0;c=g>>>0>>0?c+1|0:c;q=c;s=Ci(e^g,c^s,32);d=s+d|0;V=W;c=V+v|0;v=d;e=A;A=d>>>0>>0?c+1|0:c;e=Ci(d^j,e^A,40);I=W;c=va+I|0;d=e+ba|0;c=q+(d>>>0>>0?c+1|0:c)|0;d=d+g|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;g=c;c=K+Aa|0;j=J+pa|0;c=(j>>>0>>0?c+1|0:c)+g|0;g=d+j|0;c=g>>>0>>0?c+1|0:c;q=c;d=Ci(g^p,c^n,32);J=W;c=J+R|0;j=d+F|0;c=j>>>0>>0?c+1|0:c;n=Ci(j^ma,c^K,40);K=c;H=W;c=ta+H|0;E=n+ja|0;c=q+(E>>>0>>0?c+1|0:c)|0;q=g+E|0;c=q>>>0>>0?c+1|0:c;g=J;J=c;g=Ci(d^q,g^c,48);c=K;K=W;c=c+K|0;j=g+j|0;c=j>>>0>>0?c+1|0:c;d=j^n;n=c;c=Ci(d,c^H,1);d=W;H=c;E=d;X=k;U=i;i=e;e=Ci(s^M,Q^V,48);s=W;c=s+A|0;d=e+v|0;c=d>>>0>>0?c+1|0:c;A=d;v=c;i=Ci(d^i,c^I,1);d=i+aa|0;I=W;c=I+ua|0;c=r+(d>>>0>>0?c+1|0:c)|0;k=d+o|0;c=k>>>0>>0?c+1|0:c;o=c;d=Ci(k^U,c^D,32);r=W;c=r+l|0;l=d+X|0;c=l>>>0>>0?c+1|0:c;D=c;i=Ci(i^l,c^I,40);V=W;c=$+V|0;I=i;i=O+i|0;c=o+(i>>>0>>0?c+1|0:c)|0;o=i+k|0;c=o>>>0>>0?c+1|0:c;i=r;r=c;i=Ci(d^o,i^c,48);c=D;D=W;c=c+D|0;d=i+l|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;k=h;c=t+Y|0;d=p+x|0;c=d>>>0

>>0?c+1|0:c;h=c;f=Ci(d^f,c^G,1);p=W;c=va+p|0;l=f+ba|0;c=u+(l>>>0>>0?c+1|0:c)|0;l=l+m|0;c=l>>>0>>0?c+1|0:c;m=c;k=Ci(k^l,c^C,32);c=W;x=c;t=f;c=c+v|0;f=k+A|0;c=f>>>0>>0?c+1|0:c;G=f;f=f^t;t=c;f=Ci(f,c^p,40);A=W;c=qa+A|0;p=f+da|0;c=m+(p>>>0>>0?c+1|0:c)|0;m=l+p|0;c=m>>>0>>0?c+1|0:c;l=x;x=c;p=Ci(k^m,l^c,48);c=W;Y=c;l=c;k=Ci(y^F,R^_,1);c=W;v=c;u=h;c=c+P|0;h=b+k|0;c=T+(h>>>0>>0?c+1|0:c)|0;h=h+B|0;c=h>>>0>>0?c+1|0:c;B=c;s=Ci(e^h,c^s,32);d=s+d|0;_=W;c=_+u|0;u=d;e=v;v=d>>>0>>0?c+1|0:c;e=Ci(d^k,e^v,40);y=W;c=ra+y|0;d=e+S|0;c=B+(d>>>0>>0?c+1|0:c)|0;d=d+h|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;h=c;c=E+la|0;k=H+Z|0;c=(k>>>0>>0?c+1|0:c)+h|0;h=d+k|0;c=h>>>0>>0?c+1|0:c;B=c;d=Ci(h^p,c^l,32);T=W;c=T+Q|0;k=d+M|0;c=k>>>0>>0?c+1|0:c;l=Ci(k^H,c^E,40);H=c;C=W;c=za+C|0;E=l+oa|0;c=B+(E>>>0>>0?c+1|0:c)|0;B=h+E|0;c=B>>>0>>0?c+1|0:c;h=T;T=c;h=Ci(d^B,h^c,48);c=H;H=W;c=c+H|0;k=h+k|0;c=k>>>0>>0?c+1|0:c;d=k^l;l=c;c=Ci(d,c^C,1);d=W;C=c;E=d;X=j;U=i;i=e;e=Ci(s^F,R^_,48);s=W;c=s+v|0;d=e+u|0;c=d>>>0>>0?c+1|0:c;v=d;u=c;i=Ci(d^i,c^y,1);d=i+N|0;y=W;c=y+ha|0;c=x+(d>>>0>>0?c+1|0:c)|0;j=d+m|0;c=j>>>0>>0?c+1|0:c;m=c;d=Ci(j^U,c^D,32);x=W;c=x+n|0;n=d+X|0;c=n>>>0>>0?c+1|0:c;D=c;i=Ci(i^n,c^y,40);_=W;c=xa+_|0;y=i;i=fa+i|0;c=m+(i>>>0>>0?c+1|0:c)|0;m=i+j|0;c=m>>>0>>0?c+1|0:c;i=x;x=c;i=Ci(d^m,i^c,48);c=D;D=W;c=c+D|0;d=i+n|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;j=g;c=t+Y|0;d=p+G|0;c=d>>>0

>>0?c+1|0:c;g=c;f=Ci(d^f,c^A,1);p=W;c=p+na|0;n=f+ca|0;c=r+(n>>>0>>0?c+1|0:c)|0;n=n+o|0;c=n>>>0>>0?c+1|0:c;o=c;j=Ci(j^n,c^K,32);c=W;r=c;t=f;c=c+u|0;f=j+v|0;c=f>>>0>>0?c+1|0:c;G=f;f=f^t;t=c;f=Ci(f,c^p,40);A=W;c=ka+A|0;p=f+ia|0;c=o+(p>>>0>>0?c+1|0:c)|0;o=n+p|0;c=o>>>0>>0?c+1|0:c;v=r;r=c;p=Ci(j^o,v^c,48);c=W;Y=c;n=c;j=Ci(M^I,Q^V,1);c=W;v=c;u=g;c=c+L|0;g=j+ea|0;c=J+(g>>>0>>0?c+1|0:c)|0;g=g+q|0;c=g>>>0>>0?c+1|0:c;q=c;s=Ci(e^g,c^s,32);d=s+d|0;V=W;c=V+u|0;u=d;e=v;v=d>>>0>>0?c+1|0:c;e=Ci(d^j,e^v,40);I=W;c=wa+I|0;d=e+ga|0;c=q+(d>>>0>>0?c+1|0:c)|0;d=d+g|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;g=c;c=E+za|0;j=C+oa|0;c=(j>>>0>>0?c+1|0:c)+g|0;g=d+j|0;c=g>>>0>>0?c+1|0:c;q=c;d=Ci(g^p,c^n,32);J=W;c=J+R|0;j=d+F|0;c=j>>>0>>0?c+1|0:c;n=Ci(j^C,c^E,40);K=c;C=W;c=va+C|0;E=n+ba|0;c=q+(E>>>0>>0?c+1|0:c)|0;q=g+E|0;c=q>>>0>>0?c+1|0:c;g=J;J=c;g=Ci(d^q,g^c,48);c=K;K=W;c=c+K|0;j=g+j|0;c=j>>>0>>0?c+1|0:c;d=j^n;n=c;c=Ci(d,c^C,1);d=W;C=c;E=d;X=k;U=i;i=e;e=Ci(s^M,Q^V,48);s=W;c=s+v|0;d=e+u|0;c=d>>>0>>0?c+1|0:c;v=d;u=c;i=Ci(d^i,c^I,1);d=i+ea|0;I=W;c=I+L|0;c=r+(d>>>0>>0?c+1|0:c)|0;k=d+o|0;c=k>>>0>>0?c+1|0:c;o=c;d=Ci(k^U,c^D,32);r=W;c=r+l|0;l=d+X|0;c=l>>>0>>0?c+1|0:c;D=c;i=Ci(i^l,c^I,40);V=W;c=ka+V|0;I=i;i=ia+i|0;c=o+(i>>>0>>0?c+1|0:c)|0;o=i+k|0;c=o>>>0>>0?c+1|0:c;i=r;r=c;i=Ci(d^o,i^c,48);c=D;D=W;c=c+D|0;d=i+l|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;k=h;c=t+Y|0;d=p+G|0;c=d>>>0

>>0?c+1|0:c;h=c;f=Ci(d^f,c^A,1);p=W;c=na+p|0;l=f+ca|0;c=x+(l>>>0>>0?c+1|0:c)|0;l=l+m|0;c=l>>>0>>0?c+1|0:c;m=c;k=Ci(k^l,c^H,32);c=W;x=c;t=f;c=c+u|0;f=k+v|0;c=f>>>0>>0?c+1|0:c;G=f;f=f^t;t=c;f=Ci(f,c^p,40);A=W;c=xa+A|0;p=f+fa|0;c=m+(p>>>0>>0?c+1|0:c)|0;m=l+p|0;c=m>>>0>>0?c+1|0:c;l=x;x=c;p=Ci(k^m,l^c,48);c=W;Y=c;l=c;k=Ci(y^F,R^_,1);c=W;v=c;u=h;c=c+$|0;h=k+O|0;c=T+(h>>>0>>0?c+1|0:c)|0;h=h+B|0;c=h>>>0>>0?c+1|0:c;B=c;s=Ci(e^h,c^s,32);d=s+d|0;_=W;c=_+u|0;u=d;e=v;v=d>>>0>>0?c+1|0:c;e=Ci(d^k,e^v,40);y=W;c=wa+y|0;d=e+ga|0;c=B+(d>>>0>>0?c+1|0:c)|0;d=d+h|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;h=c;c=E+ra|0;k=C+S|0;c=(k>>>0>>0?c+1|0:c)+h|0;h=d+k|0;c=h>>>0>>0?c+1|0:c;B=c;d=Ci(h^p,c^l,32);T=W;c=T+Q|0;k=d+M|0;c=k>>>0>>0?c+1|0:c;l=Ci(k^C,c^E,40);H=c;C=W;c=P+C|0;E=b+l|0;c=B+(E>>>0>>0?c+1|0:c)|0;B=h+E|0;c=B>>>0>>0?c+1|0:c;h=T;T=c;h=Ci(d^B,h^c,48);c=H;H=W;c=c+H|0;k=h+k|0;c=k>>>0>>0?c+1|0:c;d=k^l;l=c;c=Ci(d,c^C,1);d=W;C=c;E=d;X=j;U=i;i=e;e=Ci(s^F,R^_,48);s=W;c=s+v|0;d=e+u|0;c=d>>>0>>0?c+1|0:c;v=d;u=c;i=Ci(d^i,c^y,1);d=i+da|0;y=W;c=y+qa|0;c=x+(d>>>0>>0?c+1|0:c)|0;j=d+m|0;c=j>>>0>>0?c+1|0:c;m=c;d=Ci(j^U,c^D,32);x=W;c=x+n|0;n=d+X|0;c=n>>>0>>0?c+1|0:c;D=c;i=Ci(i^n,c^y,40);_=W;c=Aa+_|0;y=i;i=pa+i|0;c=m+(i>>>0>>0?c+1|0:c)|0;m=i+j|0;c=m>>>0>>0?c+1|0:c;i=x;x=c;i=Ci(d^m,i^c,48);c=D;D=W;c=c+D|0;d=i+n|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;j=g;c=t+Y|0;d=p+G|0;c=d>>>0

>>0?c+1|0:c;g=c;f=Ci(d^f,c^A,1);p=W;c=p+la|0;n=f+Z|0;c=r+(n>>>0>>0?c+1|0:c)|0;n=n+o|0;c=n>>>0>>0?c+1|0:c;o=c;j=Ci(j^n,c^K,32);c=W;r=c;t=f;c=c+u|0;f=j+v|0;c=f>>>0>>0?c+1|0:c;G=f;f=f^t;t=c;f=Ci(f,c^p,40);A=W;c=ua+A|0;p=f+aa|0;c=o+(p>>>0>>0?c+1|0:c)|0;o=n+p|0;c=o>>>0>>0?c+1|0:c;v=r;r=c;p=Ci(j^o,v^c,48);c=W;Y=c;n=c;j=Ci(M^I,Q^V,1);c=W;v=c;u=g;c=c+ta|0;g=j+ja|0;c=J+(g>>>0>>0?c+1|0:c)|0;g=g+q|0;c=g>>>0>>0?c+1|0:c;q=c;s=Ci(e^g,c^s,32);d=s+d|0;V=W;c=V+u|0;u=d;e=v;v=d>>>0>>0?c+1|0:c;e=Ci(d^j,e^v,40);I=W;c=ha+I|0;d=e+N|0;c=q+(d>>>0>>0?c+1|0:c)|0;d=d+g|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;g=c;c=E+wa|0;j=C+ga|0;c=(j>>>0>>0?c+1|0:c)+g|0;g=d+j|0;c=g>>>0>>0?c+1|0:c;q=c;d=Ci(g^p,c^n,32);J=W;c=J+R|0;j=d+F|0;c=j>>>0>>0?c+1|0:c;n=Ci(j^C,c^E,40);K=c;C=W;c=ka+C|0;E=n+ia|0;c=q+(E>>>0>>0?c+1|0:c)|0;q=g+E|0;c=q>>>0>>0?c+1|0:c;g=J;J=c;g=Ci(d^q,g^c,48);c=K;K=W;c=c+K|0;j=g+j|0;c=j>>>0>>0?c+1|0:c;d=j^n;n=c;c=Ci(d,c^C,1);d=W;C=c;E=d;X=k;U=i;i=e;e=Ci(s^M,Q^V,48);s=W;c=s+v|0;d=e+u|0;c=d>>>0>>0?c+1|0:c;v=d;u=c;i=Ci(d^i,c^I,1);d=i+ba|0;I=W;c=I+va|0;c=r+(d>>>0>>0?c+1|0:c)|0;k=d+o|0;c=k>>>0>>0?c+1|0:c;o=c;d=Ci(k^U,c^D,32);r=W;c=r+l|0;l=d+X|0;c=l>>>0>>0?c+1|0:c;D=c;i=Ci(i^l,c^I,40);V=W;c=za+V|0;I=i;i=oa+i|0;c=o+(i>>>0>>0?c+1|0:c)|0;o=i+k|0;c=o>>>0>>0?c+1|0:c;i=r;r=c;i=Ci(d^o,i^c,48);c=D;D=W;c=c+D|0;d=i+l|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;k=h;c=t+Y|0;d=p+G|0;c=d>>>0

>>0?c+1|0:c;h=c;f=Ci(d^f,c^A,1);p=W;c=ua+p|0;l=f+aa|0;c=x+(l>>>0>>0?c+1|0:c)|0;l=l+m|0;c=l>>>0>>0?c+1|0:c;m=c;k=Ci(k^l,c^H,32);c=W;x=c;t=f;c=c+u|0;f=k+v|0;c=f>>>0>>0?c+1|0:c;G=f;f=f^t;t=c;f=Ci(f,c^p,40);A=W;c=L+A|0;p=f+ea|0;c=m+(p>>>0>>0?c+1|0:c)|0;m=l+p|0;c=m>>>0>>0?c+1|0:c;l=x;x=c;p=Ci(k^m,l^c,48);c=W;Y=c;l=c;k=Ci(y^F,R^_,1);c=W;v=c;u=h;c=c+xa|0;h=k+fa|0;c=T+(h>>>0>>0?c+1|0:c)|0;h=h+B|0;c=h>>>0>>0?c+1|0:c;B=c;s=Ci(e^h,c^s,32);d=s+d|0;_=W;c=_+u|0;u=d;e=v;v=d>>>0>>0?c+1|0:c;e=Ci(d^k,e^v,40);y=W;c=ta+y|0;d=e+ja|0;c=B+(d>>>0>>0?c+1|0:c)|0;d=d+h|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;h=c;c=E+na|0;k=C+ca|0;c=(k>>>0>>0?c+1|0:c)+h|0;h=d+k|0;c=h>>>0>>0?c+1|0:c;B=c;d=Ci(h^p,c^l,32);T=W;c=T+Q|0;k=d+M|0;c=k>>>0>>0?c+1|0:c;l=Ci(k^C,c^E,40);H=c;C=W;c=Aa+C|0;E=l+pa|0;c=B+(E>>>0>>0?c+1|0:c)|0;B=h+E|0;c=B>>>0>>0?c+1|0:c;h=T;T=c;h=Ci(d^B,h^c,48);c=H;H=W;c=c+H|0;k=h+k|0;c=k>>>0>>0?c+1|0:c;d=k^l;l=c;c=Ci(d,c^C,1);d=W;C=c;E=d;X=j;U=i;i=e;e=Ci(s^F,R^_,48);s=W;c=s+v|0;d=e+u|0;c=d>>>0>>0?c+1|0:c;v=d;u=c;i=Ci(d^i,c^y,1);d=i+O|0;F=W;c=F+$|0;c=x+(d>>>0>>0?c+1|0:c)|0;j=d+m|0;c=j>>>0>>0?c+1|0:c;m=c;d=Ci(j^U,c^D,32);x=W;c=x+n|0;n=d+X|0;c=n>>>0>>0?c+1|0:c;D=n;y=c;i=Ci(i^n,c^F,40);X=W;c=ra+X|0;F=i;i=S+i|0;c=m+(i>>>0>>0?c+1|0:c)|0;n=i+j|0;c=n>>>0>>0?c+1|0:c;i=x;x=c;i=Ci(d^n,i^c,48);c=y;y=W;c=c+y|0;d=i+D|0;c=d>>>0>>0?c+1|0:c;D=d;R=c;j=g;c=t+Y|0;d=p+G|0;c=d>>>0

>>0?c+1|0:c;g=c;f=Ci(d^f,c^A,1);p=W;c=p+P|0;m=b+f|0;c=r+(m>>>0>>0?c+1|0:c)|0;m=m+o|0;c=m>>>0>>0?c+1|0:c;o=c;j=Ci(j^m,c^K,32);r=j;c=W;t=c;G=f;c=c+u|0;f=j+v|0;c=f>>>0>>0?c+1|0:c;A=f;f=f^G;G=c;f=Ci(f,c^p,40);v=W;c=qa+v|0;j=f+da|0;c=o+(j>>>0>>0?c+1|0:c)|0;j=j+m|0;c=j>>>0>>0?c+1|0:c;u=j^r;r=c;m=Ci(u,c^t,48);c=W;K=c;p=c;o=Ci(M^I,Q^V,1);t=o;c=W;u=c;I=g;c=c+ha|0;g=o+N|0;c=J+(g>>>0>>0?c+1|0:c)|0;g=g+q|0;c=g>>>0>>0?c+1|0:c;q=s;s=c;o=Ci(e^g,q^c,32);d=o+d|0;U=W;c=U+I|0;q=d;e=d^t;t=d>>>0>>0?c+1|0:c;e=Ci(e,t^u,40);u=W;c=la+u|0;d=e+Z|0;c=s+(d>>>0>>0?c+1|0:c)|0;d=d+g|0;c=d>>>0>>0?c+1|0:c;s=d;I=c;g=c;c=E+ra|0;J=S;S=C+S|0;c=(J>>>0>S>>>0?c+1|0:c)+g|0;d=d+S|0;c=d>>>0>>0?c+1|0:c;ra=c;S=Ci(d^m,c^p,32);M=W;c=M+R|0;g=D+S|0;c=g>>>0>>0?c+1|0:c;p=Ci(g^C,c^E,40);J=c;Q=W;c=qa+Q|0;C=da;da=p+da|0;c=ra+(C>>>0>da>>>0?c+1|0:c)|0;da=d+da|0;c=da>>>0>>0?c+1|0:c;d=S^da;S=c;qa=Ci(d,c^M,48);ra=W;c=ra+J|0;d=g+qa|0;c=d>>>0>>0?c+1|0:c;g=c;c=Ci(d^p,c^Q,1);p=W;M=c;Q=k;k=Z;J=la;la=Ci(o^s,I^U,48);o=W;c=o+t|0;Z=q+la|0;c=Z>>>0>>0?c+1|0:c;t=k;s=Z;q=c;k=Ci(e^s,c^u,1);Z=t+k|0;u=W;c=u+J|0;c=r+(k>>>0>Z>>>0?c+1|0:c)|0;Z=j+Z|0;c=Z>>>0>>0?c+1|0:c;e=c;i=Ci(i^Z,c^y,32);c=l;l=W;c=c+l|0;j=i+Q|0;c=j>>>0>>0?c+1|0:c;r=j;t=c;j=Ci(j^k,c^u,40);ba=j+ba|0;u=W;c=u+va|0;c=(j>>>0>ba>>>0?c+1|0:c)+e|0;e=ba;ba=Z+ba|0;c=e>>>0>ba>>>0?c+1|0:c;e=c;i=Ci(i^ba,c^l,48);k=W;c=k+t|0;Z=i+r|0;c=Z>>>0>>0?c+1|0:c;l=Z;va=c;r=b;t=P;c=G+K|0;b=m+A|0;c=b>>>0>>0?c+1|0:c;Z=c;P=Ci(b^f,c^v,1);m=W;c=m+t|0;f=r+P|0;c=x+(f>>>0

>>0?c+1|0:c)|0;f=f+n|0;c=f>>>0>>0?c+1|0:c;h=Ci(f^h,c^H,32);r=c;x=ca;ca=P;n=W;c=n+q|0;P=h+s|0;c=P>>>0>>0?c+1|0:c;q=m;m=c;ca=Ci(P^ca,q^c,40);s=W;c=s+na|0;na=x+ca|0;c=(na>>>0>>0?c+1|0:c)+r|0;r=na;na=f+na|0;c=r>>>0>na>>>0?c+1|0:c;f=h^na;h=c;c=Ci(f,c^n,48);f=W;G=f;n=c;q=O;r=$;O=Ci(D^F,R^X,1);x=O;c=W;t=c;c=c+wa|0;O=x+ga|0;c=T+(O>>>0>>0?c+1|0:c)|0;O=B+O|0;c=O>>>0>>0?c+1|0:c;ga=c;$=Ci(O^la,c^o,32);b=$+b|0;B=W;c=B+Z|0;Z=b;o=b>>>0<$>>>0?c+1|0:c;la=Ci(b^x,o^t,40);b=la+q|0;c=r;r=W;c=c+r|0;c=ga+(b>>>0>>0?c+1|0:c)|0;b=b+O|0;c=b>>>0>>0?c+1|0:c;ga=b;wa=c;O=c;c=p+ua|0;x=aa;aa=M+aa|0;c=(x>>>0>aa>>>0?c+1|0:c)+O|0;O=b+aa|0;c=O>>>0>>0?c+1|0:c;ua=c;aa=Ci(n^O,c^f,32);b=aa+l|0;x=W;c=x+va|0;f=b;q=p;p=b>>>0>>0?c+1|0:c;b=Ci(b^M,q^p,40);t=W;c=xa+t|0;xa=b;b=fa+b|0;c=ua+(b>>>0>>0?c+1|0:c)|0;b=b+O|0;c=b>>>0>>0?c+1|0:c;ua=b;A=(z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24))^b;q=c;v=c^(z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24));O=Ci($^ga,B^wa,48);ga=W;c=ga+o|0;b=O+Z|0;c=b>>>0>>0?c+1|0:c;o=b;wa=c;$=ia;c=m+G|0;b=n+P|0;c=b>>>0

>>0?c+1|0:c;ia=c;ca=Ci(b^ca,c^s,1);$=ca+$|0;n=W;c=n+ka|0;c=($>>>0>>0?c+1|0:c)+e|0;ka=$+ba|0;c=ka>>>0<$>>>0?c+1|0:c;$=c;Z=Ci(ka^qa,c^ra,32);P=W;c=P+wa|0;fa=Z+o|0;c=fa>>>0>>0?c+1|0:c;ba=c;qa=Z;Z=Ci(ca^fa,c^n,40);ca=Z+ja|0;e=W;c=e+ta|0;c=(Z>>>0>ca>>>0?c+1|0:c)+$|0;ka=ca+ka|0;c=ka>>>0>>0?c+1|0:c;ja=ka;m=P;P=c;ca=Ci(qa^ja,m^c,48);$=ca+fa|0;n=W;c=n+ba|0;c=$>>>0>>0?c+1|0:c;fa=$;$=A^$;w[a+8|0]=$;w[a+9|0]=$>>>8;w[a+10|0]=$>>>16;w[a+11|0]=$>>>24;ba=c;c=c^v;w[a+12|0]=c;w[a+13|0]=c>>>8;w[a+14|0]=c>>>16;w[a+15|0]=c>>>24;ka=b;$=ia;b=O;O=Ci(j^l,u^va,1);ia=O+pa|0;ta=W;c=ta+Aa|0;c=(O>>>0>ia>>>0?c+1|0:c)+S|0;l=ia;ia=da+ia|0;c=l>>>0>ia>>>0?c+1|0:c;da=c;b=Ci(b^ia,c^ga,32);c=$;$=W;c=c+$|0;ka=b+ka|0;c=ka>>>0>>0?c+1|0:c;ga=c;qa=b;S=ka;ka=Ci(O^S,c^ta,40);b=ka+oa|0;j=W;c=j+za|0;c=da+(b>>>0>>0?c+1|0:c)|0;b=b+ia|0;c=b>>>0>>0?c+1|0:c;da=b;b=b^qa;qa=c;ia=Ci(b,c^$,48);b=ia+S|0;l=W;c=l+ga|0;S=b;ga=b>>>0>>0?c+1|0:c;b=Ci(o^la,r^wa,1);la=b;c=W;ta=c;c=c+L|0;b=b+ea|0;c=h+(b>>>0>>0?c+1|0:c)|0;O=b+na|0;c=O>>>0>>0?c+1|0:c;L=c;$=Ci(i^O,c^k,32);b=$+d|0;d=W;c=d+g|0;na=b;h=b^la;la=b>>>0<$>>>0?c+1|0:c;ea=Ci(h,la^ta,40);b=ea+N|0;N=W;c=N+ha|0;c=L+(b>>>0>>0?c+1|0:c)|0;L=b+O|0;c=L>>>0>>0?c+1|0:c;b=a;O=L^Ba^S;w[b|0]=O;w[b+1|0]=O>>>8;w[b+2|0]=O>>>16;w[b+3|0]=O>>>24;O=c^Ca^ga;w[b+4|0]=O;w[b+5|0]=O>>>8;w[b+6|0]=O>>>16;w[b+7|0]=O>>>24;$=Ci(L^$,c^d,48);O=$+na|0;na=W;c=na+la|0;la=O>>>0<$>>>0?c+1|0:c;c=la^((z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24))^qa);L=(z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24))^da^O;w[b+16|0]=L;w[b+17|0]=L>>>8;w[b+18|0]=L>>>16;w[b+19|0]=L>>>24;w[b+20|0]=c;w[b+21|0]=c>>>8;w[b+22|0]=c>>>16;w[b+23|0]=c>>>24;b=Ci(aa^ua,q^x,48);L=W;da=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);c=(z[a+32|0]|z[a+33|0]<<8|(z[a+34|0]<<16|z[a+35|0]<<24))^Ci(Z^fa,e^ba,1)^b;w[a+32|0]=c;w[a+33|0]=c>>>8;w[a+34|0]=c>>>16;w[a+35|0]=c>>>24;c=W^da^L;w[a+36|0]=c;w[a+37|0]=c>>>8;w[a+38|0]=c>>>16;w[a+39|0]=c>>>24;c=p+L|0;da=b+f|0;c=da>>>0>>0?c+1|0:c;b=a;Z=(z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24))^P^c;L=(z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24))^ja^da;w[b+24|0]=L;w[b+25|0]=L>>>8;w[b+26|0]=L>>>16;w[b+27|0]=L>>>24;w[b+28|0]=Z;w[b+29|0]=Z>>>8;w[b+30|0]=Z>>>16;w[b+31|0]=Z>>>24;Z=z[b+44|0]|z[b+45|0]<<8|(z[b+46|0]<<16|z[b+47|0]<<24);b=ia^((z[b+40|0]|z[b+41|0]<<8|(z[b+42|0]<<16|z[b+43|0]<<24))^Ci(O^ea,N^la,1));w[a+40|0]=b;w[a+41|0]=b>>>8;w[a+42|0]=b>>>16;w[a+43|0]=b>>>24;b=l^(W^Z);w[a+44|0]=b;w[a+45|0]=b>>>8;w[a+46|0]=b>>>16;w[a+47|0]=b>>>24;O=z[a+60|0]|z[a+61|0]<<8|(z[a+62|0]<<16|z[a+63|0]<<24);b=$^((z[a+56|0]|z[a+57|0]<<8|(z[a+58|0]<<16|z[a+59|0]<<24))^Ci(S^ka,j^ga,1));w[a+56|0]=b;w[a+57|0]=b>>>8;w[a+58|0]=b>>>16;w[a+59|0]=b>>>24;b=na^(W^O);w[a+60|0]=b;w[a+61|0]=b>>>8;w[a+62|0]=b>>>16;w[a+63|0]=b>>>24;O=z[a+52|0]|z[a+53|0]<<8|(z[a+54|0]<<16|z[a+55|0]<<24);b=ca^((z[a+48|0]|z[a+49|0]<<8|(z[a+50|0]<<16|z[a+51|0]<<24))^Ci(da^xa,c^t,1));w[a+48|0]=b;w[a+49|0]=b>>>8;w[a+50|0]=b>>>16;w[a+51|0]=b>>>24;b=n^(W^O);w[a+52|0]=b;w[a+53|0]=b>>>8;w[a+54|0]=b>>>16;w[a+55|0]=b>>>24;}function qc(a,b,c,d,e,f,g){var 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,x=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,U=0,V=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,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=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,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Xa=0,Ya=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0;H=T-560|0;T=H;k=H+352|0;Za(k);if(g){va(k,39696,34,0);}rb(H+288|0,f,32,0);n=H+352|0;va(n,H+320|0,32,0);va(n,c,d,e);p=H+224|0;Ca(n,p);j=f;r=z[f+32|0]|z[f+33|0]<<8|(z[f+34|0]<<16|z[f+35|0]<<24);t=z[f+36|0]|z[f+37|0]<<8|(z[f+38|0]<<16|z[f+39|0]<<24);l=z[f+40|0]|z[f+41|0]<<8|(z[f+42|0]<<16|z[f+43|0]<<24);h=z[f+44|0]|z[f+45|0]<<8|(z[f+46|0]<<16|z[f+47|0]<<24);k=z[f+48|0]|z[f+49|0]<<8|(z[f+50|0]<<16|z[f+51|0]<<24);f=z[f+52|0]|z[f+53|0]<<8|(z[f+54|0]<<16|z[f+55|0]<<24);m=z[j+60|0]|z[j+61|0]<<8|(z[j+62|0]<<16|z[j+63|0]<<24);j=z[j+56|0]|z[j+57|0]<<8|(z[j+58|0]<<16|z[j+59|0]<<24);w[a+56|0]=j;w[a+57|0]=j>>>8;w[a+58|0]=j>>>16;w[a+59|0]=j>>>24;w[a+60|0]=m;w[a+61|0]=m>>>8;w[a+62|0]=m>>>16;w[a+63|0]=m>>>24;w[a+48|0]=k;w[a+49|0]=k>>>8;w[a+50|0]=k>>>16;w[a+51|0]=k>>>24;w[a+52|0]=f;w[a+53|0]=f>>>8;w[a+54|0]=f>>>16;w[a+55|0]=f>>>24;w[a+40|0]=l;w[a+41|0]=l>>>8;w[a+42|0]=l>>>16;w[a+43|0]=l>>>24;w[a+44|0]=h;w[a+45|0]=h>>>8;w[a+46|0]=h>>>16;w[a+47|0]=h>>>24;w[a+32|0]=r;w[a+33|0]=r>>>8;w[a+34|0]=r>>>16;w[a+35|0]=r>>>24;w[a+36|0]=t;w[a+37|0]=t>>>8;w[a+38|0]=t>>>16;w[a+39|0]=t>>>24;Pa(p);jb(H,p);Wa(a,H);Za(n);if(g){va(n,39696,34,0);}f=H+352|0;va(f,a,64,0);va(f,c,d,e);o=H+160|0;Ca(f,o);Pa(o);w[H+288|0]=z[H+288|0]&248;w[H+319|0]=z[H+319|0]&63|64;u=H+288|0;c=u;d=z[c+23|0];P=z[c+21|0]|z[c+22|0]<<8|d<<16&2031616;Q=(z[o+28|0]|z[o+29|0]<<8|(z[o+30|0]<<16|z[o+31|0]<<24))>>>7|0;l=Ai(P,0,Q,0);k=W;c=z[o+27|0];d=0;h=z[o+23|0]|z[o+24|0]<<8|(z[o+25|0]<<16|z[o+26|0]<<24);f=c<<8|h>>>24;e=z[o+28|0];c=0;e=e<<16;t=c|d;d=e|f;R=((t&3)<<30|d>>>2)&2097151;g=z[u+23|0]|z[u+24|0]<<8|(z[u+25|0]<<16|z[u+26|0]<<24);S=g>>>5&2097151;c=Ai(R,0,S,0);f=c+l|0;d=W+k|0;e=c>>>0>f>>>0?d+1|0:d;d=z[o+23|0];U=d<<16&2031616|(z[o+21|0]|z[o+22|0]<<8);V=(z[u+28|0]|z[u+29|0]<<8|(z[u+30|0]<<16|z[u+31|0]<<24))>>>7|0;c=Ai(U,0,V,0);d=c+f|0;e=W+e|0;k=d;f=c>>>0>d>>>0?e+1|0:e;c=z[u+27|0];e=0;g=c<<8|g>>>24;c=z[u+28|0];d=0;c=c<<16;e=d|e;d=c|g;X=((e&3)<<30|d>>>2)&2097151;Y=h>>>5&2097151;c=Ai(X,0,Y,0);e=c+k|0;d=W+f|0;j=e;f=c>>>0>e>>>0?d+1|0:d;h=Ai(S,0,Y,0);k=W;c=z[u+19|0];d=0;E=z[u+15|0]|z[u+16|0]<<8|(z[u+17|0]<<16|z[u+18|0]<<24);g=c<<8|E>>>24;c=z[u+20|0];c=c<<16;e=d|d;d=c|g;Z=(e&7)<<29|d>>>3;t=e>>>3|0;d=Ai(Z,t,Q,0);e=d+h|0;c=W+k|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(P,i,R,i);g=d+e|0;e=W+c|0;h=g;d=d>>>0>h>>>0?e+1|0:e;c=z[o+19|0];e=0;B=z[o+15|0]|z[o+16|0]<<8|(z[o+17|0]<<16|z[o+18|0]<<24);k=c<<8|B>>>24;g=z[o+20|0];c=0;g=g<<16;l=c|e;e=g|k;_=(l&7)<<29|e>>>3;$=l>>>3|0;c=Ai(_,$,V,0);e=c+h|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(X,i,U,i);p=c+e|0;d=W+d|0;d=c>>>0>p>>>0?d+1|0:d;r=d;c=d-((p>>>0<4293918720)-1|0)|0;v=c;d=c>>>21|0;l=p- -1048576|0;c=(c&2097151)<<11|l>>>21;j=c+j|0;e=d+f|0;e=c>>>0>j>>>0?e+1|0:e;h=e;c=e-((j>>>0<4293918720)-1|0)|0;A=c;k=j- -1048576|0;m=(c&2097151)<<11|k>>>21;g=c>>>21|0;c=Ai(V,0,Y,0);d=W;e=c;c=Ai(Q,0,S,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(R,i,X,i);x=c+e|0;c=W+d|0;c=e>>>0>x>>>0?c+1|0:c;e=x- -1048576|0;d=e&-2097152;n=x-d|0;f=c-((x>>>0<4293918720)-1|0)|0;d=(c-((f&131071)+(d>>>0>x>>>0)|0)|0)+g|0;c=m+n|0;d=c>>>0>>0?d+1|0:d;Ea=d;Fa=c;n=Ai(c,d,470296,0);m=W;d=Ai(Q,0,X,i);c=W;g=d;d=Ai(R,i,V,0);g=g+d|0;c=W+c|0;d=d>>>0>g>>>0?c+1|0:c;c=f>>>21|0;f=(f&2097151)<<11|e>>>21;g=f+g|0;e=c+d|0;e=f>>>0>g>>>0?e+1|0:e;f=e-((g>>>0<4293918720)-1|0)|0;J=f;I=g- -1048576|0;d=I&-2097152;c=g-d|0;g=e-((f&131071)+(d>>>0>g>>>0)|0)|0;Ga=g;e=k&-2097152;d=j-e|0;Ha=d;f=h-((e>>>0>j>>>0)+A|0)|0;Ia=f;Ja=c;e=Ai(c,g,666643,0);g=e+n|0;c=W+m|0;c=e>>>0>g>>>0?c+1|0:c;e=Ai(d,f,654183,0);f=e+g|0;d=W+c|0;q=f;k=e>>>0>f>>>0?d+1|0:d;c=l&-2097152;x=p-c|0;v=r-((c>>>0>p>>>0)+v|0)|0;d=Ai(R,i,Z,t);e=W;c=d;aa=E>>>6&2097151;d=Ai(aa,0,Q,0);f=c+d|0;c=W+e|0;c=d>>>0>f>>>0?c+1|0:c;d=Ai(S,0,U,i);f=d+f|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(P,i,Y,0);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;ba=B>>>6&2097151;e=Ai(V,0,ba,0);f=e+f|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;e=Ai(X,i,_,$);f=e+f|0;d=W+c|0;p=f;g=e>>>0>f>>>0?d+1|0:d;c=z[u+14|0];d=0;r=z[u+10|0]|z[u+11|0]<<8|(z[u+12|0]<<16|z[u+13|0]<<24);f=c<<8|r>>>24;e=z[u+15|0];c=0;e=e<<16;d=c|d;c=e|f;ca=((d&1)<<31|c>>>1)&2097151;d=Ai(ca,0,Q,0);c=W;e=d;d=Ai(R,i,aa,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(Y,0,Z,t);f=d+e|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(S,0,_,$);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(P,i,U,i);e=c+f|0;d=W+d|0;l=e;f=c>>>0>e>>>0?d+1|0:d;c=z[o+14|0];d=0;j=z[o+10|0]|z[o+11|0]<<8|(z[o+12|0]<<16|z[o+13|0]<<24);h=c<<8|j>>>24;c=z[o+15|0];c=c<<16|h;d=d|d;da=((d&1)<<31|c>>>1)&2097151;d=Ai(da,0,V,0);e=d+l|0;c=W+f|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(X,i,ba,0);l=d+e|0;c=W+c|0;c=d>>>0>l>>>0?c+1|0:c;h=c;d=c-((l>>>0<4293918720)-1|0)|0;K=d;c=d>>>21|0;n=l- -1048576|0;d=(d&2097151)<<11|n>>>21;A=d+p|0;e=c+g|0;e=d>>>0>A>>>0?e+1|0:e;m=e;d=e-((A>>>0<4293918720)-1|0)|0;F=d;c=d>>>21|0;p=A- -1048576|0;e=(d&2097151)<<11|p>>>21;d=e+x|0;c=c+v|0;c=d>>>0>>0?c+1|0:c;Ka=c;La=d;c=Ai(d,c,-997805,-1);e=c+q|0;d=W+k|0;q=e;k=c>>>0>e>>>0?d+1|0:d;s=H+224|0;N=z[s+23|0]|z[s+24|0]<<8|(z[s+25|0]<<16|z[s+26|0]<<24);x=N>>>5&2097151;c=z[u+2|0];ea=c<<16&2031616|(z[u|0]|z[u+1|0]<<8);e=Ai(ea,0,Y,0);d=W;g=z[u+2|0]|z[u+3|0]<<8|(z[u+4|0]<<16|z[u+5|0]<<24);fa=g>>>5&2097151;c=Ai(U,i,fa,0);f=c+e|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;ga=(z[u+7|0]|z[u+8|0]<<8|(z[u+9|0]<<16|z[u+10|0]<<24))>>>7&2097151;c=Ai(ga,0,ba,0);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;ha=r>>>4&2097151;e=Ai(da,i,ha,0);f=e+f|0;c=W+d|0;r=f;f=e>>>0>f>>>0?c+1|0:c;d=z[u+6|0];c=0;g=d<<8|g>>>24;e=c;c=z[u+7|0];d=0;c=c<<16|g;d=d|e;ia=((d&3)<<30|c>>>2)&2097151;d=Ai(ia,0,_,$);e=d+r|0;c=W+f|0;c=d>>>0>e>>>0?c+1|0:c;ka=(z[o+7|0]|z[o+8|0]<<8|(z[o+9|0]<<16|z[o+10|0]<<24))>>>7&2097151;d=Ai(aa,0,ka,0);f=d+e|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;G=j>>>4&2097151;d=Ai(ca,i,G,0);f=d+f|0;c=W+e|0;g=d>>>0>f>>>0?c+1|0:c;d=z[o+6|0];c=0;j=z[o+2|0]|z[o+3|0]<<8|(z[o+4|0]<<16|z[o+5|0]<<24);r=d<<8|j>>>24;d=c;c=z[o+7|0];e=0;c=c<<16|r;d=d|e;la=((d&3)<<30|c>>>2)&2097151;c=Ai(Z,t,la,0);e=c+f|0;d=W+g|0;d=c>>>0>e>>>0?d+1|0:d;c=z[o+2|0];f=e;ma=c<<16&2031616|(z[o|0]|z[o+1|0]<<8);e=Ai(ma,0,S,0);f=f+e|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;na=j>>>5&2097151;d=Ai(P,i,na,0);e=d+f|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=e+x|0;d=d>>>0>e>>>0?c+1|0:c;r=e;g=d;f=z[s+21|0]|z[s+22|0]<<8;c=Ai(ea,i,U,i);d=W;e=c;c=Ai(_,$,fa,0);j=e+c|0;e=W+d|0;e=c>>>0>j>>>0?e+1|0:e;c=Ai(da,i,ga,0);j=c+j|0;d=W+e|0;d=c>>>0>j>>>0?d+1|0:d;c=Ai(ha,0,G,0);e=c+j|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(ba,0,ia,i);j=c+e|0;c=W+d|0;c=e>>>0>j>>>0?c+1|0:c;d=Ai(aa,0,la,i);e=d+j|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(ca,i,ka,0);j=d+e|0;e=W+c|0;e=d>>>0>j>>>0?e+1|0:e;c=Ai(Z,t,na,0);j=c+j|0;d=W+e|0;d=c>>>0>j>>>0?d+1|0:d;c=Ai(P,i,ma,i);e=c+j|0;d=W+d|0;c=c>>>0>e>>>0?d+1|0:d;d=e;e=e+f|0;d=d>>>0>e>>>0?c+1|0:c;c=z[s+23|0];f=e;e=c<<16&2031616;f=f+e|0;c=d;c=e>>>0>f>>>0?c+1|0:c;e=c;c=c-((f>>>0<4293918720)-1|0)|0;o=c;d=c>>>21|0;j=f- -1048576|0;c=(c&2097151)<<11|j>>>21;r=c+r|0;d=d+g|0;g=r;d=g>>>0>>0?d+1|0:d;c=d+k|0;k=g+q|0;c=k>>>0>>0?c+1|0:c;B=g- -1048576|0;g=d-((g>>>0<4293918720)-1|0)|0;C=g;d=B&-2097152;D=k-d|0;L=c-((d>>>0>k>>>0)+g|0)|0;r=f;k=e;c=Ai(Ha,Ia,470296,0);d=W;e=c;c=Ai(Fa,Ea,666643,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(La,Ka,654183,0);f=c+e|0;c=W+d|0;E=f;g=e>>>0>f>>>0?c+1|0:c;d=Ai(_,$,ea,i);c=W;e=d;d=Ai(ba,0,fa,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(ga,0,G,0);f=d+e|0;d=W+c|0;d=e>>>0>f>>>0?d+1|0:d;c=Ai(ha,0,ka,0);f=c+f|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(da,i,ia,i);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;e=Ai(aa,0,na,0);f=e+f|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;d=Ai(ca,i,la,i);e=d+f|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(Z,t,ma,i);f=d+e|0;d=W+c|0;x=f;e=e>>>0>f>>>0?d+1|0:d;c=z[s+19|0];d=0;q=z[s+15|0]|z[s+16|0]<<8|(z[s+17|0]<<16|z[s+18|0]<<24);v=c<<8|q>>>24;f=z[s+20|0];c=0;f=f<<16;M=c|d;d=f|v;e=(M>>>3|0)+e|0;d=(M&7)<<29|d>>>3;f=d+x|0;x=f;f=d>>>0>f>>>0?e+1|0:e;v=q>>>6&2097151;c=Ai(ba,0,ea,i);d=W;e=c;c=Ai(da,i,fa,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(ga,0,ka,0);q=c+e|0;c=W+d|0;c=e>>>0>q>>>0?c+1|0:c;e=Ai(ha,0,la,i);q=e+q|0;d=W+c|0;d=e>>>0>q>>>0?d+1|0:d;e=Ai(ia,i,G,0);q=e+q|0;c=W+d|0;c=e>>>0>q>>>0?c+1|0:c;d=Ai(aa,0,ma,i);q=d+q|0;e=W+c|0;e=d>>>0>q>>>0?e+1|0:e;c=Ai(ca,i,na,0);q=c+q|0;d=W+e|0;c=c>>>0>q>>>0?d+1|0:d;oa=q+v|0;c=oa>>>0>>0?c+1|0:c;wa=c;c=c-((oa>>>0<4293918720)-1|0)|0;Ua=c;ta=oa- -1048576|0;e=(c&2097151)<<11|ta>>>21;xa=e+x|0;c=(c>>>21|0)+f|0;c=e>>>0>xa>>>0?c+1|0:c;ya=c;c=c-((xa>>>0<4293918720)-1|0)|0;Va=c;qa=xa- -1048576|0;e=(c&2097151)<<11|qa>>>21;f=e+E|0;c=(c>>>21|0)+g|0;d=(e>>>0>f>>>0?c+1|0:c)+k|0;e=f+r|0;d=e>>>0>>0?d+1|0:d;c=j&-2097152;k=e-c|0;c=d-((c>>>0>e>>>0)+o|0)|0;o=c;c=c-((k>>>0<4293918720)-1|0)|0;Xa=c;ra=k- -1048576|0;e=(c&2097151)<<11|ra>>>21;g=e+D|0;c=(c>>21)+L|0;c=e>>>0>g>>>0?c+1|0:c;f=c;c=c-((g>>>0<4293918720)-1|0)|0;Ma=c;E=g- -1048576|0;sa=(c&2097151)<<11|E>>>21;r=c>>21;c=p&-2097152;M=A-c|0;F=m-((c>>>0>A>>>0)+F|0)|0;c=Ai(Q,0,V,0);d=W;ua=d;D=c;q=c- -1048576|0;d=d-((c>>>0<4293918720)-1|0)|0;pa=d;c=d>>>21|0;Na=c;Da=(d&2097151)<<11|q>>>21;c=Ai(Da,c,-683901,-1);e=c+l|0;d=W+h|0;d=c>>>0>e>>>0?d+1|0:d;c=n&-2097152;p=e-c|0;j=d-((c>>>0>e>>>0)+K|0)|0;d=Ai(Y,0,aa,0);c=W;e=d;d=Ai(Q,0,ha,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(R,i,ca,i);e=d+e|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(Z,t,U,i);h=d+e|0;d=W+c|0;d=e>>>0>h>>>0?d+1|0:d;c=Ai(S,0,ba,0);h=c+h|0;e=W+d|0;e=c>>>0>h>>>0?e+1|0:e;c=Ai(P,i,_,$);h=c+h|0;d=W+e|0;d=c>>>0>h>>>0?d+1|0:d;e=Ai(V,0,G,0);h=e+h|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(X,i,da,i);e=d+h|0;c=W+c|0;l=e;h=d>>>0>e>>>0?c+1|0:c;c=Ai(R,i,ha,0);d=W;e=c;c=Ai(Q,0,ga,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(aa,0,U,i);m=c+e|0;e=W+d|0;e=c>>>0>m>>>0?e+1|0:e;c=Ai(Y,0,ca,i);m=c+m|0;d=W+e|0;d=c>>>0>m>>>0?d+1|0:d;e=Ai(Z,t,_,$);m=e+m|0;c=W+d|0;c=e>>>0>m>>>0?c+1|0:c;d=Ai(S,0,da,i);e=d+m|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(P,i,ba,0);m=d+e|0;d=W+c|0;d=e>>>0>m>>>0?d+1|0:d;c=Ai(V,0,ka,0);m=c+m|0;e=W+d|0;e=c>>>0>m>>>0?e+1|0:e;c=Ai(X,i,G,0);x=c+m|0;d=W+e|0;d=c>>>0>x>>>0?d+1|0:d;v=d;c=d-((x>>>0<4293918720)-1|0)|0;Aa=c;A=x- -1048576|0;d=(c&2097151)<<11|A>>>21;K=d+l|0;c=(c>>>21|0)+h|0;c=d>>>0>K>>>0?c+1|0:c;n=c;c=c-((K>>>0<4293918720)-1|0)|0;O=c;e=c>>>21|0;m=K- -1048576|0;c=(c&2097151)<<11|m>>>21;L=c+p|0;d=e+j|0;d=c>>>0>L>>>0?d+1|0:d;p=d;c=d-((L>>>0<4293918720)-1|0)|0;za=c;j=L- -1048576|0;h=(c&2097151)<<11|j>>>21;d=h+M|0;c=(c>>21)+F|0;c=d>>>0>>0?c+1|0:c;Oa=c;Qa=d;c=Ai(d,c,-683901,-1);e=c+sa|0;d=W+r|0;sa=e;r=c>>>0>e>>>0?d+1|0:d;c=Ai(R,i,ea,i);d=W;e=c;c=Ai(Y,0,fa,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(_,$,ga,0);h=c+e|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(ba,0,ha,0);h=d+h|0;e=W+c|0;e=d>>>0>h>>>0?e+1|0:e;d=Ai(U,i,ia,i);h=d+h|0;c=W+e|0;c=d>>>0>h>>>0?c+1|0:c;e=Ai(aa,0,G,0);h=e+h|0;d=W+c|0;d=e>>>0>h>>>0?d+1|0:d;c=Ai(ca,i,da,i);e=c+h|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(Z,t,ka,0);h=c+e|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(S,0,na,0);h=d+h|0;e=W+c|0;e=d>>>0>h>>>0?e+1|0:e;d=Ai(P,i,la,i);h=d+h|0;c=W+e|0;c=d>>>0>h>>>0?c+1|0:c;e=Ai(X,i,ma,i);h=e+h|0;d=W+c|0;F=h;e=e>>>0>h>>>0?d+1|0:d;c=z[s+27|0];d=0;l=c<<8|N>>>24;h=z[s+28|0];c=0;h=h<<16;d=c|d;c=h|l;h=((d&3)<<30|c>>>2)&2097151;c=h+F|0;d=e;l=c;h=c>>>0>>0?d+1|0:d;M=Ai(Ja,Ga,470296,0);F=W;e=(J&2097151)<<11|I>>>21;d=q&-2097152;c=e+(D-d|0)|0;d=ua-((pa&524287)+(d>>>0>D>>>0)|0)+(J>>>21)|0;d=c>>>0>>0?d+1|0:d;Ra=d;Sa=c;d=Ai(c,d,666643,0);e=d+M|0;c=W+F|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(Fa,Ea,654183,0);q=d+e|0;e=W+c|0;e=d>>>0>q>>>0?e+1|0:e;d=Ai(Ha,Ia,-997805,-1);q=d+q|0;c=W+e|0;c=d>>>0>q>>>0?c+1|0:c;e=Ai(La,Ka,136657,0);q=e+q|0;d=W+c|0;c=(C&2097151)<<11|B>>>21;B=c+q|0;d=(C>>>21|0)+(e>>>0>q>>>0?d+1|0:d)|0;ua=l- -1048576|0;q=h-((l>>>0<4293918720)-1|0)|0;pa=q;c=(c>>>0>B>>>0?d+1|0:d)+h|0;h=l+B|0;c=h>>>0>>0?c+1|0:c;e=ua&-2097152;d=h-e|0;c=c-((e>>>0>h>>>0)+q|0)|0;e=c+r|0;l=d+sa|0;e=l>>>0>>0?e+1|0:e;h=c-((d>>>0<4293918720)-1|0)|0;M=h;F=d- -1048576|0;d=F&-2097152;c=l-d|0;D=e-((d>>>0>l>>>0)+h|0)|0;N=c;h=g;g=f;c=j&-2097152;Ba=L-c|0;q=p-((c>>>0>L>>>0)+za|0)|0;c=Ai(Sa,Ra,-683901,-1);d=W;e=c;c=Ai(Da,Na,136657,0);f=e+c|0;e=W+d|0;d=n+(c>>>0>f>>>0?e+1|0:e)|0;e=f+K|0;d=e>>>0>>0?d+1|0:d;c=m&-2097152;m=e-c|0;p=d-((c>>>0>e>>>0)+O|0)|0;d=Ai(Da,Na,-997805,-1);e=d+x|0;c=W+v|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(Sa,Ra,136657,0);f=d+e|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(Ja,Ga,-683901,-1);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=A&-2097152;j=f-c|0;r=d-((c>>>0>f>>>0)+Aa|0)|0;d=Ai(Y,0,ha,0);c=W;e=d;d=Ai(R,i,ga,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(Q,0,ia,i);f=d+e|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(_,$,aa,0);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;e=Ai(U,i,ca,i);f=e+f|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;e=Ai(Z,t,ba,0);f=e+f|0;d=W+c|0;d=e>>>0>f>>>0?d+1|0:d;e=Ai(S,0,G,0);f=e+f|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;d=Ai(P,i,da,i);f=d+f|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(V,0,la,i);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;e=Ai(X,i,ka,0);f=e+f|0;c=W+d|0;l=f;f=e>>>0>f>>>0?c+1|0:c;c=Ai(Y,0,ga,0);d=W;e=c;c=Ai(Q,0,fa,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(U,i,ha,0);n=c+e|0;c=W+d|0;c=e>>>0>n>>>0?c+1|0:c;d=Ai(R,i,ia,i);n=d+n|0;e=W+c|0;e=d>>>0>n>>>0?e+1|0:e;c=Ai(aa,0,ba,0);n=c+n|0;d=W+e|0;d=c>>>0>n>>>0?d+1|0:d;e=Ai(_,$,ca,i);n=e+n|0;c=W+d|0;c=e>>>0>n>>>0?c+1|0:c;e=Ai(Z,t,da,i);n=e+n|0;d=W+c|0;d=e>>>0>n>>>0?d+1|0:d;e=Ai(S,0,ka,0);n=e+n|0;c=W+d|0;c=e>>>0>n>>>0?c+1|0:c;d=Ai(P,i,G,0);n=d+n|0;e=W+c|0;e=d>>>0>n>>>0?e+1|0:e;c=Ai(V,0,na,0);n=c+n|0;d=W+e|0;e=Ai(X,i,la,i);za=e+n|0;c=W+(c>>>0>n>>>0?d+1|0:d)|0;c=e>>>0>za>>>0?c+1|0:c;L=c;c=c-((za>>>0<4293918720)-1|0)|0;$a=c;J=za- -1048576|0;e=(c&2097151)<<11|J>>>21;sa=e+l|0;c=(c>>>21|0)+f|0;c=e>>>0>sa>>>0?c+1|0:c;I=c;c=c-((sa>>>0<4293918720)-1|0)|0;ab=c;C=sa- -1048576|0;e=(c&2097151)<<11|C>>>21;K=e+j|0;c=(c>>>21|0)+r|0;c=e>>>0>K>>>0?c+1|0:c;B=c;c=c-((K>>>0<4293918720)-1|0)|0;bb=c;v=K- -1048576|0;e=(c&2097151)<<11|v>>>21;j=e+m|0;c=(c>>21)+p|0;c=e>>>0>j>>>0?c+1|0:c;f=c;c=c-((j>>>0<4293918720)-1|0)|0;p=c;e=j- -1048576|0;r=(c&2097151)<<11|e>>>21;l=r+Ba|0;c=(c>>21)+q|0;c=l>>>0>>0?c+1|0:c;Aa=c;O=l;c=Ai(l,c,-683901,-1);d=W;l=c;c=Ai(Qa,Oa,136657,0);l=l+c|0;d=W+d|0;c=(c>>>0>l>>>0?d+1|0:d)+g|0;g=h+l|0;c=g>>>0>>0?c+1|0:c;d=E&-2097152;Ya=g-d|0;_a=c-((d>>>0>g>>>0)+Ma|0)|0;r=k;l=o;k=Ai(O,Aa,136657,0);g=W;d=e&-2097152;c=j-d|0;Ba=c;f=f-((d>>>0>j>>>0)+p|0)|0;Ta=f;e=Ai(Qa,Oa,-997805,-1);k=e+k|0;d=W+g|0;d=e>>>0>k>>>0?d+1|0:d;e=Ai(c,f,-683901,-1);f=e+k|0;c=W+d|0;Ma=f;h=e>>>0>f>>>0?c+1|0:c;c=Ai(La,Ka,470296,0);d=W;e=c;c=Ai(Ha,Ia,666643,0);f=e+c|0;e=W+d|0;d=ya+(c>>>0>f>>>0?e+1|0:e)|0;c=f+xa|0;d=c>>>0>>0?d+1|0:d;E=c;g=d;d=Ai(La,Ka,666643,0);e=d+oa|0;c=W+wa|0;c=d>>>0>e>>>0?c+1|0:c;d=ta&-2097152;m=e-d|0;x=c-((d>>>0>e>>>0)+Ua|0)|0;d=Ai(ea,i,da,i);c=W;e=d;d=Ai(fa,0,G,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(ga,0,la,i);f=d+e|0;d=W+c|0;d=e>>>0>f>>>0?d+1|0:d;e=Ai(ha,0,na,0);f=e+f|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;d=Ai(ia,i,ka,0);f=d+f|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(ca,i,ma,i);f=c+f|0;d=W+e|0;j=f;f=c>>>0>f>>>0?d+1|0:d;c=z[s+14|0];d=0;p=z[s+10|0]|z[s+11|0]<<8|(z[s+12|0]<<16|z[s+13|0]<<24);k=c<<8|p>>>24;c=z[s+15|0];e=0;c=k|c<<16;d=d|e;d=((d&1)<<31|c>>>1)&2097151;e=d+j|0;c=f;j=e;f=d>>>0>e>>>0?c+1|0:c;k=p>>>4&2097151;c=Ai(ea,i,G,0);d=W;e=c;c=Ai(fa,0,ka,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(ga,0,na,0);e=c+e|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(ha,0,ma,i);p=c+e|0;c=W+d|0;c=e>>>0>p>>>0?c+1|0:c;d=Ai(ia,i,la,i);p=d+p|0;e=W+c|0;c=d>>>0>p>>>0?e+1|0:e;ta=k+p|0;c=ta>>>0

>>0?c+1|0:c;o=c;c=c-((ta>>>0<4293918720)-1|0)|0;cb=c;e=c>>>21|0;q=ta- -1048576|0;c=(c&2097151)<<11|q>>>21;ya=c+j|0;d=e+f|0;d=c>>>0>ya>>>0?d+1|0:d;A=d;c=d-((ya>>>0<4293918720)-1|0)|0;db=c;n=ya- -1048576|0;d=(c&2097151)<<11|n>>>21;m=d+m|0;c=(c>>>21|0)+x|0;c=d>>>0>m>>>0?c+1|0:c;p=c;c=c-((m>>>0<4293918720)-1|0)|0;eb=c;e=c>>21;j=m- -1048576|0;c=(c&2097151)<<11|j>>>21;f=c+E|0;d=e+g|0;d=c>>>0>f>>>0?d+1|0:d;e=qa&-2097152;c=f-e|0;d=d-((e>>>0>f>>>0)+Va|0)|0;Ua=d;qa=c;k=c- -1048576|0;c=d-((c>>>0<4293918720)-1|0)|0;Va=c;d=c>>21;c=(c&2097151)<<11|k>>>21;f=c+Ma|0;e=d+h|0;d=(c>>>0>f>>>0?e+1|0:e)+l|0;c=f;f=f+r|0;d=c>>>0>f>>>0?d+1|0:d;e=ra&-2097152;c=f-e|0;d=d-((e>>>0>f>>>0)+Xa|0)|0;oa=d;l=c;g=c- -1048576|0;c=d-((c>>>0<4293918720)-1|0)|0;wa=c;d=c>>21;c=(c&2097151)<<11|g>>>21;h=c+Ya|0;e=d+_a|0;e=c>>>0>h>>>0?e+1|0:e;c=e-((h>>>0<4293918720)-1|0)|0;ra=c;E=N- -1048576|0;x=D-((N>>>0<4293918720)-1|0)|0;f=h- -1048576|0;r=(c&2097151)<<11|f>>>21;N=r+N|0;c=(c>>21)+D|0;d=E&-2097152;Xa=N-d|0;Ya=(r>>>0>N>>>0?c+1|0:c)-((d>>>0>N>>>0)+x|0)|0;c=f&-2097152;_a=h-c|0;Ma=e-((c>>>0>h>>>0)+ra|0)|0;c=g&-2097152;xa=l-c|0;N=oa-((c>>>0>l>>>0)+wa|0)|0;c=Ai(O,Aa,-997805,-1);d=W;e=c;c=Ai(Qa,Oa,654183,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(Ba,Ta,136657,0);f=c+e|0;c=W+d|0;d=Ua+(e>>>0>f>>>0?c+1|0:c)|0;e=f+qa|0;d=e>>>0>>0?d+1|0:d;c=k&-2097152;oa=e-c|0;wa=d-((c>>>0>e>>>0)+Va|0)|0;c=v&-2097152;qa=K-c|0;D=B-((c>>>0>K>>>0)+bb|0)|0;d=Ai(Sa,Ra,-997805,-1);c=W;e=d;d=Ai(Da,Na,654183,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(Ja,Ga,136657,0);f=d+e|0;d=W+c|0;d=e>>>0>f>>>0?d+1|0:d;c=Ai(Fa,Ea,-683901,-1);f=c+f|0;e=W+d|0;d=I+(c>>>0>f>>>0?e+1|0:e)|0;e=f+sa|0;d=e>>>0>>0?d+1|0:d;c=C&-2097152;v=e-c|0;B=d-((c>>>0>e>>>0)+ab|0)|0;d=Ai(Sa,Ra,654183,0);c=W;e=d;d=Ai(Da,Na,470296,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(Ja,Ga,-997805,-1);f=d+e|0;e=W+c|0;d=L+(d>>>0>f>>>0?e+1|0:e)|0;c=f+za|0;d=c>>>0>>0?d+1|0:d;e=c;c=Ai(Fa,Ea,136657,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(Ha,Ia,-683901,-1);f=c+e|0;c=W+d|0;d=J&-2097152;k=f-d|0;g=(e>>>0>f>>>0?c+1|0:c)-((d>>>0>f>>>0)+$a|0)|0;f=(z[s+28|0]|z[s+29|0]<<8|(z[s+30|0]<<16|z[s+31|0]<<24))>>>7|0;c=Ai(Q,0,ea,i);d=W;e=c;c=Ai(R,i,fa,0);h=e+c|0;e=W+d|0;e=c>>>0>h>>>0?e+1|0:e;c=Ai(U,i,ga,0);h=c+h|0;d=W+e|0;d=c>>>0>h>>>0?d+1|0:d;e=Ai(_,$,ha,0);h=e+h|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;e=Ai(Y,0,ia,i);h=e+h|0;d=W+c|0;d=e>>>0>h>>>0?d+1|0:d;e=Ai(aa,0,da,i);h=e+h|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(ba,0,ca,i);h=d+h|0;e=W+c|0;e=d>>>0>h>>>0?e+1|0:e;c=Ai(Z,t,G,0);h=c+h|0;d=W+e|0;d=c>>>0>h>>>0?d+1|0:d;e=Ai(S,0,la,i);h=e+h|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;e=Ai(P,i,ka,0);h=e+h|0;d=W+c|0;d=e>>>0>h>>>0?d+1|0:d;e=Ai(V,0,ma,i);h=e+h|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(X,i,na,0);h=d+h|0;e=W+c|0;e=d>>>0>h>>>0?e+1|0:e;d=e;c=f+h|0;d=c>>>0>>0?d+1|0:d;e=(pa&2097151)<<11|ua>>>21;I=e+c|0;c=(pa>>>21|0)+d|0;c=e>>>0>I>>>0?c+1|0:c;r=c;d=c-((I>>>0<4293918720)-1|0)|0;ra=d;c=d>>>21|0;t=I- -1048576|0;d=(d&2097151)<<11|t>>>21;C=d+k|0;e=c+g|0;e=d>>>0>C>>>0?e+1|0:e;l=e;d=e-((C>>>0<4293918720)-1|0)|0;ua=d;c=d>>21;h=C- -1048576|0;d=(d&2097151)<<11|h>>>21;v=d+v|0;c=c+B|0;c=d>>>0>v>>>0?c+1|0:c;k=c;d=c-((v>>>0<4293918720)-1|0)|0;J=d;c=d>>21;g=v- -1048576|0;f=(d&2097151)<<11|g>>>21;d=f+qa|0;e=c+D|0;e=d>>>0>>0?e+1|0:e;pa=e;D=d;c=Ai(d,e,-683901,-1);e=c+oa|0;d=W+wa|0;B=e;f=c>>>0>e>>>0?d+1|0:d;d=Ai(Qa,Oa,470296,0);m=d+m|0;c=W+p|0;c=d>>>0>m>>>0?c+1|0:c;d=Ai(O,Aa,654183,0);e=j&-2097152;j=d+(m-e|0)|0;c=W+(c-((e>>>0>m>>>0)+eb|0)|0)|0;c=d>>>0>j>>>0?c+1|0:c;e=Ai(Ba,Ta,-997805,-1);j=e+j|0;d=W+c|0;d=e>>>0>j>>>0?d+1|0:d;c=g&-2097152;e=v-c|0;L=e;k=k-((c>>>0>v>>>0)+J|0)|0;G=k;g=Ai(D,pa,136657,0);j=g+j|0;c=W+d|0;e=Ai(e,k,-683901,-1);p=e+j|0;d=W+(g>>>0>j>>>0?c+1|0:c)|0;d=e>>>0>p>>>0?d+1|0:d;k=d;c=d-((p>>>0<4293918720)-1|0)|0;J=c;g=p- -1048576|0;d=(c&2097151)<<11|g>>>21;j=d+B|0;c=(c>>21)+f|0;c=d>>>0>j>>>0?c+1|0:c;d=c-((j>>>0<4293918720)-1|0)|0;v=d;f=j- -1048576|0;m=(d&2097151)<<11|f>>>21;B=m+xa|0;d=(d>>21)+N|0;xa=B;B=m>>>0>B>>>0?d+1|0:d;d=f&-2097152;N=j-d|0;za=c-((d>>>0>j>>>0)+v|0)|0;c=g&-2097152;oa=p-c|0;wa=k-((c>>>0>p>>>0)+J|0)|0;c=Ai(Qa,Oa,666643,0);e=A+W|0;g=c+ya|0;e=g>>>0>>0?e+1|0:e;c=Ai(O,Aa,470296,0);d=n&-2097152;f=c+(g-d|0)|0;d=W+(e-((d>>>0>g>>>0)+db|0)|0)|0;d=c>>>0>f>>>0?d+1|0:d;e=Ai(Ba,Ta,654183,0);f=e+f|0;c=W+d|0;j=f;f=e>>>0>f>>>0?c+1|0:c;c=h&-2097152;g=C-c|0;k=l-((c>>>0>C>>>0)+ua|0)|0;c=Ai(Sa,Ra,470296,0);d=W;e=c;c=Ai(Da,Na,666643,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(Ja,Ga,654183,0);e=c+e|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(Fa,Ea,-997805,-1);h=c+e|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(Ha,Ia,136657,0);e=d+h|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(La,Ka,-683901,-1);h=d+e|0;e=W+c|0;d=r+(d>>>0>h>>>0?e+1|0:e)|0;h=h+I|0;d=h>>>0>>0?d+1|0:d;e=(M&2097151)<<11|F>>>21;c=t&-2097152;C=e+(h-c|0)|0;c=(d-((c>>>0>h>>>0)+ra|0)|0)+(M>>21)|0;c=e>>>0>C>>>0?c+1|0:c;v=c;c=c-((C>>>0<4293918720)-1|0)|0;qa=c;d=g;n=C- -1048576|0;g=(c&2097151)<<11|n>>>21;e=d+g|0;c=(c>>21)+k|0;c=e>>>0>>0?c+1|0:c;J=c;I=e;c=Ai(e,c,-683901,-1);e=c+j|0;d=W+f|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(D,pa,-997805,-1);f=c+e|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;d=Ai(L,G,136657,0);f=d+f|0;e=W+c|0;F=f;l=d>>>0>f>>>0?e+1|0:e;c=q&-2097152;j=ta-c|0;r=o-((c>>>0>ta>>>0)+cb|0)|0;d=Ai(ea,i,ka,0);c=W;e=d;d=Ai(fa,0,la,i);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(ga,0,ma,i);e=d+e|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(ia,i,na,0);f=d+e|0;e=W+c|0;d=d>>>0>f>>>0?e+1|0:e;c=(z[s+7|0]|z[s+8|0]<<8|(z[s+9|0]<<16|z[s+10|0]<<24))>>>7&2097151;e=c+f|0;t=e;h=c>>>0>e>>>0?d+1|0:d;c=Ai(ea,i,la,i);d=W;e=c;c=Ai(fa,0,na,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(ia,i,ma,i);f=c+e|0;c=W+d|0;k=f;f=e>>>0>f>>>0?c+1|0:c;d=z[s+6|0];c=0;ra=z[s+2|0]|z[s+3|0]<<8|(z[s+4|0]<<16|z[s+5|0]<<24);g=d<<8|ra>>>24;e=c;c=z[s+7|0];d=0;c=c<<16|g;d=d|e;c=((d&3)<<30|c>>>2)&2097151;k=c+k|0;e=f;e=c>>>0>k>>>0?e+1|0:e;g=e;c=e-((k>>>0<4293918720)-1|0)|0;sa=c;A=k- -1048576|0;e=(c&2097151)<<11|A>>>21;o=e+t|0;c=(c>>>21|0)+h|0;c=e>>>0>o>>>0?c+1|0:c;m=c;c=c-((o>>>0<4293918720)-1|0)|0;ua=c;d=c>>>21|0;p=o- -1048576|0;c=(c&2097151)<<11|p>>>21;f=c+j|0;e=d+r|0;e=c>>>0>f>>>0?e+1|0:e;d=Ai(O,Aa,666643,0);f=d+f|0;c=W+e|0;c=d>>>0>f>>>0?c+1|0:c;d=Ai(Ba,Ta,470296,0);e=d+f|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(I,J,136657,0);f=d+e|0;d=W+c|0;d=e>>>0>f>>>0?d+1|0:d;c=Ai(D,pa,654183,0);e=c+f|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(L,G,-997805,-1);j=c+e|0;e=W+d|0;e=c>>>0>j>>>0?e+1|0:e;r=e;c=e-((j>>>0<4293918720)-1|0)|0;M=c;t=j- -1048576|0;e=(c&2097151)<<11|t>>>21;f=e+F|0;c=(c>>21)+l|0;c=e>>>0>f>>>0?c+1|0:c;e=c-((f>>>0<4293918720)-1|0)|0;F=e;l=f- -1048576|0;h=(e&2097151)<<11|l>>>21;q=h+oa|0;e=(e>>21)+wa|0;K=q;q=h>>>0>q>>>0?e+1|0:e;h=f;d=c;c=n&-2097152;n=(x&2097151)<<11|E>>>21;f=(C-c|0)+n|0;c=(v-((c>>>0>C>>>0)+qa|0)|0)+(x>>21)|0;c=f>>>0>>0?c+1|0:c;x=c;c=c-((f>>>0<4293918720)-1|0)|0;oa=c;e=c>>21;C=e;v=f- -1048576|0;O=(c&2097151)<<11|v>>>21;c=Ai(O,e,-683901,-1);e=c+h|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=l&-2097152;wa=e-c|0;ta=d-((c>>>0>e>>>0)+F|0)|0;d=Ai(O,C,136657,0);e=d+j|0;c=W+r|0;c=d>>>0>e>>>0?c+1|0:c;d=t&-2097152;ya=e-d|0;M=c-((d>>>0>e>>>0)+M|0)|0;d=Ai(Ba,Ta,666643,0);e=p&-2097152;h=d+(o-e|0)|0;c=W+(m-((e>>>0>o>>>0)+ua|0)|0)|0;c=d>>>0>h>>>0?c+1|0:c;e=Ai(I,J,-997805,-1);h=e+h|0;d=W+c|0;d=e>>>0>h>>>0?d+1|0:d;c=Ai(D,pa,470296,0);h=c+h|0;e=W+d|0;e=c>>>0>h>>>0?e+1|0:e;d=Ai(L,G,654183,0);h=d+h|0;c=W+e|0;F=h;r=d>>>0>h>>>0?c+1|0:c;e=ra>>>5&2097151;c=Ai(ea,i,na,0);d=W;l=c;c=Ai(fa,0,ma,i);h=l+c|0;d=W+d|0;c=c>>>0>h>>>0?d+1|0:d;d=e+h|0;c=d>>>0>>0?c+1|0:c;l=d;e=c;d=Ai(ea,i,ma,i);c=z[s+2|0];c=c<<16&2031616|(z[s|0]|z[s+1|0]<<8);o=d+c|0;d=W;d=c>>>0>o>>>0?d+1|0:d;n=d;d=d-((o>>>0<4293918720)-1|0)|0;qa=d;c=d>>>21|0;m=o- -1048576|0;d=(d&2097151)<<11|m>>>21;E=d+l|0;c=c+e|0;c=d>>>0>E>>>0?c+1|0:c;p=c;d=c-((E>>>0<4293918720)-1|0)|0;ra=d;j=E- -1048576|0;e=(d&2097151)<<11|j>>>21;h=e+k|0;d=(d>>>21|0)+g|0;d=e>>>0>h>>>0?d+1|0:d;e=Ai(I,J,654183,0);g=A&-2097152;k=e+(h-g|0)|0;c=W+(d-((g>>>0>h>>>0)+sa|0)|0)|0;c=e>>>0>k>>>0?c+1|0:c;d=Ai(D,pa,666643,0);e=d+k|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(L,G,470296,0);t=d+e|0;d=W+c|0;d=e>>>0>t>>>0?d+1|0:d;l=d;d=d-((t>>>0<4293918720)-1|0)|0;ua=d;c=d>>21;h=t- -1048576|0;d=(d&2097151)<<11|h>>>21;k=d+F|0;e=c+r|0;e=d>>>0>k>>>0?e+1|0:e;d=e-((k>>>0<4293918720)-1|0)|0;A=d;g=k- -1048576|0;r=(d&2097151)<<11|g>>>21;D=r+ya|0;d=(d>>21)+M|0;pa=D;r=r>>>0>D>>>0?d+1|0:d;c=Ai(O,C,-997805,-1);k=c+k|0;d=W+e|0;d=c>>>0>k>>>0?d+1|0:d;c=g&-2097152;M=k-c|0;F=d-((c>>>0>k>>>0)+A|0)|0;d=Ai(O,C,654183,0);e=d+t|0;c=W+l|0;c=d>>>0>e>>>0?c+1|0:c;d=h&-2097152;D=e-d|0;A=c-((d>>>0>e>>>0)+ua|0)|0;c=Ai(I,J,470296,0);d=j&-2097152;g=c+(E-d|0)|0;e=W+(p-((d>>>0>E>>>0)+ra|0)|0)|0;e=c>>>0>g>>>0?e+1|0:e;d=Ai(L,G,666643,0);g=d+g|0;c=W+e|0;k=g;e=d>>>0>g>>>0?c+1|0:c;d=Ai(I,J,666643,0);g=m&-2097152;j=d+(o-g|0)|0;c=W+(n-((qa&4095)+(g>>>0>o>>>0)|0)|0)|0;c=d>>>0>j>>>0?c+1|0:c;t=c;c=c-((j>>>0<4293918720)-1|0)|0;n=c;l=j- -1048576|0;g=(c&2097151)<<11|l>>>21;h=g+k|0;c=(c>>21)+e|0;c=g>>>0>h>>>0?c+1|0:c;e=c;c=c-((h>>>0<4293918720)-1|0)|0;m=c;k=h- -1048576|0;g=(c&2097151)<<11|k>>>21;p=g+D|0;c=(c>>21)+A|0;g=g>>>0>p>>>0?c+1|0:c;c=Ai(O,C,470296,0);d=c+h|0;e=W+e|0;e=c>>>0>d>>>0?e+1|0:e;c=k&-2097152;h=d-c|0;k=e-((c>>>0>d>>>0)+m|0)|0;d=Ai(O,C,666643,0);e=l&-2097152;A=d+(j-e|0)|0;c=W+(t-((e>>>0>j>>>0)+n|0)|0)|0;c=d>>>0>A>>>0?c+1|0:c;e=c>>21;c=(c&2097151)<<11|A>>>21;n=c+h|0;d=e+k|0;d=c>>>0>n>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|n>>>21;m=d+p|0;c=c+g|0;c=d>>>0>m>>>0?c+1|0:c;d=c>>21;c=(c&2097151)<<11|m>>>21;g=c+M|0;d=d+F|0;d=c>>>0>g>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|g>>>21;p=d+pa|0;e=c+r|0;e=d>>>0>p>>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|p>>>21;j=e+wa|0;c=d+ta|0;c=e>>>0>j>>>0?c+1|0:c;e=c>>21;c=(c&2097151)<<11|j>>>21;r=c+K|0;d=e+q|0;d=c>>>0>r>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|r>>>21;t=d+N|0;c=c+za|0;c=d>>>0>t>>>0?c+1|0:c;d=c>>21;c=(c&2097151)<<11|t>>>21;l=c+xa|0;d=d+B|0;d=c>>>0>l>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|l>>>21;h=d+_a|0;e=c+Ma|0;e=d>>>0>h>>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|h>>>21;k=e+Xa|0;c=d+Ya|0;d=v&-2097152;q=f-d|0;c=e>>>0>k>>>0?c+1|0:c;v=q+((c&2097151)<<11|k>>>21)|0;c=(x-((d>>>0>f>>>0)+oa|0)|0)+(c>>21)|0;c=q>>>0>v>>>0?c+1|0:c;B=(c&2097151)<<11|v>>>21;d=c>>21;x=d;c=Ai(B,d,666643,0);d=A&2097151;A=c+d|0;c=W;c=d>>>0>A>>>0?c+1|0:c;f=c;w[a+32|0]=A;w[a+33|0]=(c&255)<<24|A>>>8;c=n&2097151;d=Ai(B,x,470296,0)+c|0;e=W;q=(f&2097151)<<11|A>>>21;n=q+d|0;c=(f>>21)+(c>>>0>d>>>0?e+1|0:e)|0;c=n>>>0>>0?c+1|0:c;w[a+36|0]=(c&2047)<<21|n>>>11;d=c;e=n;w[a+35|0]=(c&7)<<29|e>>>3;w[a+34|0]=((f&65535)<<16|A>>>16)&31|e<<5;f=m&2097151;m=Ai(B,x,654183,0)+f|0;c=W;f=f>>>0>m>>>0?c+1|0:c;n=(d&2097151)<<11|e>>>21;m=n+m|0;d=(d>>21)+f|0;d=m>>>0>>0?d+1|0:d;c=d;w[a+38|0]=(c&63)<<26|m>>>6;f=m;w[a+37|0]=f<<2|(e&1572864)>>>19;e=g&2097151;g=Ai(B,x,-997805,-1)+e|0;d=W;d=e>>>0>g>>>0?d+1|0:d;e=c;c=c>>21;m=(e&2097151)<<11|f>>>21;g=m+g|0;e=c+d|0;e=g>>>0>>0?e+1|0:e;w[a+41|0]=(e&511)<<23|g>>>9;w[a+40|0]=(e&1)<<31|g>>>1;w[a+39|0]=g<<7|(f&2080768)>>>14;d=p&2097151;f=Ai(B,x,136657,0)+d|0;c=W;c=d>>>0>f>>>0?c+1|0:c;d=e;e=d>>21;p=(d&2097151)<<11|g>>>21;f=p+f|0;d=c+e|0;d=f>>>0

>>0?d+1|0:d;w[a+44|0]=(d&4095)<<20|f>>>12;e=f;w[a+43|0]=(d&15)<<28|e>>>4;w[a+42|0]=e<<4|(g&1966080)>>>17;f=j&2097151;g=Ai(B,x,-683901,-1)+f|0;c=W;c=f>>>0>g>>>0?c+1|0:c;f=d;d=d>>21;j=g;g=(f&2097151)<<11|e>>>21;f=j+g|0;d=c+d|0;d=f>>>0>>0?d+1|0:d;w[a+46|0]=(d&127)<<25|f>>>7;w[a+45|0]=f<<1|(e&1048576)>>>20;c=d>>21;d=(d&2097151)<<11|f>>>21;g=d+(r&2097151)|0;e=d>>>0>g>>>0?c+1|0:c;w[a+49|0]=(e&1023)<<22|g>>>10;w[a+48|0]=(e&3)<<30|g>>>2;w[a+47|0]=g<<6|(f&2064384)>>>15;c=e>>21;d=(e&2097151)<<11|g>>>21;e=d+(t&2097151)|0;c=d>>>0>e>>>0?c+1|0:c;w[a+52|0]=(c&8191)<<19|e>>>13;w[a+51|0]=(c&31)<<27|e>>>5;d=l&2097151;l=(c&2097151)<<11|e>>>21;f=d+l|0;d=c>>21;d=f>>>0>>0?d+1|0:d;l=f;w[a+53|0]=f;w[a+50|0]=e<<3|(g&1835008)>>>18;w[a+54|0]=(d&255)<<24|f>>>8;g=(d&2097151)<<11|f>>>21;f=g+(h&2097151)|0;e=d>>21;e=f>>>0>>0?e+1|0:e;w[a+57|0]=(e&2047)<<21|f>>>11;w[a+56|0]=(e&7)<<29|f>>>3;w[a+55|0]=((d&65535)<<16|l>>>16)&31|f<<5;c=e>>21;d=(e&2097151)<<11|f>>>21;e=d+(k&2097151)|0;c=d>>>0>e>>>0?c+1|0:c;w[a+59|0]=(c&63)<<26|e>>>6;w[a+58|0]=e<<2|(f&1572864)>>>19;d=c;c=c>>21;k=(d&2097151)<<11|e>>>21;g=v&2097151;f=k+g|0;d=f>>>0>>0?c+1|0:c;w[a+63|0]=(d&131071)<<15|f>>>17;c=f;w[a+62|0]=(d&511)<<23|c>>>9;w[a+60|0]=c<<7|(e&2080768)>>>14;w[a+61|0]=k+v>>>1;ja(u,64);ja(s,64);if(b){y[b>>2]=64;y[b+4>>2]=0;}T=H+560|0;return 0}function ha(a,b,c){var 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,x=0,y=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,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,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,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0;e=z[c+2|0];M=e<<16&2031616|(z[c|0]|z[c+1|0]<<8);p=z[b+23|0]|z[b+24|0]<<8|(z[b+25|0]<<16|z[b+26|0]<<24);N=p>>>5&2097151;g=Ai(M,0,N,0);f=W;e=z[b+23|0];O=e<<16&2031616|(z[b+21|0]|z[b+22|0]<<8);i=z[c+2|0]|z[c+3|0]<<8|(z[c+4|0]<<16|z[c+5|0]<<24);P=i>>>5&2097151;d=Ai(O,0,P,0);g=d+g|0;e=W+f|0;e=d>>>0>g>>>0?e+1|0:e;Q=(z[c+7|0]|z[c+8|0]<<8|(z[c+9|0]<<16|z[c+10|0]<<24))>>>7&2097151;t=z[b+15|0]|z[b+16|0]<<8|(z[b+17|0]<<16|z[b+18|0]<<24);R=t>>>6&2097151;f=Ai(Q,0,R,0);g=f+g|0;d=W+e|0;l=g;f=f>>>0>g>>>0?d+1|0:d;e=z[b+14|0];d=0;m=z[b+10|0]|z[b+11|0]<<8|(z[b+12|0]<<16|z[b+13|0]<<24);j=e<<8|m>>>24;g=z[b+15|0];g=g<<16;n=d|d;e=g|j;S=((n&1)<<31|e>>>1)&2097151;k=z[c+10|0]|z[c+11|0]<<8|(z[c+12|0]<<16|z[c+13|0]<<24);T=k>>>4&2097151;d=Ai(S,0,T,0);e=d+l|0;f=W+f|0;n=e;g=e>>>0>>0?f+1|0:f;d=z[c+6|0];f=0;l=d<<8|i>>>24;e=z[c+7|0];d=0;e=l|e<<16;f=d|f;U=((f&3)<<30|e>>>2)&2097151;i=U;l=0;e=z[b+19|0];j=e<<8|t>>>24;f=d;d=z[b+20|0];e=0;d=d<<16|j;e=e|f;f=e>>>3|0;V=(e&7)<<29|d>>>3;ia=f;d=Ai(i,l,V,f);j=d+n|0;e=W+g|0;e=d>>>0>j>>>0?e+1|0:e;i=z[c+15|0]|z[c+16|0]<<8|(z[c+17|0]<<16|z[c+18|0]<<24);X=i>>>6&2097151;Y=(z[b+7|0]|z[b+8|0]<<8|(z[b+9|0]<<16|z[b+10|0]<<24))>>>7&2097151;f=Ai(X,0,Y,0);g=f+j|0;d=W+e|0;l=g;g=f>>>0>g>>>0?d+1|0:d;e=z[c+14|0];d=0;j=e<<8|k>>>24;e=d;d=z[c+15|0];f=0;d=d<<16;f=e|f;e=d|j;Z=((f&1)<<31|e>>>1)&2097151;_=m>>>4&2097151;d=Ai(Z,0,_,0);f=d+l|0;e=W+g|0;k=f;l=d>>>0>f>>>0?e+1|0:e;d=z[c+19|0];e=0;g=d<<8|i>>>24;d=z[c+20|0];f=0;d=g|d<<16;f=e|f;e=f>>>3|0;$=(f&7)<<29|d>>>3;A=e;g=e;d=z[b+6|0];e=0;n=z[b+2|0]|z[b+3|0]<<8|(z[b+4|0]<<16|z[b+5|0]<<24);i=d<<8|n>>>24;d=z[b+7|0];d=d<<16|i;e=e|e;aa=((e&3)<<30|d>>>2)&2097151;e=Ai($,g,aa,0);g=e+k|0;d=W+l|0;f=e>>>0>g>>>0?d+1|0:d;e=z[c+23|0];ba=e<<16&2031616|(z[c+21|0]|z[c+22|0]<<8);ca=n>>>5&2097151;e=Ai(ba,0,ca,0);g=e+g|0;d=W+f|0;f=e>>>0>g>>>0?d+1|0:d;e=z[b+2|0];da=e<<16&2031616|(z[b|0]|z[b+1|0]<<8);n=z[c+23|0]|z[c+24|0]<<8|(z[c+25|0]<<16|z[c+26|0]<<24);D=n>>>5&2097151;d=Ai(da,0,D,0);g=d+g|0;e=W+f|0;i=g;l=d>>>0>g>>>0?e+1|0:e;d=Ai(O,h,M,h);e=W;f=d;d=Ai(V,ia,P,0);g=f+d|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;d=Ai(Q,0,S,h);g=d+g|0;e=W+f|0;e=d>>>0>g>>>0?e+1|0:e;f=Ai(T,0,_,0);g=f+g|0;d=W+e|0;d=f>>>0>g>>>0?d+1|0:d;e=Ai(R,0,U,h);f=e+g|0;d=W+d|0;d=e>>>0>f>>>0?d+1|0:d;e=f;f=Ai(X,0,aa,h);g=e+f|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;d=Ai(Z,h,Y,0);g=d+g|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;d=Ai($,A,ca,0);g=d+g|0;e=W+f|0;f=Ai(ba,h,da,h);j=f+g|0;d=W+(d>>>0>g>>>0?e+1|0:e)|0;d=f>>>0>j>>>0?d+1|0:d;g=d;d=d-((j>>>0<4293918720)-1|0)|0;B=d;e=d>>>21|0;v=j- -1048576|0;d=(d&2097151)<<11|v>>>21;i=d+i|0;e=e+l|0;e=d>>>0>i>>>0?e+1|0:e;f=e-((i>>>0<4293918720)-1|0)|0;r=f;s=i- -1048576|0;d=s&-2097152;q=i-d|0;o=e-((d>>>0>i>>>0)+f|0)|0;e=z[c+27|0];d=0;l=e<<8|n>>>24;f=d;d=z[c+28|0];e=0;d=d<<16;f=e|f;e=d|l;ea=((f&3)<<30|e>>>2)&2097151;E=(z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24))>>>7|0;i=Ai(ea,0,E,0);l=W;d=z[b+27|0];e=0;b=z[b+28|0];f=0;d=d<<8|p>>>24|b<<16;e=e|f;fa=((e&3)<<30|d>>>2)&2097151;F=(z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24))>>>7|0;b=Ai(fa,0,F,0);c=b+i|0;d=W+l|0;d=b>>>0>c>>>0?d+1|0:d;f=c;b=Ai(N,0,F,0);c=W;e=b;b=Ai(D,0,E,0);l=e+b|0;e=W+c|0;e=b>>>0>l>>>0?e+1|0:e;b=Ai(ea,h,fa,h);n=b+l|0;e=W+e|0;e=b>>>0>n>>>0?e+1|0:e;l=e;b=e-((n>>>0<4293918720)-1|0)|0;k=b;e=b>>>21|0;c=n- -1048576|0;b=(b&2097151)<<11|c>>>21;i=b+f|0;f=e+d|0;f=b>>>0>i>>>0?f+1|0:f;e=f-((i>>>0<4293918720)-1|0)|0;t=e;m=i- -1048576|0;d=m&-2097152;b=i-d|0;d=f-((e&131071)+(d>>>0>i>>>0)|0)|0;ua=d;va=b;b=Ai(b,d,666643,0);e=b+q|0;d=W+o|0;I=e;i=b>>>0>e>>>0?d+1|0:d;b=c&-2097152;q=n-b|0;x=l-((k&131071)+(b>>>0>n>>>0)|0)|0;b=Ai(ba,h,E,0);c=W;d=b;b=Ai(D,0,fa,h);e=d+b|0;d=W+c|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(O,h,F,0);c=b+e|0;e=W+d|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(N,0,ea,h);c=b+c|0;d=W+e|0;k=c;b=b>>>0>c>>>0?d+1|0:d;c=Ai(N,0,D,0);d=W;e=c;c=Ai($,A,E,0);f=e+c|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(ba,h,fa,h);d=c+f|0;f=W+e|0;f=c>>>0>d>>>0?f+1|0:f;c=Ai(V,ia,F,0);e=c+d|0;d=W+f|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(O,h,ea,h);o=c+e|0;e=W+d|0;e=c>>>0>o>>>0?e+1|0:e;n=e;c=e-((o>>>0<4293918720)-1|0)|0;u=c;d=c>>>21|0;l=o- -1048576|0;c=(c&2097151)<<11|l>>>21;k=c+k|0;e=b+d|0;e=c>>>0>k>>>0?e+1|0:e;c=e;e=e-((k>>>0<4293918720)-1|0)|0;p=e;d=q;b=k- -1048576|0;q=(e&2097151)<<11|b>>>21;f=d+q|0;e=(e>>>21|0)+x|0;e=f>>>0>>0?e+1|0:e;wa=e;d=b&-2097152;b=k-d|0;xa=b;k=c-((d>>>0>k>>>0)+p|0)|0;ya=k;za=f;c=Ai(f,e,470296,0);e=c+I|0;d=W+i|0;d=c>>>0>e>>>0?d+1|0:d;b=Ai(b,k,654183,0);c=b+e|0;f=W+d|0;x=c;i=b>>>0>c>>>0?f+1|0:f;b=l&-2097152;p=o-b|0;o=n-((b>>>0>o>>>0)+u|0)|0;b=Ai($,A,fa,h);c=W;d=b;b=Ai(X,0,E,0);e=d+b|0;d=W+c|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(O,h,D,0);c=b+e|0;e=W+d|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(N,0,ba,h);c=b+c|0;f=W+e|0;f=b>>>0>c>>>0?f+1|0:f;b=Ai(R,0,F,0);c=b+c|0;d=W+f|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(V,ia,ea,h);c=b+c|0;e=W+d|0;n=c;l=b>>>0>c>>>0?e+1|0:e;b=Ai(Z,h,E,0);c=W;d=b;b=Ai(X,0,fa,h);e=d+b|0;d=W+c|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(N,0,$,A);c=b+e|0;e=W+d|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(V,ia,D,0);c=b+c|0;f=W+e|0;f=b>>>0>c>>>0?f+1|0:f;b=Ai(O,h,ba,h);c=b+c|0;d=W+f|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(S,h,F,0);c=b+c|0;e=W+d|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(R,0,ea,h);c=b+c|0;d=W+e|0;d=b>>>0>c>>>0?d+1|0:d;b=d;d=d-((c>>>0<4293918720)-1|0)|0;C=d;e=d>>>21|0;u=c- -1048576|0;d=(d&2097151)<<11|u>>>21;G=d+n|0;f=e+l|0;f=d>>>0>G>>>0?f+1|0:f;q=f;d=f-((G>>>0<4293918720)-1|0)|0;ga=d;k=G- -1048576|0;l=(d&2097151)<<11|k>>>21;f=l+p|0;d=(d>>>21|0)+o|0;d=f>>>0>>0?d+1|0:d;Aa=d;Ba=f;d=Ai(f,d,-997805,-1);f=d+x|0;e=W+i|0;o=f;i=d>>>0>f>>>0?e+1|0:e;l=j;j=g;d=Ai(M,h,V,ia);e=W;f=d;d=Ai(R,0,P,0);g=f+d|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;e=Ai(Q,0,_,0);g=e+g|0;d=W+f|0;d=e>>>0>g>>>0?d+1|0:d;f=Ai(T,0,Y,0);g=f+g|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;f=Ai(S,h,U,h);g=f+g|0;d=W+e|0;d=f>>>0>g>>>0?d+1|0:d;f=Ai(X,0,ca,0);g=f+g|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;d=Ai(Z,h,aa,h);g=d+g|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;e=Ai($,A,da,h);g=e+g|0;d=W+f|0;n=g;g=e>>>0>g>>>0?d+1|0:d;d=Ai(M,h,R,0);e=W;f=d;d=Ai(P,0,S,h);f=f+d|0;e=W+e|0;e=d>>>0>f>>>0?e+1|0:e;d=f;f=Ai(Q,0,Y,0);p=d+f|0;d=W+e|0;d=f>>>0>p>>>0?d+1|0:d;f=Ai(T,0,aa,h);p=f+p|0;e=W+d|0;e=f>>>0>p>>>0?e+1|0:e;d=Ai(U,h,_,0);p=d+p|0;f=W+e|0;f=d>>>0>p>>>0?f+1|0:f;e=Ai(X,0,da,h);p=e+p|0;d=W+f|0;f=Ai(Z,h,ca,0);ja=f+p|0;e=W+(e>>>0>p>>>0?d+1|0:d)|0;e=f>>>0>ja>>>0?e+1|0:e;ka=e;e=e-((ja>>>0<4293918720)-1|0)|0;Ja=e;ha=ja- -1048576|0;f=(e&2097151)<<11|ha>>>21;la=f+n|0;e=(e>>>21|0)+g|0;e=f>>>0>la>>>0?e+1|0:e;y=e;e=e-((la>>>0<4293918720)-1|0)|0;Ka=e;I=la- -1048576|0;f=(e&2097151)<<11|I>>>21;l=f+l|0;e=(e>>>21|0)+j|0;e=f>>>0>l>>>0?e+1|0:e;d=Ai(za,wa,666643,0);f=v&-2097152;g=d+(l-f|0)|0;e=W+(e-((f>>>0>l>>>0)+B|0)|0)|0;e=d>>>0>g>>>0?e+1|0:e;f=Ai(xa,ya,470296,0);g=f+g|0;d=W+e|0;d=f>>>0>g>>>0?d+1|0:d;f=Ai(Ba,Aa,654183,0);J=f+g|0;e=W+d|0;e=f>>>0>J>>>0?e+1|0:e;x=e;e=e-((J>>>0<4293918720)-1|0)|0;ra=e;d=e>>21;p=J- -1048576|0;e=(e&2097151)<<11|p>>>21;B=e+o|0;d=d+i|0;d=e>>>0>B>>>0?d+1|0:d;o=d;e=d-((B>>>0<4293918720)-1|0)|0;ma=e;v=B- -1048576|0;pa=(e&2097151)<<11|v>>>21;n=e>>21;d=Ai(M,h,fa,h);e=W;f=d;d=Ai(N,0,P,0);f=f+d|0;e=W+e|0;e=d>>>0>f>>>0?e+1|0:e;d=Ai(Q,0,V,ia);g=d+f|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;e=Ai(R,0,T,0);g=e+g|0;d=W+f|0;d=e>>>0>g>>>0?d+1|0:d;f=Ai(O,h,U,h);g=f+g|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;f=Ai(X,0,_,0);g=f+g|0;d=W+e|0;d=f>>>0>g>>>0?d+1|0:d;f=Ai(Z,h,S,h);g=f+g|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;d=Ai(Y,0,$,A);g=d+g|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;e=Ai(ca,0,D,0);g=e+g|0;d=W+f|0;d=e>>>0>g>>>0?d+1|0:d;f=Ai(aa,h,ba,h);g=f+g|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;d=g;g=Ai(ea,h,da,h);f=d+g|0;d=W+e|0;i=f;l=f>>>0>>0?d+1|0:d;K=Ai(E,0,F,0);g=K- -1048576|0;L=W;f=L-((K>>>0<4293918720)-1|0)|0;j=f;d=g&-2097152;e=K-d|0;d=L-((f&524287)+(d>>>0>K>>>0)|0)|0;m=(t&2097151)<<11|m>>>21;f=m+e|0;d=(t>>>21|0)+d|0;d=f>>>0>>0?d+1|0:d;Ca=d;Da=f;e=(r&2097151)<<11|s>>>21;m=Ai(f,d,666643,0)+e|0;d=W+(r>>>21|0)|0;d=e>>>0>m>>>0?d+1|0:d;f=Ai(va,ua,470296,0);m=f+m|0;e=W+d|0;e=(f>>>0>m>>>0?e+1|0:e)+l|0;d=i+m|0;e=d>>>0>>0?e+1|0:e;f=Ai(za,wa,654183,0);m=f+d|0;d=W+e|0;qa=i- -1048576|0;l=l-((i>>>0<4293918720)-1|0)|0;K=l;e=Ai(xa,ya,-997805,-1);i=e+m|0;f=W+(f>>>0>m>>>0?d+1|0:d)|0;f=e>>>0>i>>>0?f+1|0:f;d=Ai(Ba,Aa,136657,0);e=qa&-2097152;s=d+(i-e|0)|0;e=W+(f-((e>>>0>i>>>0)+l|0)|0)|0;t=d>>>0>s>>>0?e+1|0:e;f=t+n|0;d=s+pa|0;f=d>>>0>>0?f+1|0:f;na=d;m=f;d=k&-2097152;L=G-d|0;G=q-((d>>>0>G>>>0)+ga|0)|0;f=j>>>21|0;Ea=f;d=c;ta=(j&2097151)<<11|g>>>21;c=Ai(ta,f,-683901,-1);e=d+c|0;d=W+b|0;b=u&-2097152;q=e-b|0;r=(c>>>0>e>>>0?d+1|0:d)-((b>>>0>e>>>0)+C|0)|0;b=Ai(N,0,X,0);c=W;d=b;b=Ai(T,0,E,0);d=d+b|0;e=W+c|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(Z,h,fa,h);c=b+d|0;f=W+e|0;f=b>>>0>c>>>0?f+1|0:f;b=Ai(O,h,$,A);c=b+c|0;d=W+f|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(R,0,D,0);c=b+c|0;d=W+d|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(V,ia,ba,h);c=b+c|0;e=W+d|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(_,0,F,0);c=b+c|0;e=W+e|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(S,h,ea,h);c=b+c|0;f=W+e|0;g=c;b=b>>>0>c>>>0?f+1|0:f;c=Ai(T,0,fa,h);d=W;e=c;c=Ai(Q,0,E,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(O,h,X,0);e=c+e|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(N,0,Z,h);f=c+e|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(V,ia,$,A);d=c+f|0;e=W+e|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(S,h,D,0);d=c+d|0;f=W+e|0;f=c>>>0>d>>>0?f+1|0:f;c=Ai(R,0,ba,h);e=c+d|0;d=W+f|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(Y,0,F,0);e=c+e|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(_,0,ea,h);k=c+e|0;e=W+d|0;e=c>>>0>k>>>0?e+1|0:e;n=e;c=e-((k>>>0<4293918720)-1|0)|0;oa=c;d=c>>>21|0;i=k- -1048576|0;c=(c&2097151)<<11|i>>>21;u=c+g|0;f=b+d|0;f=c>>>0>u>>>0?f+1|0:f;l=f;b=f-((u>>>0<4293918720)-1|0)|0;C=b;d=b>>>21|0;j=u- -1048576|0;b=(b&2097151)<<11|j>>>21;q=b+q|0;e=d+r|0;e=b>>>0>q>>>0?e+1|0:e;g=e;c=e-((q>>>0<4293918720)-1|0)|0;r=c;d=c>>21;b=q- -1048576|0;e=(c&2097151)<<11|b>>>21;c=e+L|0;f=d+G|0;f=c>>>0>>0?f+1|0:f;Fa=f;ga=s- -1048576|0;e=t-((s>>>0<4293918720)-1|0)|0;pa=e;sa=c;c=Ai(c,f,-683901,-1);f=c+na|0;d=W+m|0;d=c>>>0>f>>>0?d+1|0:d;c=ga&-2097152;m=f-c|0;G=m- -1048576|0;e=d-((c>>>0>f>>>0)+e|0)|0;d=e-((m>>>0<4293918720)-1|0)|0;L=d;c=G&-2097152;Pa=m-c|0;La=e-((c>>>0>m>>>0)+d|0)|0;c=Ai(sa,Fa,136657,0);d=v&-2097152;f=c+(B-d|0)|0;e=W+(o-((d>>>0>B>>>0)+ma|0)|0)|0;Ga=f;c=c>>>0>f>>>0?e+1|0:e;b=b&-2097152;H=q-b|0;v=g-((b>>>0>q>>>0)+r|0)|0;b=Ai(Da,Ca,-683901,-1);d=W;e=b;b=Ai(ta,Ea,136657,0);f=e+b|0;d=W+d|0;e=l+(b>>>0>f>>>0?d+1|0:d)|0;d=f+u|0;e=d>>>0>>0?e+1|0:e;b=j&-2097152;t=d-b|0;m=e-((b>>>0>d>>>0)+C|0)|0;b=Ai(ta,Ea,-997805,-1);e=b+k|0;d=W+n|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(Da,Ca,136657,0);e=b+e|0;d=W+d|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(va,ua,-683901,-1);f=b+e|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=i&-2097152;l=f-b|0;j=e-((b>>>0>f>>>0)+oa|0)|0;b=Ai(N,0,T,0);d=W;e=b;b=Ai(Q,0,fa,h);f=e+b|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=Ai(U,h,E,0);f=b+f|0;d=W+e|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(X,0,V,ia);f=b+f|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=Ai(O,h,Z,h);f=b+f|0;d=W+e|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(R,0,$,A);e=b+f|0;f=W+d|0;f=b>>>0>e>>>0?f+1|0:f;b=Ai(_,0,D,0);d=b+e|0;e=W+f|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(S,h,ba,h);f=b+d|0;d=W+e|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(aa,h,F,0);f=b+f|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=Ai(Y,0,ea,h);f=b+f|0;d=W+e|0;g=f;b=b>>>0>f>>>0?d+1|0:d;d=Ai(N,0,Q,0);e=W;f=d;d=Ai(P,0,E,0);i=f+d|0;f=W+e|0;f=d>>>0>i>>>0?f+1|0:f;d=Ai(O,h,T,0);i=d+i|0;e=W+f|0;e=d>>>0>i>>>0?e+1|0:e;f=Ai(U,h,fa,h);i=f+i|0;d=W+e|0;d=f>>>0>i>>>0?d+1|0:d;f=Ai(R,0,X,0);i=f+i|0;e=W+d|0;e=f>>>0>i>>>0?e+1|0:e;f=Ai(V,ia,Z,h);i=f+i|0;d=W+e|0;d=f>>>0>i>>>0?d+1|0:d;e=Ai(S,h,$,A);i=e+i|0;f=W+d|0;f=e>>>0>i>>>0?f+1|0:f;d=Ai(Y,0,D,0);i=d+i|0;e=W+f|0;e=d>>>0>i>>>0?e+1|0:e;f=Ai(_,0,ba,h);i=f+i|0;d=W+e|0;d=f>>>0>i>>>0?d+1|0:d;f=Ai(ca,0,F,0);i=f+i|0;e=W+d|0;e=f>>>0>i>>>0?e+1|0:e;f=Ai(aa,h,ea,h);ma=f+i|0;d=W+e|0;d=f>>>0>ma>>>0?d+1|0:d;B=d;d=d-((ma>>>0<4293918720)-1|0)|0;Qa=d;e=d>>>21|0;r=ma- -1048576|0;d=(d&2097151)<<11|r>>>21;na=d+g|0;e=b+e|0;e=d>>>0>na>>>0?e+1|0:e;s=e;b=e-((na>>>0<4293918720)-1|0)|0;Ra=b;e=b>>>21|0;u=na- -1048576|0;b=(b&2097151)<<11|u>>>21;oa=b+l|0;d=e+j|0;d=b>>>0>oa>>>0?d+1|0:d;q=d;b=d-((oa>>>0<4293918720)-1|0)|0;Sa=b;e=b>>21;o=oa- -1048576|0;b=(b&2097151)<<11|o>>>21;C=b+t|0;e=e+m|0;e=b>>>0>C>>>0?e+1|0:e;n=e;b=e-((C>>>0<4293918720)-1|0)|0;Ma=b;e=b>>21;g=C- -1048576|0;f=(b&2097151)<<11|g>>>21;b=f+H|0;d=e+v|0;d=b>>>0>>0?d+1|0:d;Ha=d;H=b;b=Ai(b,d,-683901,-1);d=b+Ga|0;f=W+c|0;Na=d;i=b>>>0>d>>>0?f+1|0:f;b=p&-2097152;Oa=J-b|0;ra=x-((b>>>0>J>>>0)+ra|0)|0;b=Ai(xa,ya,666643,0);c=I&-2097152;e=b+(la-c|0)|0;d=W+(y-((c>>>0>la>>>0)+Ka|0)|0)|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(Ba,Aa,470296,0);c=b+e|0;e=W+d|0;I=c;c=b>>>0>c>>>0?e+1|0:e;b=ha&-2097152;k=ja-b|0;l=ka-((b>>>0>ja>>>0)+Ja|0)|0;b=Ai(M,h,S,h);d=W;e=b;b=Ai(P,0,_,0);e=e+b|0;f=W+d|0;f=b>>>0>e>>>0?f+1|0:f;b=Ai(Q,0,aa,h);e=b+e|0;d=W+f|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(T,0,ca,0);f=b+e|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=Ai(U,h,Y,0);f=b+f|0;d=W+e|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(Z,h,da,h);f=b+f|0;e=W+d|0;j=f;b=b>>>0>f>>>0?e+1|0:e;d=Ai(M,h,_,0);e=W;f=d;d=Ai(P,0,Y,0);m=f+d|0;f=W+e|0;f=d>>>0>m>>>0?f+1|0:f;e=Ai(Q,0,ca,0);m=e+m|0;d=W+f|0;d=e>>>0>m>>>0?d+1|0:d;f=Ai(T,0,da,h);m=f+m|0;e=W+d|0;e=f>>>0>m>>>0?e+1|0:e;f=Ai(U,h,aa,h);J=f+m|0;d=W+e|0;d=f>>>0>J>>>0?d+1|0:d;x=d;d=d-((J>>>0<4293918720)-1|0)|0;Ta=d;e=d>>>21|0;p=J- -1048576|0;d=(d&2097151)<<11|p>>>21;ka=d+j|0;f=b+e|0;f=d>>>0>ka>>>0?f+1|0:f;v=f;b=f-((ka>>>0<4293918720)-1|0)|0;Ja=b;e=b>>>21|0;t=ka- -1048576|0;b=(b&2097151)<<11|t>>>21;f=b+k|0;d=e+l|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(Ba,Aa,666643,0);ha=b+f|0;e=W+d|0;e=b>>>0>ha>>>0?e+1|0:e;m=e;b=e-((ha>>>0<4293918720)-1|0)|0;Ka=b;d=b>>21;k=ha- -1048576|0;b=(b&2097151)<<11|k>>>21;y=b+I|0;d=c+d|0;d=b>>>0>y>>>0?d+1|0:d;l=d;b=d-((y>>>0<4293918720)-1|0)|0;Ga=b;d=b>>21;j=y- -1048576|0;b=(b&2097151)<<11|j>>>21;c=b+Oa|0;e=d+ra|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(sa,Fa,-997805,-1);d=b+c|0;f=W+e|0;f=b>>>0>d>>>0?f+1|0:f;c=g&-2097152;b=C-c|0;la=b;e=n-((c>>>0>C>>>0)+Ma|0)|0;Ia=e;c=Ai(H,Ha,136657,0);g=c+d|0;d=W+f|0;b=Ai(b,e,-683901,-1);n=b+g|0;d=W+(c>>>0>g>>>0?d+1|0:d)|0;d=b>>>0>n>>>0?d+1|0:d;g=d;b=d-((n>>>0<4293918720)-1|0)|0;ja=b;e=b>>21;f=n- -1048576|0;b=(b&2097151)<<11|f>>>21;I=b+Na|0;d=e+i|0;i=I;d=i>>>0>>0?d+1|0:d;c=d;d=d-((i>>>0<4293918720)-1|0)|0;C=d;b=i- -1048576|0;I=(d&2097151)<<11|b>>>21;ra=I+Pa|0;d=(d>>21)+La|0;La=ra;I=I>>>0>ra>>>0?d+1|0:d;b=b&-2097152;Ma=i-b|0;Na=c-((b>>>0>i>>>0)+C|0)|0;b=f&-2097152;Oa=n-b|0;ra=g-((b>>>0>n>>>0)+ja|0)|0;b=Ai(sa,Fa,654183,0);c=j&-2097152;d=b+(y-c|0)|0;e=W+(l-((c>>>0>y>>>0)+Ga|0)|0)|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(H,Ha,-997805,-1);c=b+d|0;d=W+e|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(la,Ia,136657,0);c=b+c|0;d=W+d|0;Ga=c;b=b>>>0>c>>>0?d+1|0:d;c=o&-2097152;ja=oa-c|0;y=q-((c>>>0>oa>>>0)+Sa|0)|0;c=Ai(Da,Ca,-997805,-1);d=W;e=c;c=Ai(ta,Ea,654183,0);f=e+c|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(va,ua,136657,0);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(za,wa,-683901,-1);f=c+f|0;d=W+d|0;e=s+(c>>>0>f>>>0?d+1|0:d)|0;d=f+na|0;e=d>>>0>>0?e+1|0:e;c=u&-2097152;o=d-c|0;u=e-((c>>>0>d>>>0)+Ra|0)|0;c=Ai(Da,Ca,654183,0);d=W;e=c;c=Ai(ta,Ea,470296,0);f=e+c|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(va,ua,-997805,-1);f=c+f|0;d=W+e|0;e=B+(c>>>0>f>>>0?d+1|0:d)|0;c=f+ma|0;e=c>>>0>>0?e+1|0:e;d=c;c=Ai(za,wa,136657,0);f=d+c|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(xa,ya,-683901,-1);e=c+f|0;f=W+d|0;f=c>>>0>e>>>0?f+1|0:f;c=r&-2097152;j=e-c|0;g=f-((c>>>0>e>>>0)+Qa|0)|0;c=Ai(M,h,E,0);d=W;e=c;c=Ai(P,0,fa,h);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(O,h,Q,0);e=c+e|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(V,ia,T,0);e=c+e|0;f=W+d|0;f=c>>>0>e>>>0?f+1|0:f;c=Ai(N,0,U,h);d=c+e|0;e=W+f|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(X,0,S,h);d=c+d|0;e=W+e|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(R,0,Z,h);f=c+d|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(_,0,$,A);e=c+f|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(aa,h,D,0);e=c+e|0;f=W+d|0;f=c>>>0>e>>>0?f+1|0:f;c=Ai(Y,0,ba,h);d=c+e|0;e=W+f|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(da,h,F,0);d=c+d|0;e=W+e|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(ea,h,ca,0);f=c+d|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=(K&2097151)<<11|qa>>>21;s=c+f|0;d=(K>>>21|0)+d|0;d=c>>>0>s>>>0?d+1|0:d;n=d;c=d-((s>>>0<4293918720)-1|0)|0;ma=c;e=c>>>21|0;i=s- -1048576|0;c=(c&2097151)<<11|i>>>21;q=c+j|0;e=e+g|0;e=c>>>0>q>>>0?e+1|0:e;l=e;c=e-((q>>>0<4293918720)-1|0)|0;C=c;e=c>>21;j=q- -1048576|0;c=(c&2097151)<<11|j>>>21;o=c+o|0;d=e+u|0;d=c>>>0>o>>>0?d+1|0:d;g=d;d=d-((o>>>0<4293918720)-1|0)|0;r=d;e=d>>21;c=o- -1048576|0;f=(d&2097151)<<11|c>>>21;d=f+ja|0;e=e+y|0;e=d>>>0>>0?e+1|0:e;y=e;qa=d;e=Ai(d,e,-683901,-1);f=e+Ga|0;d=W+b|0;u=f;b=e>>>0>f>>>0?d+1|0:d;d=Ai(sa,Fa,470296,0);e=k&-2097152;k=d+(ha-e|0)|0;f=W+(m-((e>>>0>ha>>>0)+Ka|0)|0)|0;f=d>>>0>k>>>0?f+1|0:f;d=Ai(H,Ha,654183,0);k=d+k|0;e=W+f|0;e=d>>>0>k>>>0?e+1|0:e;f=Ai(la,Ia,-997805,-1);k=f+k|0;d=W+e|0;d=f>>>0>k>>>0?d+1|0:d;e=c&-2097152;c=o-e|0;K=c;g=g-((e>>>0>o>>>0)+r|0)|0;A=g;f=Ai(qa,y,136657,0);k=f+k|0;e=W+d|0;c=Ai(c,g,-683901,-1);m=c+k|0;f=W+(f>>>0>k>>>0?e+1|0:e)|0;f=c>>>0>m>>>0?f+1|0:f;g=f;e=f-((m>>>0<4293918720)-1|0)|0;B=e;c=m- -1048576|0;f=(e&2097151)<<11|c>>>21;k=f+u|0;e=(e>>21)+b|0;e=f>>>0>k>>>0?e+1|0:e;f=e-((k>>>0<4293918720)-1|0)|0;r=f;b=k- -1048576|0;o=(f&2097151)<<11|b>>>21;u=o+Oa|0;f=(f>>21)+ra|0;D=u;u=o>>>0>u>>>0?f+1|0:f;b=b&-2097152;E=k-b|0;F=e-((b>>>0>k>>>0)+r|0)|0;b=c&-2097152;na=m-b|0;oa=g-((b>>>0>m>>>0)+B|0)|0;b=Ai(sa,Fa,666643,0);c=t&-2097152;d=b+(ka-c|0)|0;e=W+(v-((c>>>0>ka>>>0)+Ja|0)|0)|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(H,Ha,470296,0);c=b+d|0;f=W+e|0;f=b>>>0>c>>>0?f+1|0:f;b=Ai(la,Ia,654183,0);c=b+c|0;e=W+f|0;k=c;b=b>>>0>c>>>0?e+1|0:e;c=j&-2097152;j=q-c|0;g=l-((c>>>0>q>>>0)+C|0)|0;c=Ai(Da,Ca,470296,0);d=W;e=c;c=Ai(ta,Ea,666643,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(va,ua,654183,0);e=c+e|0;f=W+d|0;f=c>>>0>e>>>0?f+1|0:f;c=Ai(za,wa,-997805,-1);d=c+e|0;e=W+f|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(xa,ya,136657,0);f=c+d|0;e=W+e|0;d=n+(c>>>0>f>>>0?e+1|0:e)|0;c=f+s|0;d=c>>>0>>0?d+1|0:d;e=c;c=Ai(Ba,Aa,-683901,-1);f=e+c|0;d=W+d|0;d=c>>>0>f>>>0?d+1|0:d;c=(pa&2097151)<<11|ga>>>21;e=i&-2097152;r=c+(f-e|0)|0;e=(d-((e>>>0>f>>>0)+ma|0)|0)+(pa>>21)|0;e=c>>>0>r>>>0?e+1|0:e;q=e;c=e-((r>>>0<4293918720)-1|0)|0;C=c;d=c>>21;o=r- -1048576|0;f=(c&2097151)<<11|o>>>21;c=f+j|0;e=d+g|0;e=c>>>0>>0?e+1|0:e;pa=e;B=c;c=Ai(c,e,-683901,-1);d=c+k|0;f=W+b|0;f=c>>>0>d>>>0?f+1|0:f;b=Ai(qa,y,-997805,-1);c=b+d|0;e=W+f|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(K,A,136657,0);c=b+c|0;d=W+e|0;ga=c;j=b>>>0>c>>>0?d+1|0:d;b=p&-2097152;i=J-b|0;l=x-((b>>>0>J>>>0)+Ta|0)|0;b=Ai(M,h,Y,0);c=W;d=b;b=Ai(P,0,aa,h);d=d+b|0;e=W+c|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(Q,0,da,h);c=b+d|0;e=W+e|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(U,h,ca,0);c=b+c|0;d=W+e|0;e=c;b=b>>>0>e>>>0?d+1|0:d;c=Ai(M,h,aa,h);d=W;f=c;c=Ai(P,0,ca,0);g=f+c|0;f=W+d|0;f=c>>>0>g>>>0?f+1|0:f;c=Ai(U,h,da,h);g=c+g|0;d=W+f|0;d=c>>>0>g>>>0?d+1|0:d;c=d;d=d-((g>>>0<4293918720)-1|0)|0;sa=d;f=d>>>21|0;v=g- -1048576|0;d=(d&2097151)<<11|v>>>21;s=d+e|0;e=b+f|0;e=d>>>0>s>>>0?e+1|0:e;t=e;b=e-((s>>>0<4293918720)-1|0)|0;ka=b;f=b>>>21|0;m=s- -1048576|0;b=(b&2097151)<<11|m>>>21;e=b+i|0;d=f+l|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(H,Ha,666643,0);f=b+e|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=Ai(la,Ia,470296,0);d=b+f|0;e=W+e|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(B,pa,136657,0);f=b+d|0;d=W+e|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(qa,y,654183,0);e=b+f|0;f=W+d|0;f=b>>>0>e>>>0?f+1|0:f;b=Ai(K,A,-997805,-1);k=b+e|0;d=W+f|0;d=b>>>0>k>>>0?d+1|0:d;n=d;b=d-((k>>>0<4293918720)-1|0)|0;ha=b;f=b>>21;i=k- -1048576|0;d=(b&2097151)<<11|i>>>21;b=d+ga|0;e=f+j|0;e=b>>>0>>0?e+1|0:e;d=e-((b>>>0<4293918720)-1|0)|0;ga=d;l=b- -1048576|0;j=(d&2097151)<<11|l>>>21;p=j+na|0;d=(d>>21)+oa|0;ja=p;x=j>>>0>p>>>0?d+1|0:d;j=b;f=e;d=o&-2097152;o=(L&2097151)<<11|G>>>21;b=(r-d|0)+o|0;e=(q-((d>>>0>r>>>0)+C|0)|0)+(L>>21)|0;e=b>>>0>>0?e+1|0:e;p=e;e=e-((b>>>0<4293918720)-1|0)|0;ma=e;d=e>>21;r=d;q=b- -1048576|0;H=(e&2097151)<<11|q>>>21;e=Ai(H,d,-683901,-1);j=e+j|0;d=W+f|0;d=e>>>0>j>>>0?d+1|0:d;e=l&-2097152;na=j-e|0;oa=d-((e>>>0>j>>>0)+ga|0)|0;d=Ai(H,r,136657,0);f=d+k|0;e=W+n|0;e=d>>>0>f>>>0?e+1|0:e;d=i&-2097152;C=f-d|0;ga=e-((d>>>0>f>>>0)+ha|0)|0;d=Ai(la,Ia,666643,0);e=m&-2097152;f=d+(s-e|0)|0;e=W+(t-((e>>>0>s>>>0)+ka|0)|0)|0;e=d>>>0>f>>>0?e+1|0:e;d=Ai(B,pa,-997805,-1);j=d+f|0;f=W+e|0;f=d>>>0>j>>>0?f+1|0:f;e=Ai(qa,y,470296,0);j=e+j|0;d=W+f|0;d=e>>>0>j>>>0?d+1|0:d;f=Ai(K,A,654183,0);j=f+j|0;e=W+d|0;L=j;n=f>>>0>j>>>0?e+1|0:e;j=g;g=c;c=Ai(P,0,da,h);d=W;e=c;c=Ai(M,h,ca,0);f=e+c|0;d=W+d|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(M,h,da,h);e=W;J=e;s=c;t=c- -1048576|0;c=e-((c>>>0<4293918720)-1|0)|0;ka=c;e=c>>>21|0;c=(c&2097151)<<11|t>>>21;o=c+f|0;f=e+d|0;f=c>>>0>o>>>0?f+1|0:f;m=f;c=f-((o>>>0<4293918720)-1|0)|0;ha=c;e=c>>>21|0;k=o- -1048576|0;c=(c&2097151)<<11|k>>>21;f=c+j|0;d=e+g|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(B,pa,654183,0);e=v&-2097152;g=c+(f-e|0)|0;f=W+(d-((sa&8191)+(e>>>0>f>>>0)|0)|0)|0;f=c>>>0>g>>>0?f+1|0:f;c=Ai(qa,y,666643,0);d=c+g|0;e=W+f|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(K,A,470296,0);i=c+d|0;d=W+e|0;d=c>>>0>i>>>0?d+1|0:d;l=d;c=d-((i>>>0<4293918720)-1|0)|0;G=c;e=c>>21;j=i- -1048576|0;c=(c&2097151)<<11|j>>>21;g=c+L|0;e=e+n|0;e=c>>>0>g>>>0?e+1|0:e;f=e;d=e-((g>>>0<4293918720)-1|0)|0;v=d;c=g- -1048576|0;n=(d&2097151)<<11|c>>>21;L=n+C|0;d=(d>>21)+ga|0;y=L;n=n>>>0>y>>>0?d+1|0:d;e=Ai(H,r,-997805,-1);g=e+g|0;d=W+f|0;c=c&-2097152;qa=g-c|0;ga=(e>>>0>g>>>0?d+1|0:d)-((c>>>0>g>>>0)+v|0)|0;c=Ai(H,r,654183,0);d=c+i|0;f=W+l|0;f=c>>>0>d>>>0?f+1|0:f;c=j&-2097152;L=d-c|0;G=f-((c>>>0>d>>>0)+G|0)|0;c=Ai(B,pa,470296,0);d=k&-2097152;f=c+(o-d|0)|0;e=W+(m-((ha&8191)+(d>>>0>o>>>0)|0)|0)|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(K,A,666643,0);d=c+f|0;e=W+e|0;e=c>>>0>d>>>0?e+1|0:e;g=d;c=Ai(B,pa,666643,0);d=t&-2097152;k=c+(s-d|0)|0;f=W+(J-((ka&2047)+(d>>>0>s>>>0)|0)|0)|0;f=c>>>0>k>>>0?f+1|0:f;i=f;c=f-((k>>>0<4293918720)-1|0)|0;v=c;d=c>>21;l=k- -1048576|0;c=(c&2097151)<<11|l>>>21;j=c+g|0;e=e+d|0;e=c>>>0>j>>>0?e+1|0:e;c=e-((j>>>0<4293918720)-1|0)|0;t=c;d=c>>21;g=j- -1048576|0;c=(c&2097151)<<11|g>>>21;m=c+L|0;f=d+G|0;c=c>>>0>m>>>0?f+1|0:f;d=Ai(H,r,470296,0);f=d+j|0;e=W+e|0;e=d>>>0>f>>>0?e+1|0:e;d=g&-2097152;g=f-d|0;j=e-((d>>>0>f>>>0)+t|0)|0;d=Ai(H,r,666643,0);e=l&-2097152;o=d+(k-e|0)|0;f=W+(i-((e>>>0>k>>>0)+v|0)|0)|0;f=d>>>0>o>>>0?f+1|0:f;e=f>>21;f=(f&2097151)<<11|o>>>21;g=f+g|0;d=e+j|0;d=f>>>0>g>>>0?d+1|0:d;f=d>>21;d=(d&2097151)<<11|g>>>21;j=d+m|0;e=c+f|0;c=j;e=c>>>0>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|c>>>21;v=e+qa|0;d=d+ga|0;d=e>>>0>v>>>0?d+1|0:d;e=d>>21;d=(d&2097151)<<11|v>>>21;t=d+y|0;e=e+n|0;e=d>>>0>t>>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|t>>>21;m=e+na|0;f=d+oa|0;f=e>>>0>m>>>0?f+1|0:f;e=f>>21;f=(f&2097151)<<11|m>>>21;k=f+ja|0;d=e+x|0;d=f>>>0>k>>>0?d+1|0:d;f=d>>21;d=(d&2097151)<<11|k>>>21;n=d+E|0;e=f+F|0;e=d>>>0>n>>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|n>>>21;i=e+D|0;d=d+u|0;d=e>>>0>i>>>0?d+1|0:d;e=d>>21;d=(d&2097151)<<11|i>>>21;l=d+Ma|0;e=e+Na|0;e=d>>>0>l>>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|l>>>21;j=e+La|0;f=d+I|0;d=q&-2097152;x=b-d|0;f=e>>>0>j>>>0?f+1|0:f;q=x+((f&2097151)<<11|j>>>21)|0;e=(p-((b>>>0>>0)+ma|0)|0)+(f>>21)|0;e=q>>>0>>0?e+1|0:e;x=(e&2097151)<<11|q>>>21;d=e>>21;p=d;b=Ai(x,d,666643,0);d=o&2097151;b=b+d|0;f=W;w[a|0]=b;f=b>>>0>>0?f+1|0:f;w[a+1|0]=(f&255)<<24|b>>>8;d=g&2097151;g=Ai(x,p,470296,0)+d|0;e=W;e=d>>>0>g>>>0?e+1|0:e;o=(f&2097151)<<11|b>>>21;g=o+g|0;e=(f>>21)+e|0;e=g>>>0>>0?e+1|0:e;w[a+4|0]=(e&2047)<<21|g>>>11;w[a+3|0]=(e&7)<<29|g>>>3;w[a+2|0]=((f&65535)<<16|b>>>16)&31|g<<5;b=c&2097151;c=Ai(x,p,654183,0)+b|0;f=W;f=b>>>0>c>>>0?f+1|0:f;b=e;e=e>>21;b=(b&2097151)<<11|g>>>21;c=b+c|0;d=e+f|0;d=b>>>0>c>>>0?d+1|0:d;b=d;w[a+6|0]=(d&63)<<26|c>>>6;w[a+5|0]=c<<2|(g&1572864)>>>19;e=v&2097151;f=Ai(x,p,-997805,-1)+e|0;d=W;d=e>>>0>f>>>0?d+1|0:d;e=b>>21;g=f;f=(b&2097151)<<11|c>>>21;b=g+f|0;e=e+d|0;e=b>>>0>>0?e+1|0:e;w[a+9|0]=(e&511)<<23|b>>>9;w[a+8|0]=(e&1)<<31|b>>>1;w[a+7|0]=b<<7|(c&2080768)>>>14;c=t&2097151;d=Ai(x,p,136657,0)+c|0;f=W;f=c>>>0>d>>>0?f+1|0:f;c=e;e=e>>21;g=(c&2097151)<<11|b>>>21;c=g+d|0;d=e+f|0;d=c>>>0>>0?d+1|0:d;w[a+12|0]=(d&4095)<<20|c>>>12;w[a+11|0]=(d&15)<<28|c>>>4;w[a+10|0]=c<<4|(b&1966080)>>>17;b=m&2097151;f=Ai(x,p,-683901,-1)+b|0;e=W;e=b>>>0>f>>>0?e+1|0:e;b=d;d=d>>21;g=f;f=(b&2097151)<<11|c>>>21;b=g+f|0;d=e+d|0;d=b>>>0>>0?d+1|0:d;w[a+14|0]=(d&127)<<25|b>>>7;w[a+13|0]=b<<1|(c&1048576)>>>20;e=d>>21;d=(d&2097151)<<11|b>>>21;c=d+(k&2097151)|0;e=c>>>0>>0?e+1|0:e;w[a+17|0]=(e&1023)<<22|c>>>10;w[a+16|0]=(e&3)<<30|c>>>2;w[a+15|0]=c<<6|(b&2064384)>>>15;b=e;e=e>>21;d=(b&2097151)<<11|c>>>21;b=d+(n&2097151)|0;f=b>>>0>>0?e+1|0:e;w[a+20|0]=(f&8191)<<19|b>>>13;w[a+19|0]=(f&31)<<27|b>>>5;g=(f&2097151)<<11|b>>>21;e=g+(i&2097151)|0;d=f>>21;d=e>>>0>>0?d+1|0:d;g=e;w[a+21|0]=e;w[a+18|0]=b<<3|(c&1835008)>>>18;w[a+22|0]=(d&255)<<24|e>>>8;c=(d&2097151)<<11|e>>>21;b=c+(l&2097151)|0;e=d>>21;e=b>>>0>>0?e+1|0:e;w[a+25|0]=(e&2047)<<21|b>>>11;w[a+24|0]=(e&7)<<29|b>>>3;w[a+23|0]=((d&65535)<<16|g>>>16)&31|b<<5;d=(e&2097151)<<11|b>>>21;c=d+(j&2097151)|0;e=e>>21;e=c>>>0>>0?e+1|0:e;w[a+27|0]=(e&63)<<26|c>>>6;w[a+26|0]=c<<2|(b&1572864)>>>19;b=e;e=e>>21;g=(b&2097151)<<11|c>>>21;f=q&2097151;b=g+f|0;d=e;d=b>>>0>>0?d+1|0:d;w[a+31|0]=(d&131071)<<15|b>>>17;w[a+30|0]=(d&511)<<23|b>>>9;w[a+28|0]=b<<7|(c&2080768)>>>14;w[a+29|0]=g+q>>>1;}function Xb(a,b,c,d){var 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,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,X=0,Y=0;while(1){e=i<<3;g=e+c|0;e=b+e|0;f=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);u=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);l=f<<24|(f&65280)<<8;h=f&16711680;p=h<<24;h=h>>>8|0;j=f&-16777216;e=j>>>24|0;y[g>>2]=p|j<<8|(((u&255)<<24|f>>>8)&-16777216|((u&16777215)<<8|f>>>24)&16711680|(u>>>8&65280|u>>>24));e=e|h|l;y[g+4>>2]=e;i=i+1|0;if((i|0)!=16){continue}break}b=y[a+60>>2];y[d+56>>2]=y[a+56>>2];y[d+60>>2]=b;b=y[a+52>>2];y[d+48>>2]=y[a+48>>2];y[d+52>>2]=b;b=y[a+44>>2];y[d+40>>2]=y[a+40>>2];y[d+44>>2]=b;b=y[a+36>>2];y[d+32>>2]=y[a+32>>2];y[d+36>>2]=b;b=y[a+28>>2];y[d+24>>2]=y[a+24>>2];y[d+28>>2]=b;b=y[a+20>>2];y[d+16>>2]=y[a+16>>2];y[d+20>>2]=b;b=y[a+12>>2];y[d+8>>2]=y[a+8>>2];y[d+12>>2]=b;b=y[a+4>>2];y[d>>2]=y[a>>2];y[d+4>>2]=b;while(1){g=y[d+56>>2];h=y[d+60>>2];B=K<<3;u=B+c|0;b=u;e=y[b>>2];b=y[b+4>>2];f=y[d+36>>2];s=f;m=y[d+32>>2];f=Ci(m,f,50);i=W;f=Ci(m,s,46)^f;i=W^i;f=Ci(m,s,23)^f;e=f+e|0;b=(W^i)+b|0;b=e>>>0>>0?b+1|0:b;f=B+38512|0;i=y[f>>2];e=i+e|0;b=y[f+4>>2]+b|0;b=e>>>0>>0?b+1|0:b;p=y[d+48>>2];w=y[d+40>>2];i=(p^w)&m^p;f=i+e|0;r=y[d+52>>2];n=y[d+44>>2];e=((r^n)&s^r)+b|0;b=(f>>>0>>0?e+1|0:e)+h|0;g=f+g|0;b=g>>>0>>0?b+1|0:b;f=y[d+24>>2];i=f+g|0;e=y[d+28>>2]+b|0;e=f>>>0>i>>>0?e+1|0:e;x=e;y[d+24>>2]=i;y[d+28>>2]=e;e=y[d+4>>2];v=e;f=y[d>>2];e=Ci(f,e,36);h=W;e=Ci(f,v,30)^e;h=W^h;j=g+(Ci(f,v,25)^e)|0;e=b+(W^h)|0;e=g>>>0>j>>>0?e+1|0:e;b=j;h=y[d+16>>2];g=y[d+8>>2];j=f&(h|g)|g&h;l=b+j|0;b=e;e=y[d+20>>2];k=y[d+12>>2];b=b+(v&(e|k)|e&k)|0;b=j>>>0>l>>>0?b+1|0:b;j=b;y[d+56>>2]=l;y[d+60>>2]=b;o=h;q=e;t=B|8;C=t+c|0;b=C;A=y[b>>2];F=y[b+4>>2];h=(m^w)&i^w;b=h+p|0;e=((s^n)&x^n)+r|0;e=b>>>0>>0?e+1|0:e;h=Ci(i,x,50);p=W;h=Ci(i,x,46)^h;p=W^p;r=Ci(i,x,23)^h;h=r+b|0;b=(W^p)+e|0;b=(h>>>0>>0?b+1|0:b)+F|0;e=h+A|0;b=e>>>0>>0?b+1|0:b;h=e;e=t+38512|0;p=y[e>>2];h=h+p|0;e=y[e+4>>2]+b|0;b=h>>>0

>>0?e+1|0:e;e=b+q|0;p=h+o|0;e=p>>>0>>0?e+1|0:e;r=e;y[d+16>>2]=p;y[d+20>>2]=e;b=b+((k|v)&j|k&v)|0;e=h+((f|g)&l|f&g)|0;b=e>>>0>>0?b+1|0:b;h=Ci(l,j,36);o=W;h=Ci(l,j,30)^h;o=W^o;q=e;e=Ci(l,j,25)^h;h=q+e|0;b=(W^o)+b|0;b=e>>>0>h>>>0?b+1|0:b;o=b;y[d+48>>2]=h;y[d+52>>2]=b;q=g;t=k;g=B|16;e=g+c|0;k=y[e>>2];b=k+w|0;e=y[e+4>>2]+n|0;e=b>>>0>>0?e+1|0:e;n=b;b=g+38512|0;k=y[b>>2];g=n+k|0;b=y[b+4>>2]+e|0;b=g>>>0>>0?b+1|0:b;e=g;g=(i^m)&p^m;e=e+g|0;b=((s^x)&r^s)+b|0;b=e>>>0>>0?b+1|0:b;g=Ci(p,r,50);k=W;g=Ci(p,r,46)^g;k=W^k;w=Ci(p,r,23)^g;g=w+e|0;e=(W^k)+b|0;k=g;w=g>>>0>>0?e+1|0:e;e=w+t|0;g=g+q|0;e=k>>>0>g>>>0?e+1|0:e;t=e;y[d+8>>2]=g;y[d+12>>2]=e;b=Ci(h,o,36);e=W;b=Ci(h,o,30)^b;e=W^e;n=Ci(h,o,25)^b;q=n+((f|l)&h|f&l)|0;b=((j|v)&o|j&v)+(W^e)|0;e=w+(q>>>0>>0?b+1|0:b)|0;w=k+q|0;e=w>>>0>>0?e+1|0:e;k=e;y[d+40>>2]=w;y[d+44>>2]=e;q=f;e=m;f=B|24;b=f+c|0;m=y[b>>2];e=e+m|0;b=y[b+4>>2]+s|0;b=e>>>0>>0?b+1|0:b;n=e;e=f+38512|0;m=y[e>>2];f=n+m|0;e=y[e+4>>2]+b|0;e=f>>>0>>0?e+1|0:e;b=f;f=i^(i^p)&g;b=b+f|0;e=(x^(r^x)&t)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(g,t,50);m=W;f=Ci(g,t,46)^f;m=W^m;s=Ci(g,t,23)^f;f=s+b|0;b=(W^m)+e|0;b=f>>>0>>0?b+1|0:b;e=b+v|0;v=f+q|0;e=v>>>0>>0?e+1|0:e;s=e;y[d>>2]=v;y[d+4>>2]=e;e=Ci(w,k,36);m=W;e=Ci(w,k,30)^e;q=W^m;n=Ci(w,k,25)^e;m=n+((h|l)&w|h&l)|0;e=((j|o)&k|j&o)+(W^q)|0;b=b+(m>>>0>>0?e+1|0:e)|0;q=f+m|0;b=q>>>0>>0?b+1|0:b;m=b;y[d+32>>2]=q;y[d+36>>2]=b;b=B|32;e=b+c|0;f=y[e>>2];e=x+y[e+4>>2]|0;f=f+i|0;e=f>>>0>>0?e+1|0:e;b=b+38512|0;i=y[b>>2];f=i+f|0;b=y[b+4>>2]+e|0;b=f>>>0>>0?b+1|0:b;e=f;f=p^(g^p)&v;e=e+f|0;b=(r^(r^t)&s)+b|0;b=e>>>0>>0?b+1|0:b;f=Ci(v,s,50);i=W;f=Ci(v,s,46)^f;i=W^i;x=Ci(v,s,23)^f;f=x+e|0;e=(W^i)+b|0;e=f>>>0>>0?e+1|0:e;n=e;b=e;e=Ci(q,m,36);i=W;e=Ci(q,m,30)^e;x=W^i;A=Ci(q,m,25)^e;i=A+((h|w)&q|h&w)|0;e=((o|k)&m|o&k)+(W^x)|0;b=(i>>>0>>0?e+1|0:e)+b|0;x=f+i|0;b=x>>>0>>0?b+1|0:b;i=b;y[d+24>>2]=x;y[d+28>>2]=b;e=j+n|0;j=f+l|0;e=j>>>0>>0?e+1|0:e;n=e;y[d+56>>2]=j;y[d+60>>2]=e;e=B|40;b=e+c|0;f=y[b>>2];b=r+y[b+4>>2]|0;f=f+p|0;b=f>>>0

>>0?b+1|0:b;e=e+38512|0;l=y[e>>2];f=l+f|0;e=y[e+4>>2]+b|0;e=f>>>0>>0?e+1|0:e;b=f;f=g^(g^v)&j;b=b+f|0;e=(t^(s^t)&n)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(j,n,50);l=W;f=Ci(j,n,46)^f;l=W^l;p=Ci(j,n,23)^f;f=p+b|0;b=(W^l)+e|0;b=f>>>0

>>0?b+1|0:b;e=Ci(x,i,36);l=W;e=Ci(x,i,30)^e;p=W^l;r=Ci(x,i,25)^e;l=r+((q|w)&x|q&w)|0;e=((k|m)&i|k&m)+(W^p)|0;e=(l>>>0>>0?e+1|0:e)+b|0;p=f+l|0;e=p>>>0>>0?e+1|0:e;l=e;y[d+16>>2]=p;y[d+20>>2]=e;b=b+o|0;e=h;h=f+h|0;b=e>>>0>h>>>0?b+1|0:b;r=b;y[d+48>>2]=h;y[d+52>>2]=b;b=B|48;e=b+c|0;f=y[e>>2];e=t+y[e+4>>2]|0;f=f+g|0;e=f>>>0>>0?e+1|0:e;b=b+38512|0;g=y[b>>2];f=g+f|0;b=y[b+4>>2]+e|0;b=f>>>0>>0?b+1|0:b;e=f;f=v^(j^v)&h;e=e+f|0;b=(s^(s^n)&r)+b|0;b=e>>>0>>0?b+1|0:b;f=Ci(h,r,50);g=W;f=Ci(h,r,46)^f;g=W^g;o=Ci(h,r,23)^f;f=o+e|0;e=(W^g)+b|0;e=f>>>0>>0?e+1|0:e;t=e;b=e;e=Ci(p,l,36);g=W;e=Ci(p,l,30)^e;o=W^g;A=Ci(p,l,25)^e;g=A+((q|x)&p|q&x)|0;e=((i|m)&l|i&m)+(W^o)|0;b=(g>>>0>>0?e+1|0:e)+b|0;e=g;g=f+g|0;b=e>>>0>g>>>0?b+1|0:b;o=b;y[d+8>>2]=g;y[d+12>>2]=b;e=k+t|0;A=f+w|0;e=A>>>0>>0?e+1|0:e;t=e;y[d+40>>2]=A;y[d+44>>2]=e;e=B|56;b=e+c|0;f=y[b>>2];b=s+y[b+4>>2]|0;f=f+v|0;b=f>>>0>>0?b+1|0:b;e=e+38512|0;k=y[e>>2];f=k+f|0;e=y[e+4>>2]+b|0;e=f>>>0>>0?e+1|0:e;b=f;f=j^(h^j)&A;b=b+f|0;e=(n^(r^n)&t)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(A,t,50);k=W;f=Ci(A,t,46)^f;k=W^k;w=Ci(A,t,23)^f;f=w+b|0;b=(W^k)+e|0;b=f>>>0>>0?b+1|0:b;e=Ci(g,o,36);k=W;e=Ci(g,o,30)^e;w=W^k;v=Ci(g,o,25)^e;k=v+((p|x)&g|p&x)|0;e=((i|l)&o|i&l)+(W^w)|0;e=(k>>>0>>0?e+1|0:e)+b|0;w=f+k|0;e=w>>>0>>0?e+1|0:e;k=e;y[d>>2]=w;y[d+4>>2]=e;b=b+m|0;v=f+q|0;b=v>>>0>>0?b+1|0:b;s=b;y[d+32>>2]=v;y[d+36>>2]=b;b=B|64;e=b+c|0;f=y[e>>2];e=n+y[e+4>>2]|0;f=f+j|0;e=f>>>0>>0?e+1|0:e;b=b+38512|0;j=y[b>>2];f=j+f|0;b=y[b+4>>2]+e|0;b=f>>>0>>0?b+1|0:b;e=f;f=h^(h^A)&v;e=e+f|0;b=(r^(r^t)&s)+b|0;b=e>>>0>>0?b+1|0:b;f=Ci(v,s,50);j=W;f=Ci(v,s,46)^f;j=W^j;m=Ci(v,s,23)^f;f=m+e|0;e=(W^j)+b|0;e=f>>>0>>0?e+1|0:e;q=e;b=e;e=Ci(w,k,36);j=W;e=Ci(w,k,30)^e;m=W^j;n=Ci(w,k,25)^e;j=n+((g|p)&w|g&p)|0;e=((l|o)&k|l&o)+(W^m)|0;b=(j>>>0>>0?e+1|0:e)+b|0;m=f+j|0;b=m>>>0>>0?b+1|0:b;j=b;y[d+56>>2]=m;y[d+60>>2]=b;e=i+q|0;i=f+x|0;e=i>>>0>>0?e+1|0:e;n=e;y[d+24>>2]=i;y[d+28>>2]=e;e=B|72;F=e+c|0;b=F;f=y[b>>2];b=r+y[b+4>>2]|0;f=f+h|0;b=f>>>0>>0?b+1|0:b;e=e+38512|0;h=y[e>>2];f=h+f|0;e=y[e+4>>2]+b|0;e=f>>>0>>0?e+1|0:e;b=f;f=A^(v^A)&i;b=b+f|0;e=(t^(s^t)&n)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(i,n,50);h=W;f=Ci(i,n,46)^f;h=W^h;q=Ci(i,n,23)^f;f=q+b|0;b=(W^h)+e|0;b=f>>>0>>0?b+1|0:b;e=Ci(m,j,36);h=W;e=Ci(m,j,30)^e;q=W^h;x=Ci(m,j,25)^e;h=x+((g|w)&m|g&w)|0;e=((o|k)&j|o&k)+(W^q)|0;e=(h>>>0>>0?e+1|0:e)+b|0;q=f+h|0;e=q>>>0>>0?e+1|0:e;h=e;y[d+48>>2]=q;y[d+52>>2]=e;b=b+l|0;l=f+p|0;b=l>>>0>>0?b+1|0:b;r=b;y[d+16>>2]=l;y[d+20>>2]=b;f=B|80;Q=f+c|0;e=Q;p=y[e>>2];b=p+A|0;e=y[e+4>>2]+t|0;e=b>>>0

>>0?e+1|0:e;t=b;b=f+38512|0;p=y[b>>2];f=t+p|0;b=y[b+4>>2]+e|0;b=f>>>0

>>0?b+1|0:b;e=f;f=v^(i^v)&l;e=e+f|0;b=(s^(s^n)&r)+b|0;b=e>>>0>>0?b+1|0:b;f=Ci(l,r,50);p=W;f=Ci(l,r,46)^f;p=W^p;x=Ci(l,r,23)^f;f=x+e|0;e=(W^p)+b|0;e=f>>>0>>0?e+1|0:e;t=e;b=e;e=Ci(q,h,36);p=W;e=Ci(q,h,30)^e;x=W^p;A=Ci(q,h,25)^e;p=A+((m|w)&q|m&w)|0;e=((j|k)&h|j&k)+(W^x)|0;b=(p>>>0>>0?e+1|0:e)+b|0;x=f+p|0;b=x>>>0

>>0?b+1|0:b;p=b;y[d+40>>2]=x;y[d+44>>2]=b;e=o+t|0;o=f+g|0;e=o>>>0>>0?e+1|0:e;t=e;y[d+8>>2]=o;y[d+12>>2]=e;b=B|88;e=b+38512|0;R=b+c|0;b=R;g=y[b>>2];f=y[e>>2]+g|0;b=y[e+4>>2]+y[b+4>>2]|0;e=s+(f>>>0>>0?b+1|0:b)|0;b=f+v|0;e=b>>>0>>0?e+1|0:e;f=i^(i^l)&o;b=f+b|0;e=(n^(r^n)&t)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(o,t,50);g=W;f=Ci(o,t,46)^f;g=W^g;v=Ci(o,t,23)^f;f=v+b|0;b=(W^g)+e|0;b=f>>>0>>0?b+1|0:b;e=Ci(x,p,36);g=W;e=Ci(x,p,30)^e;v=W^g;s=Ci(x,p,25)^e;g=s+((m|q)&x|m&q)|0;e=((h|j)&p|h&j)+(W^v)|0;e=(g>>>0>>0?e+1|0:e)+b|0;s=g;g=f+g|0;e=s>>>0>g>>>0?e+1|0:e;v=e;y[d+32>>2]=g;y[d+36>>2]=e;b=b+k|0;k=f+w|0;b=k>>>0>>0?b+1|0:b;w=b;y[d>>2]=k;y[d+4>>2]=b;b=B|96;e=b+38512|0;S=b+c|0;b=S;s=y[b>>2];f=y[e>>2]+s|0;e=y[e+4>>2]+y[b+4>>2]|0;b=n+(f>>>0>>0?e+1|0:e)|0;e=f+i|0;b=e>>>0>>0?b+1|0:b;i=l^(l^o)&k;f=i+e|0;e=(r^(r^t)&w)+b|0;e=f>>>0>>0?e+1|0:e;b=Ci(k,w,50);i=W;b=Ci(k,w,46)^b;i=W^i;n=f;f=Ci(k,w,23)^b;b=n+f|0;e=(W^i)+e|0;e=b>>>0>>0?e+1|0:e;n=e;f=b;b=Ci(g,v,36);i=W;b=Ci(g,v,30)^b;s=W^i;A=Ci(g,v,25)^b;i=A+((q|x)&g|q&x)|0;b=((h|p)&v|h&p)+(W^s)|0;e=(i>>>0>>0?b+1|0:b)+e|0;s=f+i|0;e=s>>>0>>0?e+1|0:e;i=e;y[d+24>>2]=s;y[d+28>>2]=e;e=j+n|0;m=f+m|0;e=m>>>0>>0?e+1|0:e;j=e;y[d+56>>2]=m;y[d+60>>2]=e;b=B|104;e=b+38512|0;T=b+c|0;b=T;n=y[b>>2];f=y[e>>2]+n|0;b=y[e+4>>2]+y[b+4>>2]|0;e=r+(f>>>0>>0?b+1|0:b)|0;b=f+l|0;e=b>>>0>>0?e+1|0:e;l=o^(o^k)&m;f=l+b|0;b=(t^(t^w)&j)+e|0;b=f>>>0>>0?b+1|0:b;e=Ci(m,j,50);l=W;e=Ci(m,j,46)^e;l=W^l;r=Ci(m,j,23)^e;f=r+f|0;e=(W^l)+b|0;e=f>>>0>>0?e+1|0:e;n=e;b=e;e=Ci(s,i,36);l=W;e=Ci(s,i,30)^e;r=W^l;A=Ci(s,i,25)^e;l=A+((g|x)&s|g&x)|0;e=((p|v)&i|p&v)+(W^r)|0;b=(l>>>0>>0?e+1|0:e)+b|0;r=f+l|0;b=r>>>0>>0?b+1|0:b;l=b;y[d+16>>2]=r;y[d+20>>2]=b;b=h+n|0;q=f+q|0;b=q>>>0>>0?b+1|0:b;h=b;y[d+48>>2]=q;y[d+52>>2]=b;b=B|112;e=b+38512|0;A=b+c|0;f=A;n=y[f>>2];b=y[e>>2]+n|0;e=y[e+4>>2]+y[f+4>>2]|0;e=t+(b>>>0>>0?e+1|0:e)|0;b=b+o|0;e=b>>>0>>0?e+1|0:e;f=k^(k^m)&q;b=f+b|0;e=(w^(j^w)&h)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(q,h,50);o=W;f=Ci(q,h,46)^f;o=W^o;t=Ci(q,h,23)^f;f=t+b|0;b=(W^o)+e|0;b=f>>>0>>0?b+1|0:b;n=b;e=b;b=Ci(r,l,36);o=W;b=Ci(r,l,30)^b;t=W^o;G=Ci(r,l,25)^b;o=G+((g|s)&r|g&s)|0;b=((i|v)&l|i&v)+(W^t)|0;e=(o>>>0>>0?b+1|0:b)+e|0;t=f+o|0;e=t>>>0>>0?e+1|0:e;o=e;y[d+8>>2]=t;y[d+12>>2]=e;e=p+n|0;p=f+x|0;e=p>>>0>>0?e+1|0:e;f=e;y[d+40>>2]=p;y[d+44>>2]=e;b=B|120;e=b+38512|0;U=b+c|0;b=U;n=y[b>>2];x=y[e>>2]+n|0;e=y[e+4>>2]+y[b+4>>2]|0;b=w+(n>>>0>x>>>0?e+1|0:e)|0;e=k+x|0;b=(j^(h^j)&f)+(e>>>0>>0?b+1|0:b)|0;h=Ci(p,f,50);j=W;h=Ci(p,f,46)^h;j=W^j;k=m^(m^q)&p;e=k+e|0;h=Ci(p,f,23)^h;f=e+h|0;e=(W^j)+(e>>>0>>0?b+1|0:b)|0;e=f>>>0>>0?e+1|0:e;h=f;j=e;b=e;e=Ci(t,o,36);p=W;e=Ci(t,o,30)^e;k=W^p;w=Ci(t,o,25)^e;p=w+((r|s)&t|r&s)|0;e=((i|l)&o|i&l)+(W^k)|0;b=(p>>>0>>0?e+1|0:e)+b|0;f=f+p|0;b=f>>>0

>>0?b+1|0:b;y[d>>2]=f;y[d+4>>2]=b;e=j+v|0;k=g;g=g+h|0;e=k>>>0>g>>>0?e+1|0:e;y[d+32>>2]=g;y[d+36>>2]=e;if((K|0)!=64){K=K+16|0;h=(K<<3)+c|0;g=y[u>>2];i=y[u+4>>2];b=y[F>>2];V=b;e=y[F+4>>2];X=e;f=y[A+4>>2];w=f;F=y[A>>2];f=Ci(F,f,45);j=W;l=((w&63)<<26|F>>>6)^(Ci(F,w,3)^f);f=l+b|0;b=(W^j^w>>>6)+e|0;e=(f>>>0>>0?b+1|0:b)+i|0;b=f+g|0;e=b>>>0>>0?e+1|0:e;f=y[C+4>>2];g=f;j=y[C>>2];f=Ci(j,f,63);i=W;l=((g&127)<<25|j>>>7)^(Ci(j,g,56)^f);f=l+b|0;e=(W^i^g>>>7)+e|0;x=f;y[h>>2]=f;e=f>>>0>>0?e+1|0:e;y[h+4>>2]=e;b=y[u+20>>2];l=b;k=y[u+16>>2];h=b;H=y[u+88>>2];b=y[u+92>>2];G=b;i=b;p=e;b=Ci(f,e,45);v=W;n=Ci(f,e,3)^b;b=e;e=e>>>6|0;m=n^((b&63)<<26|f>>>6);f=m+H|0;b=(e^(W^v))+i|0;e=(f>>>0>>0?b+1|0:b)+h|0;b=f+k|0;e=b>>>0>>0?e+1|0:e;f=y[u+28>>2];h=f;i=y[u+24>>2];f=Ci(i,f,63);o=W;f=((h&127)<<25|i>>>7)^(Ci(i,h,56)^f);m=f+b|0;b=(W^o^h>>>7)+e|0;b=f>>>0>m>>>0?b+1|0:b;o=b;y[u+144>>2]=m;y[u+148>>2]=b;r=y[u+80>>2];b=r+j|0;I=y[u+84>>2];e=I+g|0;v=y[u+120>>2];f=y[u+124>>2];g=Ci(v,f,45);j=W;q=((f&63)<<26|v>>>6)^(Ci(v,f,3)^g);g=q+b|0;e=(W^j^f>>>6)+(b>>>0>>0?e+1|0:e)|0;b=g>>>0>>0?e+1|0:e;e=Ci(k,l,63);j=W;n=g;g=((l&127)<<25|k>>>7)^(Ci(k,l,56)^e);t=n+g|0;b=(W^j^l>>>7)+b|0;b=g>>>0>t>>>0?b+1|0:b;l=b;y[u+136>>2]=t;y[u+140>>2]=b;b=y[u+36>>2];q=b;n=y[u+32>>2];k=n;L=y[u+104>>2];e=y[u+108>>2];M=e;g=e;e=Ci(m,o,45);j=W;e=Ci(m,o,3)^e;s=W^j;A=((o&63)<<26|m>>>6)^e;j=A+L|0;e=(o>>>6^s)+g|0;b=(j>>>0>>0?e+1|0:e)+b|0;e=j+k|0;b=e>>>0>>0?b+1|0:b;g=y[u+44>>2];j=g;k=y[u+40>>2];g=Ci(k,g,63);s=W;g=Ci(k,j,56)^g;A=W^s;g=((j&127)<<25|k>>>7)^g;s=g+e|0;e=(j>>>7^A)+b|0;e=g>>>0>s>>>0?e+1|0:e;g=e;y[u+160>>2]=s;y[u+164>>2]=e;N=y[u+96>>2];b=y[u+100>>2];O=b;e=b;b=Ci(t,l,45);A=W;b=Ci(t,l,3)^b;B=W^A;C=((l&63)<<26|t>>>6)^b;A=C+N|0;e=(l>>>6^B)+e|0;b=(A>>>0>>0?e+1|0:e)+h|0;e=i+A|0;b=e>>>0>>0?b+1|0:b;h=Ci(n,q,63);i=W;h=((q&127)<<25|n>>>7)^(Ci(n,q,56)^h);n=h+e|0;e=(W^i^q>>>7)+b|0;e=h>>>0>n>>>0?e+1|0:e;h=e;y[u+152>>2]=n;y[u+156>>2]=e;b=y[u+52>>2];B=b;C=y[u+48>>2];q=C;e=b;b=Ci(s,g,45);i=W;b=Ci(s,g,3)^b;A=W^i;D=((g&63)<<26|s>>>6)^b;i=D+v|0;b=(g>>>6^A)+f|0;e=(i>>>0>>0?b+1|0:b)+e|0;b=i+q|0;e=b>>>0>>0?e+1|0:e;i=y[u+60>>2];D=i;q=y[u+56>>2];i=Ci(q,i,63);A=W;i=Ci(q,D,56)^i;J=W^A;i=((D&127)<<25|q>>>7)^i;A=i+b|0;e=(D>>>7^J)+e|0;e=i>>>0>A>>>0?e+1|0:e;i=e;y[u+176>>2]=A;y[u+180>>2]=e;P=y[u+112>>2];b=y[u+116>>2];J=b;e=Ci(n,h,45);E=W;e=Ci(n,h,3)^e;Y=W^E;e=((h&63)<<26|n>>>6)^e;E=e+P|0;b=(h>>>6^Y)+b|0;e=(e>>>0>E>>>0?b+1|0:b)+j|0;b=k+E|0;e=b>>>0>>0?e+1|0:e;j=Ci(C,B,63);k=W;E=b;b=B>>>7|0;j=((B&127)<<25|C>>>7)^(Ci(C,B,56)^j);B=E+j|0;e=(b^(W^k))+e|0;e=j>>>0>B>>>0?e+1|0:e;j=e;y[u+168>>2]=B;y[u+172>>2]=e;e=p+D|0;k=q+x|0;b=k>>>0>>0?e+1|0:e;e=Ci(B,j,45);q=W;C=((j&63)<<26|B>>>6)^(Ci(B,j,3)^e);k=C+k|0;b=(W^q^j>>>6)+b|0;b=k>>>0>>0?b+1|0:b;e=u- -64|0;C=y[e>>2];e=y[e+4>>2];D=e;e=Ci(C,e,63);q=W;e=Ci(C,D,56)^e;E=W^q;q=k;k=((D&127)<<25|C>>>7)^e;q=q+k|0;b=(D>>>7^E)+b|0;b=k>>>0>q>>>0?b+1|0:b;k=b;y[u+184>>2]=q;y[u+188>>2]=b;e=l+D|0;b=t+C|0;e=b>>>0>>0?e+1|0:e;l=Ci(A,i,45);t=W;l=Ci(A,i,3)^l;C=W^t;l=((i&63)<<26|A>>>6)^l;t=l+b|0;b=(i>>>6^C)+e|0;C=l>>>0>t>>>0?b+1|0:b;b=y[u+72>>2];e=y[u+76>>2];l=Ci(b,e,63);D=W;E=Ci(b,e,56)^l;l=e;e=e>>>7|0;b=E^((l&127)<<25|b>>>7);t=b+t|0;e=(e^(W^D))+C|0;e=b>>>0>t>>>0?e+1|0:e;l=e;y[u+192>>2]=t;y[u+196>>2]=e;b=Ci(r,I,63);e=W;C=((I&127)<<25|r>>>7)^(Ci(r,I,56)^b);r=C+V|0;e=(W^e^I>>>7)+X|0;b=o+(r>>>0>>0?e+1|0:e)|0;e=m+r|0;b=e>>>0>>0?b+1|0:b;o=Ci(q,k,45);m=W;o=Ci(q,k,3)^o;r=W^m;o=((k&63)<<26|q>>>6)^o;m=o+e|0;e=(k>>>6^r)+b|0;e=o>>>0>m>>>0?e+1|0:e;o=e;y[u+200>>2]=m;y[u+204>>2]=e;C=y[Q>>2];e=y[Q+4>>2];b=Ci(H,G,63);r=W;b=Ci(H,G,56)^b;I=W^r;r=n;n=((G&127)<<25|H>>>7)^b;r=r+n|0;b=(G>>>7^I)+h|0;e=(r>>>0>>0?b+1|0:b)+e|0;b=r+C|0;e=b>>>0>>0?e+1|0:e;h=Ci(t,l,45);r=W;h=Ci(t,l,3)^h;n=W^r;h=((l&63)<<26|t>>>6)^h;r=h+b|0;e=(l>>>6^n)+e|0;e=h>>>0>r>>>0?e+1|0:e;h=e;y[u+208>>2]=r;y[u+212>>2]=e;n=y[R>>2];C=y[R+4>>2];b=Ci(N,O,63);e=W;H=((O&127)<<25|N>>>7)^(Ci(N,O,56)^b);s=H+s|0;b=(W^e^O>>>7)+g|0;e=(s>>>0>>0?b+1|0:b)+C|0;b=s+n|0;e=b>>>0>>0?e+1|0:e;g=Ci(m,o,45);s=W;n=b;b=o>>>6|0;g=((o&63)<<26|m>>>6)^(Ci(m,o,3)^g);o=n+g|0;e=(b^(W^s))+e|0;e=g>>>0>o>>>0?e+1|0:e;g=e;y[u+216>>2]=o;y[u+220>>2]=e;s=y[S>>2];b=y[S+4>>2];e=Ci(L,M,63);m=W;e=Ci(L,M,56)^e;n=W^m;D=B;B=((M&127)<<25|L>>>7)^e;m=D+B|0;e=(M>>>7^n)+j|0;b=(m>>>0>>0?e+1|0:e)+b|0;e=m+s|0;b=e>>>0>>0?b+1|0:b;j=Ci(r,h,45);m=W;n=e;e=h>>>6|0;h=((h&63)<<26|r>>>6)^(Ci(r,h,3)^j);j=n+h|0;e=(e^(W^m))+b|0;e=h>>>0>j>>>0?e+1|0:e;h=e;y[u+224>>2]=j;y[u+228>>2]=e;r=y[T>>2];s=y[T+4>>2];b=Ci(P,J,63);e=W;n=((J&127)<<25|P>>>7)^(Ci(P,J,56)^b);m=n+A|0;e=(W^e^J>>>7)+i|0;b=(m>>>0>>0?e+1|0:e)+s|0;e=m+r|0;b=e>>>0>>0?b+1|0:b;i=Ci(o,g,45);m=W;n=e;e=g>>>6|0;g=((g&63)<<26|o>>>6)^(Ci(o,g,3)^i);i=n+g|0;e=(e^(W^m))+b|0;e=g>>>0>i>>>0?e+1|0:e;g=e;y[u+232>>2]=i;y[u+236>>2]=e;b=Ci(v,f,63);e=W;n=Ci(v,f,56)^b;b=f>>>7|0;o=n^((f&127)<<25|v>>>7);f=o+F|0;b=(b^(W^e))+w|0;e=k+(f>>>0>>0?b+1|0:b)|0;b=f+q|0;e=b>>>0>>0?e+1|0:e;f=Ci(j,h,45);o=W;k=b;b=h>>>6|0;h=((h&63)<<26|j>>>6)^(Ci(j,h,3)^f);f=k+h|0;e=(b^(W^o))+e|0;y[u+240>>2]=f;y[u+244>>2]=f>>>0>>0?e+1|0:e;h=y[U>>2];j=y[U+4>>2];b=Ci(x,p,63);e=W;b=Ci(x,p,56)^b;o=W^e;e=p>>>7|0;p=((p&127)<<25|x>>>7)^b;f=p+t|0;b=(e^o)+l|0;e=(f>>>0

>>0?b+1|0:b)+j|0;b=f+h|0;e=b>>>0>>0?e+1|0:e;f=Ci(i,g,45);h=W;k=b;b=g>>>6|0;g=((g&63)<<26|i>>>6)^(Ci(i,g,3)^f);f=k+g|0;e=(b^(W^h))+e|0;y[u+248>>2]=f;y[u+252>>2]=f>>>0>>0?e+1|0:e;continue}break}e=b+y[a+4>>2]|0;b=f+y[a>>2]|0;e=b>>>0>>0?e+1|0:e;y[a>>2]=b;y[a+4>>2]=e;b=y[a+12>>2]+y[d+12>>2]|0;e=y[d+8>>2];c=e+y[a+8>>2]|0;y[a+8>>2]=c;y[a+12>>2]=c>>>0>>0?b+1|0:b;e=y[a+20>>2]+y[d+20>>2]|0;c=y[d+16>>2];b=c+y[a+16>>2]|0;y[a+16>>2]=b;y[a+20>>2]=b>>>0>>0?e+1|0:e;e=y[a+28>>2]+y[d+28>>2]|0;c=y[d+24>>2];b=c+y[a+24>>2]|0;y[a+24>>2]=b;y[a+28>>2]=b>>>0>>0?e+1|0:e;b=y[a+36>>2]+y[d+36>>2]|0;e=y[d+32>>2];c=e+y[a+32>>2]|0;y[a+32>>2]=c;y[a+36>>2]=c>>>0>>0?b+1|0:b;e=y[a+44>>2]+y[d+44>>2]|0;c=y[d+40>>2];b=c+y[a+40>>2]|0;y[a+40>>2]=b;y[a+44>>2]=b>>>0>>0?e+1|0:e;b=y[a+52>>2]+y[d+52>>2]|0;e=y[d+48>>2];c=e+y[a+48>>2]|0;y[a+48>>2]=c;y[a+52>>2]=c>>>0>>0?b+1|0:b;e=y[a+60>>2]+y[d+60>>2]|0;c=y[d+56>>2];b=c+y[a+56>>2]|0;y[a+56>>2]=b;y[a+60>>2]=b>>>0>>0?e+1|0:e;}function Pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,A=0,B=0,C=0,D=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=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;B=T-4096|0;T=B;a:{if(!a){break a}b:{c:{f=y[a+36>>2];d:{if((f|0)!=2){ja=y[a+4>>2];g=z[b+8|0];ca=y[b>>2];break d}ja=y[a+4>>2];ca=y[b>>2];g=z[b+8|0];if(ca|g>>>0>=2){break c}ca=0;}o(B+3072|0,0,1024);o(B+2104|0,0,968);y[B+2048>>2]=ca;y[B+2052>>2]=0;K=y[b+4>>2];y[B+2064>>2]=g&255;y[B+2068>>2]=0;y[B+2056>>2]=K;y[B+2060>>2]=0;y[B+2072>>2]=y[a+16>>2];y[B+2076>>2]=0;K=y[a+8>>2];y[B+2088>>2]=f;y[B+2092>>2]=0;y[B+2080>>2]=K;y[B+2084>>2]=0;if(!y[a+20>>2]){break b}K=0;while(1){f=p&127;if(!f){R=R+1|0;K=R?K:K+1|0;y[B+2096>>2]=R;y[B+2100>>2]=K;o(B,0,1024);s=B+1024|0;o(s,0,1024);d=B+3072|0;oc(d,B+2048|0,B);oc(d,B,s);}f=(B+1024|0)+(f<<3)|0;s=y[f+4>>2];d=(p<<3)+ja|0;y[d>>2]=y[f>>2];y[d+4>>2]=s;s=y[a+20>>2];p=p+1|0;if(s>>>0>p>>>0){continue}break}break b}s=y[a+20>>2];la=1;}fa=g&255;f=fa|ca;K=f?0:2;if(K>>>0>=s>>>0){break a}ma=!f;f=y[a+24>>2];ia=y[b+4>>2];R=(E(f,ia)+K|0)+E(s,fa)|0;p=R+((R>>>0)%(f>>>0)|0?-1:f-1|0)|0;na=fa+1|0;while(1){g=y[a+28>>2];f=y[a+24>>2];ka=((R>>>0)%(f>>>0)|0)==1?R-1|0:p;p=la?y[y[a>>2]+4>>2]+(ka<<10)|0:(K<<3)+ja|0;d=y[p>>2];p=y[p+4>>2];y[b+12>>2]=K;g=ma?ia:(p>>>0)%(g>>>0)|0;e:{if(!ca){if(!fa){p=K-1|0;c=0;break e}p=E(s,fa);if((g|0)==(ia|0)){p=(p+K|0)-1|0;c=0;break e}p=p-!K|0;c=0;break e}p=f+((g|0)==(ia|0)?(s^-1)+K|0:(K?0:-1)-s|0)|0;c=0;if((fa|0)==3){break e}c=E(s,na);}s=c;k=y[y[a>>2]+4>>2];j=k+(E(f,g)<<10)|0;g=p-1|0;c=g+s|0;e=g>>>0>c>>>0;Ai(d,0,d,0);Ai(p,0,W,0);p=W;g=c-p|0;s=0;m=0;f:{g:{h:{i:{j:{k:{l:{m:{n:{o:{p=e-(c>>>0

>>0)|0;if(p){if(!f){break o}break n}U=g-E((g>>>0)/(f>>>0)|0,f)|0;V=0;W=0;break f}if(!g){break m}break l}d=f-1|0;if(!(d&f)){break k}d=(H(f)+33|0)-H(p)|0;h=0-d|0;break i}U=0;V=p;W=0;break f}s=32-H(p)|0;if(s>>>0<31){break j}break h}U=d&g;V=0;if((f|0)==1){break g}g=zi(f);f=g&31;if((g&63)>>>0>=32){d=p>>>f|0;}else {s=p>>>f|0;d=0;}W=s;break f}d=s+1|0;h=63-s|0;}s=d&63;c=s&31;if(s>>>0>=32){s=0;e=p>>>c|0;}else {s=p>>>c|0;e=((1<>>c;}h=h&63;c=h&31;if(h>>>0>=32){p=g<>>32-c|p<>>31;s=e<<1|p>>>31;c=i-(n+(s>>>0>h>>>0)|0)>>31;G=c&f;e=s-G|0;s=n-(s>>>0>>0)|0;p=p<<1|g>>>31;g=m|g<<1;m=c&1;d=d-1|0;if(d){continue}break}}U=e;V=s;W=p<<1|g>>>31;break f}U=g;V=p;p=0;}W=p;}W=V;p=(U<<10)+j|0;f=k+(ka<<10)|0;s=k+(R<<10)|0;p:{if(ca){oc(f,p,s);break p}t(B+3072|0,p,1024);g=0;while(1){p=g<<3;d=B+3072|0;c=p+d|0;e=y[c>>2];k=f+p|0;m=y[k>>2];k=y[c+4>>2]^y[k+4>>2];y[c>>2]=e^m;y[c+4>>2]=k;e=p|8;c=e+d|0;k=y[c>>2];e=f+e|0;m=y[e>>2];e=y[c+4>>2]^y[e+4>>2];y[c>>2]=k^m;y[c+4>>2]=e;e=p|16;c=e+d|0;k=y[c>>2];e=f+e|0;m=y[e>>2];e=y[c+4>>2]^y[e+4>>2];y[c>>2]=k^m;y[c+4>>2]=e;c=p|24;p=c+d|0;e=y[p>>2];c=c+f|0;k=y[c>>2];c=y[p+4>>2]^y[c+4>>2];y[p>>2]=e^k;y[p+4>>2]=c;g=g+4|0;if((g|0)!=128){continue}break}t(B+2048|0,d,1024);p=0;g=0;while(1){f=(B+3072|0)+(g<<7)|0;k=y[f+56>>2];c=y[f+24>>2];e=k+c|0;n=y[f+60>>2];d=y[f+28>>2];m=n+d|0;j=Ai(c<<1&-2,(d<<1|c>>>31)&1,k,0);d=j+e|0;c=W+(c>>>0>e>>>0?m+1|0:m)|0;m=d>>>0>>0?c+1|0:c;j=Ci(d^y[f+120>>2],m^y[f+124>>2],32);c=y[f+88>>2];h=j+c|0;u=W;e=y[f+92>>2];i=u+e|0;G=Ai(j,0,c<<1&-2,(e<<1|c>>>31)&1);e=G+h|0;c=W+(c>>>0>h>>>0?i+1|0:i)|0;M=e>>>0>>0?c+1|0:c;F=Ci(k^e,n^M,40);ga=W;c=m+ga|0;i=c+1|0;l=c;c=d+F|0;k=c>>>0>>0?i:l;d=Ai(F,0,d<<1&-2,(m<<1|d>>>31)&1);G=d+c|0;c=W+k|0;X=d>>>0>G>>>0?c+1|0:c;u=Ci(G^j,u^X,48);l=W;C=l;r=y[f+44>>2];d=y[f+12>>2];k=r+d|0;m=y[f+40>>2];c=y[f+8>>2];j=m+c|0;h=Ai(c<<1&-2,(d<<1|c>>>31)&1,m,0);d=j+h|0;c=W+(c>>>0>j>>>0?k+1|0:k)|0;h=d>>>0>>0?c+1|0:c;i=Ci(d^y[f+104>>2],h^y[f+108>>2],32);k=y[f+72>>2];j=i+k|0;v=W;c=y[f+76>>2];n=v+c|0;q=Ai(i,0,k<<1&-2,(c<<1|k>>>31)&1);c=q+j|0;A=m^c;k=W+(k>>>0>j>>>0?n+1|0:n)|0;m=c>>>0>>0?k+1|0:k;j=Ci(A,r^m,40);n=W;k=h+n|0;r=k+1|0;q=k;k=d+j|0;r=k>>>0>>0?r:q;d=Ai(j,0,d<<1&-2,(h<<1|d>>>31)&1);k=d+k|0;h=W+r|0;Y=d>>>0>k>>>0?h+1|0:h;r=Ci(k^i,v^Y,48);ha=W;d=m+ha|0;q=d+1|0;i=d;d=c+r|0;h=d>>>0>>0?q:i;c=Ai(r,0,c<<1&-2,(m<<1|c>>>31)&1);m=d+c|0;d=W+h|0;_=c>>>0>m>>>0?d+1|0:d;v=Ci(j^m,n^_,1);A=W;da=A;D=y[f+36>>2];d=y[f+4>>2];j=D+d|0;h=y[f+32>>2];c=y[f>>2];i=h+c|0;n=Ai(c<<1&-2,(d<<1|c>>>31)&1,h,0);d=i+n|0;c=W+(c>>>0>i>>>0?j+1|0:j)|0;i=d>>>0>>0?c+1|0:c;Q=Ci(d^y[f+96>>2],i^y[f+100>>2],32);S=f- -64|0;j=S;c=y[j>>2];n=Q+c|0;aa=W;j=y[j+4>>2];q=aa+j|0;N=Ai(Q,0,c<<1&-2,(j<<1|c>>>31)&1);j=N+n|0;c=W+(c>>>0>n>>>0?q+1|0:q)|0;N=j>>>0>>0?c+1|0:c;q=Ci(h^j,D^N,40);ba=W;c=i+ba|0;n=c+1|0;h=c;c=d+q|0;h=c>>>0>>0?n:h;i=Ai(q,0,d<<1&-2,(i<<1|d>>>31)&1);d=c+i|0;c=W+h|0;Z=d>>>0>>0?c+1|0:c;c=Z+A|0;h=c+1|0;i=c;c=d+v|0;i=c>>>0>>0?h:i;n=Ai(v,0,d<<1&-2,(Z<<1|d>>>31)&1);h=c+n|0;c=W+i|0;J=h>>>0>>0?c+1|0:c;l=Ci(h^u,J^l,32);O=W;w=y[f+52>>2];c=y[f+20>>2];n=w+c|0;A=y[f+48>>2];i=y[f+16>>2];D=A+i|0;I=Ai(i<<1&-2,(c<<1|i>>>31)&1,A,0);c=D+I|0;i=W+(i>>>0>D>>>0?n+1|0:n)|0;D=c>>>0>>0?i+1|0:i;I=Ci(c^y[f+112>>2],D^y[f+116>>2],32);n=y[f+80>>2];P=I+n|0;ea=W;i=y[f+84>>2];L=ea+i|0;x=Ai(I,0,n<<1&-2,(i<<1|n>>>31)&1);i=x+P|0;n=W+(n>>>0>P>>>0?L+1|0:L)|0;P=i>>>0>>0?n+1|0:n;A=Ci(A^i,w^P,40);w=W;n=D+w|0;x=n+1|0;L=n;n=c+A|0;L=n>>>0>>0?x:L;c=Ai(A,0,c<<1&-2,(D<<1|c>>>31)&1);n=c+n|0;x=n^I;D=W+L|0;I=c>>>0>n>>>0?D+1|0:D;D=Ci(x,ea^I,48);ea=W;c=P+ea|0;x=c+1|0;L=c;c=i+D|0;L=c>>>0>>0?x:L;i=Ai(D,0,i<<1&-2,(P<<1|i>>>31)&1);c=i+c|0;P=W+L|0;P=c>>>0>>0?P+1|0:P;i=P+O|0;x=i+1|0;L=i;i=c+l|0;L=i>>>0>>0?x:L;x=Ai(l,0,c<<1&-2,(P<<1|c>>>31)&1);i=x+i|0;$=v^i;v=W+L|0;L=i>>>0>>0?v+1|0:v;v=Ci($,da^L,40);da=W;x=J+da|0;oa=x+1|0;$=x;x=h+v|0;$=x>>>0>>0?oa:$;J=Ai(v,0,h<<1&-2,(J<<1|h>>>31)&1);h=J+x|0;y[f>>2]=h;x=W+$|0;J=h>>>0>>0?x+1|0:x;y[f+4>>2]=J;h=Ci(h^l,J^O,48);y[f+120>>2]=h;l=W;y[f+124>>2]=l;l=l+L|0;$=l+1|0;x=l;l=h+i|0;J=l>>>0>>0?$:x;i=Ai(h,0,i<<1&-2,(L<<1|i>>>31)&1);h=i+l|0;y[f+80>>2]=h;l=W+J|0;i=h>>>0>>0?l+1|0:l;y[f+84>>2]=i;pa=f,qa=Ci(h^v,i^da,1),y[pa+40>>2]=qa;y[f+44>>2]=W;h=Ci(c^A,w^P,1);A=W;c=Y+A|0;i=c+1|0;l=c;c=h+k|0;i=c>>>0>>0?i:l;v=Ai(h,0,k<<1&-2,(Y<<1|k>>>31)&1);c=c+v|0;k=W+i|0;i=Ci(d^Q,Z^aa,48);v=c>>>0>>0?k+1|0:k;Y=W;k=Ci(i^c,v^Y,32);l=W;Q=l;d=M+C|0;w=d+1|0;C=d;d=e+u|0;Z=d>>>0>>0?w:C;e=Ai(u,0,e<<1&-2,(M<<1|e>>>31)&1);d=e+d|0;u=W+Z|0;u=d>>>0>>0?u+1|0:u;e=u+l|0;C=e+1|0;l=e;e=d+k|0;l=e>>>0>>0?C:l;M=Ai(k,0,d<<1&-2,(u<<1|d>>>31)&1);e=M+e|0;C=h^e;h=W+l|0;l=e>>>0>>0?h+1|0:h;h=Ci(C,A^l,40);A=W;M=v+A|0;w=M+1|0;C=M;M=c+h|0;Z=M>>>0>>0?w:C;v=Ai(h,0,c<<1&-2,(v<<1|c>>>31)&1);c=v+M|0;C=k^c;k=W+Z|0;v=c>>>0>>0?k+1|0:k;k=Ci(C,Q^v,48);y[f+96>>2]=k;M=W;y[f+100>>2]=M;y[f+8>>2]=c;y[f+12>>2]=v;c=l+M|0;w=c+1|0;C=c;c=e+k|0;v=c>>>0>>0?w:C;e=Ai(k,0,e<<1&-2,(l<<1|e>>>31)&1);c=e+c|0;y[f+88>>2]=c;k=W+v|0;e=c>>>0>>0?k+1|0:k;y[f+92>>2]=e;pa=f,qa=Ci(c^h,e^A,1),y[pa+48>>2]=qa;y[f+52>>2]=W;k=Ci(d^F,u^ga,1);F=W;d=I+F|0;e=d+1|0;c=d;d=k+n|0;e=d>>>0>>0?e:c;h=Ai(k,0,n<<1&-2,(I<<1|n>>>31)&1);c=d+h|0;d=W+e|0;n=c>>>0>>0?d+1|0:d;h=Ci(c^r,ha^n,32);e=W;u=e;d=N+Y|0;l=d+1|0;e=d;d=i+j|0;r=d>>>0>>0?l:e;j=Ai(i,0,j<<1&-2,(N<<1|j>>>31)&1);d=j+d|0;e=W+r|0;j=d>>>0>>0?e+1|0:e;e=u+j|0;i=e+1|0;l=e;e=d+h|0;i=e>>>0>>0?i:l;r=Ai(h,0,d<<1&-2,(j<<1|d>>>31)&1);e=e+r|0;l=k^e;k=W+i|0;i=e>>>0>>0?k+1|0:k;k=Ci(l,F^i,40);F=W;r=n+F|0;C=r+1|0;l=r;r=c+k|0;v=r>>>0>>0?C:l;n=Ai(k,0,c<<1&-2,(n<<1|c>>>31)&1);c=n+r|0;l=h^c;h=W+v|0;n=c>>>0>>0?h+1|0:h;h=Ci(l,u^n,48);y[f+104>>2]=h;u=W;y[f+108>>2]=u;y[f+16>>2]=c;y[f+20>>2]=n;c=i+u|0;n=c+1|0;l=c;c=e+h|0;n=c>>>0>>0?n:l;e=Ai(h,0,e<<1&-2,(i<<1|e>>>31)&1);c=e+c|0;y[S>>2]=c;h=W+n|0;e=c>>>0>>0?h+1|0:h;y[S+4>>2]=e;pa=f,qa=Ci(c^k,e^F,1),y[pa+56>>2]=qa;y[f+60>>2]=W;e=Ci(d^q,j^ba,1);c=e+G|0;h=W;k=h+X|0;j=Ai(G<<1&-2,(X<<1|G>>>31)&1,e,0);d=j+c|0;c=W+(c>>>0>>0?k+1|0:k)|0;j=d>>>0>>0?c+1|0:c;k=Ci(d^D,ea^j,32);i=W;c=_+i|0;q=c+1|0;l=c;c=k+m|0;n=c>>>0>>0?q:l;m=Ai(k,0,m<<1&-2,(_<<1|m>>>31)&1);c=c+m|0;l=e^c;e=W+n|0;m=c>>>0>>0?e+1|0:e;e=Ci(l,h^m,40);h=W;n=j+h|0;q=n+1|0;l=n;n=d+e|0;G=n>>>0>>0?q:l;j=Ai(e,0,d<<1&-2,(j<<1|d>>>31)&1);d=j+n|0;l=k^d;k=W+G|0;j=d>>>0>>0?k+1|0:k;k=Ci(l,i^j,48);y[f+112>>2]=k;i=W;y[f+116>>2]=i;y[f+24>>2]=d;y[f+28>>2]=j;d=i+m|0;i=d+1|0;l=d;d=c+k|0;j=d>>>0>>0?i:l;c=Ai(k,0,c<<1&-2,(m<<1|c>>>31)&1);d=c+d|0;y[f+72>>2]=d;k=W+j|0;c=d>>>0>>0?k+1|0:k;y[f+76>>2]=c;pa=f,qa=Ci(d^e,c^h,1),y[pa+32>>2]=qa;y[f+36>>2]=W;g=g+1|0;if((g|0)!=8){continue}break}while(1){f=(B+3072|0)+(p<<4)|0;e=y[f+392>>2];d=y[f+136>>2];c=e+d|0;i=y[f+396>>2];g=y[f+140>>2];k=i+g|0;m=Ai(d<<1&-2,(g<<1|d>>>31)&1,e,0);g=m+c|0;d=W+(d>>>0>c>>>0?k+1|0:k)|0;k=g>>>0>>0?d+1|0:d;m=Ci(g^y[f+904>>2],k^y[f+908>>2],32);d=y[f+648>>2];j=m+d|0;F=W;c=y[f+652>>2];h=F+c|0;n=Ai(m,0,d<<1&-2,(c<<1|d>>>31)&1);c=n+j|0;d=W+(d>>>0>j>>>0?h+1|0:h)|0;D=c>>>0>>0?d+1|0:d;G=Ci(e^c,i^D,40);P=W;d=k+P|0;l=d+1|0;e=d;d=g+G|0;e=d>>>0>>0?l:e;g=Ai(G,0,g<<1&-2,(k<<1|g>>>31)&1);n=g+d|0;d=W+e|0;M=g>>>0>n>>>0?d+1|0:d;F=Ci(n^m,F^M,48);q=W;L=q;u=y[f+268>>2];g=y[f+12>>2];e=u+g|0;k=y[f+264>>2];d=y[f+8>>2];m=k+d|0;j=Ai(d<<1&-2,(g<<1|d>>>31)&1,k,0);g=m+j|0;d=W+(d>>>0>m>>>0?e+1|0:e)|0;j=g>>>0>>0?d+1|0:d;h=Ci(g^y[f+776>>2],j^y[f+780>>2],32);e=y[f+520>>2];m=h+e|0;r=W;d=y[f+524>>2];i=r+d|0;v=Ai(h,0,e<<1&-2,(d<<1|e>>>31)&1);d=v+m|0;l=k^d;e=W+(e>>>0>m>>>0?i+1|0:i)|0;k=d>>>0>>0?e+1|0:e;m=Ci(l,u^k,40);i=W;e=j+i|0;u=e+1|0;l=e;e=g+m|0;u=e>>>0>>0?u:l;g=Ai(m,0,g<<1&-2,(j<<1|g>>>31)&1);e=g+e|0;j=W+u|0;X=e>>>0>>0?j+1|0:j;u=Ci(e^h,r^X,48);ga=W;g=k+ga|0;h=g+1|0;l=g;g=d+u|0;j=g>>>0>>0?h:l;d=Ai(u,0,d<<1&-2,(k<<1|d>>>31)&1);k=g+d|0;g=W+j|0;Y=d>>>0>k>>>0?g+1|0:g;r=Ci(m^k,i^Y,1);l=W;C=l;A=y[f+260>>2];g=y[f+4>>2];m=A+g|0;j=y[f+256>>2];d=y[f>>2];h=j+d|0;i=Ai(d<<1&-2,(g<<1|d>>>31)&1,j,0);g=h+i|0;d=W+(d>>>0>h>>>0?m+1|0:m)|0;h=g>>>0>>0?d+1|0:d;_=Ci(g^y[f+768>>2],h^y[f+772>>2],32);d=y[f+512>>2];i=_+d|0;ha=W;m=y[f+516>>2];v=ha+m|0;Q=Ai(_,0,d<<1&-2,(m<<1|d>>>31)&1);m=Q+i|0;d=W+(d>>>0>i>>>0?v+1|0:v)|0;Q=m>>>0>>0?d+1|0:d;v=Ci(j^m,A^Q,40);da=W;d=h+da|0;j=d+1|0;i=d;d=g+v|0;j=d>>>0>>0?j:i;h=Ai(v,0,g<<1&-2,(h<<1|g>>>31)&1);g=d+h|0;d=W+j|0;S=g>>>0>>0?d+1|0:d;d=S+l|0;i=d+1|0;l=d;d=g+r|0;h=d>>>0>>0?i:l;i=Ai(r,0,g<<1&-2,(S<<1|g>>>31)&1);j=d+i|0;d=W+h|0;N=i>>>0>j>>>0?d+1|0:d;q=Ci(j^F,N^q,32);Z=W;aa=y[f+388>>2];d=y[f+132>>2];i=aa+d|0;l=y[f+384>>2];h=y[f+128>>2];A=l+h|0;J=Ai(h<<1&-2,(d<<1|h>>>31)&1,l,0);d=A+J|0;h=W+(h>>>0>A>>>0?i+1|0:i)|0;A=d>>>0>>0?h+1|0:h;J=Ci(d^y[f+896>>2],A^y[f+900>>2],32);i=y[f+640>>2];O=J+i|0;ba=W;h=y[f+644>>2];I=ba+h|0;w=Ai(J,0,i<<1&-2,(h<<1|i>>>31)&1);h=w+O|0;i=W+(i>>>0>O>>>0?I+1|0:I)|0;O=h>>>0>>0?i+1|0:i;l=Ci(l^h,aa^O,40);aa=W;i=A+aa|0;x=i+1|0;w=i;i=d+l|0;I=i>>>0>>0?x:w;d=Ai(l,0,d<<1&-2,(A<<1|d>>>31)&1);i=d+i|0;w=i^J;A=W+I|0;J=d>>>0>i>>>0?A+1|0:A;A=Ci(w,ba^J,48);ba=W;d=O+ba|0;x=d+1|0;w=d;d=h+A|0;I=d>>>0>>0?x:w;h=Ai(A,0,h<<1&-2,(O<<1|h>>>31)&1);d=h+d|0;O=W+I|0;O=d>>>0>>0?O+1|0:O;h=O+Z|0;x=h+1|0;w=h;h=d+q|0;I=h>>>0>>0?x:w;w=Ai(q,0,d<<1&-2,(O<<1|d>>>31)&1);h=w+h|0;x=r^h;r=W+I|0;I=h>>>0>>0?r+1|0:r;r=Ci(x,C^I,40);C=W;w=N+C|0;$=w+1|0;x=w;w=j+r|0;ea=w>>>0>>0?$:x;N=Ai(r,0,j<<1&-2,(N<<1|j>>>31)&1);j=N+w|0;y[f>>2]=j;w=W+ea|0;N=j>>>0>>0?w+1|0:w;y[f+4>>2]=N;j=Ci(j^q,N^Z,48);y[f+904>>2]=j;q=W;y[f+908>>2]=q;q=q+I|0;x=q+1|0;w=q;q=h+j|0;N=q>>>0>>0?x:w;h=Ai(j,0,h<<1&-2,(I<<1|h>>>31)&1);j=h+q|0;y[f+640>>2]=j;q=W+N|0;h=h>>>0>j>>>0?q+1|0:q;y[f+644>>2]=h;pa=f,qa=Ci(j^r,h^C,1),y[pa+264>>2]=qa;y[f+268>>2]=W;j=Ci(d^l,O^aa,1);l=W;d=X+l|0;h=d+1|0;q=d;d=e+j|0;h=d>>>0>>0?h:q;r=Ai(j,0,e<<1&-2,(X<<1|e>>>31)&1);d=d+r|0;e=W+h|0;h=Ci(g^_,S^ha,48);r=d>>>0>>0?e+1|0:e;X=W;e=Ci(h^d,r^X,32);q=W;_=q;g=D+L|0;w=g+1|0;C=g;g=c+F|0;S=g>>>0>>0?w:C;c=Ai(F,0,c<<1&-2,(D<<1|c>>>31)&1);g=c+g|0;F=W+S|0;F=c>>>0>g>>>0?F+1|0:F;c=F+q|0;C=c+1|0;q=c;c=e+g|0;q=c>>>0>>0?C:q;D=Ai(e,0,g<<1&-2,(F<<1|g>>>31)&1);c=D+c|0;C=j^c;j=W+q|0;q=c>>>0>>0?j+1|0:j;j=Ci(C,l^q,40);l=W;D=r+l|0;w=D+1|0;C=D;D=d+j|0;S=D>>>0>>0?w:C;r=Ai(j,0,d<<1&-2,(r<<1|d>>>31)&1);d=r+D|0;C=e^d;e=W+S|0;r=d>>>0>>0?e+1|0:e;e=Ci(C,_^r,48);y[f+768>>2]=e;D=W;y[f+772>>2]=D;y[f+8>>2]=d;y[f+12>>2]=r;d=q+D|0;r=d+1|0;C=d;d=c+e|0;r=d>>>0>>0?r:C;c=Ai(e,0,c<<1&-2,(q<<1|c>>>31)&1);d=c+d|0;y[f+648>>2]=d;e=W+r|0;c=d>>>0>>0?e+1|0:e;y[f+652>>2]=c;pa=f,qa=Ci(d^j,c^l,1),y[pa+384>>2]=qa;y[f+388>>2]=W;e=Ci(g^G,F^P,1);G=W;g=J+G|0;c=g+1|0;d=g;g=e+i|0;c=g>>>0>>0?c:d;j=Ai(e,0,i<<1&-2,(J<<1|i>>>31)&1);d=g+j|0;g=W+c|0;i=d>>>0>>0?g+1|0:g;j=Ci(d^u,ga^i,32);c=W;F=c;g=Q+X|0;l=g+1|0;c=g;g=h+m|0;u=g>>>0>>0?l:c;m=Ai(h,0,m<<1&-2,(Q<<1|m>>>31)&1);g=m+g|0;c=W+u|0;m=g>>>0>>0?c+1|0:c;c=F+m|0;q=c+1|0;l=c;c=g+j|0;h=c>>>0>>0?q:l;u=Ai(j,0,g<<1&-2,(m<<1|g>>>31)&1);c=c+u|0;l=e^c;e=W+h|0;h=c>>>0>>0?e+1|0:e;e=Ci(l,G^h,40);G=W;u=i+G|0;q=u+1|0;l=u;u=d+e|0;r=u>>>0>>0?q:l;i=Ai(e,0,d<<1&-2,(i<<1|d>>>31)&1);d=i+u|0;l=j^d;j=W+r|0;i=d>>>0>>0?j+1|0:j;j=Ci(l,F^i,48);y[f+776>>2]=j;F=W;y[f+780>>2]=F;y[f+128>>2]=d;y[f+132>>2]=i;d=h+F|0;i=d+1|0;l=d;d=c+j|0;i=d>>>0>>0?i:l;c=Ai(j,0,c<<1&-2,(h<<1|c>>>31)&1);d=c+d|0;y[f+512>>2]=d;j=W+i|0;c=d>>>0>>0?j+1|0:j;y[f+516>>2]=c;pa=f,qa=Ci(d^e,c^G,1),y[pa+392>>2]=qa;y[f+396>>2]=W;c=Ci(g^v,m^da,1);d=c+n|0;j=W;e=j+M|0;m=Ai(n<<1&-2,(M<<1|n>>>31)&1,c,0);g=m+d|0;d=W+(d>>>0>>0?e+1|0:e)|0;m=g>>>0>>0?d+1|0:d;e=Ci(g^A,ba^m,32);h=W;d=Y+h|0;i=d+1|0;l=d;d=e+k|0;i=d>>>0>>0?i:l;k=Ai(e,0,k<<1&-2,(Y<<1|k>>>31)&1);d=d+k|0;l=c^d;c=W+i|0;k=d>>>0>>0?c+1|0:c;c=Ci(l,j^k,40);j=W;i=m+j|0;q=i+1|0;l=i;i=c+g|0;n=i>>>0>>0?q:l;m=Ai(c,0,g<<1&-2,(m<<1|g>>>31)&1);g=m+i|0;l=e^g;e=W+n|0;m=g>>>0>>0?e+1|0:e;e=Ci(l,h^m,48);y[f+896>>2]=e;h=W;y[f+900>>2]=h;y[f+136>>2]=g;y[f+140>>2]=m;g=h+k|0;i=g+1|0;l=g;g=d+e|0;m=g>>>0>>0?i:l;d=Ai(e,0,d<<1&-2,(k<<1|d>>>31)&1);g=d+g|0;y[f+520>>2]=g;e=W+m|0;d=d>>>0>g>>>0?e+1|0:e;y[f+524>>2]=d;pa=f,qa=Ci(c^g,d^j,1),y[pa+256>>2]=qa;y[f+260>>2]=W;p=p+1|0;if((p|0)!=8){continue}break}t(s,B+2048|0,1024);p=0;while(1){f=p<<3;g=f+s|0;c=y[g>>2];d=B+3072|0;e=d+f|0;k=y[e>>2];e=y[g+4>>2]^y[e+4>>2];y[g>>2]=c^k;y[g+4>>2]=e;c=f|8;g=c+s|0;e=y[g>>2];c=d+c|0;k=y[c>>2];c=y[g+4>>2]^y[c+4>>2];y[g>>2]=e^k;y[g+4>>2]=c;c=f|16;g=c+s|0;e=y[g>>2];c=d+c|0;k=y[c>>2];c=y[g+4>>2]^y[c+4>>2];y[g>>2]=e^k;y[g+4>>2]=c;g=f|24;f=g+s|0;c=y[f>>2];g=d+g|0;d=y[g>>2];g=y[f+4>>2]^y[g+4>>2];y[f>>2]=d^c;y[f+4>>2]=g;p=p+4|0;if((p|0)!=128){continue}break}}p=ka+1|0;R=R+1|0;s=y[a+20>>2];K=K+1|0;if(s>>>0>K>>>0){continue}break}}T=B+4096|0;}function Pa(a){var 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,x=0,y=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,X=0,Y=0,Z=0;q=z[a+44|0]|z[a+45|0]<<8|(z[a+46|0]<<16|z[a+47|0]<<24);e=q>>>5&2097151;I=(z[a+60|0]|z[a+61|0]<<8|(z[a+62|0]<<16|z[a+63|0]<<24))>>>3|0;d=Ai(I,0,-683901,-1);b=z[a+44|0];c=b<<16&2031616|(z[a+42|0]|z[a+43|0]<<8);k=d+c|0;b=W;b=c>>>0>k>>>0?b+1|0:b;i=b;b=b-((k>>>0<4293918720)-1|0)|0;n=b;d=b>>21;c=e;g=k- -1048576|0;e=(b&2097151)<<11|g>>>21;b=c+e|0;c=d;c=b>>>0>>0?c+1|0:c;x=c;H=b;o=Ai(b,c,-683901,-1);j=W;J=(z[a+49|0]|z[a+50|0]<<8|(z[a+51|0]<<16|z[a+52|0]<<24))>>>7&2097151;h=Ai(J,0,-997805,-1);b=z[a+27|0];d=0;p=z[a+23|0]|z[a+24|0]<<8|(z[a+25|0]<<16|z[a+26|0]<<24);e=b<<8|p>>>24;b=z[a+28|0];c=0;b=e|b<<16;c=c|d;c=((c&3)<<30|b>>>2)&2097151;d=c+h|0;b=W;b=c>>>0>d>>>0?b+1|0:b;l=z[a+52|0]|z[a+53|0]<<8|(z[a+54|0]<<16|z[a+55|0]<<24);F=l>>>4&2097151;c=Ai(F,0,654183,0);d=c+d|0;b=W+b|0;h=d;d=c>>>0>d>>>0?b+1|0:b;c=z[a+48|0];b=0;f=c<<8|q>>>24;e=z[a+49|0];e=e<<16;q=b|b;c=e|f;K=((q&3)<<30|c>>>2)&2097151;b=Ai(K,0,136657,0);c=b+h|0;d=W+d|0;d=b>>>0>c>>>0?d+1|0:d;L=(z[a+57|0]|z[a+58|0]<<8|(z[a+59|0]<<16|z[a+60|0]<<24))>>>6&2097151;b=Ai(L,0,666643,0);e=b+c|0;c=W+d|0;h=e;d=b>>>0>e>>>0?c+1|0:c;b=z[a+56|0];c=0;f=b<<8|l>>>24;e=z[a+57|0];b=0;e=e<<16;l=b|c;c=e|f;M=((l&1)<<31|c>>>1)&2097151;c=Ai(M,0,470296,0);e=c+h|0;b=W+d|0;d=e;b=d>>>0>>0?b+1|0:b;c=b+j|0;e=d+o|0;c=d>>>0>e>>>0?c+1|0:c;r=d- -1048576|0;d=b-((d>>>0<4293918720)-1|0)|0;y=d;b=r&-2097152;j=e-b|0;o=c-((b>>>0>e>>>0)+d|0)|0;c=Ai(J,0,654183,0);d=c+(p>>>5&2097151)|0;b=W;b=c>>>0>d>>>0?b+1|0:b;c=d;d=Ai(F,0,470296,0);e=c+d|0;c=W+b|0;c=d>>>0>e>>>0?c+1|0:c;b=Ai(K,N,-997805,-1);d=b+e|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=d;d=Ai(M,O,666643,0);e=b+d|0;b=W+c|0;f=e;e=d>>>0>e>>>0?b+1|0:b;d=Ai(J,0,470296,0);b=z[a+23|0];b=b<<16&2031616|(z[a+21|0]|z[a+22|0]<<8);h=d+b|0;d=W;d=b>>>0>h>>>0?d+1|0:d;c=Ai(F,0,666643,0);h=c+h|0;b=W+d|0;d=Ai(K,N,654183,0);p=d+h|0;c=W+(c>>>0>h>>>0?b+1|0:b)|0;c=d>>>0>p>>>0?c+1|0:c;l=c;c=c-((p>>>0<4293918720)-1|0)|0;E=c;b=c>>>21|0;h=p- -1048576|0;c=(c&2097151)<<11|h>>>21;f=c+f|0;b=b+e|0;b=c>>>0>f>>>0?b+1|0:b;d=b;c=b-((f>>>0<4293918720)-1|0)|0;m=c;b=j;e=f- -1048576|0;j=(c&2097151)<<11|e>>>21;s=b+j|0;c=(c>>21)+o|0;c=j>>>0>s>>>0?c+1|0:c;j=c-((s>>>0<4293918720)-1|0)|0;q=j;o=s- -1048576|0;b=o&-2097152;G=s-b|0;P=c-((b>>>0>s>>>0)+j|0)|0;b=Ai(H,x,136657,0);c=b+f|0;d=W+d|0;d=b>>>0>c>>>0?d+1|0:d;b=e&-2097152;v=c-b|0;t=d-((b>>>0>c>>>0)+m|0)|0;b=g&-2097152;s=k-b|0;n=i-((b>>>0>k>>>0)+n|0)|0;i=Ai(I,0,136657,0);b=z[a+40|0];c=0;g=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);e=b<<8|g>>>24;b=z[a+41|0];d=0;b=e|b<<16;d=c|d;c=d>>>3|0;d=(d&7)<<29|b>>>3;e=d+i|0;b=c+W|0;b=d>>>0>e>>>0?b+1|0:b;c=Ai(L,0,-683901,-1);d=c+e|0;b=W+b|0;b=c>>>0>d>>>0?b+1|0:b;f=d;c=Ai(I,0,-997805,-1);e=c+(g>>>6&2097151)|0;d=W;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(L,0,136657,0);g=c+e|0;c=W+d|0;d=Ai(M,O,-683901,-1);A=d+g|0;c=W+(e>>>0>g>>>0?c+1|0:c)|0;c=d>>>0>A>>>0?c+1|0:c;j=c;d=c-((A>>>0<4293918720)-1|0)|0;S=d;c=d>>21;k=A- -1048576|0;d=(d&2097151)<<11|k>>>21;m=d+f|0;b=b+c|0;b=d>>>0>m>>>0?b+1|0:b;g=b;b=b-((m>>>0<4293918720)-1|0)|0;B=b;c=b>>21;f=m- -1048576|0;d=(b&2097151)<<11|f>>>21;b=d+s|0;c=c+n|0;c=b>>>0>>0?c+1|0:c;D=c;C=b;c=Ai(b,c,-683901,-1);d=c+v|0;b=W+t|0;u=d;e=c>>>0>d>>>0?b+1|0:b;b=h&-2097152;s=p-b|0;n=l-((E&4095)+(b>>>0>p>>>0)|0)|0;p=Ai(J,0,666643,0);c=z[a+19|0];b=0;l=z[a+15|0]|z[a+16|0]<<8|(z[a+17|0]<<16|z[a+18|0]<<24);h=c<<8|l>>>24;d=b;b=z[a+20|0];c=0;b=b<<16;d=c|d;c=b|h;c=(d&7)<<29|c>>>3;h=c+p|0;d=W+(d>>>3|0)|0;d=c>>>0>h>>>0?d+1|0:d;b=Ai(K,N,470296,0);h=b+h|0;c=W+d|0;b=b>>>0>h>>>0?c+1|0:c;d=Ai(K,N,666643,0);v=d+(l>>>6&2097151)|0;c=W;c=d>>>0>v>>>0?c+1|0:c;p=c;d=c-((v>>>0<4293918720)-1|0)|0;T=d;c=d>>>21|0;i=v- -1048576|0;d=(d&2097151)<<11|i>>>21;t=d+h|0;b=b+c|0;b=d>>>0>t>>>0?b+1|0:b;l=b;b=b-((t>>>0<4293918720)-1|0)|0;U=b;c=b>>>21|0;h=t- -1048576|0;b=(b&2097151)<<11|h>>>21;d=b+s|0;c=c+n|0;c=b>>>0>d>>>0?c+1|0:c;b=d;d=Ai(H,x,-997805,-1);n=b+d|0;b=W+c|0;b=d>>>0>n>>>0?b+1|0:b;d=f&-2097152;c=m-d|0;E=c;f=g-((d>>>0>m>>>0)+B|0)|0;Q=f;d=Ai(C,D,136657,0);g=d+n|0;b=W+b|0;b=d>>>0>g>>>0?b+1|0:b;d=Ai(c,f,-683901,-1);n=d+g|0;c=W+b|0;c=d>>>0>n>>>0?c+1|0:c;g=c;b=c-((n>>>0<4293918720)-1|0)|0;B=b;f=n- -1048576|0;c=(b&2097151)<<11|f>>>21;m=c+u|0;b=(b>>21)+e|0;b=c>>>0>m>>>0?b+1|0:b;c=b-((m>>>0<4293918720)-1|0)|0;u=c;e=m- -1048576|0;s=(c&2097151)<<11|e>>>21;G=s+G|0;c=(c>>21)+P|0;V=G;s=s>>>0>G>>>0?c+1|0:c;c=e&-2097152;X=m-c|0;Y=b-((c>>>0>m>>>0)+u|0)|0;b=f&-2097152;G=n-b|0;P=g-((b>>>0>n>>>0)+B|0)|0;b=Ai(H,x,654183,0);c=h&-2097152;d=b+(t-c|0)|0;c=W+(l-((U&2147483647)+(c>>>0>t>>>0)|0)|0)|0;c=b>>>0>d>>>0?c+1|0:c;b=Ai(C,D,-997805,-1);d=b+d|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=d;d=Ai(E,Q,136657,0);e=b+d|0;b=W+c|0;u=e;g=d>>>0>e>>>0?b+1|0:b;b=k&-2097152;t=A-b|0;m=j-((b>>>0>A>>>0)+S|0)|0;l=Ai(F,0,-683901,-1);c=z[a+35|0];b=0;h=z[a+31|0]|z[a+32|0]<<8|(z[a+33|0]<<16|z[a+34|0]<<24);e=c<<8|h>>>24;d=b;b=z[a+36|0];c=0;b=b<<16|e;c=c|d;b=((c&1)<<31|b>>>1)&2097151;c=b+l|0;d=W;d=b>>>0>c>>>0?d+1|0:d;b=Ai(I,0,654183,0);e=b+c|0;c=W+d|0;c=b>>>0>e>>>0?c+1|0:c;d=Ai(L,0,-997805,-1);e=d+e|0;b=W+c|0;b=d>>>0>e>>>0?b+1|0:b;c=Ai(M,O,136657,0);d=c+e|0;b=W+b|0;f=d;e=c>>>0>d>>>0?b+1|0:b;b=Ai(J,0,-683901,-1);d=b+(h>>>4&2097151)|0;c=W;c=b>>>0>d>>>0?c+1|0:c;b=Ai(F,0,136657,0);h=b+d|0;d=W+c|0;d=b>>>0>h>>>0?d+1|0:d;b=Ai(I,0,470296,0);h=b+h|0;c=W+d|0;c=b>>>0>h>>>0?c+1|0:c;d=Ai(L,0,654183,0);h=d+h|0;b=W+c|0;c=Ai(M,O,-997805,-1);j=c+h|0;b=W+(d>>>0>h>>>0?b+1|0:b)|0;b=c>>>0>j>>>0?b+1|0:b;l=b;c=b-((j>>>0<4293918720)-1|0)|0;Z=c;b=c>>21;h=j- -1048576|0;c=(c&2097151)<<11|h>>>21;k=c+f|0;d=b+e|0;d=c>>>0>k>>>0?d+1|0:d;c=d-((k>>>0<4293918720)-1|0)|0;n=c;b=c>>21;f=k- -1048576|0;e=(c&2097151)<<11|f>>>21;c=e+t|0;b=b+m|0;b=c>>>0>>0?b+1|0:b;B=b;e=u;u=c;b=Ai(c,b,-683901,-1);e=e+b|0;c=W+g|0;m=e;e=b>>>0>e>>>0?c+1|0:c;b=Ai(H,x,470296,0);c=i&-2097152;g=b+(v-c|0)|0;c=W+(p-((T&2047)+(c>>>0>v>>>0)|0)|0)|0;c=b>>>0>g>>>0?c+1|0:c;b=g;g=Ai(C,D,654183,0);i=b+g|0;b=W+c|0;b=g>>>0>i>>>0?b+1|0:b;g=Ai(E,Q,-997805,-1);i=g+i|0;c=W+b|0;c=g>>>0>i>>>0?c+1|0:c;b=f&-2097152;f=k-b|0;A=f;g=d-((b>>>0>k>>>0)+n|0)|0;R=g;d=Ai(u,B,136657,0);i=d+i|0;b=W+c|0;b=d>>>0>i>>>0?b+1|0:b;d=Ai(f,g,-683901,-1);p=d+i|0;c=W+b|0;c=d>>>0>p>>>0?c+1|0:c;g=c;b=c-((p>>>0<4293918720)-1|0)|0;t=b;f=p- -1048576|0;c=(b&2097151)<<11|f>>>21;i=c+m|0;b=(b>>21)+e|0;b=c>>>0>i>>>0?b+1|0:b;c=b-((i>>>0<4293918720)-1|0)|0;m=c;e=i- -1048576|0;k=(c&2097151)<<11|e>>>21;n=k+G|0;c=(c>>21)+P|0;S=n;n=k>>>0>n>>>0?c+1|0:c;c=e&-2097152;T=i-c|0;U=b-((c>>>0>i>>>0)+m|0)|0;b=f&-2097152;G=p-b|0;P=g-((b>>>0>p>>>0)+t|0)|0;g=Ai(H,x,666643,0);c=z[a+14|0];b=0;m=z[a+10|0]|z[a+11|0]<<8|(z[a+12|0]<<16|z[a+13|0]<<24);e=c<<8|m>>>24;d=b;b=z[a+15|0];c=0;b=b<<16|e;c=c|d;b=((c&1)<<31|b>>>1)&2097151;c=b+g|0;d=W;d=b>>>0>c>>>0?d+1|0:d;b=c;c=Ai(C,D,470296,0);e=b+c|0;b=W+d|0;b=c>>>0>e>>>0?b+1|0:b;c=Ai(E,Q,654183,0);d=c+e|0;b=W+b|0;b=c>>>0>d>>>0?b+1|0:b;c=d;d=Ai(u,B,-997805,-1);e=c+d|0;c=W+b|0;c=d>>>0>e>>>0?c+1|0:c;b=Ai(A,R,136657,0);d=b+e|0;c=W+c|0;p=d;e=b>>>0>d>>>0?c+1|0:c;b=h&-2097152;h=j-b|0;g=l-((b>>>0>j>>>0)+Z|0)|0;d=Ai(J,0,136657,0);b=W;c=(z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24))>>>7&2097151;d=c+d|0;b=c>>>0>d>>>0?b+1|0:b;c=d;d=Ai(F,0,-997805,-1);f=c+d|0;c=W+b|0;c=d>>>0>f>>>0?c+1|0:c;b=Ai(K,N,-683901,-1);d=b+f|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=Ai(I,0,666643,0);f=b+d|0;d=W+c|0;d=b>>>0>f>>>0?d+1|0:d;c=Ai(L,0,470296,0);f=c+f|0;b=W+d|0;b=c>>>0>f>>>0?b+1|0:b;c=Ai(M,O,654183,0);d=c+f|0;b=W+b|0;f=(y&2097151)<<11|r>>>21;r=f+d|0;c=(y>>21)+(c>>>0>d>>>0?b+1|0:b)|0;c=f>>>0>r>>>0?c+1|0:c;k=c;b=c-((r>>>0<4293918720)-1|0)|0;y=b;i=r- -1048576|0;f=(b&2097151)<<11|i>>>21;c=f+h|0;b=(b>>21)+g|0;b=c>>>0>>0?b+1|0:b;v=b;t=c;c=Ai(c,b,-683901,-1);d=c+p|0;b=W+e|0;f=d;e=c>>>0>d>>>0?b+1|0:b;b=Ai(C,D,666643,0);d=b+(m>>>4&2097151)|0;c=W;c=b>>>0>d>>>0?c+1|0:c;b=Ai(E,Q,470296,0);d=b+d|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=Ai(u,B,654183,0);g=b+d|0;d=W+c|0;d=b>>>0>g>>>0?d+1|0:d;c=Ai(A,R,-997805,-1);g=c+g|0;b=W+d|0;b=c>>>0>g>>>0?b+1|0:b;c=Ai(t,v,136657,0);j=c+g|0;b=W+b|0;b=c>>>0>j>>>0?b+1|0:b;l=b;c=b-((j>>>0<4293918720)-1|0)|0;D=c;b=f;h=j- -1048576|0;f=(c&2097151)<<11|h>>>21;d=b+f|0;c=(c>>21)+e|0;c=d>>>0>>0?c+1|0:c;e=c-((d>>>0<4293918720)-1|0)|0;C=e;b=e>>21;g=d- -1048576|0;e=(e&2097151)<<11|g>>>21;f=e+G|0;b=b+P|0;H=f;p=e>>>0>f>>>0?b+1|0:b;f=d;d=c;c=i&-2097152;i=(q&2097151)<<11|o>>>21;e=(r-c|0)+i|0;c=(k-((c>>>0>r>>>0)+y|0)|0)+(q>>21)|0;c=e>>>0>>0?c+1|0:c;m=c;c=c-((e>>>0<4293918720)-1|0)|0;F=c;b=c>>21;o=b;y=e- -1048576|0;x=(c&2097151)<<11|y>>>21;b=Ai(x,b,-683901,-1);c=b+f|0;d=W+d|0;d=b>>>0>c>>>0?d+1|0:d;b=g&-2097152;N=c-b|0;O=d-((b>>>0>c>>>0)+C|0)|0;b=Ai(x,o,136657,0);c=l+W|0;d=b+j|0;c=d>>>0>>0?c+1|0:c;b=h&-2097152;C=d-b|0;r=c-((b>>>0>d>>>0)+D|0)|0;c=Ai(E,Q,666643,0);d=W;b=(z[a+7|0]|z[a+8|0]<<8|(z[a+9|0]<<16|z[a+10|0]<<24))>>>7&2097151;c=b+c|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(u,B,470296,0);f=b+c|0;c=W+d|0;c=b>>>0>f>>>0?c+1|0:c;b=Ai(A,R,654183,0);d=b+f|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=d;d=Ai(t,v,-997805,-1);f=b+d|0;b=W+c|0;i=f;f=d>>>0>f>>>0?b+1|0:b;l=Ai(u,B,666643,0);c=z[a+6|0];b=0;D=z[a+2|0]|z[a+3|0]<<8|(z[a+4|0]<<16|z[a+5|0]<<24);g=c<<8|D>>>24;d=b;b=z[a+7|0];c=0;b=b<<16|g;c=c|d;c=((c&3)<<30|b>>>2)&2097151;d=c+l|0;b=W;b=c>>>0>d>>>0?b+1|0:b;c=Ai(A,R,470296,0);g=c+d|0;d=W+b|0;d=c>>>0>g>>>0?d+1|0:d;c=Ai(t,v,654183,0);k=c+g|0;b=W+d|0;b=c>>>0>k>>>0?b+1|0:b;l=b;b=b-((k>>>0<4293918720)-1|0)|0;q=b;d=b>>21;h=k- -1048576|0;b=(b&2097151)<<11|h>>>21;g=b+i|0;c=d+f|0;c=b>>>0>g>>>0?c+1|0:c;b=c-((g>>>0<4293918720)-1|0)|0;j=b;f=g- -1048576|0;i=(b&2097151)<<11|f>>>21;u=i+C|0;b=(b>>21)+r|0;C=u;i=i>>>0>u>>>0?b+1|0:b;b=Ai(x,o,-997805,-1);d=b+g|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=f&-2097152;E=d-b|0;B=c-((b>>>0>d>>>0)+j|0)|0;c=Ai(x,o,654183,0);b=l+W|0;d=c+k|0;b=d>>>0>>0?b+1|0:b;c=h&-2097152;u=d-c|0;r=b-((c>>>0>d>>>0)+q|0)|0;b=Ai(A,R,666643,0);d=b+(D>>>5&2097151)|0;c=W;c=b>>>0>d>>>0?c+1|0:c;b=Ai(t,v,470296,0);d=b+d|0;c=W+c|0;g=d;d=b>>>0>d>>>0?c+1|0:c;f=Ai(t,v,666643,0);b=z[a+2|0];c=b<<16&2031616|(z[a|0]|z[a+1|0]<<8);j=f+c|0;b=W;b=c>>>0>j>>>0?b+1|0:b;l=b;b=b-((j>>>0<4293918720)-1|0)|0;v=b;h=j- -1048576|0;f=(b&2097151)<<11|h>>>21;k=f+g|0;b=(b>>21)+d|0;b=f>>>0>k>>>0?b+1|0:b;d=b;b=b-((k>>>0<4293918720)-1|0)|0;q=b;g=k- -1048576|0;f=(b&2097151)<<11|g>>>21;t=f+u|0;b=(b>>21)+r|0;f=f>>>0>t>>>0?b+1|0:b;b=Ai(x,o,470296,0);d=d+W|0;c=b+k|0;d=c>>>0>>0?d+1|0:d;b=g&-2097152;k=c-b|0;g=d-((b>>>0>c>>>0)+q|0)|0;c=Ai(x,o,666643,0);d=h&-2097152;r=c+(j-d|0)|0;b=W+(l-((d>>>0>j>>>0)+v|0)|0)|0;b=c>>>0>r>>>0?b+1|0:b;d=b>>21;b=(b&2097151)<<11|r>>>21;q=b+k|0;c=d+g|0;c=b>>>0>q>>>0?c+1|0:c;b=c>>21;c=(c&2097151)<<11|q>>>21;o=c+t|0;b=b+f|0;b=c>>>0>o>>>0?b+1|0:b;c=b>>21;b=(b&2097151)<<11|o>>>21;f=b+E|0;c=c+B|0;c=b>>>0>f>>>0?c+1|0:c;b=c>>21;c=(c&2097151)<<11|f>>>21;j=c+C|0;d=b+i|0;d=c>>>0>j>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|j>>>21;k=d+N|0;b=c+O|0;b=d>>>0>k>>>0?b+1|0:b;d=b>>21;b=(b&2097151)<<11|k>>>21;g=b+H|0;c=d+p|0;p=g;c=b>>>0>g>>>0?c+1|0:c;b=c>>21;c=(c&2097151)<<11|g>>>21;i=c+T|0;b=b+U|0;b=c>>>0>i>>>0?b+1|0:b;c=b>>21;b=(b&2097151)<<11|i>>>21;l=b+S|0;c=c+n|0;c=b>>>0>l>>>0?c+1|0:c;b=c>>21;c=(c&2097151)<<11|l>>>21;h=c+X|0;d=b+Y|0;d=c>>>0>h>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|h>>>21;g=d+V|0;b=c+s|0;c=y&-2097152;n=e-c|0;b=d>>>0>g>>>0?b+1|0:b;y=n+((b&2097151)<<11|g>>>21)|0;b=(m-((c>>>0>e>>>0)+F|0)|0)+(b>>21)|0;b=n>>>0>y>>>0?b+1|0:b;s=(b&2097151)<<11|y>>>21;c=b>>21;m=c;b=Ai(s,c,666643,0);c=r&2097151;r=b+c|0;b=W;b=c>>>0>r>>>0?b+1|0:b;e=b;w[a|0]=r;w[a+1|0]=(b&255)<<24|r>>>8;b=q&2097151;c=Ai(s,m,470296,0)+b|0;d=W;n=(e&2097151)<<11|r>>>21;q=n+c|0;b=(e>>21)+(b>>>0>c>>>0?d+1|0:d)|0;b=n>>>0>q>>>0?b+1|0:b;w[a+4|0]=(b&2047)<<21|q>>>11;c=b;d=q;w[a+3|0]=(b&7)<<29|d>>>3;w[a+2|0]=((e&65535)<<16|r>>>16)&31|d<<5;e=o&2097151;o=Ai(s,m,654183,0)+e|0;b=W;e=e>>>0>o>>>0?b+1|0:b;q=(c&2097151)<<11|d>>>21;o=q+o|0;c=(c>>21)+e|0;c=o>>>0>>0?c+1|0:c;b=c;w[a+6|0]=(b&63)<<26|o>>>6;e=o;w[a+5|0]=e<<2|(d&1572864)>>>19;d=f&2097151;f=Ai(s,m,-997805,-1)+d|0;c=W;c=d>>>0>f>>>0?c+1|0:c;d=b;b=b>>21;o=(d&2097151)<<11|e>>>21;f=o+f|0;d=b+c|0;d=f>>>0>>0?d+1|0:d;w[a+9|0]=(d&511)<<23|f>>>9;w[a+8|0]=(d&1)<<31|f>>>1;w[a+7|0]=f<<7|(e&2080768)>>>14;c=j&2097151;e=Ai(s,m,136657,0)+c|0;b=W;b=c>>>0>e>>>0?b+1|0:b;c=d;d=c>>21;j=(c&2097151)<<11|f>>>21;e=j+e|0;c=b+d|0;c=e>>>0>>0?c+1|0:c;w[a+12|0]=(c&4095)<<20|e>>>12;d=e;w[a+11|0]=(c&15)<<28|d>>>4;w[a+10|0]=d<<4|(f&1966080)>>>17;e=k&2097151;f=Ai(s,m,-683901,-1)+e|0;b=W;b=e>>>0>f>>>0?b+1|0:b;e=c;c=c>>21;u=f;f=(e&2097151)<<11|d>>>21;e=u+f|0;c=b+c|0;c=e>>>0>>0?c+1|0:c;w[a+14|0]=(c&127)<<25|e>>>7;w[a+13|0]=e<<1|(d&1048576)>>>20;b=c>>21;c=(c&2097151)<<11|e>>>21;f=c+(p&2097151)|0;d=c>>>0>f>>>0?b+1|0:b;w[a+17|0]=(d&1023)<<22|f>>>10;w[a+16|0]=(d&3)<<30|f>>>2;w[a+15|0]=f<<6|(e&2064384)>>>15;b=d>>21;c=(d&2097151)<<11|f>>>21;d=c+(i&2097151)|0;b=c>>>0>d>>>0?b+1|0:b;w[a+20|0]=(b&8191)<<19|d>>>13;w[a+19|0]=(b&31)<<27|d>>>5;c=l&2097151;l=(b&2097151)<<11|d>>>21;e=c+l|0;c=b>>21;c=e>>>0>>0?c+1|0:c;l=e;w[a+21|0]=e;w[a+18|0]=d<<3|(f&1835008)>>>18;w[a+22|0]=(c&255)<<24|e>>>8;f=(c&2097151)<<11|e>>>21;e=f+(h&2097151)|0;d=c>>21;d=e>>>0>>0?d+1|0:d;w[a+25|0]=(d&2047)<<21|e>>>11;w[a+24|0]=(d&7)<<29|e>>>3;w[a+23|0]=((c&65535)<<16|l>>>16)&31|e<<5;b=d>>21;c=(d&2097151)<<11|e>>>21;d=c+(g&2097151)|0;b=c>>>0>d>>>0?b+1|0:b;w[a+27|0]=(b&63)<<26|d>>>6;w[a+26|0]=d<<2|(e&1572864)>>>19;c=b;b=b>>21;g=(c&2097151)<<11|d>>>21;f=y&2097151;e=g+f|0;c=e>>>0>>0?b+1|0:b;w[a+31|0]=(c&131071)<<15|e>>>17;b=e;w[a+30|0]=(c&511)<<23|b>>>9;w[a+28|0]=b<<7|(d&2080768)>>>14;w[a+29|0]=g+y>>>1;}function oc(a,b,c){var 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,u=0,v=0,w=0,x=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,U=0,V=0,X=0,Y=0,Z=0;C=T-2048|0;T=C;t(C+1024|0,b,1024);b=0;while(1){f=C+1024|0;d=b<<3;e=f+d|0;j=y[e>>2];g=a+d|0;k=y[g>>2];g=y[e+4>>2]^y[g+4>>2];y[e>>2]=j^k;y[e+4>>2]=g;j=d|8;e=j+f|0;g=y[e>>2];j=a+j|0;k=y[j>>2];j=y[e+4>>2]^y[j+4>>2];y[e>>2]=g^k;y[e+4>>2]=j;j=d|16;e=j+f|0;g=y[e>>2];j=a+j|0;k=y[j>>2];j=y[e+4>>2]^y[j+4>>2];y[e>>2]=g^k;y[e+4>>2]=j;e=d|24;d=e+f|0;j=y[d>>2];e=a+e|0;g=y[e>>2];e=y[d+4>>2]^y[e+4>>2];y[d>>2]=g^j;y[d+4>>2]=e;b=b+4|0;if((b|0)!=128){continue}break}t(C,f,1024);a=0;b=0;while(1){f=b<<3;d=f+C|0;e=y[d>>2];j=c+f|0;g=y[j>>2];j=y[d+4>>2]^y[j+4>>2];y[d>>2]=g^e;y[d+4>>2]=j;e=f|8;d=e+C|0;j=y[d>>2];e=c+e|0;g=y[e>>2];e=y[d+4>>2]^y[e+4>>2];y[d>>2]=g^j;y[d+4>>2]=e;e=f|16;d=e+C|0;j=y[d>>2];e=c+e|0;g=y[e>>2];e=y[d+4>>2]^y[e+4>>2];y[d>>2]=g^j;y[d+4>>2]=e;d=f|24;f=d+C|0;e=y[f>>2];d=c+d|0;j=y[d>>2];d=y[f+4>>2]^y[d+4>>2];y[f>>2]=e^j;y[f+4>>2]=d;b=b+4|0;if((b|0)!=128){continue}break}while(1){f=(C+1024|0)+(a<<7)|0;g=y[f+56>>2];d=y[f+24>>2];k=g+d|0;i=y[f+60>>2];e=y[f+28>>2];b=i+e|0;j=d>>>0>k>>>0?b+1|0:b;e=Ai(d<<1&-2,(e<<1|d>>>31)&1,g,0);d=e+k|0;b=W+j|0;j=d>>>0>>0?b+1|0:b;k=Ci(y[f+120>>2]^d,j^y[f+124>>2],32);e=y[f+88>>2];m=k+e|0;o=W;h=y[f+92>>2];b=o+h|0;l=e>>>0>m>>>0?b+1|0:b;h=Ai(e<<1&-2,(h<<1|e>>>31)&1,k,0);e=h+m|0;b=W+l|0;n=e>>>0>>0?b+1|0:b;L=Ci(g^e,i^n,40);S=W;b=j+S|0;h=d+L|0;g=h>>>0>>0?b+1|0:b;d=Ai(L,0,d<<1&-2,(j<<1|d>>>31)&1);I=d+h|0;b=W+g|0;M=d>>>0>I>>>0?b+1|0:b;D=Ci(k^I,o^M,48);b=W;U=b;p=D;m=b;k=y[f+40>>2];d=y[f+8>>2];h=k+d|0;E=y[f+44>>2];j=y[f+12>>2];b=E+j|0;g=d>>>0>h>>>0?b+1|0:b;j=Ai(d<<1&-2,(j<<1|d>>>31)&1,k,0);d=j+h|0;b=W+g|0;g=d>>>0>>0?b+1|0:b;h=Ci(y[f+104>>2]^d,g^y[f+108>>2],32);j=y[f+72>>2];o=h+j|0;s=W;l=y[f+76>>2];b=s+l|0;i=j>>>0>o>>>0?b+1|0:b;l=Ai(j<<1&-2,(l<<1|j>>>31)&1,h,0);j=l+o|0;b=W+i|0;i=j^k;k=j>>>0>>0?b+1|0:b;l=Ci(i,E^k,40);r=W;b=g+r|0;o=d+l|0;i=o>>>0>>0?b+1|0:b;g=Ai(l,0,d<<1&-2,(g<<1|d>>>31)&1);d=g+o|0;b=W+i|0;o=d>>>0>>0?b+1|0:b;N=Ci(d^h,s^o,48);O=W;b=k+O|0;h=j+N|0;g=h>>>0>>0?b+1|0:b;k=Ai(N,0,j<<1&-2,(k<<1|j>>>31)&1);j=k+h|0;b=W+g|0;E=j>>>0>>0?b+1|0:b;x=Ci(j^l,r^E,1);b=W;P=b;u=x;i=b;l=y[f+32>>2];g=y[f>>2];s=l+g|0;F=y[f+36>>2];k=y[f+4>>2];b=F+k|0;h=g>>>0>s>>>0?b+1|0:b;k=Ai(g<<1&-2,(k<<1|g>>>31)&1,l,0);g=k+s|0;b=W+h|0;h=g>>>0>>0?b+1|0:b;G=Ci(y[f+96>>2]^g,h^y[f+100>>2],32);v=f- -64|0;b=v;k=y[b>>2];q=G+k|0;R=W;s=y[b+4>>2];b=R+s|0;r=k>>>0>q>>>0?b+1|0:b;s=Ai(k<<1&-2,(s<<1|k>>>31)&1,G,0);k=s+q|0;b=W+r|0;s=k>>>0>>0?b+1|0:b;F=Ci(k^l,F^s,40);V=W;b=h+V|0;r=g+F|0;l=r>>>0>>0?b+1|0:b;h=Ai(F,0,g<<1&-2,(h<<1|g>>>31)&1);g=h+r|0;b=W+l|0;r=g>>>0>>0?b+1|0:b;b=r+i|0;h=g+u|0;l=h>>>0>>0?b+1|0:b;i=Ai(u,0,g<<1&-2,(r<<1|g>>>31)&1);h=i+h|0;b=W+l|0;q=h>>>0>>0?b+1|0:b;H=Ci(h^p,q^m,32);b=W;Q=b;z=b;p=y[f+48>>2];l=y[f+16>>2];u=p+l|0;J=y[f+52>>2];m=y[f+20>>2];b=J+m|0;i=l>>>0>u>>>0?b+1|0:b;m=Ai(l<<1&-2,(m<<1|l>>>31)&1,p,0);l=m+u|0;b=W+i|0;i=l>>>0>>0?b+1|0:b;u=Ci(y[f+112>>2]^l,i^y[f+116>>2],32);m=y[f+80>>2];w=u+m|0;K=W;A=y[f+84>>2];b=K+A|0;B=m>>>0>w>>>0?b+1|0:b;A=Ai(m<<1&-2,(A<<1|m>>>31)&1,u,0);m=A+w|0;b=W+B|0;w=m^p;p=m>>>0>>0?b+1|0:b;A=Ci(w,J^p,40);J=W;b=i+J|0;w=l+A|0;B=w>>>0>>0?b+1|0:b;i=Ai(A,0,l<<1&-2,(i<<1|l>>>31)&1);l=i+w|0;b=W+B|0;w=l^u;u=i>>>0>l>>>0?b+1|0:b;B=Ci(w,K^u,48);K=W;b=p+K|0;w=m+B|0;i=w>>>0>>0?b+1|0:b;p=Ai(B,0,m<<1&-2,(p<<1|m>>>31)&1);m=p+w|0;b=W+i|0;p=m>>>0

>>0?b+1|0:b;b=p+z|0;i=m+H|0;z=i>>>0>>0?b+1|0:b;w=Ai(H,0,m<<1&-2,(p<<1|m>>>31)&1);i=w+i|0;b=W+z|0;z=i^x;x=i>>>0>>0?b+1|0:b;z=Ci(z,P^x,40);P=W;b=q+P|0;X=h+z|0;w=X>>>0>>0?b+1|0:b;q=Ai(z,0,h<<1&-2,(q<<1|h>>>31)&1);h=q+X|0;b=W+w|0;y[f>>2]=h;b=h>>>0>>0?b+1|0:b;y[f+4>>2]=b;h=Ci(h^H,b^Q,48);y[f+120>>2]=h;b=W;y[f+124>>2]=b;b=b+x|0;H=h+i|0;q=H>>>0>>0?b+1|0:b;i=Ai(h,0,i<<1&-2,(x<<1|i>>>31)&1);h=i+H|0;b=W+q|0;y[f+80>>2]=h;b=h>>>0>>0?b+1|0:b;y[f+84>>2]=b;Y=f,Z=Ci(h^z,b^P,1),y[Y+40>>2]=Z;y[f+44>>2]=W;b=n+U|0;i=e+D|0;h=i>>>0>>0?b+1|0:b;e=Ai(D,0,e<<1&-2,(n<<1|e>>>31)&1);i=e+i|0;b=W+h|0;b=e>>>0>i>>>0?b+1|0:b;h=b;e=b;m=Ci(m^A,p^J,1);p=W;b=o+p|0;q=d+m|0;n=q>>>0>>0?b+1|0:b;o=Ai(m,0,d<<1&-2,(o<<1|d>>>31)&1);d=o+q|0;b=W+n|0;b=d>>>0>>0?b+1|0:b;o=Ci(g^G,r^R,48);g=b;x=W;n=Ci(o^d,b^x,32);q=n+i|0;D=W;b=D+e|0;r=n>>>0>q>>>0?b+1|0:b;b=q;q=Ai(i<<1&-2,(e<<1|i>>>31)&1,n,0);e=b+q|0;b=W+r|0;r=e^m;m=e>>>0>>0?b+1|0:b;r=Ci(r,p^m,40);p=W;b=g+p|0;G=d+r|0;q=G>>>0>>0?b+1|0:b;d=Ai(r,0,d<<1&-2,(g<<1|d>>>31)&1);g=d+G|0;b=W+q|0;b=d>>>0>g>>>0?b+1|0:b;d=Ci(g^n,D^b,48);y[f+96>>2]=d;n=W;y[f+100>>2]=n;y[f+8>>2]=g;y[f+12>>2]=b;b=m+n|0;n=d+e|0;g=n>>>0>>0?b+1|0:b;e=Ai(d,0,e<<1&-2,(m<<1|e>>>31)&1);d=e+n|0;b=W+g|0;y[f+88>>2]=d;b=d>>>0>>0?b+1|0:b;y[f+92>>2]=b;Y=f,Z=Ci(d^r,b^p,1),y[Y+48>>2]=Z;y[f+52>>2]=W;m=Ci(i^L,h^S,1);n=W;b=u+n|0;d=l+m|0;e=d>>>0>>0?b+1|0:b;g=Ai(m,0,l<<1&-2,(u<<1|l>>>31)&1);d=g+d|0;b=W+e|0;h=d>>>0>>0?b+1|0:b;i=Ci(d^N,O^h,32);b=W;r=b;g=b;b=s+x|0;e=k+o|0;l=e>>>0>>0?b+1|0:b;k=Ai(o,0,k<<1&-2,(s<<1|k>>>31)&1);e=k+e|0;b=W+l|0;k=e>>>0>>0?b+1|0:b;b=k+g|0;g=e+i|0;l=g>>>0>>0?b+1|0:b;o=Ai(i,0,e<<1&-2,(k<<1|e>>>31)&1);g=o+g|0;b=W+l|0;l=g>>>0>>0?b+1|0:b;m=Ci(g^m,n^l,40);o=W;b=h+o|0;s=d+m|0;n=s>>>0>>0?b+1|0:b;d=Ai(m,0,d<<1&-2,(h<<1|d>>>31)&1);h=d+s|0;b=W+n|0;b=d>>>0>h>>>0?b+1|0:b;d=Ci(h^i,r^b,48);y[f+104>>2]=d;i=W;y[f+108>>2]=i;y[f+16>>2]=h;y[f+20>>2]=b;h=v;b=i+l|0;n=d+g|0;i=n>>>0>>0?b+1|0:b;g=Ai(d,0,g<<1&-2,(l<<1|g>>>31)&1);d=g+n|0;b=W+i|0;y[h>>2]=d;b=d>>>0>>0?b+1|0:b;y[h+4>>2]=b;Y=f,Z=Ci(d^m,b^o,1),y[Y+56>>2]=Z;y[f+60>>2]=W;g=Ci(e^F,k^V,1);d=g+I|0;l=W;b=l+M|0;e=d>>>0>>0?b+1|0:b;k=Ai(I<<1&-2,(M<<1|I>>>31)&1,g,0);d=k+d|0;b=W+e|0;e=d>>>0>>0?b+1|0:b;k=Ci(d^B,K^e,32);m=W;b=E+m|0;i=j+k|0;h=i>>>0>>0?b+1|0:b;b=i;i=Ai(k,0,j<<1&-2,(E<<1|j>>>31)&1);j=b+i|0;b=W+h|0;h=g^j;g=i>>>0>j>>>0?b+1|0:b;h=Ci(h,l^g,40);i=W;b=e+i|0;n=d+h|0;l=n>>>0>>0?b+1|0:b;d=Ai(h,0,d<<1&-2,(e<<1|d>>>31)&1);e=d+n|0;b=W+l|0;b=d>>>0>e>>>0?b+1|0:b;d=Ci(e^k,m^b,48);y[f+112>>2]=d;k=W;y[f+116>>2]=k;y[f+24>>2]=e;y[f+28>>2]=b;b=g+k|0;k=d+j|0;e=k>>>0>>0?b+1|0:b;j=Ai(d,0,j<<1&-2,(g<<1|j>>>31)&1);d=j+k|0;b=W+e|0;y[f+72>>2]=d;b=d>>>0>>0?b+1|0:b;y[f+76>>2]=b;Y=f,Z=Ci(d^h,b^i,1),y[Y+32>>2]=Z;y[f+36>>2]=W;a=a+1|0;if((a|0)!=8){continue}break}a=0;while(1){f=(C+1024|0)+(a<<4)|0;g=y[f+392>>2];d=y[f+136>>2];k=g+d|0;i=y[f+396>>2];e=y[f+140>>2];b=i+e|0;j=d>>>0>k>>>0?b+1|0:b;e=Ai(d<<1&-2,(e<<1|d>>>31)&1,g,0);d=e+k|0;b=W+j|0;j=d>>>0>>0?b+1|0:b;k=Ci(y[f+904>>2]^d,j^y[f+908>>2],32);e=y[f+648>>2];m=k+e|0;o=W;h=y[f+652>>2];b=o+h|0;l=e>>>0>m>>>0?b+1|0:b;h=Ai(e<<1&-2,(h<<1|e>>>31)&1,k,0);e=h+m|0;b=W+l|0;n=e>>>0>>0?b+1|0:b;L=Ci(g^e,i^n,40);w=W;b=j+w|0;h=d+L|0;g=h>>>0>>0?b+1|0:b;d=Ai(L,0,d<<1&-2,(j<<1|d>>>31)&1);I=d+h|0;b=W+g|0;M=d>>>0>I>>>0?b+1|0:b;D=Ci(k^I,o^M,48);b=W;S=b;p=D;m=b;k=y[f+264>>2];d=y[f+8>>2];h=k+d|0;E=y[f+268>>2];j=y[f+12>>2];b=E+j|0;g=d>>>0>h>>>0?b+1|0:b;j=Ai(d<<1&-2,(j<<1|d>>>31)&1,k,0);d=j+h|0;b=W+g|0;g=d>>>0>>0?b+1|0:b;h=Ci(y[f+776>>2]^d,g^y[f+780>>2],32);j=y[f+520>>2];o=h+j|0;s=W;l=y[f+524>>2];b=s+l|0;i=j>>>0>o>>>0?b+1|0:b;l=Ai(j<<1&-2,(l<<1|j>>>31)&1,h,0);j=l+o|0;b=W+i|0;i=j^k;k=j>>>0>>0?b+1|0:b;l=Ci(i,E^k,40);r=W;b=g+r|0;o=d+l|0;i=o>>>0>>0?b+1|0:b;g=Ai(l,0,d<<1&-2,(g<<1|d>>>31)&1);d=g+o|0;b=W+i|0;o=d>>>0>>0?b+1|0:b;N=Ci(d^h,s^o,48);U=W;b=k+U|0;h=j+N|0;g=h>>>0>>0?b+1|0:b;k=Ai(N,0,j<<1&-2,(k<<1|j>>>31)&1);j=k+h|0;b=W+g|0;E=j>>>0>>0?b+1|0:b;x=Ci(j^l,r^E,1);b=W;O=b;u=x;i=b;l=y[f+256>>2];g=y[f>>2];s=l+g|0;F=y[f+260>>2];k=y[f+4>>2];b=F+k|0;h=g>>>0>s>>>0?b+1|0:b;k=Ai(g<<1&-2,(k<<1|g>>>31)&1,l,0);g=k+s|0;b=W+h|0;h=g>>>0>>0?b+1|0:b;G=Ci(y[f+768>>2]^g,h^y[f+772>>2],32);k=y[f+512>>2];q=G+k|0;P=W;s=y[f+516>>2];b=P+s|0;r=k>>>0>q>>>0?b+1|0:b;s=Ai(k<<1&-2,(s<<1|k>>>31)&1,G,0);k=s+q|0;b=W+r|0;s=k>>>0>>0?b+1|0:b;F=Ci(k^l,F^s,40);R=W;b=h+R|0;r=g+F|0;l=r>>>0>>0?b+1|0:b;h=Ai(F,0,g<<1&-2,(h<<1|g>>>31)&1);g=h+r|0;b=W+l|0;r=g>>>0>>0?b+1|0:b;b=r+i|0;h=g+u|0;l=h>>>0>>0?b+1|0:b;i=Ai(u,0,g<<1&-2,(r<<1|g>>>31)&1);h=i+h|0;b=W+l|0;q=h>>>0>>0?b+1|0:b;H=Ci(h^p,q^m,32);b=W;V=b;z=b;p=y[f+384>>2];l=y[f+128>>2];u=p+l|0;Q=y[f+388>>2];m=y[f+132>>2];b=Q+m|0;i=l>>>0>u>>>0?b+1|0:b;m=Ai(l<<1&-2,(m<<1|l>>>31)&1,p,0);l=m+u|0;b=W+i|0;i=l>>>0>>0?b+1|0:b;u=Ci(y[f+896>>2]^l,i^y[f+900>>2],32);m=y[f+640>>2];v=u+m|0;J=W;A=y[f+644>>2];b=J+A|0;B=m>>>0>v>>>0?b+1|0:b;A=Ai(m<<1&-2,(A<<1|m>>>31)&1,u,0);m=A+v|0;b=W+B|0;v=m^p;p=m>>>0>>0?b+1|0:b;A=Ci(v,Q^p,40);Q=W;b=i+Q|0;v=l+A|0;B=v>>>0>>0?b+1|0:b;i=Ai(A,0,l<<1&-2,(i<<1|l>>>31)&1);l=i+v|0;b=W+B|0;v=l^u;u=i>>>0>l>>>0?b+1|0:b;B=Ci(v,J^u,48);J=W;b=p+J|0;v=m+B|0;i=v>>>0>>0?b+1|0:b;p=Ai(B,0,m<<1&-2,(p<<1|m>>>31)&1);m=p+v|0;b=W+i|0;p=m>>>0

>>0?b+1|0:b;b=p+z|0;i=m+H|0;z=i>>>0>>0?b+1|0:b;v=Ai(H,0,m<<1&-2,(p<<1|m>>>31)&1);i=v+i|0;b=W+z|0;z=i^x;x=i>>>0>>0?b+1|0:b;z=Ci(z,O^x,40);O=W;b=q+O|0;K=h+z|0;v=K>>>0>>0?b+1|0:b;q=Ai(z,0,h<<1&-2,(q<<1|h>>>31)&1);h=q+K|0;b=W+v|0;y[f>>2]=h;b=h>>>0>>0?b+1|0:b;y[f+4>>2]=b;h=Ci(h^H,b^V,48);y[f+904>>2]=h;b=W;y[f+908>>2]=b;b=b+x|0;H=h+i|0;q=H>>>0>>0?b+1|0:b;i=Ai(h,0,i<<1&-2,(x<<1|i>>>31)&1);h=i+H|0;b=W+q|0;y[f+640>>2]=h;b=h>>>0>>0?b+1|0:b;y[f+644>>2]=b;Y=f,Z=Ci(h^z,b^O,1),y[Y+264>>2]=Z;y[f+268>>2]=W;b=n+S|0;i=e+D|0;h=i>>>0>>0?b+1|0:b;e=Ai(D,0,e<<1&-2,(n<<1|e>>>31)&1);i=e+i|0;b=W+h|0;b=e>>>0>i>>>0?b+1|0:b;h=b;e=b;m=Ci(m^A,p^Q,1);p=W;b=o+p|0;q=d+m|0;n=q>>>0>>0?b+1|0:b;o=Ai(m,0,d<<1&-2,(o<<1|d>>>31)&1);d=o+q|0;b=W+n|0;b=d>>>0>>0?b+1|0:b;o=Ci(g^G,r^P,48);g=b;x=W;n=Ci(o^d,b^x,32);q=n+i|0;D=W;b=D+e|0;r=n>>>0>q>>>0?b+1|0:b;b=q;q=Ai(i<<1&-2,(e<<1|i>>>31)&1,n,0);e=b+q|0;b=W+r|0;r=e^m;m=e>>>0>>0?b+1|0:b;r=Ci(r,p^m,40);p=W;b=g+p|0;G=d+r|0;q=G>>>0>>0?b+1|0:b;d=Ai(r,0,d<<1&-2,(g<<1|d>>>31)&1);g=d+G|0;b=W+q|0;b=d>>>0>g>>>0?b+1|0:b;d=Ci(g^n,D^b,48);y[f+768>>2]=d;n=W;y[f+772>>2]=n;y[f+8>>2]=g;y[f+12>>2]=b;b=m+n|0;n=d+e|0;g=n>>>0>>0?b+1|0:b;e=Ai(d,0,e<<1&-2,(m<<1|e>>>31)&1);d=e+n|0;b=W+g|0;y[f+648>>2]=d;b=d>>>0>>0?b+1|0:b;y[f+652>>2]=b;Y=f,Z=Ci(d^r,b^p,1),y[Y+384>>2]=Z;y[f+388>>2]=W;m=Ci(i^L,h^w,1);n=W;b=u+n|0;d=l+m|0;e=d>>>0>>0?b+1|0:b;g=Ai(m,0,l<<1&-2,(u<<1|l>>>31)&1);d=g+d|0;b=W+e|0;h=d>>>0>>0?b+1|0:b;i=Ci(d^N,U^h,32);b=W;r=b;g=b;b=s+x|0;e=k+o|0;l=e>>>0>>0?b+1|0:b;k=Ai(o,0,k<<1&-2,(s<<1|k>>>31)&1);e=k+e|0;b=W+l|0;k=e>>>0>>0?b+1|0:b;b=k+g|0;g=e+i|0;l=g>>>0>>0?b+1|0:b;o=Ai(i,0,e<<1&-2,(k<<1|e>>>31)&1);g=o+g|0;b=W+l|0;l=g>>>0>>0?b+1|0:b;m=Ci(g^m,n^l,40);o=W;b=h+o|0;s=d+m|0;n=s>>>0>>0?b+1|0:b;d=Ai(m,0,d<<1&-2,(h<<1|d>>>31)&1);h=d+s|0;b=W+n|0;b=d>>>0>h>>>0?b+1|0:b;d=Ci(h^i,r^b,48);y[f+776>>2]=d;i=W;y[f+780>>2]=i;y[f+128>>2]=h;y[f+132>>2]=b;b=i+l|0;i=d+g|0;h=i>>>0>>0?b+1|0:b;g=Ai(d,0,g<<1&-2,(l<<1|g>>>31)&1);d=g+i|0;b=W+h|0;y[f+512>>2]=d;b=d>>>0>>0?b+1|0:b;y[f+516>>2]=b;Y=f,Z=Ci(d^m,b^o,1),y[Y+392>>2]=Z;y[f+396>>2]=W;g=Ci(e^F,k^R,1);d=g+I|0;l=W;b=l+M|0;e=d>>>0>>0?b+1|0:b;k=Ai(I<<1&-2,(M<<1|I>>>31)&1,g,0);d=k+d|0;b=W+e|0;e=d>>>0>>0?b+1|0:b;k=Ci(d^B,J^e,32);m=W;b=E+m|0;i=j+k|0;h=i>>>0>>0?b+1|0:b;b=i;i=Ai(k,0,j<<1&-2,(E<<1|j>>>31)&1);j=b+i|0;b=W+h|0;h=g^j;g=i>>>0>j>>>0?b+1|0:b;h=Ci(h,l^g,40);i=W;b=e+i|0;n=d+h|0;l=n>>>0>>0?b+1|0:b;d=Ai(h,0,d<<1&-2,(e<<1|d>>>31)&1);e=d+n|0;b=W+l|0;b=d>>>0>e>>>0?b+1|0:b;d=Ci(e^k,m^b,48);y[f+896>>2]=d;k=W;y[f+900>>2]=k;y[f+136>>2]=e;y[f+140>>2]=b;b=g+k|0;k=d+j|0;e=k>>>0>>0?b+1|0:b;j=Ai(d,0,j<<1&-2,(g<<1|j>>>31)&1);d=j+k|0;b=W+e|0;y[f+520>>2]=d;b=d>>>0>>0?b+1|0:b;y[f+524>>2]=b;Y=f,Z=Ci(d^h,b^i,1),y[Y+256>>2]=Z;y[f+260>>2]=W;a=a+1|0;if((a|0)!=8){continue}break}t(c,C,1024);a=0;while(1){b=a<<3;f=b+c|0;d=y[f>>2];i=C+1024|0;e=i;j=e+b|0;g=y[j>>2];j=y[f+4>>2]^y[j+4>>2];y[f>>2]=d^g;y[f+4>>2]=j;d=b|8;f=d+c|0;j=y[f>>2];d=d+e|0;e=y[d>>2];d=y[f+4>>2]^y[d+4>>2];y[f>>2]=e^j;y[f+4>>2]=d;d=b|16;f=d+c|0;e=y[f>>2];d=d+i|0;j=y[d>>2];d=y[f+4>>2]^y[d+4>>2];y[f>>2]=e^j;y[f+4>>2]=d;f=b|24;b=f+c|0;d=y[b>>2];f=f+i|0;e=y[f>>2];f=y[b+4>>2]^y[f+4>>2];y[b>>2]=d^e;y[b+4>>2]=f;a=a+4|0;if((a|0)!=128){continue}break}T=C+2048|0;}function Ie(a,b,c){var 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;d=T-800|0;T=d;g=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);i=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);j=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);k=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);l=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);m=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);n=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);p=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);q=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);r=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);s=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);t=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);u=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);v=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);o=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);b=c- -64|0;w=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);y[b>>2]=w^33620224;y[c+56>>2]=1496785429;y[c+60>>2]=1652156816;y[c+48>>2]=33620224;y[c+52>>2]=218629379;y[c+40>>2]=1110511904;y[c+44>>2]=-584534669;y[c+32>>2]=1427652059;y[c+36>>2]=-248528275;o=o^w;y[c>>2]=o;y[c+92>>2]=v^-584534669;y[c+88>>2]=u^1110511904;y[c+84>>2]=t^-248528275;y[c+80>>2]=s^1427652059;y[c+76>>2]=r^1652156816;y[c+72>>2]=q^1496785429;y[c+68>>2]=p^218629379;n=n^v;y[c+28>>2]=n;m=m^u;y[c+24>>2]=m;l=l^t;y[c+20>>2]=l;k=k^s;y[c+16>>2]=k;j=j^r;y[c+12>>2]=j;i=i^q;y[c+8>>2]=i;x=g^p;y[c+4>>2]=x;g=0;while(1){a=y[c+92>>2];y[d+792>>2]=y[c+88>>2];y[d+796>>2]=a;a=y[c+84>>2];y[d+784>>2]=y[c+80>>2];y[d+788>>2]=a;a=y[b+4>>2];y[d+752>>2]=y[b>>2];y[d+756>>2]=a;a=y[b+12>>2];y[d+760>>2]=y[b+8>>2];y[d+764>>2]=a;a=y[c+84>>2];y[d+736>>2]=y[c+80>>2];y[d+740>>2]=a;a=y[c+92>>2];y[d+744>>2]=y[c+88>>2];y[d+748>>2]=a;a=d+768|0;ia(a,d+752|0,d+736|0);e=y[d+780>>2];y[c+88>>2]=y[d+776>>2];y[c+92>>2]=e;e=y[d+772>>2];y[c+80>>2]=y[d+768>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+720>>2]=y[c+48>>2];y[d+724>>2]=e;e=y[c+60>>2];y[d+728>>2]=y[c+56>>2];y[d+732>>2]=e;e=y[b+4>>2];y[d+704>>2]=y[b>>2];y[d+708>>2]=e;e=y[b+12>>2];y[d+712>>2]=y[b+8>>2];y[d+716>>2]=e;ia(a,d+720|0,d+704|0);e=y[d+780>>2];y[b+8>>2]=y[d+776>>2];y[b+12>>2]=e;e=y[d+772>>2];y[b>>2]=y[d+768>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+688>>2]=y[c+32>>2];y[d+692>>2]=e;e=y[c+44>>2];y[d+696>>2]=y[c+40>>2];y[d+700>>2]=e;e=y[c+52>>2];y[d+672>>2]=y[c+48>>2];y[d+676>>2]=e;e=y[c+60>>2];y[d+680>>2]=y[c+56>>2];y[d+684>>2]=e;ia(a,d+688|0,d+672|0);e=y[d+780>>2];y[c+56>>2]=y[d+776>>2];y[c+60>>2]=e;e=y[d+772>>2];y[c+48>>2]=y[d+768>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+656>>2]=y[c+16>>2];y[d+660>>2]=e;e=y[c+28>>2];y[d+664>>2]=y[c+24>>2];y[d+668>>2]=e;e=y[c+36>>2];y[d+640>>2]=y[c+32>>2];y[d+644>>2]=e;e=y[c+44>>2];y[d+648>>2]=y[c+40>>2];y[d+652>>2]=e;ia(a,d+656|0,d+640|0);e=y[d+780>>2];y[c+40>>2]=y[d+776>>2];y[c+44>>2]=e;e=y[d+772>>2];y[c+32>>2]=y[d+768>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+624>>2]=y[c>>2];y[d+628>>2]=e;e=y[c+12>>2];y[d+632>>2]=y[c+8>>2];y[d+636>>2]=e;e=y[c+20>>2];y[d+608>>2]=y[c+16>>2];y[d+612>>2]=e;e=y[c+28>>2];y[d+616>>2]=y[c+24>>2];y[d+620>>2]=e;ia(a,d+624|0,d+608|0);e=y[d+780>>2];y[c+24>>2]=y[d+776>>2];y[c+28>>2]=e;e=y[d+772>>2];y[c+16>>2]=y[d+768>>2];y[c+20>>2]=e;e=y[d+788>>2];y[d+592>>2]=y[d+784>>2];y[d+596>>2]=e;e=y[d+796>>2];y[d+600>>2]=y[d+792>>2];y[d+604>>2]=e;e=y[c+4>>2];y[d+576>>2]=y[c>>2];y[d+580>>2]=e;e=y[c+12>>2];y[d+584>>2]=y[c+8>>2];y[d+588>>2]=e;ia(a,d+592|0,d+576|0);e=y[d+768>>2];f=y[d+772>>2];h=y[d+776>>2];y[c+12>>2]=y[d+780>>2]^r;y[c+8>>2]=h^q;y[c+4>>2]=f^p;y[c>>2]=e^w;e=y[c+92>>2];y[d+792>>2]=y[c+88>>2];y[d+796>>2]=e;e=y[c+84>>2];y[d+784>>2]=y[c+80>>2];y[d+788>>2]=e;e=y[b+4>>2];y[d+560>>2]=y[b>>2];y[d+564>>2]=e;e=y[b+12>>2];y[d+568>>2]=y[b+8>>2];y[d+572>>2]=e;e=y[c+92>>2];y[d+552>>2]=y[c+88>>2];y[d+556>>2]=e;e=y[c+84>>2];y[d+544>>2]=y[c+80>>2];y[d+548>>2]=e;ia(a,d+560|0,d+544|0);e=y[d+780>>2];y[c+88>>2]=y[d+776>>2];y[c+92>>2]=e;e=y[d+772>>2];y[c+80>>2]=y[d+768>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+528>>2]=y[c+48>>2];y[d+532>>2]=e;e=y[c+60>>2];y[d+536>>2]=y[c+56>>2];y[d+540>>2]=e;e=y[b+4>>2];y[d+512>>2]=y[b>>2];y[d+516>>2]=e;e=y[b+12>>2];y[d+520>>2]=y[b+8>>2];y[d+524>>2]=e;ia(a,d+528|0,d+512|0);e=y[d+780>>2];y[b+8>>2]=y[d+776>>2];y[b+12>>2]=e;e=y[d+772>>2];y[b>>2]=y[d+768>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+496>>2]=y[c+32>>2];y[d+500>>2]=e;e=y[c+44>>2];y[d+504>>2]=y[c+40>>2];y[d+508>>2]=e;e=y[c+52>>2];y[d+480>>2]=y[c+48>>2];y[d+484>>2]=e;e=y[c+60>>2];y[d+488>>2]=y[c+56>>2];y[d+492>>2]=e;ia(a,d+496|0,d+480|0);e=y[d+780>>2];y[c+56>>2]=y[d+776>>2];y[c+60>>2]=e;e=y[d+772>>2];y[c+48>>2]=y[d+768>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+464>>2]=y[c+16>>2];y[d+468>>2]=e;e=y[c+28>>2];y[d+472>>2]=y[c+24>>2];y[d+476>>2]=e;e=y[c+36>>2];y[d+448>>2]=y[c+32>>2];y[d+452>>2]=e;e=y[c+44>>2];y[d+456>>2]=y[c+40>>2];y[d+460>>2]=e;ia(a,d+464|0,d+448|0);e=y[d+780>>2];y[c+40>>2]=y[d+776>>2];y[c+44>>2]=e;e=y[d+772>>2];y[c+32>>2]=y[d+768>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+432>>2]=y[c>>2];y[d+436>>2]=e;e=y[c+12>>2];y[d+440>>2]=y[c+8>>2];y[d+444>>2]=e;e=y[c+20>>2];y[d+416>>2]=y[c+16>>2];y[d+420>>2]=e;e=y[c+28>>2];y[d+424>>2]=y[c+24>>2];y[d+428>>2]=e;ia(a,d+432|0,d+416|0);e=y[d+780>>2];y[c+24>>2]=y[d+776>>2];y[c+28>>2]=e;e=y[d+772>>2];y[c+16>>2]=y[d+768>>2];y[c+20>>2]=e;e=y[d+788>>2];y[d+400>>2]=y[d+784>>2];y[d+404>>2]=e;e=y[d+796>>2];y[d+408>>2]=y[d+792>>2];y[d+412>>2]=e;e=y[c+4>>2];y[d+384>>2]=y[c>>2];y[d+388>>2]=e;e=y[c+12>>2];y[d+392>>2]=y[c+8>>2];y[d+396>>2]=e;ia(a,d+400|0,d+384|0);e=y[d+768>>2];f=y[d+772>>2];h=y[d+776>>2];y[c+12>>2]=y[d+780>>2]^v;y[c+8>>2]=h^u;y[c+4>>2]=f^t;y[c>>2]=e^s;e=y[c+92>>2];y[d+792>>2]=y[c+88>>2];y[d+796>>2]=e;e=y[c+84>>2];y[d+784>>2]=y[c+80>>2];y[d+788>>2]=e;e=y[b+4>>2];y[d+368>>2]=y[b>>2];y[d+372>>2]=e;e=y[b+12>>2];y[d+376>>2]=y[b+8>>2];y[d+380>>2]=e;e=y[c+92>>2];y[d+360>>2]=y[c+88>>2];y[d+364>>2]=e;e=y[c+84>>2];y[d+352>>2]=y[c+80>>2];y[d+356>>2]=e;ia(a,d+368|0,d+352|0);e=y[d+780>>2];y[c+88>>2]=y[d+776>>2];y[c+92>>2]=e;e=y[d+772>>2];y[c+80>>2]=y[d+768>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+336>>2]=y[c+48>>2];y[d+340>>2]=e;e=y[c+60>>2];y[d+344>>2]=y[c+56>>2];y[d+348>>2]=e;e=y[b+4>>2];y[d+320>>2]=y[b>>2];y[d+324>>2]=e;e=y[b+12>>2];y[d+328>>2]=y[b+8>>2];y[d+332>>2]=e;ia(a,d+336|0,d+320|0);e=y[d+780>>2];y[b+8>>2]=y[d+776>>2];y[b+12>>2]=e;e=y[d+772>>2];y[b>>2]=y[d+768>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+304>>2]=y[c+32>>2];y[d+308>>2]=e;e=y[c+44>>2];y[d+312>>2]=y[c+40>>2];y[d+316>>2]=e;e=y[c+52>>2];y[d+288>>2]=y[c+48>>2];y[d+292>>2]=e;e=y[c+60>>2];y[d+296>>2]=y[c+56>>2];y[d+300>>2]=e;ia(a,d+304|0,d+288|0);e=y[d+780>>2];y[c+56>>2]=y[d+776>>2];y[c+60>>2]=e;e=y[d+772>>2];y[c+48>>2]=y[d+768>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+272>>2]=y[c+16>>2];y[d+276>>2]=e;e=y[c+28>>2];y[d+280>>2]=y[c+24>>2];y[d+284>>2]=e;e=y[c+36>>2];y[d+256>>2]=y[c+32>>2];y[d+260>>2]=e;e=y[c+44>>2];y[d+264>>2]=y[c+40>>2];y[d+268>>2]=e;ia(a,d+272|0,d+256|0);e=y[d+780>>2];y[c+40>>2]=y[d+776>>2];y[c+44>>2]=e;e=y[d+772>>2];y[c+32>>2]=y[d+768>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+240>>2]=y[c>>2];y[d+244>>2]=e;e=y[c+12>>2];y[d+248>>2]=y[c+8>>2];y[d+252>>2]=e;e=y[c+20>>2];y[d+224>>2]=y[c+16>>2];y[d+228>>2]=e;e=y[c+28>>2];y[d+232>>2]=y[c+24>>2];y[d+236>>2]=e;ia(a,d+240|0,d+224|0);e=y[d+780>>2];y[c+24>>2]=y[d+776>>2];y[c+28>>2]=e;e=y[d+772>>2];y[c+16>>2]=y[d+768>>2];y[c+20>>2]=e;e=y[d+788>>2];y[d+208>>2]=y[d+784>>2];y[d+212>>2]=e;e=y[d+796>>2];y[d+216>>2]=y[d+792>>2];y[d+220>>2]=e;e=y[c+4>>2];y[d+192>>2]=y[c>>2];y[d+196>>2]=e;e=y[c+12>>2];y[d+200>>2]=y[c+8>>2];y[d+204>>2]=e;ia(a,d+208|0,d+192|0);e=y[d+768>>2];f=y[d+772>>2];h=y[d+776>>2];y[c+12>>2]=j^y[d+780>>2];y[c+8>>2]=h^i;y[c+4>>2]=f^x;y[c>>2]=e^o;e=y[c+92>>2];y[d+792>>2]=y[c+88>>2];y[d+796>>2]=e;e=y[c+84>>2];y[d+784>>2]=y[c+80>>2];y[d+788>>2]=e;e=y[b+4>>2];y[d+176>>2]=y[b>>2];y[d+180>>2]=e;e=y[b+12>>2];y[d+184>>2]=y[b+8>>2];y[d+188>>2]=e;e=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=e;e=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=e;ia(a,d+176|0,d+160|0);e=y[d+780>>2];y[c+88>>2]=y[d+776>>2];y[c+92>>2]=e;e=y[d+772>>2];y[c+80>>2]=y[d+768>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=e;e=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=e;e=y[b+4>>2];y[d+128>>2]=y[b>>2];y[d+132>>2]=e;e=y[b+12>>2];y[d+136>>2]=y[b+8>>2];y[d+140>>2]=e;ia(a,d+144|0,d+128|0);e=y[d+780>>2];y[b+8>>2]=y[d+776>>2];y[b+12>>2]=e;e=y[d+772>>2];y[b>>2]=y[d+768>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=e;e=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=e;e=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=e;e=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=e;ia(a,d+112|0,d+96|0);e=y[d+780>>2];y[c+56>>2]=y[d+776>>2];y[c+60>>2]=e;e=y[d+772>>2];y[c+48>>2]=y[d+768>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=e;e=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=e;e=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=e;e=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=e;ia(a,d+80|0,d- -64|0);e=y[d+780>>2];y[c+40>>2]=y[d+776>>2];y[c+44>>2]=e;e=y[d+772>>2];y[c+32>>2]=y[d+768>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=e;e=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=e;e=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=e;ia(a,d+48|0,d+32|0);e=y[d+780>>2];y[c+24>>2]=y[d+776>>2];y[c+28>>2]=e;e=y[d+772>>2];y[c+16>>2]=y[d+768>>2];y[c+20>>2]=e;e=y[d+788>>2];y[d+16>>2]=y[d+784>>2];y[d+20>>2]=e;e=y[d+796>>2];y[d+24>>2]=y[d+792>>2];y[d+28>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;ia(a,d+16|0,d);a=y[d+768>>2];e=y[d+772>>2];f=y[d+776>>2];y[c+12>>2]=n^y[d+780>>2];y[c+8>>2]=f^m;y[c+4>>2]=e^l;y[c>>2]=a^k;g=g+1|0;if((g|0)!=4){continue}break}T=d+800|0;}function Da(a){a=a|0;var 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;k=T-16|0;T=k;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{if(a>>>0<=244){f=y[10173];g=a>>>0<11?16:a+11&504;a=g>>>3|0;b=f>>>a|0;if(b&3){e=a+((b^-1)&1)|0;b=e<<3;a=b+40732|0;c=y[b+40740>>2];d=y[c+8>>2];k:{if((a|0)==(d|0)){m=40692,n=Bi(-2,e)&f,y[m>>2]=n;break k}y[d+12>>2]=a;y[a+8>>2]=d;}a=c+8|0;y[c+4>>2]=b|3;b=b+c|0;y[b+4>>2]=y[b+4>>2]|1;break a}i=y[10175];if(i>>>0>=g>>>0){break j}if(b){c=2<>2];d=y[c+8>>2];l:{if((b|0)==(d|0)){f=Bi(-2,e)&f;y[10173]=f;break l}y[d+12>>2]=b;y[b+8>>2]=d;}y[c+4>>2]=g|3;h=c+g|0;e=a-g|0;y[h+4>>2]=e|1;y[a+c>>2]=e;if(i){a=(i&-8)+40732|0;d=y[10178];b=1<<(i>>>3);m:{if(!(b&f)){y[10173]=b|f;b=a;break m}b=y[a+8>>2];}y[a+8>>2]=d;y[b+12>>2]=d;y[d+12>>2]=a;y[d+8>>2]=b;}a=c+8|0;y[10178]=h;y[10175]=e;break a}l=y[10174];if(!l){break j}b=y[(zi(l)<<2)+40996>>2];e=(y[b+4>>2]&-8)-g|0;c=b;while(1){n:{a=y[b+16>>2];if(!a){a=y[b+20>>2];if(!a){break n}}d=(y[a+4>>2]&-8)-g|0;b=d>>>0>>0;e=b?d:e;c=b?a:c;b=a;continue}break}j=y[c+24>>2];a=y[c+12>>2];if((c|0)!=(a|0)){b=y[c+8>>2];y[b+12>>2]=a;y[a+8>>2]=b;break b}b=y[c+20>>2];if(b){d=c+20|0;}else {b=y[c+16>>2];if(!b){break i}d=c+16|0;}while(1){h=d;a=b;d=a+20|0;b=y[a+20>>2];if(b){continue}d=a+16|0;b=y[a+16>>2];if(b){continue}break}y[h>>2]=0;break b}g=-1;if(a>>>0>4294967231){break j}b=a+11|0;g=b&-8;h=y[10174];if(!h){break j}i=31;e=0-g|0;if(a>>>0<=16777204){a=H(b>>>8|0);i=((g>>>38-a&1)-(a<<1)|0)+62|0;}b=y[(i<<2)+40996>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=g<<((i|0)!=31?25-(i>>>1|0)|0:0);while(1){r:{f=(y[b+4>>2]&-8)-g|0;if(f>>>0>=e>>>0){break r}d=b;e=f;if(e){break r}e=0;a=b;break p}f=y[b+20>>2];b=y[((c>>>29&4)+b|0)+16>>2];a=f?(f|0)==(b|0)?a:f:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2];}if(!a){break o}}while(1){c=(y[a+4>>2]&-8)-g|0;b=c>>>0>>0;e=b?c:e;d=b?a:d;b=y[a+16>>2];if(b){a=b;}else {a=y[a+20>>2];}if(a){continue}break}}if(!d|y[10175]-g>>>0<=e>>>0){break j}i=y[d+24>>2];a=y[d+12>>2];if((d|0)!=(a|0)){b=y[d+8>>2];y[b+12>>2]=a;y[a+8>>2]=b;break c}b=y[d+20>>2];if(b){c=d+20|0;}else {b=y[d+16>>2];if(!b){break h}c=d+16|0;}while(1){f=c;a=b;c=a+20|0;b=y[a+20>>2];if(b){continue}c=a+16|0;b=y[a+16>>2];if(b){continue}break}y[f>>2]=0;break c}d=y[10175];if(d>>>0>=g>>>0){a=y[10178];b=d-g|0;s:{if(b>>>0>=16){c=a+g|0;y[c+4>>2]=b|1;y[a+d>>2]=b;y[a+4>>2]=g|3;break s}y[a+4>>2]=d|3;b=a+d|0;y[b+4>>2]=y[b+4>>2]|1;b=0;c=0;}y[10175]=b;y[10178]=c;a=a+8|0;break a}c=y[10176];if(c>>>0>g>>>0){b=c-g|0;y[10176]=b;a=y[10179];c=a+g|0;y[10179]=c;y[c+4>>2]=b|1;y[a+4>>2]=g|3;a=a+8|0;break a}a=0;e=g+47|0;if(y[10291]){b=y[10293];}else {y[10294]=-1;y[10295]=-1;y[10292]=4096;y[10293]=4096;y[10291]=k+12&-16^1431655768;y[10296]=0;y[10284]=0;b=4096;}f=e+b|0;h=0-b|0;b=f&h;if(b>>>0<=g>>>0){break a}i=y[10283];if(i){j=y[10281];d=j+b|0;if(d>>>0<=j>>>0|d>>>0>i>>>0){break a}}t:{if(!(z[41136]&4)){u:{v:{w:{x:{d=y[10179];if(d){a=41140;while(1){i=y[a>>2];if(i>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=y[a+8>>2];if(a){continue}break}}c=lb(0);if((c|0)==-1){break u}f=b;a=y[10292];d=a-1|0;if(d&c){f=(b-c|0)+(c+d&0-a)|0;}if(f>>>0<=g>>>0){break u}d=y[10283];if(d){h=y[10281];a=h+f|0;if(a>>>0<=h>>>0|a>>>0>d>>>0){break u}}a=lb(f);if((c|0)!=(a|0)){break w}break t}f=h&f-c;c=lb(f);if((c|0)==(y[a>>2]+y[a+4>>2]|0)){break v}a=c;}if((a|0)==-1){break u}if(g+48>>>0<=f>>>0){c=a;break t}c=y[10293];c=c+(e-f|0)&0-c;if((lb(c)|0)==-1){break u}f=c+f|0;c=a;break t}if((c|0)!=-1){break t}}y[10284]=y[10284]|4;}c=lb(b);a=lb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break e}f=a-c|0;if(f>>>0<=g+40>>>0){break e}}a=y[10281]+f|0;y[10281]=a;if(a>>>0>B[10282]){y[10282]=a;}y:{e=y[10179];if(e){a=41140;while(1){b=y[a>>2];d=y[a+4>>2];if((b+d|0)==(c|0)){break y}a=y[a+8>>2];if(a){continue}break}break g}a=y[10177];if(!(a>>>0<=c>>>0?a:0)){y[10177]=c;}a=0;y[10286]=f;y[10285]=c;y[10181]=-1;y[10182]=y[10291];y[10288]=0;while(1){b=a<<3;d=b+40732|0;y[b+40740>>2]=d;y[b+40744>>2]=d;a=a+1|0;if((a|0)!=32){continue}break}a=f-40|0;b=-8-c&7;d=a-b|0;y[10176]=d;b=b+c|0;y[10179]=b;y[b+4>>2]=d|1;y[(a+c|0)+4>>2]=40;y[10180]=y[10295];break f}if(y[a+12>>2]&8|(c>>>0<=e>>>0|b>>>0>e>>>0)){break g}y[a+4>>2]=d+f;a=-8-e&7;b=a+e|0;y[10179]=b;c=y[10176]+f|0;a=c-a|0;y[10176]=a;y[b+4>>2]=a|1;y[(c+e|0)+4>>2]=40;y[10180]=y[10295];break f}a=0;break b}a=0;break c}if(B[10177]>c>>>0){y[10177]=c;}d=c+f|0;a=41140;z:{while(1){b=y[a>>2];if((b|0)!=(d|0)){a=y[a+8>>2];if(a){continue}break z}break}if(!(z[a+12|0]&8)){break d}}a=41140;while(1){A:{b=y[a>>2];if(b>>>0<=e>>>0){d=b+y[a+4>>2]|0;if(d>>>0>e>>>0){break A}}a=y[a+8>>2];continue}break}a=f-40|0;b=-8-c&7;h=a-b|0;y[10176]=h;b=b+c|0;y[10179]=b;y[b+4>>2]=h|1;y[(a+c|0)+4>>2]=40;y[10180]=y[10295];a=(d+(39-d&7)|0)-47|0;b=a>>>0>>0?e:a;y[b+4>>2]=27;a=y[10288];y[b+16>>2]=y[10287];y[b+20>>2]=a;a=y[10286];y[b+8>>2]=y[10285];y[b+12>>2]=a;y[10287]=b+8;y[10286]=f;y[10285]=c;y[10288]=0;a=b+24|0;while(1){y[a+4>>2]=7;c=a+8|0;a=a+4|0;if(c>>>0>>0){continue}break}if((b|0)==(e|0)){break f}y[b+4>>2]=y[b+4>>2]&-2;c=b-e|0;y[e+4>>2]=c|1;y[b>>2]=c;B:{if(c>>>0<=255){a=(c&248)+40732|0;b=y[10173];c=1<<(c>>>3);C:{if(!(b&c)){y[10173]=b|c;b=a;break C}b=y[a+8>>2];}y[a+8>>2]=e;y[b+12>>2]=e;d=8;c=12;break B}a=31;if(c>>>0<=16777215){a=H(c>>>8|0);a=(c>>>38-a&1|a<<1)^62;}y[e+28>>2]=a;y[e+16>>2]=0;y[e+20>>2]=0;b=(a<<2)+40996|0;D:{d=y[10174];f=1<>2]=e;break E}a=c<<((a|0)!=31?25-(a>>>1|0)|0:0);d=y[b>>2];while(1){b=d;if((c|0)==(y[b+4>>2]&-8)){break D}d=a>>>29|0;a=a<<1;f=(d&4)+b|0;d=y[f+16>>2];if(d){continue}break}y[f+16>>2]=e;}y[e+24>>2]=b;b=e;a=b;d=12;c=8;break B}a=y[b+8>>2];y[a+12>>2]=e;y[b+8>>2]=e;y[e+8>>2]=a;a=0;d=12;c=24;}y[e+d>>2]=b;y[c+e>>2]=a;}a=y[10176];if(a>>>0<=g>>>0){break e}b=a-g|0;y[10176]=b;a=y[10179];c=a+g|0;y[10179]=c;y[c+4>>2]=b|1;y[a+4>>2]=g|3;a=a+8|0;break a}y[10172]=48;a=0;break a}y[a>>2]=c;y[a+4>>2]=y[a+4>>2]+f;i=(-8-c&7)+c|0;y[i+4>>2]=g|3;f=b+(-8-b&7)|0;e=g+i|0;h=f-e|0;F:{if(y[10179]==(f|0)){y[10179]=e;a=y[10176]+h|0;y[10176]=a;y[e+4>>2]=a|1;break F}if(y[10178]==(f|0)){y[10178]=e;a=y[10175]+h|0;y[10175]=a;y[e+4>>2]=a|1;y[a+e>>2]=a;break F}a=y[f+4>>2];if((a&3)==1){j=a&-8;c=y[f+12>>2];G:{if(a>>>0<=255){b=y[f+8>>2];if((b|0)==(c|0)){m=40692,n=y[10173]&Bi(-2,a>>>3|0),y[m>>2]=n;break G}y[b+12>>2]=c;y[c+8>>2]=b;break G}g=y[f+24>>2];H:{if((c|0)!=(f|0)){a=y[f+8>>2];y[a+12>>2]=c;y[c+8>>2]=a;break H}I:{a=y[f+20>>2];if(a){b=f+20|0;}else {a=y[f+16>>2];if(!a){break I}b=f+16|0;}while(1){d=b;c=a;b=a+20|0;a=y[a+20>>2];if(a){continue}b=c+16|0;a=y[c+16>>2];if(a){continue}break}y[d>>2]=0;break H}c=0;}if(!g){break G}a=y[f+28>>2];b=a<<2;J:{if(y[b+40996>>2]==(f|0)){y[b+40996>>2]=c;if(c){break J}m=40696,n=y[10174]&Bi(-2,a),y[m>>2]=n;break G}K:{if(y[g+16>>2]==(f|0)){y[g+16>>2]=c;break K}y[g+20>>2]=c;}if(!c){break G}}y[c+24>>2]=g;a=y[f+16>>2];if(a){y[c+16>>2]=a;y[a+24>>2]=c;}a=y[f+20>>2];if(!a){break G}y[c+20>>2]=a;y[a+24>>2]=c;}h=h+j|0;f=f+j|0;a=y[f+4>>2];}y[f+4>>2]=a&-2;y[e+4>>2]=h|1;y[e+h>>2]=h;if(h>>>0<=255){a=(h&248)+40732|0;b=y[10173];c=1<<(h>>>3);L:{if(!(b&c)){y[10173]=b|c;b=a;break L}b=y[a+8>>2];}y[a+8>>2]=e;y[b+12>>2]=e;y[e+12>>2]=a;y[e+8>>2]=b;break F}c=31;if(h>>>0<=16777215){a=H(h>>>8|0);c=(h>>>38-a&1|a<<1)^62;}y[e+28>>2]=c;y[e+16>>2]=0;y[e+20>>2]=0;a=(c<<2)+40996|0;M:{b=y[10174];d=1<>2]=e;break N}c=h<<((c|0)!=31?25-(c>>>1|0)|0:0);b=y[a>>2];while(1){a=b;if((y[a+4>>2]&-8)==(h|0)){break M}b=c>>>29|0;c=c<<1;d=(b&4)+a|0;b=y[d+16>>2];if(b){continue}break}y[d+16>>2]=e;}y[e+24>>2]=a;y[e+12>>2]=e;y[e+8>>2]=e;break F}b=y[a+8>>2];y[b+12>>2]=e;y[a+8>>2]=e;y[e+24>>2]=0;y[e+12>>2]=a;y[e+8>>2]=b;}a=i+8|0;break a}O:{if(!i){break O}b=y[d+28>>2];c=b<<2;P:{if(y[c+40996>>2]==(d|0)){y[c+40996>>2]=a;if(a){break P}h=Bi(-2,b)&h;y[10174]=h;break O}Q:{if(y[i+16>>2]==(d|0)){y[i+16>>2]=a;break Q}y[i+20>>2]=a;}if(!a){break O}}y[a+24>>2]=i;b=y[d+16>>2];if(b){y[a+16>>2]=b;y[b+24>>2]=a;}b=y[d+20>>2];if(!b){break O}y[a+20>>2]=b;y[b+24>>2]=a;}R:{if(e>>>0<=15){a=e+g|0;y[d+4>>2]=a|3;a=a+d|0;y[a+4>>2]=y[a+4>>2]|1;break R}y[d+4>>2]=g|3;f=d+g|0;y[f+4>>2]=e|1;y[e+f>>2]=e;if(e>>>0<=255){a=(e&248)+40732|0;b=y[10173];c=1<<(e>>>3);S:{if(!(b&c)){y[10173]=b|c;b=a;break S}b=y[a+8>>2];}y[a+8>>2]=f;y[b+12>>2]=f;y[f+12>>2]=a;y[f+8>>2]=b;break R}a=31;if(e>>>0<=16777215){a=H(e>>>8|0);a=(e>>>38-a&1|a<<1)^62;}y[f+28>>2]=a;y[f+16>>2]=0;y[f+20>>2]=0;b=(a<<2)+40996|0;T:{c=1<>2]=f;y[f+24>>2]=b;break U}a=e<<((a|0)!=31?25-(a>>>1|0)|0:0);b=y[b>>2];while(1){c=b;if((y[b+4>>2]&-8)==(e|0)){break T}h=a>>>29|0;a=a<<1;h=b+(h&4)|0;b=y[h+16>>2];if(b){continue}break}y[h+16>>2]=f;y[f+24>>2]=c;}y[f+12>>2]=f;y[f+8>>2]=f;break R}a=y[c+8>>2];y[a+12>>2]=f;y[c+8>>2]=f;y[f+24>>2]=0;y[f+12>>2]=c;y[f+8>>2]=a;}a=d+8|0;break a}V:{if(!j){break V}b=y[c+28>>2];d=b<<2;W:{if(y[d+40996>>2]==(c|0)){y[d+40996>>2]=a;if(a){break W}m=40696,n=Bi(-2,b)&l,y[m>>2]=n;break V}X:{if(y[j+16>>2]==(c|0)){y[j+16>>2]=a;break X}y[j+20>>2]=a;}if(!a){break V}}y[a+24>>2]=j;b=y[c+16>>2];if(b){y[a+16>>2]=b;y[b+24>>2]=a;}b=y[c+20>>2];if(!b){break V}y[a+20>>2]=b;y[b+24>>2]=a;}Y:{if(e>>>0<=15){a=e+g|0;y[c+4>>2]=a|3;a=a+c|0;y[a+4>>2]=y[a+4>>2]|1;break Y}y[c+4>>2]=g|3;h=c+g|0;y[h+4>>2]=e|1;y[e+h>>2]=e;if(i){a=(i&-8)+40732|0;d=y[10178];b=1<<(i>>>3);Z:{if(!(b&f)){y[10173]=b|f;b=a;break Z}b=y[a+8>>2];}y[a+8>>2]=d;y[b+12>>2]=d;y[d+12>>2]=a;y[d+8>>2]=b;}y[10178]=h;y[10175]=e;}a=c+8|0;}T=k+16|0;return a|0}function Hc(a,b){var 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,t=0,u=0,v=0,x=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,U=0,V=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;m=T-48|0;T=m;e=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);d=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);w[a+24|0]=d;w[a+25|0]=d>>>8;w[a+26|0]=d>>>16;w[a+27|0]=d>>>24;w[a+28|0]=e;w[a+29|0]=e>>>8;w[a+30|0]=e>>>16;w[a+31|0]=e>>>24;e=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);d=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);w[a+16|0]=d;w[a+17|0]=d>>>8;w[a+18|0]=d>>>16;w[a+19|0]=d>>>24;w[a+20|0]=e;w[a+21|0]=e>>>8;w[a+22|0]=e>>>16;w[a+23|0]=e>>>24;e=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);d=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);w[a+8|0]=d;w[a+9|0]=d>>>8;w[a+10|0]=d>>>16;w[a+11|0]=d>>>24;w[a+12|0]=e;w[a+13|0]=e>>>8;w[a+14|0]=e>>>16;w[a+15|0]=e>>>24;d=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);b=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=d;w[a+5|0]=d>>>8;w[a+6|0]=d>>>16;w[a+7|0]=d>>>24;b=z[a+31|0];w[a+31|0]=b&127;cb(m,a);S=b&128;b=T-960|0;T=b;d=b+304|0;Oc(d,m);y[b+304>>2]=y[b+304>>2]+1;bb(d,d);d=y[b+340>>2];e=Ai(d,d>>31,486662,0);d=W;l=e+16777216|0;j=l>>>0<16777216?d+1|0:d;k=e-(l&-33554432)|0;d=y[b+336>>2];c=Ai(d,d>>31,486662,0);e=W;d=y[b+332>>2];f=Ai(d,d>>31,486662,0);d=W;i=c;h=f+16777216|0;d=h>>>0<16777216?d+1|0:d;c=d>>25;d=(d&33554431)<<7|h>>>25;g=i+d|0;c=c+e|0;d=d>>>0>g>>>0?c+1|0:c;e=g+33554432|0;d=e>>>0<33554432?d+1|0:d;n=((d&67108863)<<6|e>>>26)+k|0;o=0-n|0;y[b+292>>2]=o;p=g-(e&-67108864)|0;q=0-p|0;y[b+288>>2]=q;k=f-(h&-33554432)|0;d=y[b+328>>2];e=Ai(d,d>>31,486662,0);d=W;c=y[b+324>>2];h=Ai(c,c>>31,486662,0);c=W;i=e;g=h+16777216|0;c=g>>>0<16777216?c+1|0:c;e=c>>25;f=(c&33554431)<<7|g>>>25;c=i+f|0;d=d+e|0;d=c>>>0>>0?d+1|0:d;e=c+33554432|0;d=e>>>0<33554432?d+1|0:d;r=((d&67108863)<<6|e>>>26)+k|0;t=0-r|0;y[b+284>>2]=t;u=c-(e&-67108864)|0;v=0-u|0;y[b+280>>2]=v;k=h-(g&-33554432)|0;d=y[b+320>>2];c=Ai(d,d>>31,486662,0);d=W;e=y[b+316>>2];h=Ai(e,e>>31,486662,0);e=W;i=c;g=h+16777216|0;e=g>>>0<16777216?e+1|0:e;c=e>>25;f=(e&33554431)<<7|g>>>25;e=i+f|0;d=c+d|0;d=e>>>0>>0?d+1|0:d;c=d;f=e+33554432|0;c=f>>>0<33554432?c+1|0:c;x=((c&67108863)<<6|f>>>26)+k|0;A=0-x|0;y[b+276>>2]=A;B=e-(f&-67108864)|0;C=0-B|0;y[b+272>>2]=C;i=h-(g&-33554432)|0;d=y[b+312>>2];d=Ai(d,d>>31,486662,0);k=W;e=y[b+308>>2];f=Ai(e,e>>31,486662,0);c=W;h=f+16777216|0;c=h>>>0<16777216?c+1|0:c;e=(c&33554431)<<7|h>>>25;g=e+d|0;c=(c>>25)+k|0;e=e>>>0>g>>>0?c+1|0:c;d=g+33554432|0;e=d>>>0<33554432?e+1|0:e;D=((e&67108863)<<6|d>>>26)+i|0;E=0-D|0;y[b+268>>2]=E;F=g-(d&-67108864)|0;G=0-F|0;y[b+264>>2]=G;g=f-(h&-33554432)|0;e=Ai((j&33554431)<<7|l>>>25,j>>25,19,0);d=W;f=e;c=y[b+304>>2];e=Ai(c,c>>31,486662,0);c=f+e|0;d=W+d|0;e=c>>>0>>0?d+1|0:d;d=c+33554432|0;e=d>>>0<33554432?e+1|0:e;H=((e&67108863)<<6|d>>>26)+g|0;I=0-H|0;y[b+260>>2]=I;J=c-(d&-67108864)|0;K=0-J|0;y[b+256>>2]=K;e=b+208|0;d=b+256|0;fa(e,d);ga(b+160|0,d,e);U=y[b+196>>2];V=y[b+160>>2];M=y[b+208>>2];X=y[b+164>>2];Y=y[b+168>>2];N=y[b+212>>2];O=y[b+216>>2];Z=y[b+172>>2];_=y[b+176>>2];P=y[b+220>>2];Q=y[b+224>>2];$=y[b+180>>2];aa=y[b+184>>2];i=y[b+228>>2];k=y[b+232>>2];ba=y[b+188>>2];ca=y[b+192>>2];d=y[b+244>>2];e=Ai(d,d>>31,486662,0);d=W;l=e+16777216|0;j=l>>>0<16777216?d+1|0:d;da=e-(l&-33554432)|0;d=y[b+240>>2];d=Ai(d,d>>31,486662,0);L=W;e=y[b+236>>2];f=Ai(e,e>>31,486662,0);c=W;e=d;h=f+16777216|0;c=h>>>0<16777216?c+1|0:c;d=(c&33554431)<<7|h>>>25;g=e+d|0;c=(c>>25)+L|0;d=d>>>0>g>>>0?c+1|0:c;e=g+33554432|0;d=e>>>0<33554432?d+1|0:d;c=((d&67108863)<<6|e>>>26)+da|0;y[b+244>>2]=c;y[b+388>>2]=c+(U-n|0);d=g-(e&-67108864)|0;y[b+240>>2]=d;y[b+384>>2]=d+(ca-p|0);L=f-(h&-33554432)|0;d=Ai(k,k>>31,486662,0);f=W;h=Ai(i,i>>31,486662,0);e=W;i=d;g=h+16777216|0;e=g>>>0<16777216?e+1|0:e;d=e>>25;c=(e&33554431)<<7|g>>>25;e=i+c|0;d=d+f|0;d=c>>>0>e>>>0?d+1|0:d;c=d;f=e+33554432|0;c=f>>>0<33554432?c+1|0:c;d=f;f=((c&67108863)<<6|d>>>26)+L|0;y[b+236>>2]=f;y[b+380>>2]=f+(ba-r|0);d=e-(d&-67108864)|0;y[b+232>>2]=d;y[b+376>>2]=d+(aa-u|0);k=h-(g&-33554432)|0;c=Ai(Q,Q>>31,486662,0);e=W;f=Ai(P,P>>31,486662,0);d=W;i=c;h=f+16777216|0;d=h>>>0<16777216?d+1|0:d;c=d>>25;d=(d&33554431)<<7|h>>>25;g=i+d|0;c=c+e|0;e=d>>>0>g>>>0?c+1|0:c;d=g+33554432|0;e=d>>>0<33554432?e+1|0:e;c=((e&67108863)<<6|d>>>26)+k|0;y[b+228>>2]=c;y[b+372>>2]=c+($-x|0);d=g-(d&-67108864)|0;y[b+224>>2]=d;y[b+368>>2]=d+(_-B|0);k=f-(h&-33554432)|0;d=Ai(O,O>>31,486662,0);e=W;h=Ai(N,N>>31,486662,0);c=W;i=d;g=h+16777216|0;c=g>>>0<16777216?c+1|0:c;d=c>>25;f=(c&33554431)<<7|g>>>25;c=i+f|0;e=d+e|0;e=c>>>0>>0?e+1|0:e;d=e;f=c+33554432|0;d=f>>>0<33554432?d+1|0:d;e=f;f=((d&67108863)<<6|e>>>26)+k|0;y[b+220>>2]=f;y[b+364>>2]=f+(Z-D|0);d=c-(e&-67108864)|0;y[b+216>>2]=d;y[b+360>>2]=d+(Y-F|0);g=h-(g&-33554432)|0;e=Ai((j&33554431)<<7|l>>>25,j>>25,19,0);d=W;c=e;e=Ai(M,M>>31,486662,0);c=c+e|0;d=W+d|0;d=c>>>0>>0?d+1|0:d;e=c+33554432|0;d=e>>>0<33554432?d+1|0:d;j=((d&67108863)<<6|e>>>26)+g|0;y[b+212>>2]=j;y[b+356>>2]=j+(X-H|0);d=c-(e&-67108864)|0;y[b+208>>2]=d;y[b+352>>2]=d+(V-J|0);d=b+624|0;e=b+352|0;ga(d,e,e);ga(b,e,d);e=b+784|0;fa(e,b);fa(e,e);d=b+912|0;ga(d,b,e);e=b+576|0;fa(e,d);fa(e,e);fa(e,e);fa(e,e);c=b+528|0;ga(c,d,e);fa(c,c);fa(c,c);ga(c,c,b);d=y[b+564>>2];y[b+512>>2]=y[b+560>>2];y[b+516>>2]=d;d=y[b+556>>2];y[b+504>>2]=y[b+552>>2];y[b+508>>2]=d;d=y[b+548>>2];y[b+496>>2]=y[b+544>>2];y[b+500>>2]=d;d=y[b+540>>2];y[b+488>>2]=y[b+536>>2];y[b+492>>2]=d;d=y[b+532>>2];y[b+480>>2]=y[b+528>>2];y[b+484>>2]=d;fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);d=b+480|0;ga(c,c,d);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(c,c,d);d=y[b+564>>2];y[b+464>>2]=y[b+560>>2];y[b+468>>2]=d;d=y[b+556>>2];y[b+456>>2]=y[b+552>>2];y[b+460>>2]=d;d=y[b+548>>2];y[b+448>>2]=y[b+544>>2];y[b+452>>2]=d;d=y[b+540>>2];y[b+440>>2]=y[b+536>>2];y[b+444>>2]=d;d=y[b+532>>2];y[b+432>>2]=y[b+528>>2];y[b+436>>2]=d;fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);e=b+432|0;ga(c,c,e);d=y[b+564>>2];y[b+464>>2]=y[b+560>>2];y[b+468>>2]=d;d=y[b+556>>2];y[b+456>>2]=y[b+552>>2];y[b+460>>2]=d;d=y[b+548>>2];y[b+448>>2]=y[b+544>>2];y[b+452>>2]=d;d=y[b+540>>2];y[b+440>>2]=y[b+536>>2];y[b+444>>2]=d;d=y[b+532>>2];y[b+432>>2]=y[b+528>>2];y[b+436>>2]=d;fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(c,c,e);d=y[b+564>>2];y[b+464>>2]=y[b+560>>2];y[b+468>>2]=d;d=y[b+556>>2];y[b+456>>2]=y[b+552>>2];y[b+460>>2]=d;d=y[b+548>>2];y[b+448>>2]=y[b+544>>2];y[b+452>>2]=d;d=y[b+540>>2];y[b+440>>2]=y[b+536>>2];y[b+444>>2]=d;d=y[b+532>>2];y[b+432>>2]=y[b+528>>2];y[b+436>>2]=d;while(1){d=b+528|0;fa(d,d);R=R+1|0;if((R|0)!=120){continue}break}ga(d,d,b+432|0);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);ga(d,d,b+480|0);fa(d,d);fa(d,d);fa(d,d);ga(d,d,b);fa(d,d);pa(b+400|0,d);d=0-(w[b+401|0]&1)|0;i=o^d&(n^o);y[b+660>>2]=i;k=q^d&(p^q);y[b+656>>2]=k;l=t^d&(r^t);y[b+652>>2]=l;f=d&(u^v)^v;y[b+648>>2]=f;h=d&(x^A)^A;y[b+644>>2]=h;g=d&(B^C)^C;y[b+640>>2]=g;j=d&(D^E)^E;y[b+636>>2]=j;c=d&(F^G)^G;y[b+632>>2]=c;e=d&(H^I)^I;y[b+628>>2]=e;d=(d&(J^K)^K)-(d&486662)|0;y[b+624>>2]=d+1;y[b+820>>2]=i;y[b+816>>2]=k;y[b+812>>2]=l;y[b+808>>2]=f;y[b+804>>2]=h;y[b+800>>2]=g;y[b+796>>2]=j;y[b+792>>2]=c;y[b+788>>2]=e;y[b+784>>2]=d-1;bb(b,b+624|0);d=b+912|0;ga(d,b+784|0,b);pa(a,d);w[a+31|0]=z[a+31|0]|S;if(ab(b,a)){Ic();s();}d=y[b+36>>2];y[b+816>>2]=y[b+32>>2];y[b+820>>2]=d;d=y[b+28>>2];y[b+808>>2]=y[b+24>>2];y[b+812>>2]=d;d=y[b+20>>2];y[b+800>>2]=y[b+16>>2];y[b+804>>2]=d;d=y[b+12>>2];y[b+792>>2]=y[b+8>>2];y[b+796>>2]=d;d=y[b+4>>2];y[b+784>>2]=y[b>>2];y[b+788>>2]=d;d=y[b+44>>2];y[b+824>>2]=y[b+40>>2];y[b+828>>2]=d;d=y[b+52>>2];y[b+832>>2]=y[b+48>>2];y[b+836>>2]=d;d=y[b+60>>2];y[b+840>>2]=y[b+56>>2];y[b+844>>2]=d;d=y[b+68>>2];y[b+848>>2]=y[b+64>>2];y[b+852>>2]=d;d=y[b+76>>2];y[b+856>>2]=y[b+72>>2];y[b+860>>2]=d;d=y[b+116>>2];y[b+896>>2]=y[b+112>>2];y[b+900>>2]=d;d=y[b+108>>2];y[b+888>>2]=y[b+104>>2];y[b+892>>2]=d;d=y[b+100>>2];y[b+880>>2]=y[b+96>>2];y[b+884>>2]=d;d=y[b+92>>2];y[b+872>>2]=y[b+88>>2];y[b+876>>2]=d;d=y[b+84>>2];y[b+864>>2]=y[b+80>>2];y[b+868>>2]=d;f=b+624|0;h=b+784|0;xa(f,h);g=b+744|0;ga(h,f,g);e=b+824|0;c=b+664|0;j=b+704|0;ga(e,c,j);d=b+864|0;ga(d,j,g);xa(f,h);ga(h,f,g);ga(e,c,j);ga(d,j,g);xa(f,h);ga(b,f,g);e=b+40|0;ga(e,c,j);d=b+80|0;ga(d,j,g);ga(b+120|0,f,c);bb(f,d);ga(h,b,f);d=b+912|0;ga(d,e,f);pa(a,d);pa(b+576|0,h);w[a+31|0]=z[a+31|0]^z[b+576|0]<<7;T=b+960|0;T=m+48|0;}function pc(a,b,c,d,e,f){var 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,x=0,A=0,B=0,C=0,D=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,U=0,V=0,W=0,X=0,Y=0;I=T-592|0;T=I;j=-1;h=a+32|0;a:{if(!Jc(h)){break a}if(yb(a)){break a}if(!dc(e)){break a}if(yb(e)){break a}k=I+128|0;if(Qc(k,e)){break a}j=I+384|0;Za(j);if(f){va(j,39696,34,0);}va(j,a,32,0);va(j,e,32,0);va(j,b,c,d);d=I+320|0;Ca(j,d);Pa(d);j=I+8|0;c=h;e=0;b=0;g=T-2272|0;T=g;while(1){f=g+2016|0;h=z[d+(e>>>3|0)|0];w[f+e|0]=h>>>(e&6)&1;i=f;f=e|1;w[i+f|0]=h>>>(f&7)&1;e=e+2|0;if((e|0)!=256){continue}break}f=254;while(1){d=b;b=d+1|0;e=g+2016|0;n=e+d|0;b:{if(!z[n|0]|d>>>0>254){break b}l=b+e|0;e=w[l|0];c:{if(!e){break c}i=e<<1;h=w[n|0];e=i+h|0;if((e|0)<=15){w[n|0]=e;w[l|0]=0;break c}e=h-i|0;if((e|0)<-15){break b}w[n|0]=e;e=b;while(1){h=(g+2016|0)+e|0;if(!z[h|0]){w[h|0]=1;break c}w[h|0]=0;e=e+1|0;if((e|0)!=256){continue}break}}if(!f){break b}e=d+2|0;r=e+(g+2016|0)|0;h=w[r|0];d:{if(!h){break d}l=h<<2;i=w[n|0];h=l+i|0;if((h|0)>=16){h=i-l|0;if((h|0)<-15){break b}w[n|0]=h;while(1){h=(g+2016|0)+e|0;if(z[h|0]){w[h|0]=0;e=e+1|0;if((e|0)!=256){continue}break d}break}w[h|0]=1;break d}w[n|0]=h;w[r|0]=0;}m=(f>>>0>=5?5:f)+1|0;if((m|0)==2){break b}e=d+3|0;r=e+(g+2016|0)|0;h=w[r|0];e:{if(!h){break e}l=h<<3;i=w[n|0];h=l+i|0;if((h|0)>=16){h=i-l|0;if((h|0)<-15){break b}w[n|0]=h;while(1){h=(g+2016|0)+e|0;if(z[h|0]){w[h|0]=0;e=e+1|0;if((e|0)!=256){continue}break e}break}w[h|0]=1;break e}w[n|0]=h;w[r|0]=0;}if((m|0)==3){break b}e=d+4|0;r=e+(g+2016|0)|0;h=w[r|0];f:{if(!h){break f}l=h<<4;i=w[n|0];h=l+i|0;if((h|0)>=16){h=i-l|0;if((h|0)<-15){break b}w[n|0]=h;while(1){h=(g+2016|0)+e|0;if(z[h|0]){w[h|0]=0;e=e+1|0;if((e|0)!=256){continue}break f}break}w[h|0]=1;break f}w[n|0]=h;w[r|0]=0;}if((m|0)==4){break b}e=d+5|0;r=e+(g+2016|0)|0;h=w[r|0];g:{if(!h){break g}l=h<<5;i=w[n|0];h=l+i|0;if((h|0)>=16){h=i-l|0;if((h|0)<-15){break b}w[n|0]=h;while(1){h=(g+2016|0)+e|0;if(z[h|0]){w[h|0]=0;e=e+1|0;if((e|0)!=256){continue}break g}break}w[h|0]=1;break g}w[n|0]=h;w[r|0]=0;}if((m|0)==5){break b}e=d+6|0;l=e+(g+2016|0)|0;d=w[l|0];if(!d){break b}i=d<<6;h=w[n|0];d=i+h|0;if((d|0)>=16){d=h-i|0;if((d|0)<-15){break b}w[n|0]=d;while(1){d=(g+2016|0)+e|0;if(z[d|0]){w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break b}break}w[d|0]=1;break b}w[n|0]=d;w[l|0]=0;}f=f-1|0;if((b|0)!=256){continue}break}e=0;while(1){b=g+1760|0;d=z[c+(e>>>3|0)|0];w[b+e|0]=d>>>(e&6)&1;f=b;b=e|1;w[f+b|0]=d>>>(b&7)&1;e=e+2|0;if((e|0)!=256){continue}break}b=0;f=254;while(1){c=b;b=b+1|0;d=g+1760|0;m=d+c|0;h:{if(!z[m|0]|c>>>0>254){break h}i=b+d|0;d=w[i|0];i:{if(!d){break i}h=d<<1;e=w[m|0];d=h+e|0;if((d|0)<=15){w[m|0]=d;w[i|0]=0;break i}d=e-h|0;if((d|0)<-15){break h}w[m|0]=d;e=b;while(1){d=(g+1760|0)+e|0;if(!z[d|0]){w[d|0]=1;break i}w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break}}if(!f){break h}e=c+2|0;l=e+(g+1760|0)|0;d=w[l|0];j:{if(!d){break j}i=d<<2;h=w[m|0];d=i+h|0;if((d|0)>=16){d=h-i|0;if((d|0)<-15){break h}w[m|0]=d;while(1){d=(g+1760|0)+e|0;if(z[d|0]){w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break j}break}w[d|0]=1;break j}w[m|0]=d;w[l|0]=0;}r=(f>>>0>=5?5:f)+1|0;if((r|0)==2){break h}e=c+3|0;l=e+(g+1760|0)|0;d=w[l|0];k:{if(!d){break k}i=d<<3;h=w[m|0];d=i+h|0;if((d|0)>=16){d=h-i|0;if((d|0)<-15){break h}w[m|0]=d;while(1){d=(g+1760|0)+e|0;if(z[d|0]){w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break k}break}w[d|0]=1;break k}w[m|0]=d;w[l|0]=0;}if((r|0)==3){break h}e=c+4|0;l=e+(g+1760|0)|0;d=w[l|0];l:{if(!d){break l}i=d<<4;h=w[m|0];d=i+h|0;if((d|0)>=16){d=h-i|0;if((d|0)<-15){break h}w[m|0]=d;while(1){d=(g+1760|0)+e|0;if(z[d|0]){w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break l}break}w[d|0]=1;break l}w[m|0]=d;w[l|0]=0;}if((r|0)==4){break h}e=c+5|0;l=e+(g+1760|0)|0;d=w[l|0];m:{if(!d){break m}i=d<<5;h=w[m|0];d=i+h|0;if((d|0)>=16){d=h-i|0;if((d|0)<-15){break h}w[m|0]=d;while(1){d=(g+1760|0)+e|0;if(z[d|0]){w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break m}break}w[d|0]=1;break m}w[m|0]=d;w[l|0]=0;}if((r|0)==5){break h}e=c+6|0;i=e+(g+1760|0)|0;c=w[i|0];if(!c){break h}h=c<<6;d=w[m|0];c=h+d|0;if((c|0)>=16){c=d-h|0;if((c|0)<-15){break h}w[m|0]=c;while(1){c=(g+1760|0)+e|0;if(z[c|0]){w[c|0]=0;e=e+1|0;if((e|0)!=256){continue}break h}break}w[c|0]=1;break h}w[m|0]=c;w[i|0]=0;}f=f-1|0;if((b|0)!=256){continue}break}d=g+480|0;qa(d,k);b=y[k+36>>2];y[g+192>>2]=y[k+32>>2];y[g+196>>2]=b;b=y[k+28>>2];y[g+184>>2]=y[k+24>>2];y[g+188>>2]=b;b=y[k+20>>2];y[g+176>>2]=y[k+16>>2];y[g+180>>2]=b;b=y[k+12>>2];y[g+168>>2]=y[k+8>>2];y[g+172>>2]=b;b=y[k+4>>2];y[g+160>>2]=y[k>>2];y[g+164>>2]=b;b=y[k+44>>2];y[g+200>>2]=y[k+40>>2];y[g+204>>2]=b;b=y[k+52>>2];y[g+208>>2]=y[k+48>>2];y[g+212>>2]=b;b=y[k+60>>2];y[g+216>>2]=y[k+56>>2];y[g+220>>2]=b;c=k- -64|0;b=y[c+4>>2];y[g+224>>2]=y[c>>2];y[g+228>>2]=b;b=y[k+76>>2];y[g+232>>2]=y[k+72>>2];y[g+236>>2]=b;b=y[k+84>>2];y[g+240>>2]=y[k+80>>2];y[g+244>>2]=b;b=y[k+92>>2];y[g+248>>2]=y[k+88>>2];y[g+252>>2]=b;b=y[k+100>>2];y[g+256>>2]=y[k+96>>2];y[g+260>>2]=b;b=y[k+108>>2];y[g+264>>2]=y[k+104>>2];y[g+268>>2]=b;b=y[k+116>>2];y[g+272>>2]=y[k+112>>2];y[g+276>>2]=b;e=g+320|0;c=g+160|0;xa(e,c);o=g+440|0;ga(g,e,o);p=g+360|0;q=g+400|0;ga(g+40|0,p,q);ga(g+80|0,q,o);ga(g+120|0,e,p);sa(e,g,d);ga(c,e,o);t=g+200|0;ga(t,p,q);u=g+240|0;ga(u,q,o);s=g+280|0;ga(s,e,p);b=g+640|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);b=g+800|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);b=g+960|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);b=g+1120|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);b=g+1280|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);b=g+1440|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);qa(g+1600|0,c);y[j+32>>2]=0;y[j+36>>2]=0;y[j+24>>2]=0;y[j+28>>2]=0;y[j+16>>2]=0;y[j+20>>2]=0;y[j+8>>2]=0;y[j+12>>2]=0;y[j>>2]=0;y[j+4>>2]=0;y[j+44>>2]=0;y[j+48>>2]=0;L=j+40|0;y[L>>2]=1;y[j+52>>2]=0;y[j+56>>2]=0;y[j+60>>2]=0;y[j+64>>2]=0;y[j+68>>2]=0;y[j+72>>2]=0;y[j+84>>2]=0;y[j+88>>2]=0;y[j+76>>2]=0;y[j+80>>2]=1;y[j+92>>2]=0;y[j+96>>2]=0;y[j+100>>2]=0;y[j+104>>2]=0;y[j+108>>2]=0;y[j+112>>2]=0;y[j+116>>2]=0;S=j+80|0;f=255;while(1){n:{o:{b=g+2016|0;p:{if(z[b+f|0]){break p}c=g+1760|0;if(z[c+f|0]){break p}d=b;b=f-1|0;if(!(z[d+b|0]|z[b+c|0])){break o}f=b;}if((f|0)<0){break n}while(1){d=g+320|0;xa(d,j);b=f;e=w[b+(g+2016|0)|0];q:{if((e|0)>0){c=g+160|0;ga(c,d,o);ga(t,p,q);ga(u,q,o);ga(s,d,p);sa(d,c,(g+480|0)+E((e&254)>>>1|0,160)|0);break q}if((e|0)>=0){break q}c=g+160|0;d=g+320|0;ga(c,d,o);ga(t,p,q);ga(u,q,o);ga(s,d,p);Hb(d,c,(g+480|0)+E((0-e&254)>>>1|0,160)|0);}J=w[b+(g+1760|0)|0];r:{if((J|0)>0){c=g+160|0;d=g+320|0;ga(c,d,o);ga(t,p,q);ga(u,q,o);ga(s,d,p);fc(d,c,E((J&254)>>>1|0,120)+1728|0);break r}if((J|0)>=0){break r}K=g+320|0;ga(g+160|0,K,o);ga(t,p,q);ga(u,q,o);ga(s,K,p);v=y[g+160>>2];x=y[g+200>>2];A=y[g+164>>2];B=y[g+204>>2];C=y[g+168>>2];D=y[g+208>>2];F=y[g+172>>2];G=y[g+212>>2];H=y[g+176>>2];k=y[g+216>>2];n=y[g+180>>2];m=y[g+220>>2];r=y[g+184>>2];l=y[g+224>>2];i=y[g+188>>2];h=y[g+228>>2];f=y[g+192>>2];e=y[g+232>>2];d=y[g+236>>2];c=y[g+196>>2];y[g+396>>2]=d-c;y[g+392>>2]=e-f;y[g+388>>2]=h-i;y[g+384>>2]=l-r;y[g+380>>2]=m-n;y[g+376>>2]=k-H;y[g+372>>2]=G-F;y[g+368>>2]=D-C;y[g+364>>2]=B-A;y[g+360>>2]=x-v;y[g+356>>2]=c+d;y[g+352>>2]=e+f;y[g+348>>2]=h+i;y[g+344>>2]=l+r;y[g+340>>2]=m+n;y[g+336>>2]=k+H;y[g+332>>2]=F+G;y[g+328>>2]=C+D;y[g+324>>2]=A+B;y[g+320>>2]=v+x;c=E((0-J&254)>>>1|0,120)+1728|0;ga(q,K,c+40|0);ga(p,p,c);ga(o,c+80|0,s);U=y[g+276>>2];V=y[g+272>>2];J=y[g+268>>2];K=y[g+264>>2];r=y[g+260>>2];l=y[g+256>>2];i=y[g+252>>2];h=y[g+248>>2];f=y[g+244>>2];e=y[g+240>>2];M=y[g+360>>2];N=y[g+400>>2];O=y[g+364>>2];P=y[g+404>>2];Q=y[g+368>>2];R=y[g+408>>2];v=y[g+372>>2];x=y[g+412>>2];A=y[g+376>>2];B=y[g+416>>2];C=y[g+380>>2];D=y[g+420>>2];F=y[g+384>>2];G=y[g+424>>2];H=y[g+388>>2];k=y[g+428>>2];n=y[g+392>>2];m=y[g+432>>2];d=y[g+396>>2];c=y[g+436>>2];y[g+396>>2]=d+c;y[g+392>>2]=m+n;y[g+388>>2]=k+H;y[g+384>>2]=F+G;y[g+380>>2]=C+D;y[g+376>>2]=A+B;y[g+372>>2]=v+x;y[g+368>>2]=Q+R;y[g+364>>2]=O+P;y[g+360>>2]=M+N;y[g+356>>2]=c-d;y[g+352>>2]=m-n;y[g+348>>2]=k-H;y[g+344>>2]=G-F;y[g+340>>2]=D-C;y[g+336>>2]=B-A;y[g+332>>2]=x-v;y[g+328>>2]=R-Q;y[g+324>>2]=P-O;y[g+320>>2]=N-M;v=e<<1;x=y[g+440>>2];y[g+400>>2]=v-x;A=f<<1;B=y[g+444>>2];y[g+404>>2]=A-B;C=h<<1;D=y[g+448>>2];y[g+408>>2]=C-D;F=i<<1;G=y[g+452>>2];y[g+412>>2]=F-G;H=l<<1;k=y[g+456>>2];y[g+416>>2]=H-k;n=r<<1;m=y[g+460>>2];y[g+420>>2]=n-m;r=K<<1;l=y[g+464>>2];y[g+424>>2]=r-l;i=J<<1;h=y[g+468>>2];y[g+428>>2]=i-h;f=V<<1;e=y[g+472>>2];y[g+432>>2]=f-e;d=U<<1;c=y[g+476>>2];y[g+436>>2]=d-c;y[g+440>>2]=v+x;y[g+444>>2]=A+B;y[g+448>>2]=C+D;y[g+452>>2]=F+G;y[g+456>>2]=k+H;y[g+460>>2]=m+n;y[g+464>>2]=l+r;y[g+468>>2]=h+i;y[g+472>>2]=e+f;y[g+476>>2]=c+d;}ga(j,g+320|0,o);ga(L,p,q);ga(S,q,o);f=b-1|0;if((b|0)>0){continue}break}break n}f=f-2|0;if(b){continue}}break}T=g+2272|0;b=I+288|0;Wa(b,j);j=(W=-1,X=kb(b,a),Y=(a|0)==(b|0),Y?W:X)|$a(a,b,32);}T=I+592|0;return j}function ph(a,b){a=a|0;b=b|0;var 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,z=0,A=0,B=0,C=0,D=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,U=0,V=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,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;g=T-256|0;T=g;za=-1;a:{if(yb(b)){break a}c=g+96|0;if(Qc(c,b)){break a}if(!ec(c)){break a}za=0;K=y[g+172>>2];y[g+36>>2]=0-K;s=y[g+168>>2];y[g+32>>2]=0-s;L=y[g+164>>2];y[g+28>>2]=0-L;t=y[g+160>>2];y[g+24>>2]=0-t;M=y[g+156>>2];y[g+20>>2]=0-M;u=y[g+152>>2];y[g+16>>2]=0-u;N=y[g+148>>2];y[g+12>>2]=0-N;v=y[g+144>>2];y[g+8>>2]=0-v;O=y[g+140>>2];y[g+4>>2]=0-O;e=y[g+136>>2];y[g>>2]=1-e;bb(g,g);w=y[g+4>>2];H=w>>31;x=M<<1;ba=x>>31;b=Ai(w,H,x,ba);c=W;q=y[g>>2];z=q>>31;A=t>>31;d=Ai(q,z,t,A);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;B=y[g+8>>2];P=B>>31;C=u>>31;f=Ai(B,P,u,C);d=f+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;I=y[g+12>>2];S=I>>31;X=N<<1;ca=X>>31;d=Ai(I,S,X,ca);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;Q=y[g+16>>2];Y=Q>>31;D=v>>31;d=Ai(Q,Y,v,D);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;f=y[g+20>>2];ta=f;da=f>>31;Z=O<<1;ea=Z>>31;o=Ai(f,da,Z,ea);c=o+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;l=y[g+24>>2];ua=l;qa=l>>31;o=e+1|0;F=o>>31;e=Ai(l,qa,o,F);b=e+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;fa=y[g+28>>2];r=E(fa,19);U=r>>31;_=K<<1;ga=_>>31;e=Ai(r,U,_,ga);d=e+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;Aa=y[g+32>>2];i=E(Aa,19);R=i>>31;G=s>>31;d=Ai(i,R,s,G);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;Ba=y[g+36>>2];n=E(Ba,19);J=n>>31;$=L<<1;ha=$>>31;d=Ai(n,J,$,ha);c=d+c|0;b=W+b|0;j=c;e=c>>>0>>0?b+1|0:b;b=Ai(u,C,w,H);c=W;ia=M>>31;h=Ai(q,z,M,ia);b=h+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;ja=N>>31;h=Ai(B,P,N,ja);b=h+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;h=Ai(v,D,I,S);d=h+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;ka=O>>31;d=Ai(Q,Y,O,ka);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(o,F,f,da);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;l=E(l,19);aa=l>>31;la=K>>31;h=Ai(l,aa,K,la);c=h+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;h=Ai(s,G,r,U);b=h+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;ma=L>>31;h=Ai(i,R,L,ma);d=h+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;d=Ai(n,J,t,A);c=c+d|0;b=W+b|0;va=c;V=c>>>0>>0?b+1|0:b;b=Ai(w,H,X,ca);d=W;h=Ai(q,z,u,C);c=h+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;h=Ai(v,D,B,P);c=h+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;h=Ai(I,S,Z,ea);b=h+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;h=Ai(o,F,Q,Y);d=h+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;h=E(f,19);na=h>>31;d=Ai(h,na,_,ga);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(s,G,l,aa);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;f=Ai(r,U,$,ha);c=f+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;f=Ai(i,R,t,A);b=f+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;f=Ai(n,J,x,ba);d=f+b|0;b=W+c|0;Ca=d;b=d>>>0>>0?b+1|0:b;Da=b;d=d+33554432|0;b=d>>>0<33554432?b+1|0:b;Ea=d;Fa=b;d=(b&67108863)<<6|d>>>26;f=d+va|0;b=(b>>26)+V|0;va=f;b=d>>>0>f>>>0?b+1|0:b;f=f+16777216|0;d=f>>>0<16777216?b+1|0:b;Ga=f;c=d>>25;f=(d&33554431)<<7|f>>>25;d=f+j|0;b=c+e|0;b=d>>>0>>0?b+1|0:b;c=d+33554432|0;b=c>>>0<33554432?b+1|0:b;p=c;f=b;y[g+72>>2]=d-(c&-67108864);b=Ai(w,H,Z,ea);c=W;e=Ai(q,z,v,D);b=e+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;e=Ai(o,F,B,P);c=e+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;e=E(I,19);oa=e>>31;d=Ai(e,oa,_,ga);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;V=E(Q,19);ra=V>>31;j=Ai(V,ra,s,G);d=j+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;j=Ai($,ha,h,na);d=j+d|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;j=Ai(t,A,l,aa);c=j+d|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;j=Ai(r,U,x,ba);c=j+c|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(i,R,u,C);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;j=Ai(n,J,X,ca);d=j+c|0;c=W+b|0;m=d;wa=d>>>0>>0?c+1|0:c;b=Ai(o,F,w,H);c=W;j=Ai(q,z,O,ka);d=j+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=E(B,19);j=c;sa=c>>31;k=Ai(c,sa,K,la);c=k+d|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;k=Ai(s,G,e,oa);c=k+c|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(V,ra,L,ma);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;k=Ai(t,A,h,na);d=k+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;k=Ai(l,aa,M,ia);d=k+d|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;k=Ai(u,C,r,U);c=k+d|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;k=Ai(i,R,N,ja);c=k+c|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(n,J,v,D);c=d+c|0;b=W+b|0;xa=c;k=c>>>0>>0?b+1|0:b;b=E(w,19);b=Ai(b,b>>31,_,ga);c=W;d=Ai(q,z,o,F);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;j=Ai(s,G,j,sa);d=j+b|0;b=W+c|0;e=Ai(e,oa,$,ha);c=e+d|0;d=W+(d>>>0>>0?b+1|0:b)|0;d=c>>>0>>0?d+1|0:d;e=Ai(t,A,V,ra);c=e+c|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(x,ba,h,na);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;e=Ai(u,C,l,aa);d=e+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;e=Ai(r,U,X,ca);d=e+d|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;e=Ai(i,R,v,D);c=e+d|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;e=Ai(n,J,Z,ea);c=e+c|0;b=W+d|0;j=c;b=c>>>0>>0?b+1|0:b;oa=b;c=c+33554432|0;b=c>>>0<33554432?b+1|0:b;sa=c;Ha=b;d=b>>26;b=(b&67108863)<<6|c>>>26;e=b+xa|0;c=d+k|0;k=e;c=b>>>0>e>>>0?c+1|0:c;b=c;e=e+16777216|0;b=e>>>0<16777216?b+1|0:b;xa=e;e=(b&33554431)<<7|e>>>25;c=e+m|0;b=(b>>25)+wa|0;b=c>>>0>>0?b+1|0:b;d=c;c=c+33554432|0;b=c>>>0<33554432?b+1|0:b;wa=c;e=b;y[g+56>>2]=d-(c&-67108864);b=Ai(t,A,w,H);d=W;m=Ai(q,z,L,ma);c=m+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(B,P,M,ia);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(u,C,I,S);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;m=Ai(Q,Y,N,ja);c=m+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;m=Ai(v,D,ta,da);b=m+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;m=Ai(O,ka,ua,qa);d=m+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;ya=fa>>31;d=Ai(fa,ya,o,F);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(i,R,K,la);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=c;c=Ai(n,J,s,G);m=d+c|0;d=W+b|0;c=c>>>0>m>>>0?d+1|0:d;b=f>>26;f=(f&67108863)<<6|p>>>26;d=f+m|0;c=b+c|0;p=d;c=d>>>0>>0?c+1|0:c;b=c;d=d+16777216|0;b=d>>>0<16777216?b+1|0:b;m=d;f=b;y[g+76>>2]=p-(d&-33554432);b=Ai(v,D,w,H);c=W;p=Ai(q,z,N,ja);b=p+b|0;d=W+c|0;d=b>>>0

>>0?d+1|0:d;p=Ai(B,P,O,ka);b=p+b|0;c=W+d|0;c=b>>>0

>>0?c+1|0:c;p=Ai(o,F,I,S);d=p+b|0;b=W+c|0;b=d>>>0

>>0?b+1|0:b;c=d;d=Ai(V,ra,K,la);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(s,G,h,na);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;l=Ai(l,aa,L,ma);c=l+c|0;d=W+b|0;r=Ai(t,A,r,U);b=r+c|0;c=W+(c>>>0>>0?d+1|0:d)|0;i=Ai(i,R,M,ia);d=i+b|0;b=W+(b>>>0>>0?c+1|0:c)|0;b=d>>>0>>0?b+1|0:b;c=d;d=Ai(n,J,u,C);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;p=c;c=e>>26;d=(e&67108863)<<6|wa>>>26;e=p+d|0;b=b+c|0;i=e;b=d>>>0>e>>>0?b+1|0:b;c=e+16777216|0;d=c>>>0<16777216?b+1|0:b;r=c;e=d;y[g+60>>2]=i-(c&-33554432);b=Ai(w,H,$,ha);d=W;i=Ai(q,z,s,G);c=i+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(t,A,B,P);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;i=Ai(I,S,x,ba);c=i+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;i=Ai(u,C,Q,Y);b=i+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;i=Ai(X,ca,ta,da);d=i+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;d=Ai(v,D,ua,qa);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=c;c=Ai(fa,ya,Z,ea);d=d+c|0;b=W+b|0;b=c>>>0>d>>>0?b+1|0:b;c=Aa;i=c;l=c>>31;x=Ai(c,l,o,F);c=x+d|0;d=W+b|0;n=Ai(n,J,_,ga);b=n+c|0;c=W+(c>>>0>>0?d+1|0:d)|0;d=b>>>0>>0?c+1|0:c;c=b;b=f>>25;f=(f&33554431)<<7|m>>>25;c=c+f|0;b=b+d|0;b=c>>>0>>0?b+1|0:b;d=c;c=c+33554432|0;b=c>>>0<33554432?b+1|0:b;n=c;f=b;y[g+80>>2]=d-(c&-67108864);x=va-(Ga&-33554432)|0;c=e>>25;e=(e&33554431)<<7|r>>>25;b=Ea&-67108864;d=e+(Ca-b|0)|0;b=c+(Da-((b>>>0>Ca>>>0)+Fa|0)|0)|0;b=d>>>0>>0?b+1|0:b;c=d+33554432|0;b=c>>>0<33554432?b+1|0:b;b=((b&67108863)<<6|c>>>26)+x|0;y[g+68>>2]=b;y[g+64>>2]=d-(c&-67108864);b=Ai(s,G,w,H);d=W;e=Ai(q,z,K,la);c=e+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;e=Ai(B,P,L,ma);d=e+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;e=Ai(t,A,I,S);b=e+d|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;e=Ai(Q,Y,M,ia);c=e+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(u,C,ta,da);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(N,ja,ua,qa);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;e=Ai(v,D,fa,ya);d=e+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;b=Ai(i,l,O,ka);e=b+d|0;d=W+c|0;d=b>>>0>e>>>0?d+1|0:d;c=e;b=Ba;e=Ai(b,b>>31,o,F);c=c+e|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=c;c=f>>26;f=(f&67108863)<<6|n>>>26;d=d+f|0;b=b+c|0;b=d>>>0>>0?b+1|0:b;c=d+16777216|0;b=c>>>0<16777216?b+1|0:b;y[g+84>>2]=d-(c&-33554432);f=k-(xa&-33554432)|0;d=sa&-67108864;e=j-d|0;q=oa-((d>>>0>j>>>0)+Ha|0)|0;d=b;b=b>>25;b=Ai((d&33554431)<<7|c>>>25,b,19,0);d=b+e|0;c=W+q|0;b=b>>>0>d>>>0?c+1|0:c;c=d+33554432|0;b=c>>>0<33554432?b+1|0:b;b=((b&67108863)<<6|c>>>26)+f|0;y[g+52>>2]=b;y[g+48>>2]=d-(c&-67108864);pa(a,g+48|0);}T=g+256|0;return za|0}function ui(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;j=T-544|0;T=j;Ie(i,h,j+432|0);i=0;if(g>>>0>31){h=32;while(1){He(f+i|0,j+432|0);i=h;h=h+32|0;if(h>>>0<=g>>>0){continue}break}}h=i|16;if(h>>>0<=g>>>0){while(1){i=f+i|0;l=z[i|0]|z[i+1|0]<<8|(z[i+2|0]<<16|z[i+3|0]<<24);m=z[i+4|0]|z[i+5|0]<<8|(z[i+6|0]<<16|z[i+7|0]<<24);p=z[i+8|0]|z[i+9|0]<<8|(z[i+10|0]<<16|z[i+11|0]<<24);n=z[i+12|0]|z[i+13|0]<<8|(z[i+14|0]<<16|z[i+15|0]<<24);i=y[j+524>>2];y[j+392>>2]=y[j+520>>2];y[j+396>>2]=i;i=y[j+516>>2];y[j+384>>2]=y[j+512>>2];y[j+388>>2]=i;i=y[j+500>>2];y[j+368>>2]=y[j+496>>2];y[j+372>>2]=i;i=y[j+508>>2];y[j+376>>2]=y[j+504>>2];y[j+380>>2]=i;i=y[j+516>>2];y[j+352>>2]=y[j+512>>2];y[j+356>>2]=i;i=y[j+524>>2];y[j+360>>2]=y[j+520>>2];y[j+364>>2]=i;i=j+528|0;ia(i,j+368|0,j+352|0);k=y[j+540>>2];y[j+520>>2]=y[j+536>>2];y[j+524>>2]=k;k=y[j+532>>2];y[j+512>>2]=y[j+528>>2];y[j+516>>2]=k;k=y[j+484>>2];y[j+336>>2]=y[j+480>>2];y[j+340>>2]=k;k=y[j+492>>2];y[j+344>>2]=y[j+488>>2];y[j+348>>2]=k;k=y[j+500>>2];y[j+320>>2]=y[j+496>>2];y[j+324>>2]=k;k=y[j+508>>2];y[j+328>>2]=y[j+504>>2];y[j+332>>2]=k;ia(i,j+336|0,j+320|0);k=y[j+540>>2];y[j+504>>2]=y[j+536>>2];y[j+508>>2]=k;k=y[j+532>>2];y[j+496>>2]=y[j+528>>2];y[j+500>>2]=k;k=y[j+468>>2];y[j+304>>2]=y[j+464>>2];y[j+308>>2]=k;k=y[j+476>>2];y[j+312>>2]=y[j+472>>2];y[j+316>>2]=k;k=y[j+484>>2];y[j+288>>2]=y[j+480>>2];y[j+292>>2]=k;k=y[j+492>>2];y[j+296>>2]=y[j+488>>2];y[j+300>>2]=k;ia(i,j+304|0,j+288|0);k=y[j+540>>2];y[j+488>>2]=y[j+536>>2];y[j+492>>2]=k;k=y[j+532>>2];y[j+480>>2]=y[j+528>>2];y[j+484>>2]=k;k=y[j+452>>2];y[j+272>>2]=y[j+448>>2];y[j+276>>2]=k;k=y[j+460>>2];y[j+280>>2]=y[j+456>>2];y[j+284>>2]=k;k=y[j+468>>2];y[j+256>>2]=y[j+464>>2];y[j+260>>2]=k;k=y[j+476>>2];y[j+264>>2]=y[j+472>>2];y[j+268>>2]=k;ia(i,j+272|0,j+256|0);k=y[j+540>>2];y[j+472>>2]=y[j+536>>2];y[j+476>>2]=k;k=y[j+532>>2];y[j+464>>2]=y[j+528>>2];y[j+468>>2]=k;k=y[j+436>>2];y[j+240>>2]=y[j+432>>2];y[j+244>>2]=k;k=y[j+444>>2];y[j+248>>2]=y[j+440>>2];y[j+252>>2]=k;k=y[j+452>>2];y[j+224>>2]=y[j+448>>2];y[j+228>>2]=k;k=y[j+460>>2];y[j+232>>2]=y[j+456>>2];y[j+236>>2]=k;ia(i,j+240|0,j+224|0);k=y[j+540>>2];y[j+456>>2]=y[j+536>>2];y[j+460>>2]=k;k=y[j+532>>2];y[j+448>>2]=y[j+528>>2];y[j+452>>2]=k;k=y[j+388>>2];y[j+208>>2]=y[j+384>>2];y[j+212>>2]=k;k=y[j+396>>2];y[j+216>>2]=y[j+392>>2];y[j+220>>2]=k;k=y[j+436>>2];y[j+192>>2]=y[j+432>>2];y[j+196>>2]=k;k=y[j+444>>2];y[j+200>>2]=y[j+440>>2];y[j+204>>2]=k;ia(i,j+208|0,j+192|0);y[j+444>>2]=n^y[j+540>>2];y[j+440>>2]=p^y[j+536>>2];y[j+436>>2]=m^y[j+532>>2];y[j+432>>2]=l^y[j+528>>2];i=h;h=h+16|0;if(h>>>0<=g>>>0){continue}break}}h=g&15;if(h){l=16-h|0;if(l){o(h|j+416,0,l);}if(h){t(j+416|0,f+i|0,h);}m=y[j+416>>2];p=y[j+420>>2];n=y[j+424>>2];k=y[j+428>>2];h=y[j+524>>2];i=y[j+520>>2];y[j+392>>2]=i;y[j+396>>2]=h;l=y[j+516>>2];f=y[j+512>>2];y[j+384>>2]=f;y[j+388>>2]=l;q=y[j+500>>2];y[j+176>>2]=y[j+496>>2];y[j+180>>2]=q;q=y[j+508>>2];y[j+184>>2]=y[j+504>>2];y[j+188>>2]=q;y[j+160>>2]=f;y[j+164>>2]=l;y[j+168>>2]=i;y[j+172>>2]=h;f=j+528|0;ia(f,j+176|0,j+160|0);h=y[j+540>>2];y[j+520>>2]=y[j+536>>2];y[j+524>>2]=h;h=y[j+532>>2];y[j+512>>2]=y[j+528>>2];y[j+516>>2]=h;h=y[j+484>>2];y[j+144>>2]=y[j+480>>2];y[j+148>>2]=h;h=y[j+492>>2];y[j+152>>2]=y[j+488>>2];y[j+156>>2]=h;h=y[j+500>>2];y[j+128>>2]=y[j+496>>2];y[j+132>>2]=h;h=y[j+508>>2];y[j+136>>2]=y[j+504>>2];y[j+140>>2]=h;ia(f,j+144|0,j+128|0);h=y[j+540>>2];y[j+504>>2]=y[j+536>>2];y[j+508>>2]=h;h=y[j+532>>2];y[j+496>>2]=y[j+528>>2];y[j+500>>2]=h;h=y[j+468>>2];y[j+112>>2]=y[j+464>>2];y[j+116>>2]=h;h=y[j+476>>2];y[j+120>>2]=y[j+472>>2];y[j+124>>2]=h;h=y[j+484>>2];y[j+96>>2]=y[j+480>>2];y[j+100>>2]=h;h=y[j+492>>2];y[j+104>>2]=y[j+488>>2];y[j+108>>2]=h;ia(f,j+112|0,j+96|0);h=y[j+540>>2];y[j+488>>2]=y[j+536>>2];y[j+492>>2]=h;h=y[j+532>>2];y[j+480>>2]=y[j+528>>2];y[j+484>>2]=h;h=y[j+452>>2];y[j+80>>2]=y[j+448>>2];y[j+84>>2]=h;h=y[j+460>>2];y[j+88>>2]=y[j+456>>2];y[j+92>>2]=h;h=y[j+468>>2];y[j+64>>2]=y[j+464>>2];y[j+68>>2]=h;h=y[j+476>>2];y[j+72>>2]=y[j+472>>2];y[j+76>>2]=h;ia(f,j+80|0,j- -64|0);h=y[j+540>>2];y[j+472>>2]=y[j+536>>2];y[j+476>>2]=h;h=y[j+532>>2];y[j+464>>2]=y[j+528>>2];y[j+468>>2]=h;h=y[j+436>>2];y[j+48>>2]=y[j+432>>2];y[j+52>>2]=h;h=y[j+444>>2];y[j+56>>2]=y[j+440>>2];y[j+60>>2]=h;h=y[j+452>>2];y[j+32>>2]=y[j+448>>2];y[j+36>>2]=h;h=y[j+460>>2];y[j+40>>2]=y[j+456>>2];y[j+44>>2]=h;ia(f,j+48|0,j+32|0);h=y[j+540>>2];y[j+456>>2]=y[j+536>>2];y[j+460>>2]=h;h=y[j+532>>2];y[j+448>>2]=y[j+528>>2];y[j+452>>2]=h;h=y[j+388>>2];y[j+16>>2]=y[j+384>>2];y[j+20>>2]=h;h=y[j+396>>2];y[j+24>>2]=y[j+392>>2];y[j+28>>2]=h;h=y[j+436>>2];y[j>>2]=y[j+432>>2];y[j+4>>2]=h;h=y[j+444>>2];y[j+8>>2]=y[j+440>>2];y[j+12>>2]=h;ia(f,j+16|0,j);y[j+444>>2]=k^y[j+540>>2];y[j+440>>2]=n^y[j+536>>2];y[j+436>>2]=p^y[j+532>>2];y[j+432>>2]=m^y[j+528>>2];}a:{if(!a){i=16;h=0;if(c>>>0<16){break a}while(1){Ee(j+528|0,b+h|0,j+432|0);h=i;i=h+16|0;if(i>>>0<=c>>>0){continue}break}break a}i=16;h=0;if(c>>>0<16){break a}while(1){Ee(a+h|0,b+h|0,j+432|0);h=i;i=h+16|0;if(i>>>0<=c>>>0){continue}break}}i=c&15;if(i){p=a?a+h|0:j+528|0;h=b+h|0;f=j+432|0;b=T-240|0;T=b;l=i+(b+192|0)|0;m=16-i|0;n=!m;if(!n){o(l,0,m);}k=!i;if(!k){t(b+192|0,h,i);}q=y[f+16>>2];h=f- -64|0;r=y[h>>2];s=y[f+80>>2];u=y[f+32>>2];v=y[f+48>>2];w=y[f+20>>2];x=y[f+68>>2];A=y[f+84>>2];B=y[f+36>>2];C=y[f+52>>2];D=y[f+24>>2];E=y[f+72>>2];F=y[f+88>>2];G=y[f+40>>2];H=y[f+56>>2];I=y[b+192>>2];J=y[b+196>>2];K=y[b+200>>2];y[b+204>>2]=y[f+44>>2]&y[f+60>>2]^(y[f+28>>2]^(y[f+76>>2]^(y[f+92>>2]^y[b+204>>2])));y[b+200>>2]=G&H^(E^(F^K)^D);y[b+196>>2]=B&C^(A^J^x^w);y[b+192>>2]=u&v^(s^I^r^q);if(!n){o(l,0,m);}if(!k){t(p,b+192|0,i);}l=y[b+192>>2];m=y[b+196>>2];p=y[b+200>>2];n=y[b+204>>2];i=y[f+92>>2];y[b+232>>2]=y[f+88>>2];y[b+236>>2]=i;i=y[f+84>>2];y[b+224>>2]=y[f+80>>2];y[b+228>>2]=i;i=y[h+4>>2];y[b+176>>2]=y[h>>2];y[b+180>>2]=i;i=y[f+76>>2];y[b+184>>2]=y[f+72>>2];y[b+188>>2]=i;i=y[f+84>>2];y[b+160>>2]=y[f+80>>2];y[b+164>>2]=i;i=y[f+92>>2];y[b+168>>2]=y[f+88>>2];y[b+172>>2]=i;i=b+208|0;ia(i,b+176|0,b+160|0);k=y[b+220>>2];y[f+88>>2]=y[b+216>>2];y[f+92>>2]=k;k=y[b+212>>2];y[f+80>>2]=y[b+208>>2];y[f+84>>2]=k;k=y[f+52>>2];y[b+144>>2]=y[f+48>>2];y[b+148>>2]=k;k=y[f+60>>2];y[b+152>>2]=y[f+56>>2];y[b+156>>2]=k;k=y[h+4>>2];y[b+128>>2]=y[h>>2];y[b+132>>2]=k;k=y[f+76>>2];y[b+136>>2]=y[f+72>>2];y[b+140>>2]=k;ia(i,b+144|0,b+128|0);k=y[b+220>>2];y[f+72>>2]=y[b+216>>2];y[f+76>>2]=k;k=y[b+212>>2];y[h>>2]=y[b+208>>2];y[h+4>>2]=k;h=y[f+36>>2];y[b+112>>2]=y[f+32>>2];y[b+116>>2]=h;h=y[f+44>>2];y[b+120>>2]=y[f+40>>2];y[b+124>>2]=h;h=y[f+52>>2];y[b+96>>2]=y[f+48>>2];y[b+100>>2]=h;h=y[f+60>>2];y[b+104>>2]=y[f+56>>2];y[b+108>>2]=h;ia(i,b+112|0,b+96|0);h=y[b+220>>2];y[f+56>>2]=y[b+216>>2];y[f+60>>2]=h;h=y[b+212>>2];y[f+48>>2]=y[b+208>>2];y[f+52>>2]=h;h=y[f+20>>2];y[b+80>>2]=y[f+16>>2];y[b+84>>2]=h;h=y[f+28>>2];y[b+88>>2]=y[f+24>>2];y[b+92>>2]=h;h=y[f+36>>2];y[b+64>>2]=y[f+32>>2];y[b+68>>2]=h;h=y[f+44>>2];y[b+72>>2]=y[f+40>>2];y[b+76>>2]=h;ia(i,b+80|0,b- -64|0);h=y[b+220>>2];y[f+40>>2]=y[b+216>>2];y[f+44>>2]=h;h=y[b+212>>2];y[f+32>>2]=y[b+208>>2];y[f+36>>2]=h;h=y[f+4>>2];y[b+48>>2]=y[f>>2];y[b+52>>2]=h;h=y[f+12>>2];y[b+56>>2]=y[f+8>>2];y[b+60>>2]=h;h=y[f+20>>2];y[b+32>>2]=y[f+16>>2];y[b+36>>2]=h;h=y[f+28>>2];y[b+40>>2]=y[f+24>>2];y[b+44>>2]=h;ia(i,b+48|0,b+32|0);h=y[b+220>>2];y[f+24>>2]=y[b+216>>2];y[f+28>>2]=h;h=y[b+212>>2];y[f+16>>2]=y[b+208>>2];y[f+20>>2]=h;h=y[b+228>>2];y[b+16>>2]=y[b+224>>2];y[b+20>>2]=h;h=y[b+236>>2];y[b+24>>2]=y[b+232>>2];y[b+28>>2]=h;h=y[f+4>>2];y[b>>2]=y[f>>2];y[b+4>>2]=h;h=y[f+12>>2];y[b+8>>2]=y[f+8>>2];y[b+12>>2]=h;ia(i,b+16|0,b);h=y[b+208>>2];i=y[b+212>>2];k=y[b+216>>2];y[f+12>>2]=n^y[b+220>>2];y[f+8>>2]=k^p;y[f+4>>2]=i^m;y[f>>2]=h^l;T=b+240|0;}Fe(j+384|0,e,g,c,j+432|0);h=-1;b:{c:{b=e-16|0;if(b){if((b|0)==16){break c}break b}h=db(j+384|0,d);break b}h=kb(j+384|0,d);}if(!(!c|(!a|!h))){o(a,0,c);}T=j+544|0;return h|0}function ga(a,b,c){var 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,z=0,A=0,B=0,C=0,D=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,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,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;s=y[c+4>>2];D=s>>31;L=y[b+20>>2];F=L<<1;ba=F>>31;d=Ai(s,D,F,ba);f=W;r=y[c>>2];v=r>>31;t=y[b+24>>2];w=t>>31;p=Ai(r,v,t,w);e=p+d|0;d=W+f|0;d=e>>>0

>>0?d+1|0:d;x=y[c+8>>2];I=x>>31;p=y[b+16>>2];z=p>>31;l=Ai(x,I,p,z);e=l+e|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;G=y[c+12>>2];M=G>>31;N=y[b+12>>2];U=N<<1;ca=U>>31;l=Ai(G,M,U,ca);d=l+e|0;e=W+f|0;e=d>>>0>>0?e+1|0:e;J=y[c+16>>2];V=J>>31;l=y[b+8>>2];A=l>>31;q=Ai(J,V,l,A);f=q+d|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;e=f;O=y[c+20>>2];da=O>>31;P=y[b+4>>2];X=P<<1;ea=X>>31;f=Ai(O,da,X,ea);e=e+f|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;j=y[c+24>>2];ta=j;pa=j>>31;q=y[b>>2];B=q>>31;m=Ai(j,pa,q,B);f=m+e|0;e=W+d|0;e=f>>>0>>0?e+1|0:e;fa=y[c+28>>2];o=E(fa,19);Q=o>>31;R=y[b+36>>2];Y=R<<1;ga=Y>>31;m=Ai(o,Q,Y,ga);d=m+f|0;f=W+e|0;f=d>>>0>>0?f+1|0:f;qa=y[c+32>>2];g=E(qa,19);K=g>>31;m=y[b+32>>2];C=m>>31;k=Ai(g,K,m,C);e=k+d|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;ua=y[c+36>>2];k=E(ua,19);H=k>>31;S=y[b+28>>2];Z=S<<1;ha=Z>>31;c=Ai(k,H,Z,ha);b=c+e|0;d=W+d|0;h=b;c=b>>>0>>0?d+1|0:d;b=Ai(p,z,s,D);d=W;ia=L>>31;e=Ai(r,v,L,ia);b=e+b|0;f=W+d|0;f=b>>>0>>0?f+1|0:f;ja=N>>31;d=Ai(x,I,N,ja);b=d+b|0;e=W+f|0;e=b>>>0>>0?e+1|0:e;f=Ai(l,A,G,M);b=f+b|0;d=W+e|0;d=b>>>0>>0?d+1|0:d;ka=P>>31;e=Ai(J,V,P,ka);b=e+b|0;d=W+d|0;d=b>>>0>>0?d+1|0:d;e=Ai(q,B,O,da);b=e+b|0;d=W+d|0;d=b>>>0>>0?d+1|0:d;j=E(j,19);_=j>>31;la=R>>31;e=Ai(j,_,R,la);b=e+b|0;f=W+d|0;f=b>>>0>>0?f+1|0:f;d=Ai(m,C,o,Q);b=d+b|0;e=W+f|0;e=b>>>0>>0?e+1|0:e;ma=S>>31;f=Ai(g,K,S,ma);b=f+b|0;d=W+e|0;d=b>>>0>>0?d+1|0:d;e=Ai(k,H,t,w);b=e+b|0;d=W+d|0;va=b;T=b>>>0>>0?d+1|0:d;b=Ai(s,D,U,ca);d=W;e=Ai(r,v,p,z);b=e+b|0;d=W+d|0;d=b>>>0>>0?d+1|0:d;e=Ai(l,A,x,I);b=e+b|0;f=W+d|0;f=b>>>0>>0?f+1|0:f;d=Ai(G,M,X,ea);b=d+b|0;e=W+f|0;e=b>>>0>>0?e+1|0:e;f=Ai(q,B,J,V);b=f+b|0;d=W+e|0;d=b>>>0>>0?d+1|0:d;$=E(O,19);na=$>>31;e=Ai($,na,Y,ga);b=e+b|0;d=W+d|0;d=b>>>0>>0?d+1|0:d;e=Ai(m,C,j,_);b=e+b|0;d=W+d|0;d=b>>>0>>0?d+1|0:d;e=Ai(o,Q,Z,ha);b=e+b|0;f=W+d|0;f=b>>>0>>0?f+1|0:f;d=Ai(g,K,t,w);b=d+b|0;e=W+f|0;e=b>>>0>>0?e+1|0:e;f=Ai(k,H,F,ba);b=f+b|0;d=W+e|0;ya=b;d=b>>>0>>0?d+1|0:d;za=d;b=b+33554432|0;d=b>>>0<33554432?d+1|0:d;Aa=b;Ba=d;f=(d&67108863)<<6|b>>>26;b=f+va|0;d=(d>>26)+T|0;va=b;d=b>>>0>>0?d+1|0:d;b=b+16777216|0;f=b>>>0<16777216?d+1|0:d;Ca=b;e=f>>25;f=(f&33554431)<<7|b>>>25;b=f+h|0;d=c+e|0;d=b>>>0>>0?d+1|0:d;e=b;c=e+33554432|0;d=c>>>0<33554432?d+1|0:d;aa=c;b=d;y[a+24>>2]=e-(c&-67108864);c=Ai(s,D,X,ea);d=W;e=Ai(r,v,l,A);c=e+c|0;f=W+d|0;f=c>>>0>>0?f+1|0:f;d=c;c=Ai(q,B,x,I);e=d+c|0;d=W+f|0;d=c>>>0>e>>>0?d+1|0:d;c=E(G,19);oa=c>>31;f=Ai(c,oa,Y,ga);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;T=E(J,19);ra=T>>31;h=Ai(m,C,T,ra);f=h+e|0;e=W+d|0;e=f>>>0>>0?e+1|0:e;h=Ai(Z,ha,$,na);f=h+f|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;h=Ai(t,w,j,_);e=h+f|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;h=Ai(o,Q,F,ba);e=h+e|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;f=Ai(g,K,p,z);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;h=Ai(k,H,U,ca);f=h+e|0;e=W+d|0;n=f;wa=f>>>0>>0?e+1|0:e;d=Ai(q,B,s,D);e=W;h=Ai(r,v,P,ka);f=h+d|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;e=E(x,19);h=e;sa=e>>31;i=Ai(e,sa,R,la);e=i+f|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;i=Ai(m,C,c,oa);e=i+e|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;f=Ai(T,ra,S,ma);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;i=Ai(t,w,$,na);f=i+e|0;e=W+d|0;e=f>>>0>>0?e+1|0:e;i=Ai(j,_,L,ia);f=i+f|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;i=Ai(p,z,o,Q);e=i+f|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;i=Ai(g,K,N,ja);e=i+e|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;f=Ai(k,H,l,A);e=f+e|0;d=W+d|0;xa=e;i=e>>>0>>0?d+1|0:d;d=E(s,19);d=Ai(d,d>>31,Y,ga);e=W;f=Ai(r,v,q,B);d=f+d|0;e=W+e|0;e=d>>>0>>0?e+1|0:e;h=Ai(m,C,h,sa);f=h+d|0;d=W+e|0;e=Ai(c,oa,Z,ha);c=e+f|0;f=W+(f>>>0>>0?d+1|0:d)|0;f=c>>>0>>0?f+1|0:f;e=Ai(t,w,T,ra);c=e+c|0;d=W+f|0;d=c>>>0>>0?d+1|0:d;e=Ai(F,ba,$,na);c=e+c|0;d=W+d|0;d=c>>>0>>0?d+1|0:d;f=Ai(p,z,j,_);c=f+c|0;e=W+d|0;e=c>>>0>>0?e+1|0:e;f=Ai(o,Q,U,ca);c=f+c|0;d=W+e|0;d=c>>>0>>0?d+1|0:d;e=Ai(g,K,l,A);c=e+c|0;f=W+d|0;f=c>>>0>>0?f+1|0:f;e=Ai(k,H,X,ea);c=e+c|0;d=W+f|0;h=c;d=c>>>0>>0?d+1|0:d;oa=d;c=c+33554432|0;d=c>>>0<33554432?d+1|0:d;sa=c;Da=d;f=d>>26;d=(d&67108863)<<6|c>>>26;c=d+xa|0;e=f+i|0;i=c;d=c>>>0>>0?e+1|0:e;c=c+16777216|0;d=c>>>0<16777216?d+1|0:d;xa=c;e=(d&33554431)<<7|c>>>25;c=e+n|0;d=(d>>25)+wa|0;d=c>>>0>>0?d+1|0:d;f=c;e=f+33554432|0;d=e>>>0<33554432?d+1|0:d;wa=e;c=d;y[a+8>>2]=f-(e&-67108864);d=Ai(t,w,s,D);f=W;n=Ai(r,v,S,ma);e=n+d|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;f=Ai(x,I,L,ia);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;f=Ai(p,z,G,M);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;n=Ai(J,V,N,ja);e=n+e|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;n=Ai(l,A,O,da);d=n+e|0;e=W+f|0;e=d>>>0>>0?e+1|0:e;n=Ai(P,ka,ta,pa);f=n+d|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;e=f;n=fa>>31;f=Ai(q,B,fa,n);e=e+f|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;f=Ai(g,K,R,la);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;u=Ai(k,H,m,C);e=u+e|0;f=W+d|0;d=b>>26;aa=(b&67108863)<<6|aa>>>26;b=aa+e|0;e=d+(e>>>0>>0?f+1|0:f)|0;f=b;d=f>>>0>>0?e+1|0:e;e=f+16777216|0;d=e>>>0<16777216?d+1|0:d;aa=e;b=d;y[a+28>>2]=f-(e&-33554432);d=Ai(l,A,s,D);e=W;u=Ai(r,v,N,ja);d=u+d|0;f=W+e|0;f=d>>>0>>0?f+1|0:f;u=Ai(x,I,P,ka);d=u+d|0;e=W+f|0;e=d>>>0>>0?e+1|0:e;u=Ai(q,B,G,M);f=u+d|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;e=f;f=Ai(T,ra,R,la);e=e+f|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;f=Ai(m,C,$,na);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;j=Ai(j,_,S,ma);e=j+e|0;f=W+d|0;o=Ai(t,w,o,Q);d=o+e|0;e=W+(e>>>0>>0?f+1|0:f)|0;g=Ai(g,K,L,ia);f=g+d|0;d=W+(d>>>0>>0?e+1|0:e)|0;d=f>>>0>>0?d+1|0:d;e=f;f=Ai(k,H,p,z);e=e+f|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;g=e;e=c>>26;f=(c&67108863)<<6|wa>>>26;c=g+f|0;d=d+e|0;g=c;d=c>>>0>>0?d+1|0:d;e=c+16777216|0;f=e>>>0<16777216?d+1|0:d;o=e;c=f;y[a+12>>2]=g-(e&-33554432);d=Ai(s,D,Z,ha);f=W;g=Ai(r,v,m,C);e=g+d|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;f=Ai(t,w,x,I);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;g=Ai(G,M,F,ba);e=g+e|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;g=Ai(p,z,J,V);d=g+e|0;e=W+f|0;e=d>>>0>>0?e+1|0:e;g=Ai(U,ca,O,da);f=g+d|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;e=f;f=Ai(l,A,ta,pa);e=e+f|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;f=Ai(fa,n,X,ea);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;g=qa;j=g>>31;F=Ai(q,B,g,j);e=F+e|0;f=W+d|0;k=Ai(k,H,Y,ga);d=k+e|0;e=W+(e>>>0>>0?f+1|0:f)|0;e=d>>>0>>0?e+1|0:e;qa=d;d=b>>25;f=(b&33554431)<<7|aa>>>25;b=qa+f|0;d=d+e|0;d=b>>>0>>0?d+1|0:d;f=b;e=f+33554432|0;d=e>>>0<33554432?d+1|0:d;k=e;b=d;y[a+32>>2]=f-(e&-67108864);f=va-(Ca&-33554432)|0;e=c>>25;o=(c&33554431)<<7|o>>>25;d=Aa&-67108864;c=o+(ya-d|0)|0;d=e+(za-((d>>>0>ya>>>0)+Ba|0)|0)|0;d=c>>>0>>0?d+1|0:d;e=c;c=e+33554432|0;d=c>>>0<33554432?d+1|0:d;d=((d&67108863)<<6|c>>>26)+f|0;y[a+20>>2]=d;y[a+16>>2]=e-(c&-67108864);c=Ai(m,C,s,D);d=W;e=Ai(r,v,R,la);c=e+c|0;d=W+d|0;d=c>>>0>>0?d+1|0:d;f=Ai(x,I,S,ma);c=f+c|0;e=W+d|0;e=c>>>0>>0?e+1|0:e;d=Ai(t,w,G,M);c=d+c|0;f=W+e|0;f=c>>>0>>0?f+1|0:f;e=Ai(J,V,L,ia);c=e+c|0;d=W+f|0;d=c>>>0>>0?d+1|0:d;e=Ai(p,z,O,da);c=e+c|0;d=W+d|0;d=c>>>0>>0?d+1|0:d;e=Ai(N,ja,ta,pa);c=e+c|0;d=W+d|0;d=c>>>0>>0?d+1|0:d;f=Ai(l,A,fa,n);c=f+c|0;e=W+d|0;e=c>>>0>>0?e+1|0:e;d=Ai(g,j,P,ka);c=d+c|0;f=W+e|0;f=c>>>0>>0?f+1|0:f;e=Ai(q,B,ua,ua>>31);c=e+c|0;d=W+f|0;d=c>>>0>>0?d+1|0:d;e=b>>26;f=c;c=(b&67108863)<<6|k>>>26;b=f+c|0;d=d+e|0;d=b>>>0>>0?d+1|0:d;c=b;b=c+16777216|0;d=b>>>0<16777216?d+1|0:d;y[a+36>>2]=c-(b&-33554432);f=i-(xa&-33554432)|0;c=sa&-67108864;e=h-c|0;r=oa-((c>>>0>h>>>0)+Da|0)|0;c=d;d=d>>25;c=Ai((c&33554431)<<7|b>>>25,d,19,0);b=c+e|0;e=W+r|0;d=b>>>0>>0?e+1|0:e;c=b;b=c+33554432|0;d=b>>>0<33554432?d+1|0:d;d=((d&67108863)<<6|b>>>26)+f|0;y[a+4>>2]=d;y[a>>2]=c-(b&-67108864);}function Ue(a,b,c){a=a|0;b=b|0;c=c|0;var 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,x=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,U=0,V=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,ha=0,ia=0,ka=0,la=0,ma=0,na=0,oa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;d=T-368|0;T=d;while(1){e=z[c+B|0];j=B+34112|0;p=e^z[j|0]|p;q=e^z[j+192|0]|q;o=e^z[j+160|0]|o;i=e^z[j+128|0]|i;h=e^z[j+96|0]|h;g=e^z[j- -64|0]|g;f=e^z[j+32|0]|f;B=B+1|0;if((B|0)!=31){continue}break}e=-1;l=z[c+31|0]&127;j=l^127;if(!((((j|q)&255)-1|(((j|o)&255)-1|(((i|j)&255)-1|(((l^87|h)&255)-1|(((g|l)&255)-1|(((f|l)&255)-1|((l|p)&255)-1))))))&256)){e=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);f=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[d+336>>2]=f;y[d+340>>2]=e;e=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[d+360>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[d+364>>2]=e;e=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[d+352>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[d+356>>2]=e;e=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[d+344>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[d+348>>2]=e;w[d+336|0]=f&248;w[d+367|0]=z[d+367|0]&63|64;cb(d+288|0,c);y[d+244>>2]=0;y[d+248>>2]=0;y[d+240>>2]=1;y[d+252>>2]=0;y[d+256>>2]=0;y[d+260>>2]=0;y[d+264>>2]=0;y[d+268>>2]=0;y[d+272>>2]=0;y[d+276>>2]=0;y[d+192>>2]=0;y[d+196>>2]=0;y[d+200>>2]=0;y[d+204>>2]=0;y[d+208>>2]=0;y[d+212>>2]=0;y[d+216>>2]=0;y[d+220>>2]=0;y[d+224>>2]=0;y[d+228>>2]=0;b=y[d+292>>2];y[d+144>>2]=y[d+288>>2];y[d+148>>2]=b;b=y[d+300>>2];y[d+152>>2]=y[d+296>>2];y[d+156>>2]=b;b=y[d+308>>2];y[d+160>>2]=y[d+304>>2];y[d+164>>2]=b;b=y[d+316>>2];y[d+168>>2]=y[d+312>>2];y[d+172>>2]=b;b=y[d+324>>2];y[d+176>>2]=y[d+320>>2];y[d+180>>2]=b;y[d+100>>2]=0;y[d+104>>2]=0;y[d+96>>2]=1;y[d+108>>2]=0;y[d+112>>2]=0;y[d+116>>2]=0;y[d+120>>2]=0;y[d+124>>2]=0;y[d+128>>2]=0;y[d+132>>2]=0;c=254;B=0;while(1){P=y[d+144>>2];Q=y[d+240>>2];R=y[d+96>>2];S=y[d+192>>2];U=y[d+148>>2];V=y[d+244>>2];X=y[d+100>>2];Y=y[d+196>>2];Z=y[d+152>>2];_=y[d+248>>2];$=y[d+104>>2];aa=y[d+200>>2];ba=y[d+156>>2];ca=y[d+252>>2];da=y[d+108>>2];ea=y[d+204>>2];ha=y[d+160>>2];F=y[d+256>>2];ia=y[d+112>>2];k=y[d+208>>2];ka=y[d+164>>2];r=y[d+260>>2];la=y[d+116>>2];v=y[d+212>>2];ma=y[d+168>>2];x=y[d+264>>2];H=y[d+120>>2];n=y[d+216>>2];t=y[d+172>>2];s=y[d+268>>2];m=y[d+124>>2];l=y[d+220>>2];f=y[d+176>>2];j=y[d+272>>2];p=y[d+128>>2];q=y[d+224>>2];b=B;na=c;oa=d+336|0;B=z[oa+(c>>>3|0)|0]>>>(c&7)&1;u=0-(b^B)|0;e=y[d+180>>2];h=y[d+276>>2];o=u&(e^h);b=y[d+132>>2];g=y[d+228>>2];i=u&(b^g);qa=e^o;ra=b^i;y[d+84>>2]=qa-ra;b=f;f=u&(f^j);sa=b^f;e=u&(p^q);ta=e^p;y[d+80>>2]=sa-ta;c=u&(s^t);ua=c^t;b=u&(l^m);A=b^m;y[d+76>>2]=ua-A;C=h^o;G=g^i;y[d+36>>2]=C-G;J=f^j;K=e^q;y[d+32>>2]=J-K;va=c^s;wa=b^l;y[d+28>>2]=va-wa;I=u&(x^ma);L=I^x;i=u&(n^H);M=i^n;y[d+24>>2]=L-M;D=u&(r^ka);N=D^r;h=u&(v^la);O=h^v;y[d+20>>2]=N-O;E=u&(F^ha);F=E^F;g=u&(k^ia);k=g^k;y[d+16>>2]=F-k;r=u&(ba^ca);v=ca^r;f=u&(da^ea);x=ea^f;y[d+12>>2]=v-x;n=u&(Z^_);t=_^n;e=u&($^aa);s=aa^e;y[d+8>>2]=t-s;m=u&(U^V);l=V^m;c=u&(X^Y);j=Y^c;y[d+4>>2]=l-j;p=u&(P^Q);q=Q^p;b=u&(R^S);o=S^b;y[d>>2]=q-o;H=i^H;y[d+120>>2]=H;i=I^ma;y[d+72>>2]=i-H;I=h^la;y[d+116>>2]=I;h=D^ka;y[d+68>>2]=h-I;D=g^ia;y[d+112>>2]=D;g=E^ha;y[d+64>>2]=g-D;E=f^da;y[d+108>>2]=E;f=r^ba;y[d+60>>2]=f-E;r=e^$;y[d+104>>2]=r;e=n^Z;y[d+56>>2]=e-r;n=c^X;y[d+100>>2]=n;c=m^U;y[d+52>>2]=c-n;m=b^R;y[d+96>>2]=m;b=p^P;y[d+48>>2]=b-m;y[d+276>>2]=C+G;y[d+272>>2]=J+K;y[d+268>>2]=va+wa;y[d+264>>2]=L+M;y[d+260>>2]=N+O;y[d+256>>2]=k+F;y[d+252>>2]=v+x;y[d+248>>2]=s+t;y[d+244>>2]=j+l;y[d+240>>2]=o+q;y[d+228>>2]=qa+ra;y[d+224>>2]=sa+ta;y[d+220>>2]=A+ua;y[d+216>>2]=i+H;y[d+212>>2]=h+I;y[d+208>>2]=g+D;y[d+200>>2]=e+r;y[d+196>>2]=c+n;y[d+192>>2]=b+m;y[d+204>>2]=f+E;K=d+96|0;G=d+48|0;C=d+240|0;ga(K,G,C);A=d+192|0;ga(A,A,d);fa(G,d);fa(d,C);k=y[d+192>>2];r=y[d+96>>2];v=y[d+196>>2];x=y[d+100>>2];n=y[d+200>>2];t=y[d+104>>2];s=y[d+204>>2];m=y[d+108>>2];l=y[d+208>>2];j=y[d+112>>2];p=y[d+212>>2];q=y[d+116>>2];o=y[d+216>>2];i=y[d+120>>2];h=y[d+220>>2];g=y[d+124>>2];f=y[d+224>>2];e=y[d+128>>2];c=y[d+228>>2];b=y[d+132>>2];y[d+180>>2]=c+b;y[d+176>>2]=e+f;y[d+172>>2]=g+h;y[d+168>>2]=i+o;y[d+164>>2]=p+q;y[d+160>>2]=j+l;y[d+156>>2]=m+s;y[d+152>>2]=n+t;y[d+148>>2]=v+x;y[d+144>>2]=k+r;y[d+228>>2]=b-c;y[d+224>>2]=e-f;y[d+220>>2]=g-h;y[d+216>>2]=i-o;y[d+212>>2]=q-p;y[d+208>>2]=j-l;y[d+204>>2]=m-s;y[d+200>>2]=t-n;y[d+196>>2]=x-v;y[d+192>>2]=r-k;ga(C,d,G);m=y[d+72>>2];n=y[d+24>>2];L=y[d+68>>2];t=y[d+20>>2];l=y[d+64>>2];s=y[d+16>>2];M=y[d+60>>2];o=y[d+12>>2];j=y[d+56>>2];i=y[d+8>>2];D=y[d+52>>2];h=y[d+4>>2];N=y[d+84>>2];g=y[d+36>>2];J=y[d+48>>2];e=y[d>>2];O=y[d+76>>2];b=y[d+28>>2];f=y[d+80>>2];c=y[d+32>>2]-f|0;y[d+32>>2]=c;b=b-O|0;y[d+28>>2]=b;r=e-J|0;y[d>>2]=r;v=g-N|0;y[d+36>>2]=v;p=h-D|0;y[d+4>>2]=p;q=i-j|0;y[d+8>>2]=q;o=o-M|0;y[d+12>>2]=o;i=s-l|0;y[d+16>>2]=i;h=t-L|0;y[d+20>>2]=h;g=n-m|0;y[d+24>>2]=g;fa(A,A);e=d+144|0;fa(e,e);e=Ai(c,c>>31,121666,0);s=W;c=Ai(b,b>>31,121666,0);b=W;E=c;x=c+16777216|0;b=x>>>0<16777216?b+1|0:b;c=(b&33554431)<<7|x>>>25;e=c+e|0;b=(b>>25)+s|0;b=c>>>0>e>>>0?b+1|0:b;n=e+33554432|0;c=n>>>0<33554432?b+1|0:b;y[d+80>>2]=(e-(n&-67108864)|0)+f;f=m;g=Ai(g,g>>31,121666,0);m=W;e=Ai(h,h>>31,121666,0);b=W;h=g;F=e;t=e+16777216|0;b=t>>>0<16777216?b+1|0:b;g=(b&33554431)<<7|t>>>25;e=h+g|0;b=(b>>25)+m|0;b=e>>>0>>0?b+1|0:b;s=e+33554432|0;g=s>>>0<33554432?b+1|0:b;y[d+72>>2]=(e-(s&-67108864)|0)+f;h=l;f=Ai(i,i>>31,121666,0);i=W;e=Ai(o,o>>31,121666,0);b=W;l=f;k=e;m=e+16777216|0;b=m>>>0<16777216?b+1|0:b;f=(b&33554431)<<7|m>>>25;e=l+f|0;b=(b>>25)+i|0;b=e>>>0>>0?b+1|0:b;l=e+33554432|0;f=l>>>0<33554432?b+1|0:b;y[d+64>>2]=(e-(l&-67108864)|0)+h;i=j;e=Ai(q,q>>31,121666,0);o=W;j=Ai(p,p>>31,121666,0);b=W;h=e;p=j+16777216|0;b=p>>>0<16777216?b+1|0:b;e=(b&33554431)<<7|p>>>25;h=h+e|0;b=(b>>25)+o|0;b=e>>>0>h>>>0?b+1|0:b;q=h+33554432|0;e=q>>>0<33554432?b+1|0:b;y[d+56>>2]=(h-(q&-67108864)|0)+i;o=N;i=c;c=Ai(v,v>>31,121666,0);i=(i&67108863)<<6|n>>>26;n=c+i|0;h=W;b=h;i=c+16777216|0;c=i>>>0<16777216?b+1|0:b;y[d+84>>2]=(n-(i&-33554432)|0)+o;h=O;g=E+((g&67108863)<<6|s>>>26)|0;y[d+76>>2]=(g-(x&-33554432)|0)+h;g=L;f=F+((f&67108863)<<6|l>>>26)|0;y[d+68>>2]=(f-(t&-33554432)|0)+g;f=M;e=k+((e&67108863)<<6|q>>>26)|0;y[d+60>>2]=(e-(m&-33554432)|0)+f;f=D;g=j-(p&-33554432)|0;c=Ai((c&33554431)<<7|i>>>25,c>>25,19,0);b=W;e=c;c=Ai(r,r>>31,121666,0);e=e+c|0;b=W+b|0;b=c>>>0>e>>>0?b+1|0:b;c=e+33554432|0;b=c>>>0<33554432?b+1|0:b;g=((b&67108863)<<6|c>>>26)+g|0;y[d+52>>2]=f+g;y[d+48>>2]=(e-(c&-67108864)|0)+J;c=na-1|0;ga(K,d+288|0,A);ga(A,d,G);if(na){continue}break}p=y[d+144>>2];r=y[d+240>>2];q=y[d+148>>2];v=y[d+244>>2];o=y[d+152>>2];x=y[d+248>>2];i=y[d+156>>2];n=y[d+252>>2];h=y[d+160>>2];t=y[d+256>>2];g=y[d+164>>2];s=y[d+260>>2];f=y[d+168>>2];m=y[d+264>>2];e=y[d+172>>2];l=y[d+268>>2];c=y[d+176>>2];j=y[d+272>>2];k=0-B|0;b=y[d+276>>2];y[d+276>>2]=k&(b^y[d+180>>2])^b;y[d+272>>2]=j^k&(c^j);y[d+268>>2]=l^k&(e^l);y[d+264>>2]=m^k&(f^m);y[d+260>>2]=s^k&(g^s);y[d+256>>2]=t^k&(h^t);y[d+252>>2]=n^k&(i^n);y[d+248>>2]=x^k&(o^x);y[d+244>>2]=v^k&(q^v);y[d+240>>2]=r^k&(p^r);r=y[d+192>>2];p=y[d+96>>2];v=y[d+196>>2];q=y[d+100>>2];x=y[d+200>>2];o=y[d+104>>2];n=y[d+204>>2];i=y[d+108>>2];t=y[d+208>>2];h=y[d+112>>2];s=y[d+212>>2];g=y[d+116>>2];m=y[d+216>>2];f=y[d+120>>2];l=y[d+220>>2];e=y[d+124>>2];j=y[d+224>>2];c=y[d+128>>2];b=y[d+228>>2];y[d+228>>2]=k&(b^y[d+132>>2])^b;y[d+224>>2]=j^k&(c^j);y[d+220>>2]=l^k&(e^l);y[d+216>>2]=m^k&(f^m);y[d+212>>2]=s^k&(g^s);y[d+208>>2]=t^k&(h^t);y[d+204>>2]=n^k&(i^n);y[d+200>>2]=x^k&(o^x);y[d+196>>2]=v^k&(q^v);y[d+192>>2]=r^k&(p^r);bb(A,A);ga(C,C,A);pa(a,C);ja(oa,32);e=0;}T=d+368|0;return e|0}function Nc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=T-4032|0;T=d;qa(d+160|0,c);f=y[c+36>>2];y[d+3840>>2]=y[c+32>>2];y[d+3844>>2]=f;f=y[c+28>>2];y[d+3832>>2]=y[c+24>>2];y[d+3836>>2]=f;f=y[c+20>>2];y[d+3824>>2]=y[c+16>>2];y[d+3828>>2]=f;f=y[c+12>>2];y[d+3816>>2]=y[c+8>>2];y[d+3820>>2]=f;f=y[c+4>>2];y[d+3808>>2]=y[c>>2];y[d+3812>>2]=f;f=y[c+44>>2];y[d+3848>>2]=y[c+40>>2];y[d+3852>>2]=f;f=y[c+52>>2];y[d+3856>>2]=y[c+48>>2];y[d+3860>>2]=f;f=y[c+60>>2];y[d+3864>>2]=y[c+56>>2];y[d+3868>>2]=f;f=c- -64|0;e=y[f+4>>2];y[d+3872>>2]=y[f>>2];y[d+3876>>2]=e;f=y[c+76>>2];y[d+3880>>2]=y[c+72>>2];y[d+3884>>2]=f;f=y[c+84>>2];y[d+3888>>2]=y[c+80>>2];y[d+3892>>2]=f;f=y[c+92>>2];y[d+3896>>2]=y[c+88>>2];y[d+3900>>2]=f;f=y[c+100>>2];y[d+3904>>2]=y[c+96>>2];y[d+3908>>2]=f;f=y[c+108>>2];y[d+3912>>2]=y[c+104>>2];y[d+3916>>2]=f;f=y[c+116>>2];y[d+3920>>2]=y[c+112>>2];y[d+3924>>2]=f;e=d+3528|0;f=d+3808|0;xa(e,f);h=d+2408|0;g=d+3648|0;ga(h,e,g);i=d+3568|0;j=d+3608|0;ga(d+2448|0,i,j);ga(d+2488|0,j,g);ga(d+2528|0,e,i);g=d+320|0;qa(g,h);e=d+3368|0;sa(e,c,g);h=d+2248|0;g=d+3488|0;ga(h,e,g);i=d+3408|0;j=d+3448|0;ga(d+2288|0,i,j);ga(d+2328|0,j,g);ga(d+2368|0,e,i);qa(d+480|0,h);e=y[d+2444>>2];y[d+3840>>2]=y[d+2440>>2];y[d+3844>>2]=e;e=y[d+2436>>2];y[d+3832>>2]=y[d+2432>>2];y[d+3836>>2]=e;e=y[d+2428>>2];y[d+3824>>2]=y[d+2424>>2];y[d+3828>>2]=e;e=y[d+2420>>2];y[d+3816>>2]=y[d+2416>>2];y[d+3820>>2]=e;e=y[d+2412>>2];y[d+3808>>2]=y[d+2408>>2];y[d+3812>>2]=e;e=y[d+2452>>2];y[d+3848>>2]=y[d+2448>>2];y[d+3852>>2]=e;e=y[d+2460>>2];y[d+3856>>2]=y[d+2456>>2];y[d+3860>>2]=e;e=y[d+2468>>2];y[d+3864>>2]=y[d+2464>>2];y[d+3868>>2]=e;e=y[d+2476>>2];y[d+3872>>2]=y[d+2472>>2];y[d+3876>>2]=e;e=y[d+2484>>2];y[d+3880>>2]=y[d+2480>>2];y[d+3884>>2]=e;e=y[d+2524>>2];y[d+3920>>2]=y[d+2520>>2];y[d+3924>>2]=e;e=y[d+2516>>2];y[d+3912>>2]=y[d+2512>>2];y[d+3916>>2]=e;e=y[d+2508>>2];y[d+3904>>2]=y[d+2504>>2];y[d+3908>>2]=e;e=y[d+2500>>2];y[d+3896>>2]=y[d+2496>>2];y[d+3900>>2]=e;e=y[d+2492>>2];y[d+3888>>2]=y[d+2488>>2];y[d+3892>>2]=e;e=d+3208|0;xa(e,f);h=d+2088|0;g=d+3328|0;ga(h,e,g);i=d+3248|0;j=d+3288|0;ga(d+2128|0,i,j);ga(d+2168|0,j,g);ga(d+2208|0,e,i);g=d+640|0;qa(g,h);e=d+3048|0;sa(e,c,g);h=d+1928|0;g=d+3168|0;ga(h,e,g);i=d+3088|0;j=d+3128|0;ga(d+1968|0,i,j);ga(d+2008|0,j,g);ga(d+2048|0,e,i);qa(d+800|0,h);e=y[d+2284>>2];y[d+3840>>2]=y[d+2280>>2];y[d+3844>>2]=e;e=y[d+2276>>2];y[d+3832>>2]=y[d+2272>>2];y[d+3836>>2]=e;e=y[d+2268>>2];y[d+3824>>2]=y[d+2264>>2];y[d+3828>>2]=e;e=y[d+2260>>2];y[d+3816>>2]=y[d+2256>>2];y[d+3820>>2]=e;e=y[d+2252>>2];y[d+3808>>2]=y[d+2248>>2];y[d+3812>>2]=e;e=y[d+2292>>2];y[d+3848>>2]=y[d+2288>>2];y[d+3852>>2]=e;e=y[d+2300>>2];y[d+3856>>2]=y[d+2296>>2];y[d+3860>>2]=e;e=y[d+2308>>2];y[d+3864>>2]=y[d+2304>>2];y[d+3868>>2]=e;e=y[d+2316>>2];y[d+3872>>2]=y[d+2312>>2];y[d+3876>>2]=e;e=y[d+2324>>2];y[d+3880>>2]=y[d+2320>>2];y[d+3884>>2]=e;e=y[d+2364>>2];y[d+3920>>2]=y[d+2360>>2];y[d+3924>>2]=e;e=y[d+2356>>2];y[d+3912>>2]=y[d+2352>>2];y[d+3916>>2]=e;e=y[d+2348>>2];y[d+3904>>2]=y[d+2344>>2];y[d+3908>>2]=e;e=y[d+2340>>2];y[d+3896>>2]=y[d+2336>>2];y[d+3900>>2]=e;e=y[d+2332>>2];y[d+3888>>2]=y[d+2328>>2];y[d+3892>>2]=e;e=d+2888|0;xa(e,f);h=d+1768|0;g=d+3008|0;ga(h,e,g);i=d+2928|0;j=d+2968|0;ga(d+1808|0,i,j);ga(d+1848|0,j,g);ga(d+1888|0,e,i);g=d+960|0;qa(g,h);e=d+2728|0;sa(e,c,g);c=d+1608|0;h=d+2848|0;ga(c,e,h);g=d+2768|0;i=d+2808|0;ga(d+1648|0,g,i);ga(d+1688|0,i,h);ga(d+1728|0,e,g);qa(d+1120|0,c);c=y[d+2124>>2];y[d+3840>>2]=y[d+2120>>2];y[d+3844>>2]=c;c=y[d+2116>>2];y[d+3832>>2]=y[d+2112>>2];y[d+3836>>2]=c;c=y[d+2108>>2];y[d+3824>>2]=y[d+2104>>2];y[d+3828>>2]=c;c=y[d+2100>>2];y[d+3816>>2]=y[d+2096>>2];y[d+3820>>2]=c;c=y[d+2092>>2];y[d+3808>>2]=y[d+2088>>2];y[d+3812>>2]=c;c=y[d+2132>>2];y[d+3848>>2]=y[d+2128>>2];y[d+3852>>2]=c;c=y[d+2140>>2];y[d+3856>>2]=y[d+2136>>2];y[d+3860>>2]=c;c=y[d+2148>>2];y[d+3864>>2]=y[d+2144>>2];y[d+3868>>2]=c;c=y[d+2156>>2];y[d+3872>>2]=y[d+2152>>2];y[d+3876>>2]=c;c=y[d+2164>>2];y[d+3880>>2]=y[d+2160>>2];y[d+3884>>2]=c;c=y[d+2204>>2];y[d+3920>>2]=y[d+2200>>2];y[d+3924>>2]=c;c=y[d+2196>>2];y[d+3912>>2]=y[d+2192>>2];y[d+3916>>2]=c;c=y[d+2188>>2];y[d+3904>>2]=y[d+2184>>2];y[d+3908>>2]=c;c=y[d+2180>>2];y[d+3896>>2]=y[d+2176>>2];y[d+3900>>2]=c;c=y[d+2172>>2];y[d+3888>>2]=y[d+2168>>2];y[d+3892>>2]=c;c=d+2568|0;xa(c,f);f=d+1448|0;e=d+2688|0;ga(f,c,e);h=d+2608|0;g=d+2648|0;ga(d+1488|0,h,g);ga(d+1528|0,g,e);ga(d+1568|0,c,h);qa(d+1280|0,f);c=z[b|0];w[d+3969|0]=c>>>4;w[d+3968|0]=c&15;c=z[b+1|0];w[d+3971|0]=c>>>4;w[d+3970|0]=c&15;c=z[b+2|0];w[d+3973|0]=c>>>4;w[d+3972|0]=c&15;c=z[b+3|0];w[d+3975|0]=c>>>4;w[d+3974|0]=c&15;c=z[b+4|0];w[d+3977|0]=c>>>4;w[d+3976|0]=c&15;c=z[b+5|0];w[d+3979|0]=c>>>4;w[d+3978|0]=c&15;c=z[b+6|0];w[d+3981|0]=c>>>4;w[d+3980|0]=c&15;c=z[b+7|0];w[d+3983|0]=c>>>4;w[d+3982|0]=c&15;c=z[b+8|0];w[d+3985|0]=c>>>4;w[d+3984|0]=c&15;c=z[b+9|0];w[d+3987|0]=c>>>4;w[d+3986|0]=c&15;c=z[b+10|0];w[d+3989|0]=c>>>4;w[d+3988|0]=c&15;c=z[b+11|0];w[d+3991|0]=c>>>4;w[d+3990|0]=c&15;c=z[b+12|0];w[d+3993|0]=c>>>4;w[d+3992|0]=c&15;c=z[b+13|0];w[d+3995|0]=c>>>4;w[d+3994|0]=c&15;c=z[b+14|0];w[d+3997|0]=c>>>4;w[d+3996|0]=c&15;c=z[b+15|0];w[d+3999|0]=c>>>4;w[d+3998|0]=c&15;c=z[b+16|0];w[d+4001|0]=c>>>4;w[d+4e3|0]=c&15;c=z[b+17|0];w[d+4003|0]=c>>>4;w[d+4002|0]=c&15;c=z[b+18|0];w[d+4005|0]=c>>>4;w[d+4004|0]=c&15;c=z[b+19|0];w[d+4007|0]=c>>>4;w[d+4006|0]=c&15;c=z[b+20|0];w[d+4009|0]=c>>>4;w[d+4008|0]=c&15;c=z[b+21|0];w[d+4011|0]=c>>>4;w[d+4010|0]=c&15;c=z[b+22|0];w[d+4013|0]=c>>>4;w[d+4012|0]=c&15;c=z[b+23|0];w[d+4015|0]=c>>>4;w[d+4014|0]=c&15;c=z[b+24|0];w[d+4017|0]=c>>>4;w[d+4016|0]=c&15;c=z[b+25|0];w[d+4019|0]=c>>>4;w[d+4018|0]=c&15;c=z[b+26|0];w[d+4021|0]=c>>>4;w[d+4020|0]=c&15;c=z[b+27|0];w[d+4023|0]=c>>>4;w[d+4022|0]=c&15;c=z[b+28|0];w[d+4025|0]=c>>>4;w[d+4024|0]=c&15;c=z[b+29|0];w[d+4027|0]=c>>>4;w[d+4026|0]=c&15;c=z[b+30|0];w[d+4029|0]=c>>>4;w[d+4028|0]=c&15;b=z[b+31|0];w[d+4031|0]=b>>>4;w[d+4030|0]=b&15;b=0;c=0;while(1){e=b;b=(d+3968|0)+c|0;e=e+z[b|0]|0;f=e+8|0;w[b|0]=e-(f&240);e=z[b+1|0]+(f<<24>>24>>4)|0;f=e+8|0;w[b+1|0]=e-(f&240);e=z[b+2|0]+(f<<24>>24>>4)|0;f=e+8|0;w[b+2|0]=e-(f&240);b=f<<24>>24>>4;c=c+3|0;if((c|0)!=63){continue}break}w[d+4031|0]=z[d+4031|0]+b;y[a+32>>2]=0;y[a+36>>2]=0;y[a+24>>2]=0;y[a+28>>2]=0;y[a+16>>2]=0;y[a+20>>2]=0;y[a+8>>2]=0;y[a+12>>2]=0;y[a>>2]=0;y[a+4>>2]=0;y[a+44>>2]=0;y[a+48>>2]=0;k=a+40|0;y[k>>2]=1;y[a+52>>2]=0;y[a+56>>2]=0;y[a+60>>2]=0;y[a+64>>2]=0;y[a+68>>2]=0;y[a+72>>2]=0;y[a+76>>2]=0;y[a+80>>2]=1;o(a+84|0,0,76);l=a+120|0;m=a+80|0;g=d+3768|0;c=d+3888|0;e=d+3848|0;i=d+3728|0;f=d+3928|0;j=63;while(1){n=d+160|0;Mc(d,n,w[(d+3968|0)+j|0]);b=d+3808|0;sa(b,a,d);h=d+3688|0;ga(h,b,f);ga(i,e,c);ga(g,c,f);xa(b,h);ga(h,b,f);ga(i,e,c);ga(g,c,f);xa(b,h);ga(h,b,f);ga(i,e,c);ga(g,c,f);xa(b,h);ga(h,b,f);ga(i,e,c);ga(g,c,f);xa(b,h);ga(a,b,f);ga(k,e,c);ga(m,c,f);ga(l,b,e);j=j-1|0;if(j){continue}break}Mc(d,n,w[d+3968|0]);sa(b,a,d);ga(a,b,f);ga(k,e,c);ga(m,c,f);ga(l,b,e);T=d+4032|0;}function Tb(a,b,c,d){var 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,A=0,B=0,C=0,D=0,E=0;e=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D>>2]=E;e=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+4>>2]=E;e=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+8>>2]=E;e=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+12>>2]=E;e=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+16>>2]=E;e=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+20>>2]=E;e=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+24>>2]=E;e=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+28>>2]=E;e=z[b+32|0]|z[b+33|0]<<8|(z[b+34|0]<<16|z[b+35|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+32>>2]=E;e=z[b+36|0]|z[b+37|0]<<8|(z[b+38|0]<<16|z[b+39|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+36>>2]=E;e=z[b+40|0]|z[b+41|0]<<8|(z[b+42|0]<<16|z[b+43|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+40>>2]=E;e=z[b+44|0]|z[b+45|0]<<8|(z[b+46|0]<<16|z[b+47|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+44>>2]=E;e=z[b+48|0]|z[b+49|0]<<8|(z[b+50|0]<<16|z[b+51|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+48>>2]=E;e=z[b+52|0]|z[b+53|0]<<8|(z[b+54|0]<<16|z[b+55|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+52>>2]=E;e=z[b+56|0]|z[b+57|0]<<8|(z[b+58|0]<<16|z[b+59|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+56>>2]=E;b=z[b+60|0]|z[b+61|0]<<8|(z[b+62|0]<<16|z[b+63|0]<<24);D=c,E=Di(b&16711935,8)|Di(b,24)&16711935,y[D+60>>2]=E;b=y[a+28>>2];y[d+24>>2]=y[a+24>>2];y[d+28>>2]=b;b=y[a+20>>2];y[d+16>>2]=y[a+16>>2];y[d+20>>2]=b;b=y[a+12>>2];y[d+8>>2]=y[a+8>>2];y[d+12>>2]=b;b=y[a+4>>2];y[d>>2]=y[a>>2];y[d+4>>2]=b;while(1){h=y[d+28>>2];e=s<<2;b=e+c|0;i=y[d+16>>2];g=y[b>>2]+(Bi(i,26)^Bi(i,21)^Bi(i,7))|0;f=y[e+39360>>2]+g|0;g=y[d+24>>2];n=y[d+20>>2];h=(f+(i&(g^n)^g)|0)+h|0;k=h+y[d+12>>2]|0;y[d+12>>2]=k;f=y[d>>2];l=h+(Bi(f,30)^Bi(f,19)^Bi(f,10))|0;m=y[d+8>>2];j=y[d+4>>2];h=l+(f&(m|j)|j&m)|0;y[d+28>>2]=h;l=m;m=e|4;q=m+c|0;g=(y[q>>2]+((g+(n^k&(i^n))|0)+(Bi(k,26)^Bi(k,21)^Bi(k,7))|0)|0)+y[m+39360>>2]|0;m=l+g|0;y[d+8>>2]=m;g=(g+(h&(f|j)|f&j)|0)+(Bi(h,30)^Bi(h,19)^Bi(h,10))|0;y[d+24>>2]=g;l=j;j=e|8;j=(((n+y[j+c>>2]|0)+y[j+39360>>2]|0)+(i^m&(i^k))|0)+(Bi(m,26)^Bi(m,21)^Bi(m,7))|0;n=l+j|0;y[d+4>>2]=n;j=j+((g&(f|h)|f&h)+(Bi(g,30)^Bi(g,19)^Bi(g,10))|0)|0;y[d+20>>2]=j;l=f;f=e|12;f=(((i+y[f+c>>2]|0)+y[f+39360>>2]|0)+(k^n&(m^k))|0)+(Bi(n,26)^Bi(n,21)^Bi(n,7))|0;i=l+f|0;y[d>>2]=i;f=f+((j&(g|h)|g&h)+(Bi(j,30)^Bi(j,19)^Bi(j,10))|0)|0;y[d+16>>2]=f;l=k;k=e|16;l=(((l+y[k+c>>2]|0)+y[k+39360>>2]|0)+(m^i&(m^n))|0)+(Bi(i,26)^Bi(i,21)^Bi(i,7))|0;k=l+((f&(g|j)|g&j)+(Bi(f,30)^Bi(f,19)^Bi(f,10))|0)|0;y[d+12>>2]=k;l=h+l|0;y[d+28>>2]=l;h=e|20;m=(((m+y[h+c>>2]|0)+y[h+39360>>2]|0)+(n^l&(i^n))|0)+(Bi(l,26)^Bi(l,21)^Bi(l,7))|0;h=m+((k&(f|j)|f&j)+(Bi(k,30)^Bi(k,19)^Bi(k,10))|0)|0;y[d+8>>2]=h;m=g+m|0;y[d+24>>2]=m;g=e|24;n=(((n+y[g+c>>2]|0)+y[g+39360>>2]|0)+(i^m&(i^l))|0)+(Bi(m,26)^Bi(m,21)^Bi(m,7))|0;g=n+((h&(f|k)|f&k)+(Bi(h,30)^Bi(h,19)^Bi(h,10))|0)|0;y[d+4>>2]=g;n=j+n|0;y[d+20>>2]=n;j=e|28;i=(((i+y[j+c>>2]|0)+y[j+39360>>2]|0)+(l^n&(m^l))|0)+(Bi(n,26)^Bi(n,21)^Bi(n,7))|0;j=i+((g&(h|k)|h&k)+(Bi(g,30)^Bi(g,19)^Bi(g,10))|0)|0;y[d>>2]=j;i=f+i|0;y[d+16>>2]=i;f=e|32;l=(((l+y[f+c>>2]|0)+y[f+39360>>2]|0)+(m^i&(m^n))|0)+(Bi(i,26)^Bi(i,21)^Bi(i,7))|0;f=l+((j&(g|h)|g&h)+(Bi(j,30)^Bi(j,19)^Bi(j,10))|0)|0;y[d+28>>2]=f;l=k+l|0;y[d+12>>2]=l;k=e|36;r=k+c|0;m=(((m+y[r>>2]|0)+y[k+39360>>2]|0)+(n^l&(i^n))|0)+(Bi(l,26)^Bi(l,21)^Bi(l,7))|0;k=m+((f&(g|j)|g&j)+(Bi(f,30)^Bi(f,19)^Bi(f,10))|0)|0;y[d+24>>2]=k;m=h+m|0;y[d+8>>2]=m;h=e|40;v=h+c|0;n=(((n+y[v>>2]|0)+y[h+39360>>2]|0)+(i^m&(i^l))|0)+(Bi(m,26)^Bi(m,21)^Bi(m,7))|0;h=n+((k&(f|j)|f&j)+(Bi(k,30)^Bi(k,19)^Bi(k,10))|0)|0;y[d+20>>2]=h;n=g+n|0;y[d+4>>2]=n;g=e|44;w=g+c|0;i=((i+(y[g+39360>>2]+y[w>>2]|0)|0)+(l^n&(m^l))|0)+(Bi(n,26)^Bi(n,21)^Bi(n,7))|0;g=i+((h&(f|k)|f&k)+(Bi(h,30)^Bi(h,19)^Bi(h,10))|0)|0;y[d+16>>2]=g;j=i+j|0;y[d>>2]=j;i=e|48;x=i+c|0;l=((l+(y[i+39360>>2]+y[x>>2]|0)|0)+(m^j&(m^n))|0)+(Bi(j,26)^Bi(j,21)^Bi(j,7))|0;i=l+((g&(h|k)|h&k)+(Bi(g,30)^Bi(g,19)^Bi(g,10))|0)|0;y[d+12>>2]=i;f=f+l|0;y[d+28>>2]=f;l=e|52;A=l+c|0;l=(((y[l+39360>>2]+y[A>>2]|0)+m|0)+(n^f&(j^n))|0)+(Bi(f,26)^Bi(f,21)^Bi(f,7))|0;m=l+((i&(g|h)|g&h)+(Bi(i,30)^Bi(i,19)^Bi(i,10))|0)|0;y[d+8>>2]=m;k=k+l|0;y[d+24>>2]=k;o=e|56;l=o+c|0;o=(((y[o+39360>>2]+y[l>>2]|0)+n|0)+(j^k&(f^j))|0)+(Bi(k,26)^Bi(k,21)^Bi(k,7))|0;n=o+((m&(g|i)|g&i)+(Bi(m,30)^Bi(m,19)^Bi(m,10))|0)|0;y[d+4>>2]=n;h=h+o|0;y[d+20>>2]=h;e=e|60;B=e+c|0;e=((j+(y[e+39360>>2]+y[B>>2]|0)|0)+(f^h&(f^k))|0)+(Bi(h,26)^Bi(h,21)^Bi(h,7))|0;h=e+((n&(i|m)|i&m)+(Bi(n,30)^Bi(n,19)^Bi(n,10))|0)|0;y[d>>2]=h;y[d+16>>2]=e+g;if((s|0)!=48){s=s+16|0;C=y[r>>2];r=y[l>>2];f=y[b>>2]+(C+(Bi(r,15)^Bi(r,13)^r>>>10)|0)|0;h=y[q>>2];e=f+(Bi(h,25)^Bi(h,14)^h>>>3)|0;y[(s<<2)+c>>2]=e;g=y[b+8>>2];j=y[b+44>>2];f=g+(j+(Bi(e,15)^Bi(e,13)^e>>>10)|0)|0;i=y[b+12>>2];f=f+(Bi(i,25)^Bi(i,14)^i>>>3)|0;y[b+72>>2]=f;q=y[b+40>>2];k=q+h|0;h=y[b+60>>2];g=(k+(Bi(h,15)^Bi(h,13)^h>>>10)|0)+(Bi(g,25)^Bi(g,14)^g>>>3)|0;y[b+68>>2]=g;k=y[b+16>>2];m=y[b+52>>2];l=k+(m+(Bi(f,15)^Bi(f,13)^f>>>10)|0)|0;o=y[b+20>>2];n=l+(Bi(o,25)^Bi(o,14)^o>>>3)|0;y[b+80>>2]=n;t=y[b+48>>2];k=(i+(t+(Bi(g,15)^Bi(g,13)^g>>>10)|0)|0)+(Bi(k,25)^Bi(k,14)^k>>>3)|0;y[b+76>>2]=k;i=y[b+24>>2];l=i+(h+(Bi(n,15)^Bi(n,13)^n>>>10)|0)|0;p=y[b+28>>2];l=l+(Bi(p,25)^Bi(p,14)^p>>>3)|0;y[b+88>>2]=l;u=y[b+56>>2];i=(o+(u+(Bi(k,15)^Bi(k,13)^k>>>10)|0)|0)+(Bi(i,25)^Bi(i,14)^i>>>3)|0;y[b+84>>2]=i;o=(e+p|0)+(Bi(i,15)^Bi(i,13)^i>>>10)|0;p=y[b+32>>2];o=o+(Bi(p,25)^Bi(p,14)^p>>>3)|0;y[b+92>>2]=o;p=(g+p|0)+(Bi(l,15)^Bi(l,13)^l>>>10)|0;g=y[b+36>>2];g=p+(Bi(g,25)^Bi(g,14)^g>>>3)|0;y[b+96>>2]=g;f=(f+((Bi(q,25)^Bi(q,14)^q>>>3)+C|0)|0)+(Bi(o,15)^Bi(o,13)^o>>>10)|0;y[b+100>>2]=f;j=(y[v>>2]+(k+(Bi(j,25)^Bi(j,14)^j>>>3)|0)|0)+(Bi(g,15)^Bi(g,13)^g>>>10)|0;y[b+104>>2]=j;f=(y[w>>2]+(n+(Bi(t,25)^Bi(t,14)^t>>>3)|0)|0)+(Bi(f,15)^Bi(f,13)^f>>>10)|0;y[b+108>>2]=f;j=(y[x>>2]+(i+(Bi(m,25)^Bi(m,14)^m>>>3)|0)|0)+(Bi(j,15)^Bi(j,13)^j>>>10)|0;y[b+112>>2]=j;f=(y[A>>2]+(l+(Bi(u,25)^Bi(u,14)^u>>>3)|0)|0)+(Bi(f,15)^Bi(f,13)^f>>>10)|0;y[b+116>>2]=f;D=b,E=(o+(r+(Bi(h,25)^Bi(h,14)^h>>>3)|0)|0)+(Bi(j,15)^Bi(j,13)^j>>>10)|0,y[D+120>>2]=E;D=b,E=(y[B>>2]+(g+(Bi(e,25)^Bi(e,14)^e>>>3)|0)|0)+(Bi(f,15)^Bi(f,13)^f>>>10)|0,y[D+124>>2]=E;continue}break}y[a>>2]=h+y[a>>2];y[a+4>>2]=y[a+4>>2]+y[d+4>>2];y[a+8>>2]=y[a+8>>2]+y[d+8>>2];y[a+12>>2]=y[a+12>>2]+y[d+12>>2];y[a+16>>2]=y[a+16>>2]+y[d+16>>2];y[a+20>>2]=y[a+20>>2]+y[d+20>>2];y[a+24>>2]=y[a+24>>2]+y[d+24>>2];y[a+28>>2]=y[a+28>>2]+y[d+28>>2];}function Pe(a,b){var 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;c=T-544|0;T=c;g=z[a+60|0]|z[a+61|0]<<8|(z[a+62|0]<<16|z[a+63|0]<<24);h=z[a+56|0]|z[a+57|0]<<8|(z[a+58|0]<<16|z[a+59|0]<<24);i=z[a+52|0]|z[a+53|0]<<8|(z[a+54|0]<<16|z[a+55|0]<<24);j=z[a+48|0]|z[a+49|0]<<8|(z[a+50|0]<<16|z[a+51|0]<<24);k=z[a+32|0]|z[a+33|0]<<8|(z[a+34|0]<<16|z[a+35|0]<<24);l=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);m=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);n=z[a+44|0]|z[a+45|0]<<8|(z[a+46|0]<<16|z[a+47|0]<<24);d=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);o=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);p=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);q=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);r=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);s=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);t=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);u=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);a=y[b+124>>2];y[c+536>>2]=y[b+120>>2];y[c+540>>2]=a;a=y[b+116>>2];y[c+528>>2]=y[b+112>>2];y[c+532>>2]=a;a=y[b+100>>2];y[c+496>>2]=y[b+96>>2];y[c+500>>2]=a;a=y[b+108>>2];y[c+504>>2]=y[b+104>>2];y[c+508>>2]=a;a=y[b+116>>2];y[c+480>>2]=y[b+112>>2];y[c+484>>2]=a;a=y[b+124>>2];y[c+488>>2]=y[b+120>>2];y[c+492>>2]=a;a=c+512|0;ia(a,c+496|0,c+480|0);f=y[c+524>>2];y[b+120>>2]=y[c+520>>2];y[b+124>>2]=f;f=y[c+516>>2];y[b+112>>2]=y[c+512>>2];y[b+116>>2]=f;f=y[b+84>>2];y[c+464>>2]=y[b+80>>2];y[c+468>>2]=f;f=y[b+92>>2];y[c+472>>2]=y[b+88>>2];y[c+476>>2]=f;f=y[b+100>>2];y[c+448>>2]=y[b+96>>2];y[c+452>>2]=f;f=y[b+108>>2];y[c+456>>2]=y[b+104>>2];y[c+460>>2]=f;ia(a,c+464|0,c+448|0);f=y[c+524>>2];y[b+104>>2]=y[c+520>>2];y[b+108>>2]=f;f=y[c+516>>2];y[b+96>>2]=y[c+512>>2];y[b+100>>2]=f;f=b- -64|0;e=y[f+4>>2];y[c+432>>2]=y[f>>2];y[c+436>>2]=e;e=y[b+76>>2];y[c+440>>2]=y[b+72>>2];y[c+444>>2]=e;e=y[b+84>>2];y[c+416>>2]=y[b+80>>2];y[c+420>>2]=e;e=y[b+92>>2];y[c+424>>2]=y[b+88>>2];y[c+428>>2]=e;ia(a,c+432|0,c+416|0);e=y[c+524>>2];y[b+88>>2]=y[c+520>>2];y[b+92>>2]=e;e=y[c+516>>2];y[b+80>>2]=y[c+512>>2];y[b+84>>2]=e;e=y[b+52>>2];y[c+400>>2]=y[b+48>>2];y[c+404>>2]=e;e=y[b+60>>2];y[c+408>>2]=y[b+56>>2];y[c+412>>2]=e;e=y[f+4>>2];y[c+384>>2]=y[f>>2];y[c+388>>2]=e;e=y[b+76>>2];y[c+392>>2]=y[b+72>>2];y[c+396>>2]=e;ia(a,c+400|0,c+384|0);e=y[c+524>>2];y[b+72>>2]=y[c+520>>2];y[b+76>>2]=e;e=y[c+516>>2];y[f>>2]=y[c+512>>2];y[f+4>>2]=e;e=y[b+36>>2];y[c+368>>2]=y[b+32>>2];y[c+372>>2]=e;e=y[b+44>>2];y[c+376>>2]=y[b+40>>2];y[c+380>>2]=e;e=y[b+52>>2];y[c+352>>2]=y[b+48>>2];y[c+356>>2]=e;e=y[b+60>>2];y[c+360>>2]=y[b+56>>2];y[c+364>>2]=e;ia(a,c+368|0,c+352|0);e=y[c+524>>2];y[b+56>>2]=y[c+520>>2];y[b+60>>2]=e;e=y[c+516>>2];y[b+48>>2]=y[c+512>>2];y[b+52>>2]=e;e=y[b+20>>2];y[c+336>>2]=y[b+16>>2];y[c+340>>2]=e;e=y[b+28>>2];y[c+344>>2]=y[b+24>>2];y[c+348>>2]=e;e=y[b+36>>2];y[c+320>>2]=y[b+32>>2];y[c+324>>2]=e;e=y[b+44>>2];y[c+328>>2]=y[b+40>>2];y[c+332>>2]=e;ia(a,c+336|0,c+320|0);e=y[c+524>>2];y[b+40>>2]=y[c+520>>2];y[b+44>>2]=e;e=y[c+516>>2];y[b+32>>2]=y[c+512>>2];y[b+36>>2]=e;e=y[b+4>>2];y[c+304>>2]=y[b>>2];y[c+308>>2]=e;e=y[b+12>>2];y[c+312>>2]=y[b+8>>2];y[c+316>>2]=e;e=y[b+20>>2];y[c+288>>2]=y[b+16>>2];y[c+292>>2]=e;e=y[b+28>>2];y[c+296>>2]=y[b+24>>2];y[c+300>>2]=e;ia(a,c+304|0,c+288|0);e=y[c+524>>2];y[b+24>>2]=y[c+520>>2];y[b+28>>2]=e;e=y[c+516>>2];y[b+16>>2]=y[c+512>>2];y[b+20>>2]=e;e=y[c+532>>2];y[c+272>>2]=y[c+528>>2];y[c+276>>2]=e;e=y[c+540>>2];y[c+280>>2]=y[c+536>>2];y[c+284>>2]=e;e=y[b+4>>2];y[c+256>>2]=y[b>>2];y[c+260>>2]=e;e=y[b+12>>2];y[c+264>>2]=y[b+8>>2];y[c+268>>2]=e;ia(a,c+272|0,c+256|0);e=y[c+524>>2];y[b+8>>2]=y[c+520>>2];y[b+12>>2]=e;e=y[c+516>>2];y[b>>2]=y[c+512>>2];y[b+4>>2]=e;y[b+12>>2]=y[b+12>>2]^t;y[b+8>>2]=y[b+8>>2]^s;y[b+4>>2]=y[b+4>>2]^r;y[b>>2]=y[b>>2]^u;y[f>>2]=y[f>>2]^q;y[b+68>>2]=y[b+68>>2]^p;y[b+72>>2]=y[b+72>>2]^o;y[b+76>>2]=y[b+76>>2]^d;d=y[b+124>>2];y[c+536>>2]=y[b+120>>2];y[c+540>>2]=d;d=y[b+116>>2];y[c+528>>2]=y[b+112>>2];y[c+532>>2]=d;d=y[b+100>>2];y[c+240>>2]=y[b+96>>2];y[c+244>>2]=d;d=y[b+108>>2];y[c+248>>2]=y[b+104>>2];y[c+252>>2]=d;d=y[b+116>>2];y[c+224>>2]=y[b+112>>2];y[c+228>>2]=d;d=y[b+124>>2];y[c+232>>2]=y[b+120>>2];y[c+236>>2]=d;ia(a,c+240|0,c+224|0);d=y[c+524>>2];y[b+120>>2]=y[c+520>>2];y[b+124>>2]=d;d=y[c+516>>2];y[b+112>>2]=y[c+512>>2];y[b+116>>2]=d;d=y[b+84>>2];y[c+208>>2]=y[b+80>>2];y[c+212>>2]=d;d=y[b+92>>2];y[c+216>>2]=y[b+88>>2];y[c+220>>2]=d;d=y[b+100>>2];y[c+192>>2]=y[b+96>>2];y[c+196>>2]=d;d=y[b+108>>2];y[c+200>>2]=y[b+104>>2];y[c+204>>2]=d;ia(a,c+208|0,c+192|0);d=y[c+524>>2];y[b+104>>2]=y[c+520>>2];y[b+108>>2]=d;d=y[c+516>>2];y[b+96>>2]=y[c+512>>2];y[b+100>>2]=d;d=y[f+4>>2];y[c+176>>2]=y[f>>2];y[c+180>>2]=d;d=y[b+76>>2];y[c+184>>2]=y[b+72>>2];y[c+188>>2]=d;d=y[b+84>>2];y[c+160>>2]=y[b+80>>2];y[c+164>>2]=d;d=y[b+92>>2];y[c+168>>2]=y[b+88>>2];y[c+172>>2]=d;ia(a,c+176|0,c+160|0);d=y[c+524>>2];y[b+88>>2]=y[c+520>>2];y[b+92>>2]=d;d=y[c+516>>2];y[b+80>>2]=y[c+512>>2];y[b+84>>2]=d;d=y[b+52>>2];y[c+144>>2]=y[b+48>>2];y[c+148>>2]=d;d=y[b+60>>2];y[c+152>>2]=y[b+56>>2];y[c+156>>2]=d;d=y[f+4>>2];y[c+128>>2]=y[f>>2];y[c+132>>2]=d;d=y[b+76>>2];y[c+136>>2]=y[b+72>>2];y[c+140>>2]=d;ia(a,c+144|0,c+128|0);d=y[c+524>>2];y[b+72>>2]=y[c+520>>2];y[b+76>>2]=d;d=y[c+516>>2];y[f>>2]=y[c+512>>2];y[f+4>>2]=d;d=y[b+36>>2];y[c+112>>2]=y[b+32>>2];y[c+116>>2]=d;d=y[b+44>>2];y[c+120>>2]=y[b+40>>2];y[c+124>>2]=d;d=y[b+52>>2];y[c+96>>2]=y[b+48>>2];y[c+100>>2]=d;d=y[b+60>>2];y[c+104>>2]=y[b+56>>2];y[c+108>>2]=d;ia(a,c+112|0,c+96|0);d=y[c+524>>2];y[b+56>>2]=y[c+520>>2];y[b+60>>2]=d;d=y[c+516>>2];y[b+48>>2]=y[c+512>>2];y[b+52>>2]=d;d=y[b+20>>2];y[c+80>>2]=y[b+16>>2];y[c+84>>2]=d;d=y[b+28>>2];y[c+88>>2]=y[b+24>>2];y[c+92>>2]=d;d=y[b+36>>2];y[c+64>>2]=y[b+32>>2];y[c+68>>2]=d;d=y[b+44>>2];y[c+72>>2]=y[b+40>>2];y[c+76>>2]=d;ia(a,c+80|0,c- -64|0);d=y[c+524>>2];y[b+40>>2]=y[c+520>>2];y[b+44>>2]=d;d=y[c+516>>2];y[b+32>>2]=y[c+512>>2];y[b+36>>2]=d;d=y[b+4>>2];y[c+48>>2]=y[b>>2];y[c+52>>2]=d;d=y[b+12>>2];y[c+56>>2]=y[b+8>>2];y[c+60>>2]=d;d=y[b+20>>2];y[c+32>>2]=y[b+16>>2];y[c+36>>2]=d;d=y[b+28>>2];y[c+40>>2]=y[b+24>>2];y[c+44>>2]=d;ia(a,c+48|0,c+32|0);d=y[c+524>>2];y[b+24>>2]=y[c+520>>2];y[b+28>>2]=d;d=y[c+516>>2];y[b+16>>2]=y[c+512>>2];y[b+20>>2]=d;d=y[c+532>>2];y[c+16>>2]=y[c+528>>2];y[c+20>>2]=d;d=y[c+540>>2];y[c+24>>2]=y[c+536>>2];y[c+28>>2]=d;d=y[b+4>>2];y[c>>2]=y[b>>2];y[c+4>>2]=d;d=y[b+12>>2];y[c+8>>2]=y[b+8>>2];y[c+12>>2]=d;ia(a,c+16|0,c);a=y[c+524>>2];y[b+8>>2]=y[c+520>>2];y[b+12>>2]=a;a=y[c+516>>2];y[b>>2]=y[c+512>>2];y[b+4>>2]=a;y[b+12>>2]=y[b+12>>2]^n;y[b+8>>2]=y[b+8>>2]^m;y[b+4>>2]=y[b+4>>2]^l;y[b>>2]=y[b>>2]^k;y[f>>2]=y[f>>2]^j;y[b+68>>2]=y[b+68>>2]^i;y[b+72>>2]=y[b+72>>2]^h;y[b+76>>2]=y[b+76>>2]^g;T=c+544|0;}function Oc(a,b){var 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,z=0,A=0,B=0,C=0,D=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,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;K=y[b+12>>2];u=K<<1;z=u>>31;f=y[b+4>>2];o=f<<1;v=o>>31;c=Ai(u,z,o,v);e=W;l=y[b+8>>2];R=l;L=l>>31;m=Ai(l,L,l,L);d=m+c|0;c=W+e|0;c=d>>>0>>0?c+1|0:c;h=y[b+16>>2];A=h>>31;g=y[b>>2];m=g<<1;w=m>>31;e=Ai(h,A,m,w);d=e+d|0;c=W+c|0;c=d>>>0>>0?c+1|0:c;G=y[b+28>>2];B=E(G,38);M=B>>31;S=G>>31;e=Ai(B,M,G,S);d=e+d|0;c=W+c|0;c=d>>>0>>0?c+1|0:c;e=d;H=y[b+32>>2];j=E(H,19);C=j>>31;p=y[b+24>>2];d=p<<1;i=Ai(j,C,d,d>>31);e=e+i|0;d=W+c|0;d=e>>>0>>0?d+1|0:d;$=y[b+36>>2];i=E($,38);x=i>>31;D=y[b+20>>2];q=D<<1;I=q>>31;c=Ai(i,x,q,I);e=c+e|0;b=W+d|0;c=(c>>>0>e>>>0?b+1|0:b)<<1|e>>>31;ba=c;T=e<<1;d=T+33554432|0;c=d>>>0<33554432?c+1|0:c;ca=d;da=c;b=c>>26;n=(c&67108863)<<6|d>>>26;c=Ai(o,v,h,A);e=W;l=l<<1;J=l>>31;U=K>>31;r=Ai(l,J,K,U);d=r+c|0;c=W+e|0;c=d>>>0>>0?c+1|0:c;O=D>>31;r=Ai(D,O,m,w);e=r+d|0;d=W+c|0;d=e>>>0>>0?d+1|0:d;r=G<<1;V=r>>31;P=Ai(j,C,r,V);e=P+e|0;c=W+d|0;c=e>>>0

>>0?c+1|0:c;F=p>>31;d=Ai(i,x,p,F);e=d+e|0;c=W+c|0;d=(d>>>0>e>>>0?c+1|0:c)<<1|e>>>31;c=e<<1;e=c+n|0;b=b+d|0;P=e;b=c>>>0>e>>>0?b+1|0:b;c=b;e=e+16777216|0;c=e>>>0<16777216?c+1|0:c;ea=e;n=(c&33554431)<<7|e>>>25;e=c>>25;b=Ai(u,z,K,U);c=W;d=Ai(h,A,l,J);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(o,v,q,I);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;s=Ai(m,w,p,F);d=s+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;Q=H>>31;s=Ai(j,C,H,Q);d=s+d|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;s=Ai(i,x,r,V);b=s+d|0;d=W+c|0;c=b;b=(c>>>0>>0?d+1|0:d)<<1|c>>>31;d=n;n=c<<1;d=d+n|0;c=b+e|0;c=d>>>0>>0?c+1|0:c;b=d+33554432|0;c=b>>>0<33554432?c+1|0:c;s=b;e=c;y[a+24>>2]=d-(b&-67108864);b=E(D,38);d=Ai(b,b>>31,D,O);n=W;b=g;c=b>>31;c=Ai(b,c,b,c);b=c+d|0;d=W+n|0;d=b>>>0>>0?d+1|0:d;g=E(p,19);X=g>>31;n=h<<1;Y=n>>31;t=Ai(g,X,n,Y);b=t+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;d=Ai(u,z,B,M);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;t=Ai(j,C,l,J);d=t+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;t=Ai(o,v,i,x);d=t+d|0;c=W+b|0;Z=d<<1;c=(d>>>0>>0?c+1|0:c)<<1|d>>>31;t=c;b=Z+33554432|0;d=b>>>0<33554432?c+1|0:c;fa=b;ga=d;N=(d&67108863)<<6|b>>>26;_=d>>26;b=Ai(g,X,q,I);c=W;aa=f>>31;d=Ai(m,w,f,aa);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;k=Ai(h,A,B,M);d=k+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;k=Ai(j,C,u,z);d=k+d|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;b=Ai(i,x,R,L);k=b+d|0;d=W+c|0;b=(b>>>0>k>>>0?d+1|0:d)<<1|k>>>31;k=k<<1;d=k+N|0;c=b+_|0;c=d>>>0>>0?c+1|0:c;_=d;d=d+16777216|0;c=d>>>0<16777216?c+1|0:c;k=d;ha=(c&33554431)<<7|d>>>25;N=c>>25;b=Ai(m,w,R,L);c=W;d=Ai(o,v,f,aa);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;f=Ai(g,X,p,F);b=f+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;f=Ai(q,I,B,M);b=f+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;d=Ai(j,C,n,Y);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;f=Ai(i,x,u,z);d=f+b|0;b=W+c|0;c=(d>>>0>>0?b+1|0:b)<<1|d>>>31;d=d<<1;b=d+ha|0;c=c+N|0;g=b;c=b>>>0>>0?c+1|0:c;b=b+33554432|0;d=b>>>0<33554432?c+1|0:c;N=b;f=d;y[a+8>>2]=g-(b&-67108864);b=Ai(l,J,D,O);d=W;g=Ai(h,A,u,z);c=g+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;g=Ai(o,v,p,F);d=g+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;g=Ai(m,w,G,S);b=g+d|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;g=Ai(i,x,H,Q);b=g+b|0;c=W+d|0;c=(b>>>0>>0?c+1|0:c)<<1|b>>>31;d=e>>26;g=b<<1;b=(e&67108863)<<6|s>>>26;e=g+b|0;c=c+d|0;d=e;b=d>>>0>>0?c+1|0:c;c=d+16777216|0;b=c>>>0<16777216?b+1|0:b;g=c;e=b;y[a+28>>2]=d-(c&-33554432);b=Ai(m,w,K,U);c=W;d=Ai(o,v,R,L);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(p,F,B,M);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;j=Ai(j,C,q,I);d=j+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;j=Ai(i,x,h,A);c=j+d|0;d=W+b|0;b=c;c=(c>>>0>>0?d+1|0:d)<<1|c>>>31;d=b<<1;b=f>>26;f=(f&67108863)<<6|N>>>26;d=d+f|0;c=b+c|0;c=d>>>0>>0?c+1|0:c;b=d+16777216|0;c=b>>>0<16777216?c+1|0:c;j=b;f=c;y[a+12>>2]=d-(b&-33554432);b=Ai(p,F,l,J);c=W;d=Ai(h,A,h,A);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(u,z,q,I);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(o,v,r,V);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;h=Ai(m,w,H,Q);d=h+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=i;i=$;q=i>>31;h=Ai(c,x,i,q);c=h+d|0;d=W+b|0;b=c;c=(c>>>0>>0?d+1|0:d)<<1|c>>>31;d=b<<1;b=e>>25;e=(e&33554431)<<7|g>>>25;d=d+e|0;c=b+c|0;c=d>>>0>>0?c+1|0:c;b=d+33554432|0;c=b>>>0<33554432?c+1|0:c;h=b;e=c;y[a+32>>2]=d-(b&-67108864);B=P-(ea&-33554432)|0;c=f>>25;f=(f&33554431)<<7|j>>>25;b=ca&-67108864;d=f+(T-b|0)|0;b=c+(ba-((b>>>0>T>>>0)+da|0)|0)|0;b=d>>>0>>0?b+1|0:b;f=d;c=b;d=d+33554432|0;c=d>>>0<33554432?c+1|0:c;b=((c&67108863)<<6|d>>>26)+B|0;y[a+20>>2]=b;y[a+16>>2]=f-(d&-67108864);b=Ai(u,z,p,F);d=W;f=Ai(D,O,n,Y);c=f+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;f=Ai(l,J,G,S);d=f+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;f=Ai(o,v,H,Q);b=f+d|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;f=Ai(m,w,i,q);b=f+b|0;c=W+d|0;c=(b>>>0>>0?c+1|0:c)<<1|b>>>31;d=e>>26;f=b<<1;b=(e&67108863)<<6|h>>>26;e=f+b|0;c=c+d|0;b=b>>>0>e>>>0?c+1|0:c;c=e+16777216|0;b=c>>>0<16777216?b+1|0:b;y[a+36>>2]=e-(c&-33554432);f=_-(k&-33554432)|0;d=fa&-67108864;e=Z-d|0;o=t-((d>>>0>Z>>>0)+ga|0)|0;b=Ai((b&33554431)<<7|c>>>25,b>>25,19,0);c=b+e|0;d=W+o|0;e=c;b=b>>>0>c>>>0?d+1|0:d;c=c+33554432|0;b=c>>>0<33554432?b+1|0:b;b=((b&67108863)<<6|c>>>26)+f|0;y[a+4>>2]=b;y[a>>2]=e-(c&-67108864);}function vi(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,p=0,q=0;j=T-528|0;T=j;Ie(i,h,j+400|0);i=0;if(g>>>0>31){h=32;while(1){He(f+i|0,j+400|0);i=h;h=h+32|0;if(h>>>0<=g>>>0){continue}break}}h=i|16;if(h>>>0<=g>>>0){while(1){i=f+i|0;l=z[i|0]|z[i+1|0]<<8|(z[i+2|0]<<16|z[i+3|0]<<24);m=z[i+4|0]|z[i+5|0]<<8|(z[i+6|0]<<16|z[i+7|0]<<24);n=z[i+8|0]|z[i+9|0]<<8|(z[i+10|0]<<16|z[i+11|0]<<24);p=z[i+12|0]|z[i+13|0]<<8|(z[i+14|0]<<16|z[i+15|0]<<24);i=y[j+492>>2];y[j+520>>2]=y[j+488>>2];y[j+524>>2]=i;i=y[j+484>>2];y[j+512>>2]=y[j+480>>2];y[j+516>>2]=i;i=y[j+468>>2];y[j+368>>2]=y[j+464>>2];y[j+372>>2]=i;i=y[j+476>>2];y[j+376>>2]=y[j+472>>2];y[j+380>>2]=i;i=y[j+484>>2];y[j+352>>2]=y[j+480>>2];y[j+356>>2]=i;i=y[j+492>>2];y[j+360>>2]=y[j+488>>2];y[j+364>>2]=i;i=j+496|0;ia(i,j+368|0,j+352|0);k=y[j+508>>2];y[j+488>>2]=y[j+504>>2];y[j+492>>2]=k;k=y[j+500>>2];y[j+480>>2]=y[j+496>>2];y[j+484>>2]=k;k=y[j+452>>2];y[j+336>>2]=y[j+448>>2];y[j+340>>2]=k;k=y[j+460>>2];y[j+344>>2]=y[j+456>>2];y[j+348>>2]=k;k=y[j+468>>2];y[j+320>>2]=y[j+464>>2];y[j+324>>2]=k;k=y[j+476>>2];y[j+328>>2]=y[j+472>>2];y[j+332>>2]=k;ia(i,j+336|0,j+320|0);k=y[j+508>>2];y[j+472>>2]=y[j+504>>2];y[j+476>>2]=k;k=y[j+500>>2];y[j+464>>2]=y[j+496>>2];y[j+468>>2]=k;k=y[j+436>>2];y[j+304>>2]=y[j+432>>2];y[j+308>>2]=k;k=y[j+444>>2];y[j+312>>2]=y[j+440>>2];y[j+316>>2]=k;k=y[j+452>>2];y[j+288>>2]=y[j+448>>2];y[j+292>>2]=k;k=y[j+460>>2];y[j+296>>2]=y[j+456>>2];y[j+300>>2]=k;ia(i,j+304|0,j+288|0);k=y[j+508>>2];y[j+456>>2]=y[j+504>>2];y[j+460>>2]=k;k=y[j+500>>2];y[j+448>>2]=y[j+496>>2];y[j+452>>2]=k;k=y[j+420>>2];y[j+272>>2]=y[j+416>>2];y[j+276>>2]=k;k=y[j+428>>2];y[j+280>>2]=y[j+424>>2];y[j+284>>2]=k;k=y[j+436>>2];y[j+256>>2]=y[j+432>>2];y[j+260>>2]=k;k=y[j+444>>2];y[j+264>>2]=y[j+440>>2];y[j+268>>2]=k;ia(i,j+272|0,j+256|0);k=y[j+508>>2];y[j+440>>2]=y[j+504>>2];y[j+444>>2]=k;k=y[j+500>>2];y[j+432>>2]=y[j+496>>2];y[j+436>>2]=k;k=y[j+404>>2];y[j+240>>2]=y[j+400>>2];y[j+244>>2]=k;k=y[j+412>>2];y[j+248>>2]=y[j+408>>2];y[j+252>>2]=k;k=y[j+420>>2];y[j+224>>2]=y[j+416>>2];y[j+228>>2]=k;k=y[j+428>>2];y[j+232>>2]=y[j+424>>2];y[j+236>>2]=k;ia(i,j+240|0,j+224|0);k=y[j+508>>2];y[j+424>>2]=y[j+504>>2];y[j+428>>2]=k;k=y[j+500>>2];y[j+416>>2]=y[j+496>>2];y[j+420>>2]=k;k=y[j+516>>2];y[j+208>>2]=y[j+512>>2];y[j+212>>2]=k;k=y[j+524>>2];y[j+216>>2]=y[j+520>>2];y[j+220>>2]=k;k=y[j+404>>2];y[j+192>>2]=y[j+400>>2];y[j+196>>2]=k;k=y[j+412>>2];y[j+200>>2]=y[j+408>>2];y[j+204>>2]=k;ia(i,j+208|0,j+192|0);y[j+412>>2]=p^y[j+508>>2];y[j+408>>2]=y[j+504>>2]^n;y[j+404>>2]=y[j+500>>2]^m;y[j+400>>2]=l^y[j+496>>2];i=h;h=h+16|0;if(h>>>0<=g>>>0){continue}break}}h=g&15;if(h){l=16-h|0;if(l){o(h|j+384,0,l);}if(h){t(j+384|0,f+i|0,h);}m=y[j+384>>2];n=y[j+388>>2];p=y[j+392>>2];k=y[j+396>>2];i=y[j+492>>2];f=y[j+488>>2];y[j+520>>2]=f;y[j+524>>2]=i;l=y[j+484>>2];h=y[j+480>>2];y[j+512>>2]=h;y[j+516>>2]=l;q=y[j+468>>2];y[j+176>>2]=y[j+464>>2];y[j+180>>2]=q;q=y[j+476>>2];y[j+184>>2]=y[j+472>>2];y[j+188>>2]=q;y[j+160>>2]=h;y[j+164>>2]=l;y[j+168>>2]=f;y[j+172>>2]=i;f=j+496|0;ia(f,j+176|0,j+160|0);h=y[j+508>>2];y[j+488>>2]=y[j+504>>2];y[j+492>>2]=h;h=y[j+500>>2];y[j+480>>2]=y[j+496>>2];y[j+484>>2]=h;h=y[j+452>>2];y[j+144>>2]=y[j+448>>2];y[j+148>>2]=h;h=y[j+460>>2];y[j+152>>2]=y[j+456>>2];y[j+156>>2]=h;h=y[j+468>>2];y[j+128>>2]=y[j+464>>2];y[j+132>>2]=h;h=y[j+476>>2];y[j+136>>2]=y[j+472>>2];y[j+140>>2]=h;ia(f,j+144|0,j+128|0);h=y[j+508>>2];y[j+472>>2]=y[j+504>>2];y[j+476>>2]=h;h=y[j+500>>2];y[j+464>>2]=y[j+496>>2];y[j+468>>2]=h;h=y[j+436>>2];y[j+112>>2]=y[j+432>>2];y[j+116>>2]=h;h=y[j+444>>2];y[j+120>>2]=y[j+440>>2];y[j+124>>2]=h;h=y[j+452>>2];y[j+96>>2]=y[j+448>>2];y[j+100>>2]=h;h=y[j+460>>2];y[j+104>>2]=y[j+456>>2];y[j+108>>2]=h;ia(f,j+112|0,j+96|0);h=y[j+508>>2];y[j+456>>2]=y[j+504>>2];y[j+460>>2]=h;h=y[j+500>>2];y[j+448>>2]=y[j+496>>2];y[j+452>>2]=h;h=y[j+420>>2];y[j+80>>2]=y[j+416>>2];y[j+84>>2]=h;h=y[j+428>>2];y[j+88>>2]=y[j+424>>2];y[j+92>>2]=h;h=y[j+436>>2];y[j+64>>2]=y[j+432>>2];y[j+68>>2]=h;h=y[j+444>>2];y[j+72>>2]=y[j+440>>2];y[j+76>>2]=h;ia(f,j+80|0,j- -64|0);h=y[j+508>>2];y[j+440>>2]=y[j+504>>2];y[j+444>>2]=h;h=y[j+500>>2];y[j+432>>2]=y[j+496>>2];y[j+436>>2]=h;h=y[j+404>>2];y[j+48>>2]=y[j+400>>2];y[j+52>>2]=h;h=y[j+412>>2];y[j+56>>2]=y[j+408>>2];y[j+60>>2]=h;h=y[j+420>>2];y[j+32>>2]=y[j+416>>2];y[j+36>>2]=h;h=y[j+428>>2];y[j+40>>2]=y[j+424>>2];y[j+44>>2]=h;ia(f,j+48|0,j+32|0);h=y[j+508>>2];y[j+424>>2]=y[j+504>>2];y[j+428>>2]=h;h=y[j+500>>2];y[j+416>>2]=y[j+496>>2];y[j+420>>2]=h;h=y[j+516>>2];y[j+16>>2]=y[j+512>>2];y[j+20>>2]=h;h=y[j+524>>2];y[j+24>>2]=y[j+520>>2];y[j+28>>2]=h;h=y[j+404>>2];y[j>>2]=y[j+400>>2];y[j+4>>2]=h;h=y[j+412>>2];y[j+8>>2]=y[j+408>>2];y[j+12>>2]=h;ia(f,j+16|0,j);y[j+412>>2]=k^y[j+508>>2];y[j+408>>2]=p^y[j+504>>2];y[j+404>>2]=n^y[j+500>>2];y[j+400>>2]=m^y[j+496>>2];}i=16;h=0;if(e>>>0>=16){while(1){Ge(a+h|0,d+h|0,j+400|0);h=i;i=h+16|0;if(i>>>0<=e>>>0){continue}break}}f=e&15;a:{if(!f){break a}i=16-f|0;if(i){o(f|j+384,0,i);}i=!f;if(!i){t(j+384|0,d+h|0,f);}d=j+512|0;Ge(d,j+384|0,j+400|0);if(i){break a}t(a+h|0,d,f);}Fe(b,c,g,e,j+400|0);T=j+528|0;return 0}function fa(a,b){var 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,z=0,A=0,B=0,C=0,D=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,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;M=y[b+12>>2];q=M<<1;u=q>>31;S=M>>31;c=Ai(q,u,M,S);e=W;g=y[b+16>>2];v=g>>31;f=y[b+8>>2];x=f<<1;D=x>>31;k=Ai(g,v,x,D);d=k+c|0;c=W+e|0;c=d>>>0>>0?c+1|0:c;z=y[b+20>>2];o=z<<1;F=o>>31;h=y[b+4>>2];k=h<<1;r=k>>31;l=Ai(o,F,k,r);e=l+d|0;d=W+c|0;d=e>>>0>>0?d+1|0:d;p=y[b+24>>2];A=p>>31;G=y[b>>2];l=G<<1;s=l>>31;i=Ai(p,A,l,s);e=i+e|0;c=W+d|0;c=e>>>0>>0?c+1|0:c;d=e;H=y[b+32>>2];m=E(H,19);B=m>>31;P=H>>31;e=Ai(m,B,H,P);d=d+e|0;c=W+c|0;c=d>>>0>>0?c+1|0:c;_=y[b+36>>2];i=E(_,38);t=i>>31;I=y[b+28>>2];Q=I<<1;T=Q>>31;e=Ai(i,t,Q,T);d=e+d|0;b=W+c|0;C=d;e=d>>>0>>0?b+1|0:b;b=Ai(k,r,g,v);c=W;d=Ai(x,D,M,S);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;R=z>>31;j=Ai(z,R,l,s);b=j+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;j=Ai(m,B,Q,T);b=j+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;d=Ai(i,t,p,A);b=d+b|0;c=W+c|0;U=b;n=b>>>0>>0?c+1|0:c;c=Ai(k,r,q,u);d=W;b=f;w=b>>31;V=b;f=Ai(b,w,b,w);c=f+c|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;f=Ai(l,s,g,v);d=f+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;j=E(I,38);N=j>>31;X=I>>31;f=Ai(j,N,I,X);b=f+d|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;c=b;b=p<<1;f=Ai(m,B,b,b>>31);b=c+f|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;d=b;b=Ai(i,t,o,F);d=d+b|0;c=W+c|0;$=d;c=b>>>0>d>>>0?c+1|0:c;aa=c;b=c;d=d+33554432|0;b=d>>>0<33554432?b+1|0:b;ba=d;ca=b;c=b>>26;d=(b&67108863)<<6|d>>>26;b=d+U|0;c=c+n|0;U=b;c=b>>>0>>0?c+1|0:c;b=b+16777216|0;d=b>>>0<16777216?c+1|0:c;da=b;c=d>>25;b=(d&33554431)<<7|b>>>25;d=b+C|0;c=c+e|0;b=b>>>0>d>>>0?c+1|0:c;c=d+33554432|0;b=c>>>0<33554432?b+1|0:b;C=c;f=b;y[a+24>>2]=d-(c&-67108864);b=Ai(l,s,V,w);c=W;J=h>>31;e=Ai(k,r,h,J);b=e+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;e=E(p,19);O=e>>31;n=Ai(e,O,p,A);b=n+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;n=Ai(o,F,j,N);d=n+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;n=g<<1;Y=n>>31;K=Ai(m,B,n,Y);d=K+d|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;b=d;d=Ai(i,t,q,u);b=b+d|0;c=W+c|0;L=b;K=b>>>0>>0?c+1|0:c;b=Ai(o,F,e,O);c=W;h=Ai(l,s,h,J);b=h+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;h=Ai(g,v,j,N);b=h+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;h=Ai(m,B,q,u);d=h+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;h=Ai(i,t,V,w);d=h+d|0;c=W+b|0;Z=d;J=d>>>0>>0?c+1|0:c;b=E(z,38);d=Ai(b,b>>31,z,R);h=W;b=G;c=b>>31;G=d;d=Ai(b,c,b,c);b=G+d|0;c=W+h|0;c=b>>>0>>0?c+1|0:c;e=Ai(e,O,n,Y);b=e+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;e=Ai(q,u,j,N);b=e+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;e=Ai(m,B,x,D);d=e+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;e=Ai(k,r,i,t);d=e+d|0;c=W+b|0;h=d;c=d>>>0>>0?c+1|0:c;G=c;d=d+33554432|0;c=d>>>0<33554432?c+1|0:c;O=d;ea=c;b=c>>26;c=(c&67108863)<<6|d>>>26;e=c+Z|0;d=b+J|0;J=e;c=c>>>0>e>>>0?d+1|0:d;d=e+16777216|0;c=d>>>0<16777216?c+1|0:c;Z=d;e=(c&33554431)<<7|d>>>25;d=e+L|0;c=(c>>25)+K|0;c=d>>>0>>0?c+1|0:c;b=d+33554432|0;c=b>>>0<33554432?c+1|0:c;K=b;e=c;y[a+8>>2]=d-(b&-67108864);b=Ai(x,D,z,R);c=W;d=Ai(g,v,q,u);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(k,r,p,A);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(l,s,I,X);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(i,t,H,P);L=d+b|0;b=W+c|0;d=d>>>0>L>>>0?b+1|0:b;c=f>>26;f=(f&67108863)<<6|C>>>26;b=f+L|0;d=c+d|0;C=b;c=b>>>0>>0?d+1|0:d;b=b+16777216|0;c=b>>>0<16777216?c+1|0:c;L=b;f=c;y[a+28>>2]=C-(b&-33554432);b=Ai(l,s,M,S);d=W;w=Ai(k,r,V,w);c=w+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;j=Ai(p,A,j,N);c=j+c|0;d=W+b|0;m=Ai(m,B,o,F);b=m+c|0;c=W+(c>>>0>>0?d+1|0:d)|0;c=b>>>0>>0?c+1|0:c;d=Ai(i,t,g,v);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=e>>26;C=b;b=(e&67108863)<<6|K>>>26;e=C+b|0;c=c+d|0;d=e;b=d>>>0>>0?c+1|0:c;c=d+16777216|0;b=c>>>0<16777216?b+1|0:b;m=c;e=b;y[a+12>>2]=d-(c&-33554432);b=Ai(p,A,x,D);c=W;d=Ai(g,v,g,v);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(q,u,o,F);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;g=Ai(k,r,Q,T);d=g+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;g=Ai(l,s,H,P);c=g+d|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;b=i;i=_;o=i>>31;g=Ai(b,t,i,o);b=g+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;d=b;b=f>>25;f=(f&33554431)<<7|L>>>25;d=d+f|0;c=b+c|0;c=d>>>0>>0?c+1|0:c;b=d+33554432|0;c=b>>>0<33554432?c+1|0:c;g=b;f=c;y[a+32>>2]=d-(b&-67108864);j=U-(da&-33554432)|0;c=e>>25;e=(e&33554431)<<7|m>>>25;b=ba&-67108864;d=e+($-b|0)|0;b=c+(aa-((b>>>0>$>>>0)+ca|0)|0)|0;b=d>>>0>>0?b+1|0:b;e=d;d=d+33554432|0;c=d>>>0<33554432?b+1|0:b;b=((c&67108863)<<6|d>>>26)+j|0;y[a+20>>2]=b;y[a+16>>2]=e-(d&-67108864);b=Ai(q,u,p,A);d=W;e=Ai(z,R,n,Y);c=e+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;e=Ai(x,D,I,X);d=e+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;e=Ai(k,r,H,P);b=e+d|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;c=b;b=Ai(l,s,i,o);e=c+b|0;c=W+d|0;b=b>>>0>e>>>0?c+1|0:c;c=f>>26;f=(f&67108863)<<6|g>>>26;d=f+e|0;c=b+c|0;b=d>>>0>>0?c+1|0:c;c=d+16777216|0;b=c>>>0<16777216?b+1|0:b;y[a+36>>2]=d-(c&-33554432);f=J-(Z&-33554432)|0;d=O&-67108864;e=h-d|0;k=G-((d>>>0>h>>>0)+ea|0)|0;b=Ai((b&33554431)<<7|c>>>25,b>>25,19,0);d=b+e|0;c=W+k|0;b=b>>>0>d>>>0?c+1|0:c;c=d+33554432|0;b=c>>>0<33554432?b+1|0:b;b=((b&67108863)<<6|c>>>26)+f|0;y[a+4>>2]=b;y[a>>2]=d-(c&-67108864);}function af(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var 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;f=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);s=f^1886610805;g=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);q=g^1936682341;f=f^1852142177;h=g^1819895653;o=c;v=c&7;g=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);t=g^1852075907;c=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);r=c^1685025377;i=g^2037671283;g=c^1952801890;c=o&-8;if(c){n=b+c|0;while(1){u=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);p=g^u;c=p+h|0;k=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);d=i^k;e=f+d|0;i=e;c=e>>>0>>0?c+1|0:c;l=c;c=q+r|0;h=s+t|0;c=h>>>0>>0?c+1|0:c;f=Ci(t,r,13)^h;j=i+f|0;g=c;e=c^W;c=l+e|0;c=f>>>0>j>>>0?c+1|0:c;f=Ci(f,e,17)^j;m=c;e=c^W;r=Ci(f,e,13);q=W;c=Ci(d,p,16);d=l^W;p=c^i;g=Ci(h,g,32);h=p+g|0;c=W+d|0;g=g>>>0>h>>>0?c+1|0:c;c=g+e|0;i=f+h|0;c=i>>>0>>0?c+1|0:c;f=i^r;l=c;e=c^q;r=Ci(f,e,17);q=W;c=Ci(p,d,21);d=g^W;p=c^h;g=Ci(j,m,32);h=p+g|0;c=W+d|0;g=g>>>0>h>>>0?c+1|0:c;c=g+e|0;f=f+h|0;c=f>>>0>>0?c+1|0:c;t=f^r;e=c;r=c^q;c=Ci(p,d,16);g=g^W;j=g;c=c^h;m=Ci(c,g,21);h=W;g=Ci(i,l,32);l=g+c|0;c=W+j|0;i=m^l;c=g>>>0>l>>>0?c+1|0:c;g=c^h;f=Ci(f,e,32);h=W;s=k^l;q=c^u;b=b+8|0;if((n|0)!=(b|0)){continue}break}b=n;}j=0;d=o<<24;a:{switch(v-1|0){case 6:d=d|z[b+6|0]<<16;case 5:d=d|z[b+5|0]<<8;case 4:d=d|z[b+4|0];case 3:e=z[b+3|0];c=0;j=j|e<<24;d=c|d;case 2:e=z[b+2|0];c=0;j=j|e<<16;d=c|d;case 1:e=z[b+1|0];c=0;j=j|e<<8;d=c|d;case 0:j=z[b|0]|j;break;default:break a}}m=d;b=d^g;d=b;e=j^i;c=Ci(e,b,16);b=W;d=d+h|0;i=e+f|0;d=i>>>0>>0?d+1|0:d;e=c^i;l=d;d=d^b;k=Ci(e,d,21);g=W;c=q+r|0;f=s+t|0;c=f>>>0>>0?c+1|0:c;b=c;h=e;e=Ci(f,c,32);h=h+e|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;e=h^k;d=g;g=c;d=d^c;q=Ci(e,d,16);o=W;c=i;n=Ci(t,r,13)^f;i=n;f=c+i|0;k=W^b;c=k+l|0;l=e;b=f;c=b>>>0>>0?c+1|0:c;e=Ci(b,c,32);i=l+e|0;d=W+d|0;f=e>>>0>i>>>0?d+1|0:d;e=f^o;p=e;o=i^q;l=o;k=Ci(n,k,17)^b;b=k;d=b+h|0;h=W^c;c=h+g|0;c=b>>>0>d>>>0?c+1|0:c;b=c;g=Ci(d,c,32);l=g+l|0;c=W+e|0;j=j^l;g=g>>>0>l>>>0?c+1|0:c;m=g^m;c=Ci(k,h,13);b=b^W;h=b;e=c^d;c=Ci(e,b,17);b=W;d=f+h|0;f=e+i|0;d=f>>>0>>0?d+1|0:d;e=c^f;i=e+j|0;b=b^d;c=b+m|0;c=e>>>0>i>>>0?c+1|0:c;e=Ci(e,b,13)^i;h=c;b=c^W;n=Ci(e,b,17);j=W;m=Ci(o,p,21);o=g^W;k=m^l;d=Ci(f,d,32)^238;f=k+d|0;c=W+o|0;d=d>>>0>f>>>0?c+1|0:c;c=d+b|0;l=e+f|0;c=l>>>0>>0?c+1|0:c;e=l^n;g=c;b=c^j;j=Ci(e,b,13);m=W;c=Ci(k,o,16);n=d^W;k=c^f;c=Ci(i,h,32);f=k+c|0;d=W+n|0;d=c>>>0>f>>>0?d+1|0:d;c=d+b|0;i=e+f|0;c=i>>>0>>0?c+1|0:c;e=j^i;h=c;b=c^m;j=Ci(e,b,17);m=W;c=Ci(k,n,21);n=d^W;k=c^f;d=Ci(l,g,32);f=k+d|0;c=W+n|0;d=d>>>0>f>>>0?c+1|0:c;c=d+b|0;l=e+f|0;c=l>>>0>>0?c+1|0:c;e=j^l;g=c;b=c^m;j=Ci(e,b,13);m=W;c=Ci(k,n,16);n=d^W;k=c^f;d=Ci(i,h,32);f=k+d|0;c=W+n|0;d=d>>>0>f>>>0?c+1|0:c;c=d+b|0;i=e+f|0;c=i>>>0>>0?c+1|0:c;e=j^i;h=c;b=c^m;j=Ci(e,b,17);m=W;c=Ci(k,n,21);n=d^W;k=c^f;d=Ci(l,g,32);f=k+d|0;c=W+n|0;c=d>>>0>f>>>0?c+1|0:c;d=c+b|0;l=e+f|0;d=l>>>0>>0?d+1|0:d;e=j^l;g=d;b=d^m;j=Ci(e,b,13);m=W;d=Ci(k,n,16);n=c^W;k=d^f;d=Ci(i,h,32);f=k+d|0;c=W+n|0;d=d>>>0>f>>>0?c+1|0:c;c=d+b|0;i=e+f|0;c=i>>>0>>0?c+1|0:c;e=j^i;h=c;b=c^m;j=Ci(e,b,17);m=W;c=Ci(k,n,21);n=d^W;k=c^f;c=Ci(l,g,32);g=k+c|0;d=W+n|0;f=c>>>0>g>>>0?d+1|0:d;c=f+b|0;e=e+g|0;b=e>>>0>>0?c+1|0:c;d=b^m;l=d;j=e^j;c=Ci(k,n,16);k=f^W;g=c^g;f=Ci(i,h,32);h=g+f|0;c=W+k|0;b=Ci(e,b,32);i=W;c=f>>>0>h>>>0?c+1|0:c;e=c;f=a;g=Ci(g,k,21)^h;m=g^(b^(h^j));w[f|0]=m;w[f+1|0]=m>>>8;w[f+2|0]=m>>>16;w[f+3|0]=m>>>24;k=i^(c^d);d=c^W;c=k^d;w[f+4|0]=c;w[f+5|0]=c>>>8;w[f+6|0]=c>>>16;w[f+7|0]=c>>>24;c=d+i|0;f=b;b=b+g|0;c=f>>>0>b>>>0?c+1|0:c;m=b;f=Ci(g,d,16)^b;g=c;d=c^W;k=d;b=e;e=l;c=b+e|0;b=h;j=j^221;h=j;b=b+h|0;c=b>>>0>>0?c+1|0:c;h=Ci(b,c,32);i=h+f|0;d=W+d|0;f=Ci(f,k,21)^i;h=h>>>0>i>>>0?d+1|0:d;d=h^W;o=Ci(f,d,16);k=W;e=Ci(j,e,13);n=c^W;c=g+n|0;j=b^e;e=m+j|0;c=e>>>0>>0?c+1|0:c;b=c;g=f;f=Ci(e,c,32);l=g+f|0;c=W+d|0;g=f>>>0>l>>>0?c+1|0:c;c=g^k;k=c;o=l^o;m=Ci(o,c,21);f=W;c=Ci(j,n,17);n=b^W;d=h+n|0;j=c^e;e=i+j|0;d=e>>>0>>0?d+1|0:d;b=Ci(e,d,32);c=k+W|0;h=f;b=b+o|0;f=b>>>0>>0?c+1|0:c;c=h^f;k=c;h=b;o=m^b;m=Ci(o,c,16);i=W;b=Ci(j,n,13);n=d^W;c=g+n|0;j=b^e;e=l+j|0;c=e>>>0>>0?c+1|0:c;d=c;b=Ci(e,c,32);c=k+W|0;b=b+o|0;g=b>>>0>>0?c+1|0:c;c=g^i;k=c;l=b;o=m^b;m=Ci(o,c,21);i=W;b=Ci(j,n,17);n=d^W;c=f+n|0;j=b^e;e=h+j|0;c=e>>>0>>0?c+1|0:c;d=c;b=Ci(e,c,32);c=k+W|0;b=b+o|0;f=b>>>0>>0?c+1|0:c;c=f^i;k=c;h=b;o=m^b;m=Ci(o,c,16);i=W;b=Ci(j,n,13);j=d^W;c=g+j|0;g=b^e;e=l+g|0;c=e>>>0>>0?c+1|0:c;b=Ci(e,c,32);d=k+W|0;b=b+o|0;d=b>>>0>>0?d+1|0:d;m=Ci(b^m,d^i,21);i=W;e=Ci(g,j,17)^e;c=c^W;l=Ci(e,c,13);c=c+f|0;e=e+h|0;c=W^(e>>>0>>0?c+1|0:c);g=e^l;f=Ci(g,c,17)^m;e=W^i;c=c+d|0;d=b;b=b+g|0;c=d>>>0>b>>>0?c+1|0:c;b=Ci(b,c,32)^f^b;w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=c^(W^e);w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;return 0}function Ne(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,x=0,z=0,A=0,B=0,C=0;f=T-288|0;T=f;i=y[e+44>>2]^d>>>29;j=y[e+40>>2]^d<<3;k=y[e+36>>2]^c>>>29;d=y[e+32>>2]^c<<3;g=e- -64|0;while(1){c=y[e+124>>2];y[f+280>>2]=y[e+120>>2];y[f+284>>2]=c;c=y[e+116>>2];y[f+272>>2]=y[e+112>>2];y[f+276>>2]=c;c=y[e+100>>2];y[f+240>>2]=y[e+96>>2];y[f+244>>2]=c;c=y[e+108>>2];y[f+248>>2]=y[e+104>>2];y[f+252>>2]=c;c=y[e+116>>2];y[f+224>>2]=y[e+112>>2];y[f+228>>2]=c;c=y[e+124>>2];y[f+232>>2]=y[e+120>>2];y[f+236>>2]=c;h=f+256|0;ia(h,f+240|0,f+224|0);c=y[f+268>>2];y[e+120>>2]=y[f+264>>2];y[e+124>>2]=c;c=y[f+260>>2];y[e+112>>2]=y[f+256>>2];y[e+116>>2]=c;c=y[e+84>>2];y[f+208>>2]=y[e+80>>2];y[f+212>>2]=c;c=y[e+92>>2];y[f+216>>2]=y[e+88>>2];y[f+220>>2]=c;c=y[e+100>>2];y[f+192>>2]=y[e+96>>2];y[f+196>>2]=c;c=y[e+108>>2];y[f+200>>2]=y[e+104>>2];y[f+204>>2]=c;ia(h,f+208|0,f+192|0);c=y[f+268>>2];y[e+104>>2]=y[f+264>>2];y[e+108>>2]=c;c=y[f+260>>2];y[e+96>>2]=y[f+256>>2];y[e+100>>2]=c;c=y[g+4>>2];y[f+176>>2]=y[g>>2];y[f+180>>2]=c;c=y[g+12>>2];y[f+184>>2]=y[g+8>>2];y[f+188>>2]=c;c=y[e+84>>2];y[f+160>>2]=y[e+80>>2];y[f+164>>2]=c;c=y[e+92>>2];y[f+168>>2]=y[e+88>>2];y[f+172>>2]=c;ia(h,f+176|0,f+160|0);c=y[f+268>>2];y[e+88>>2]=y[f+264>>2];y[e+92>>2]=c;c=y[f+260>>2];y[e+80>>2]=y[f+256>>2];y[e+84>>2]=c;c=y[e+52>>2];y[f+144>>2]=y[e+48>>2];y[f+148>>2]=c;c=y[e+60>>2];y[f+152>>2]=y[e+56>>2];y[f+156>>2]=c;c=y[g+4>>2];y[f+128>>2]=y[g>>2];y[f+132>>2]=c;c=y[g+12>>2];y[f+136>>2]=y[g+8>>2];y[f+140>>2]=c;ia(h,f+144|0,f+128|0);c=y[f+268>>2];y[g+8>>2]=y[f+264>>2];y[g+12>>2]=c;c=y[f+260>>2];y[g>>2]=y[f+256>>2];y[g+4>>2]=c;c=y[e+36>>2];y[f+112>>2]=y[e+32>>2];y[f+116>>2]=c;c=y[e+44>>2];y[f+120>>2]=y[e+40>>2];y[f+124>>2]=c;c=y[e+52>>2];y[f+96>>2]=y[e+48>>2];y[f+100>>2]=c;c=y[e+60>>2];y[f+104>>2]=y[e+56>>2];y[f+108>>2]=c;ia(h,f+112|0,f+96|0);c=y[f+268>>2];y[e+56>>2]=y[f+264>>2];y[e+60>>2]=c;c=y[f+260>>2];y[e+48>>2]=y[f+256>>2];y[e+52>>2]=c;c=y[e+20>>2];y[f+80>>2]=y[e+16>>2];y[f+84>>2]=c;c=y[e+28>>2];y[f+88>>2]=y[e+24>>2];y[f+92>>2]=c;c=y[e+36>>2];y[f+64>>2]=y[e+32>>2];y[f+68>>2]=c;c=y[e+44>>2];y[f+72>>2]=y[e+40>>2];y[f+76>>2]=c;ia(h,f+80|0,f- -64|0);c=y[f+268>>2];y[e+40>>2]=y[f+264>>2];y[e+44>>2]=c;c=y[f+260>>2];y[e+32>>2]=y[f+256>>2];y[e+36>>2]=c;c=y[e+4>>2];y[f+48>>2]=y[e>>2];y[f+52>>2]=c;c=y[e+12>>2];y[f+56>>2]=y[e+8>>2];y[f+60>>2]=c;c=y[e+20>>2];y[f+32>>2]=y[e+16>>2];y[f+36>>2]=c;c=y[e+28>>2];y[f+40>>2]=y[e+24>>2];y[f+44>>2]=c;ia(h,f+48|0,f+32|0);c=y[f+268>>2];y[e+24>>2]=y[f+264>>2];y[e+28>>2]=c;c=y[f+260>>2];y[e+16>>2]=y[f+256>>2];y[e+20>>2]=c;c=y[f+276>>2];y[f+16>>2]=y[f+272>>2];y[f+20>>2]=c;c=y[f+284>>2];y[f+24>>2]=y[f+280>>2];y[f+28>>2]=c;c=y[e+4>>2];y[f>>2]=y[e>>2];y[f+4>>2]=c;c=y[e+12>>2];y[f+8>>2]=y[e+8>>2];y[f+12>>2]=c;ia(h,f+16|0,f);c=y[f+268>>2];y[e+8>>2]=y[f+264>>2];y[e+12>>2]=c;c=y[f+260>>2];y[e>>2]=y[f+256>>2];y[e+4>>2]=c;n=i^y[e+12>>2];y[e+12>>2]=n;p=j^y[e+8>>2];y[e+8>>2]=p;q=k^y[e+4>>2];y[e+4>>2]=q;r=d^y[e>>2];y[e>>2]=r;u=d^y[g>>2];y[g>>2]=u;v=k^y[e+68>>2];y[e+68>>2]=v;x=j^y[e+72>>2];y[e+72>>2]=x;z=i^y[e+76>>2];y[e+76>>2]=z;l=l+1|0;if((l|0)!=7){continue}break}a:{b:{c:{c=b-16|0;if(c){if((c|0)==16){break c}break b}A=y[e+16>>2];B=y[e+48>>2];C=y[e+32>>2];s=y[e+96>>2];t=y[e+80>>2];m=y[e+20>>2];g=y[e+52>>2];h=y[e+36>>2];i=y[e+100>>2];j=y[e+84>>2];k=y[e+24>>2];l=y[e+56>>2];d=y[e+40>>2];c=y[e+104>>2];b=y[e+88>>2];e=n^(y[e+28>>2]^(y[e+60>>2]^(y[e+44>>2]^(y[e+92>>2]^y[e+108>>2])))^z);w[a+12|0]=e;w[a+13|0]=e>>>8;w[a+14|0]=e>>>16;w[a+15|0]=e>>>24;b=p^(b^c^d^l^k^x);w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=q^(v^(m^(g^(i^j^h))));w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=r^(u^(A^(B^(C^(s^t)))));w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;break a}g=y[e+16>>2];h=y[e+48>>2];i=y[e+32>>2];j=y[e+20>>2];k=y[e+52>>2];l=y[e+36>>2];d=y[e+24>>2];c=y[e+56>>2];b=y[e+40>>2];m=n^(y[e+28>>2]^(y[e+60>>2]^y[e+44>>2]));w[a+12|0]=m;w[a+13|0]=m>>>8;w[a+14|0]=m>>>16;w[a+15|0]=m>>>24;b=p^(d^(b^c));w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=q^(j^(k^l));w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=r^(g^(h^i));w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;s=y[e+80>>2];t=y[e- -64>>2];m=y[e+112>>2];g=y[e+96>>2];h=y[e+84>>2];i=y[e+68>>2];j=y[e+116>>2];k=y[e+100>>2];l=y[e+88>>2];d=y[e+72>>2];c=y[e+120>>2];b=y[e+104>>2];e=y[e+92>>2]^(y[e+76>>2]^(y[e+124>>2]^y[e+108>>2]));w[a+28|0]=e;w[a+29|0]=e>>>8;w[a+30|0]=e>>>16;w[a+31|0]=e>>>24;b=l^(d^(b^c));w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;b=h^(i^(j^k));w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=s^(t^(g^m));w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;break a}if(!b){break a}o(a,0,b);}T=f+288|0;}function wi(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=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,U=0,V=0;k=T;z=k;k=k-224&-32;T=k;Qe(i,h,k+96|0);h=0;if(g>>>0>63){i=64;while(1){Pe(f+h|0,k+96|0);h=i;i=h- -64|0;if(i>>>0<=g>>>0){continue}break}}i=h|32;if(i>>>0<=g>>>0){while(1){$b(f+h|0,k+96|0);h=i;i=h+32|0;if(i>>>0<=g>>>0){continue}break}}i=g&31;if(i){l=32-i|0;if(l){o(i|k- -64,0,l);}if(i){t(k- -64|0,f+h|0,i);}$b(k- -64|0,k+96|0);}a:{if(!a){f=32;h=0;if(c>>>0<32){break a}while(1){Me(k+32|0,b+h|0,k+96|0);h=f;f=f+32|0;if(f>>>0<=c>>>0){continue}break}break a}f=32;h=0;if(c>>>0<32){break a}while(1){Me(a+h|0,b+h|0,k+96|0);h=f;f=f+32|0;if(f>>>0<=c>>>0){continue}break}}i=c&31;if(i){u=a?a+h|0:k+32|0;m=b+h|0;f=k+96|0;b=T-320|0;T=b;h=i+(b+256|0)|0;l=32-i|0;j=!l;if(!j){o(h,0,l);}v=!i;if(!v){t(b+256|0,m,i);}A=y[f+16>>2];B=y[f+48>>2];C=y[f+20>>2];D=y[f+52>>2];E=y[f+24>>2];F=y[f+56>>2];G=y[f+28>>2];H=y[f+60>>2];m=y[f+32>>2];I=y[f+80>>2];J=y[f+112>>2];n=y[f+96>>2];p=y[f+36>>2];K=y[f+84>>2];L=y[f+116>>2];q=y[f+100>>2];r=y[f+40>>2];M=y[f+88>>2];N=y[f+120>>2];s=y[f+104>>2];O=y[b+256>>2];P=y[b+260>>2];Q=y[b+264>>2];R=y[b+268>>2];S=y[b+272>>2];U=y[b+276>>2];V=y[b+280>>2];w=y[f+44>>2];x=y[f+108>>2];y[b+284>>2]=w^(x&y[f+124>>2]^(y[f+92>>2]^y[b+284>>2]));y[b+280>>2]=s&N^(M^V)^r;y[b+276>>2]=q&L^(K^U)^p;y[b+272>>2]=n&J^(I^S)^m;y[b+268>>2]=x^(H&w^(G^R));y[b+264>>2]=r&F^(E^Q)^s;y[b+260>>2]=p&D^(C^P)^q;y[b+256>>2]=m&B^(A^O)^n;if(!j){o(h,0,l);}if(!v){t(u,b+256|0,i);}l=y[b+284>>2];m=y[b+280>>2];n=y[b+276>>2];p=y[b+272>>2];q=y[b+256>>2];r=y[b+260>>2];s=y[b+264>>2];u=y[b+268>>2];h=y[f+124>>2];y[b+312>>2]=y[f+120>>2];y[b+316>>2]=h;h=y[f+116>>2];y[b+304>>2]=y[f+112>>2];y[b+308>>2]=h;h=y[f+100>>2];y[b+240>>2]=y[f+96>>2];y[b+244>>2]=h;h=y[f+108>>2];y[b+248>>2]=y[f+104>>2];y[b+252>>2]=h;h=y[f+116>>2];y[b+224>>2]=y[f+112>>2];y[b+228>>2]=h;h=y[f+124>>2];y[b+232>>2]=y[f+120>>2];y[b+236>>2]=h;h=b+288|0;ia(h,b+240|0,b+224|0);i=y[b+300>>2];y[f+120>>2]=y[b+296>>2];y[f+124>>2]=i;i=y[b+292>>2];y[f+112>>2]=y[b+288>>2];y[f+116>>2]=i;i=y[f+84>>2];y[b+208>>2]=y[f+80>>2];y[b+212>>2]=i;i=y[f+92>>2];y[b+216>>2]=y[f+88>>2];y[b+220>>2]=i;i=y[f+100>>2];y[b+192>>2]=y[f+96>>2];y[b+196>>2]=i;i=y[f+108>>2];y[b+200>>2]=y[f+104>>2];y[b+204>>2]=i;ia(h,b+208|0,b+192|0);i=y[b+300>>2];y[f+104>>2]=y[b+296>>2];y[f+108>>2]=i;i=y[b+292>>2];y[f+96>>2]=y[b+288>>2];y[f+100>>2]=i;i=f- -64|0;j=y[i+4>>2];y[b+176>>2]=y[i>>2];y[b+180>>2]=j;j=y[f+76>>2];y[b+184>>2]=y[f+72>>2];y[b+188>>2]=j;j=y[f+84>>2];y[b+160>>2]=y[f+80>>2];y[b+164>>2]=j;j=y[f+92>>2];y[b+168>>2]=y[f+88>>2];y[b+172>>2]=j;ia(h,b+176|0,b+160|0);j=y[b+300>>2];y[f+88>>2]=y[b+296>>2];y[f+92>>2]=j;j=y[b+292>>2];y[f+80>>2]=y[b+288>>2];y[f+84>>2]=j;j=y[f+52>>2];y[b+144>>2]=y[f+48>>2];y[b+148>>2]=j;j=y[f+60>>2];y[b+152>>2]=y[f+56>>2];y[b+156>>2]=j;j=y[i+4>>2];y[b+128>>2]=y[i>>2];y[b+132>>2]=j;j=y[f+76>>2];y[b+136>>2]=y[f+72>>2];y[b+140>>2]=j;ia(h,b+144|0,b+128|0);j=y[b+300>>2];y[f+72>>2]=y[b+296>>2];y[f+76>>2]=j;j=y[b+292>>2];y[i>>2]=y[b+288>>2];y[i+4>>2]=j;j=y[f+36>>2];y[b+112>>2]=y[f+32>>2];y[b+116>>2]=j;j=y[f+44>>2];y[b+120>>2]=y[f+40>>2];y[b+124>>2]=j;j=y[f+52>>2];y[b+96>>2]=y[f+48>>2];y[b+100>>2]=j;j=y[f+60>>2];y[b+104>>2]=y[f+56>>2];y[b+108>>2]=j;ia(h,b+112|0,b+96|0);j=y[b+300>>2];y[f+56>>2]=y[b+296>>2];y[f+60>>2]=j;j=y[b+292>>2];y[f+48>>2]=y[b+288>>2];y[f+52>>2]=j;j=y[f+20>>2];y[b+80>>2]=y[f+16>>2];y[b+84>>2]=j;j=y[f+28>>2];y[b+88>>2]=y[f+24>>2];y[b+92>>2]=j;j=y[f+36>>2];y[b+64>>2]=y[f+32>>2];y[b+68>>2]=j;j=y[f+44>>2];y[b+72>>2]=y[f+40>>2];y[b+76>>2]=j;ia(h,b+80|0,b- -64|0);j=y[b+300>>2];y[f+40>>2]=y[b+296>>2];y[f+44>>2]=j;j=y[b+292>>2];y[f+32>>2]=y[b+288>>2];y[f+36>>2]=j;j=y[f+4>>2];y[b+48>>2]=y[f>>2];y[b+52>>2]=j;j=y[f+12>>2];y[b+56>>2]=y[f+8>>2];y[b+60>>2]=j;j=y[f+20>>2];y[b+32>>2]=y[f+16>>2];y[b+36>>2]=j;j=y[f+28>>2];y[b+40>>2]=y[f+24>>2];y[b+44>>2]=j;ia(h,b+48|0,b+32|0);j=y[b+300>>2];y[f+24>>2]=y[b+296>>2];y[f+28>>2]=j;j=y[b+292>>2];y[f+16>>2]=y[b+288>>2];y[f+20>>2]=j;j=y[b+308>>2];y[b+16>>2]=y[b+304>>2];y[b+20>>2]=j;j=y[b+316>>2];y[b+24>>2]=y[b+312>>2];y[b+28>>2]=j;j=y[f+4>>2];y[b>>2]=y[f>>2];y[b+4>>2]=j;j=y[f+12>>2];y[b+8>>2]=y[f+8>>2];y[b+12>>2]=j;ia(h,b+16|0,b);h=y[b+300>>2];y[f+8>>2]=y[b+296>>2];y[f+12>>2]=h;h=y[b+292>>2];y[f>>2]=y[b+288>>2];y[f+4>>2]=h;y[f+12>>2]=u^y[f+12>>2];y[f+8>>2]=s^y[f+8>>2];y[f+4>>2]=r^y[f+4>>2];y[f>>2]=q^y[f>>2];y[i>>2]=p^y[i>>2];y[f+68>>2]=n^y[f+68>>2];y[f+72>>2]=m^y[f+72>>2];y[f+76>>2]=l^y[f+76>>2];T=b+320|0;}Ne(k,e,g,c,k+96|0);h=-1;b:{c:{b=e-16|0;if(b){if((b|0)==16){break c}break b}h=db(k,d);break b}h=kb(k,d);}if(!(!c|(!a|!h))){o(a,0,c);}T=z;return h|0}function He(a,b){var 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;c=T-416|0;T=c;g=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);h=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);i=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);j=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);f=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);k=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);l=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);m=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);a=y[b+92>>2];y[c+408>>2]=y[b+88>>2];y[c+412>>2]=a;a=y[b+84>>2];y[c+400>>2]=y[b+80>>2];y[c+404>>2]=a;e=b- -64|0;a=e;d=y[a+4>>2];y[c+368>>2]=y[a>>2];y[c+372>>2]=d;a=y[b+76>>2];y[c+376>>2]=y[b+72>>2];y[c+380>>2]=a;a=y[b+84>>2];y[c+352>>2]=y[b+80>>2];y[c+356>>2]=a;a=y[b+92>>2];y[c+360>>2]=y[b+88>>2];y[c+364>>2]=a;a=c+384|0;ia(a,c+368|0,c+352|0);d=y[c+396>>2];y[b+88>>2]=y[c+392>>2];y[b+92>>2]=d;d=y[c+388>>2];y[b+80>>2]=y[c+384>>2];y[b+84>>2]=d;d=y[b+52>>2];y[c+336>>2]=y[b+48>>2];y[c+340>>2]=d;d=y[b+60>>2];y[c+344>>2]=y[b+56>>2];y[c+348>>2]=d;d=y[e+4>>2];y[c+320>>2]=y[e>>2];y[c+324>>2]=d;d=y[b+76>>2];y[c+328>>2]=y[b+72>>2];y[c+332>>2]=d;ia(a,c+336|0,c+320|0);d=y[c+396>>2];y[b+72>>2]=y[c+392>>2];y[b+76>>2]=d;d=y[c+388>>2];y[e>>2]=y[c+384>>2];y[e+4>>2]=d;d=y[b+36>>2];y[c+304>>2]=y[b+32>>2];y[c+308>>2]=d;d=y[b+44>>2];y[c+312>>2]=y[b+40>>2];y[c+316>>2]=d;d=y[b+52>>2];y[c+288>>2]=y[b+48>>2];y[c+292>>2]=d;d=y[b+60>>2];y[c+296>>2]=y[b+56>>2];y[c+300>>2]=d;ia(a,c+304|0,c+288|0);d=y[c+396>>2];y[b+56>>2]=y[c+392>>2];y[b+60>>2]=d;d=y[c+388>>2];y[b+48>>2]=y[c+384>>2];y[b+52>>2]=d;d=y[b+20>>2];y[c+272>>2]=y[b+16>>2];y[c+276>>2]=d;d=y[b+28>>2];y[c+280>>2]=y[b+24>>2];y[c+284>>2]=d;d=y[b+36>>2];y[c+256>>2]=y[b+32>>2];y[c+260>>2]=d;d=y[b+44>>2];y[c+264>>2]=y[b+40>>2];y[c+268>>2]=d;ia(a,c+272|0,c+256|0);d=y[c+396>>2];y[b+40>>2]=y[c+392>>2];y[b+44>>2]=d;d=y[c+388>>2];y[b+32>>2]=y[c+384>>2];y[b+36>>2]=d;d=y[b+4>>2];y[c+240>>2]=y[b>>2];y[c+244>>2]=d;d=y[b+12>>2];y[c+248>>2]=y[b+8>>2];y[c+252>>2]=d;d=y[b+20>>2];y[c+224>>2]=y[b+16>>2];y[c+228>>2]=d;d=y[b+28>>2];y[c+232>>2]=y[b+24>>2];y[c+236>>2]=d;ia(a,c+240|0,c+224|0);d=y[c+396>>2];y[b+24>>2]=y[c+392>>2];y[b+28>>2]=d;d=y[c+388>>2];y[b+16>>2]=y[c+384>>2];y[b+20>>2]=d;d=y[c+404>>2];y[c+208>>2]=y[c+400>>2];y[c+212>>2]=d;d=y[c+412>>2];y[c+216>>2]=y[c+408>>2];y[c+220>>2]=d;d=y[b+4>>2];y[c+192>>2]=y[b>>2];y[c+196>>2]=d;d=y[b+12>>2];y[c+200>>2]=y[b+8>>2];y[c+204>>2]=d;ia(a,c+208|0,c+192|0);d=y[c+384>>2];n=y[c+388>>2];o=y[c+392>>2];y[b+12>>2]=y[c+396>>2]^l;y[b+8>>2]=k^o;y[b+4>>2]=f^n;y[b>>2]=d^m;f=y[b+92>>2];y[c+408>>2]=y[b+88>>2];y[c+412>>2]=f;f=y[b+84>>2];y[c+400>>2]=y[b+80>>2];y[c+404>>2]=f;f=y[e+4>>2];y[c+176>>2]=y[e>>2];y[c+180>>2]=f;f=y[b+76>>2];y[c+184>>2]=y[b+72>>2];y[c+188>>2]=f;f=y[b+84>>2];y[c+160>>2]=y[b+80>>2];y[c+164>>2]=f;f=y[b+92>>2];y[c+168>>2]=y[b+88>>2];y[c+172>>2]=f;ia(a,c+176|0,c+160|0);f=y[c+396>>2];y[b+88>>2]=y[c+392>>2];y[b+92>>2]=f;f=y[c+388>>2];y[b+80>>2]=y[c+384>>2];y[b+84>>2]=f;f=y[b+52>>2];y[c+144>>2]=y[b+48>>2];y[c+148>>2]=f;f=y[b+60>>2];y[c+152>>2]=y[b+56>>2];y[c+156>>2]=f;f=y[e+4>>2];y[c+128>>2]=y[e>>2];y[c+132>>2]=f;f=y[b+76>>2];y[c+136>>2]=y[b+72>>2];y[c+140>>2]=f;ia(a,c+144|0,c+128|0);f=y[c+396>>2];y[b+72>>2]=y[c+392>>2];y[b+76>>2]=f;f=y[c+388>>2];y[e>>2]=y[c+384>>2];y[e+4>>2]=f;e=y[b+36>>2];y[c+112>>2]=y[b+32>>2];y[c+116>>2]=e;e=y[b+44>>2];y[c+120>>2]=y[b+40>>2];y[c+124>>2]=e;e=y[b+52>>2];y[c+96>>2]=y[b+48>>2];y[c+100>>2]=e;e=y[b+60>>2];y[c+104>>2]=y[b+56>>2];y[c+108>>2]=e;ia(a,c+112|0,c+96|0);e=y[c+396>>2];y[b+56>>2]=y[c+392>>2];y[b+60>>2]=e;e=y[c+388>>2];y[b+48>>2]=y[c+384>>2];y[b+52>>2]=e;e=y[b+20>>2];y[c+80>>2]=y[b+16>>2];y[c+84>>2]=e;e=y[b+28>>2];y[c+88>>2]=y[b+24>>2];y[c+92>>2]=e;e=y[b+36>>2];y[c+64>>2]=y[b+32>>2];y[c+68>>2]=e;e=y[b+44>>2];y[c+72>>2]=y[b+40>>2];y[c+76>>2]=e;ia(a,c+80|0,c- -64|0);e=y[c+396>>2];y[b+40>>2]=y[c+392>>2];y[b+44>>2]=e;e=y[c+388>>2];y[b+32>>2]=y[c+384>>2];y[b+36>>2]=e;e=y[b+4>>2];y[c+48>>2]=y[b>>2];y[c+52>>2]=e;e=y[b+12>>2];y[c+56>>2]=y[b+8>>2];y[c+60>>2]=e;e=y[b+20>>2];y[c+32>>2]=y[b+16>>2];y[c+36>>2]=e;e=y[b+28>>2];y[c+40>>2]=y[b+24>>2];y[c+44>>2]=e;ia(a,c+48|0,c+32|0);e=y[c+396>>2];y[b+24>>2]=y[c+392>>2];y[b+28>>2]=e;e=y[c+388>>2];y[b+16>>2]=y[c+384>>2];y[b+20>>2]=e;e=y[c+404>>2];y[c+16>>2]=y[c+400>>2];y[c+20>>2]=e;e=y[c+412>>2];y[c+24>>2]=y[c+408>>2];y[c+28>>2]=e;e=y[b+4>>2];y[c>>2]=y[b>>2];y[c+4>>2]=e;e=y[b+12>>2];y[c+8>>2]=y[b+8>>2];y[c+12>>2]=e;ia(a,c+16|0,c);a=y[c+384>>2];e=y[c+388>>2];f=y[c+392>>2];y[b+12>>2]=y[c+396>>2]^j;y[b+8>>2]=f^i;y[b+4>>2]=e^h;y[b>>2]=a^g;T=c+416|0;}function Me(a,b,c){var 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,x=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;d=T-288|0;T=d;r=y[c+16>>2];s=y[c+48>>2];t=y[c+20>>2];u=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);v=y[c+52>>2];x=y[c+24>>2];A=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);B=y[c+56>>2];i=y[c+28>>2];C=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);D=y[c+60>>2];f=y[c+32>>2];j=y[c+80>>2];E=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);F=y[c+112>>2];e=y[c+96>>2];g=y[c+36>>2];k=y[c+84>>2];G=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);H=y[c+116>>2];n=y[c+100>>2];h=y[c+40>>2];l=y[c+88>>2];I=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);J=y[c+120>>2];o=y[c+104>>2];K=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);p=y[c+44>>2];q=y[c+108>>2];m=p^(q&y[c+124>>2]^(y[c+92>>2]^(z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24))));w[a+28|0]=m;w[a+29|0]=m>>>8;w[a+30|0]=m>>>16;w[a+31|0]=m>>>24;l=h^(o&J^(l^I));w[a+24|0]=l;w[a+25|0]=l>>>8;w[a+26|0]=l>>>16;w[a+27|0]=l>>>24;k=g^(n&H^(k^G));w[a+20|0]=k;w[a+21|0]=k>>>8;w[a+22|0]=k>>>16;w[a+23|0]=k>>>24;j=f^(e&F^(j^E));w[a+16|0]=j;w[a+17|0]=j>>>8;w[a+18|0]=j>>>16;w[a+19|0]=j>>>24;i=D&p^(i^C)^q;w[a+12|0]=i;w[a+13|0]=i>>>8;w[a+14|0]=i>>>16;w[a+15|0]=i>>>24;h=h&B^(x^A)^o;w[a+8|0]=h;w[a+9|0]=h>>>8;w[a+10|0]=h>>>16;w[a+11|0]=h>>>24;g=g&v^(t^u)^n;w[a+4|0]=g;w[a+5|0]=g>>>8;w[a+6|0]=g>>>16;w[a+7|0]=g>>>24;f=e^(f&s^(r^K));w[a|0]=f;w[a+1|0]=f>>>8;w[a+2|0]=f>>>16;w[a+3|0]=f>>>24;a=y[c+124>>2];y[d+280>>2]=y[c+120>>2];y[d+284>>2]=a;a=y[c+116>>2];y[d+272>>2]=y[c+112>>2];y[d+276>>2]=a;a=y[c+100>>2];y[d+240>>2]=y[c+96>>2];y[d+244>>2]=a;a=y[c+108>>2];y[d+248>>2]=y[c+104>>2];y[d+252>>2]=a;a=y[c+116>>2];y[d+224>>2]=y[c+112>>2];y[d+228>>2]=a;a=y[c+124>>2];y[d+232>>2]=y[c+120>>2];y[d+236>>2]=a;a=d+256|0;ia(a,d+240|0,d+224|0);b=y[d+268>>2];y[c+120>>2]=y[d+264>>2];y[c+124>>2]=b;b=y[d+260>>2];y[c+112>>2]=y[d+256>>2];y[c+116>>2]=b;b=y[c+84>>2];y[d+208>>2]=y[c+80>>2];y[d+212>>2]=b;b=y[c+92>>2];y[d+216>>2]=y[c+88>>2];y[d+220>>2]=b;b=y[c+100>>2];y[d+192>>2]=y[c+96>>2];y[d+196>>2]=b;b=y[c+108>>2];y[d+200>>2]=y[c+104>>2];y[d+204>>2]=b;ia(a,d+208|0,d+192|0);b=y[d+268>>2];y[c+104>>2]=y[d+264>>2];y[c+108>>2]=b;b=y[d+260>>2];y[c+96>>2]=y[d+256>>2];y[c+100>>2]=b;b=c- -64|0;e=y[b+4>>2];y[d+176>>2]=y[b>>2];y[d+180>>2]=e;e=y[c+76>>2];y[d+184>>2]=y[c+72>>2];y[d+188>>2]=e;e=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=e;e=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=e;ia(a,d+176|0,d+160|0);e=y[d+268>>2];y[c+88>>2]=y[d+264>>2];y[c+92>>2]=e;e=y[d+260>>2];y[c+80>>2]=y[d+256>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=e;e=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=e;e=y[b+4>>2];y[d+128>>2]=y[b>>2];y[d+132>>2]=e;e=y[c+76>>2];y[d+136>>2]=y[c+72>>2];y[d+140>>2]=e;ia(a,d+144|0,d+128|0);e=y[d+268>>2];y[c+72>>2]=y[d+264>>2];y[c+76>>2]=e;e=y[d+260>>2];y[b>>2]=y[d+256>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=e;e=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=e;e=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=e;e=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=e;ia(a,d+112|0,d+96|0);e=y[d+268>>2];y[c+56>>2]=y[d+264>>2];y[c+60>>2]=e;e=y[d+260>>2];y[c+48>>2]=y[d+256>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=e;e=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=e;e=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=e;e=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=e;ia(a,d+80|0,d- -64|0);e=y[d+268>>2];y[c+40>>2]=y[d+264>>2];y[c+44>>2]=e;e=y[d+260>>2];y[c+32>>2]=y[d+256>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=e;e=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=e;e=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=e;ia(a,d+48|0,d+32|0);e=y[d+268>>2];y[c+24>>2]=y[d+264>>2];y[c+28>>2]=e;e=y[d+260>>2];y[c+16>>2]=y[d+256>>2];y[c+20>>2]=e;e=y[d+276>>2];y[d+16>>2]=y[d+272>>2];y[d+20>>2]=e;e=y[d+284>>2];y[d+24>>2]=y[d+280>>2];y[d+28>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;ia(a,d+16|0,d);a=y[d+268>>2];y[c+8>>2]=y[d+264>>2];y[c+12>>2]=a;a=y[d+260>>2];y[c>>2]=y[d+256>>2];y[c+4>>2]=a;y[c+12>>2]=i^y[c+12>>2];y[c+8>>2]=h^y[c+8>>2];y[c+4>>2]=g^y[c+4>>2];y[c>>2]=f^y[c>>2];y[b>>2]=j^y[b>>2];y[c+68>>2]=k^y[c+68>>2];y[c+72>>2]=l^y[c+72>>2];y[c+76>>2]=m^y[c+76>>2];T=d+288|0;}function Oe(a,b,c){var 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,x=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;d=T-288|0;T=d;u=y[c+16>>2];v=y[c+48>>2];f=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);x=y[c+20>>2];A=y[c+52>>2];g=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);B=y[c+24>>2];C=y[c+56>>2];h=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);D=y[c+28>>2];E=y[c+60>>2];e=y[c+32>>2];i=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);F=y[c+80>>2];G=y[c+112>>2];j=y[c+96>>2];k=y[c+36>>2];l=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);H=y[c+84>>2];I=y[c+116>>2];m=y[c+100>>2];n=y[c+40>>2];o=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);J=y[c+88>>2];K=y[c+120>>2];p=y[c+104>>2];q=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);r=y[c+44>>2];s=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);t=y[c+108>>2];b=r^(s^(y[c+92>>2]^t&y[c+124>>2]));w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=p&K^J^o^n;w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;b=m&I^H^l^k;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=e^(j&G^F^i);w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;b=E&r^D^h^t;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=n&C^B^g^p;w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=k&A^x^f^m;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=e&v^u^q^j;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;a=y[c+124>>2];y[d+280>>2]=y[c+120>>2];y[d+284>>2]=a;a=y[c+116>>2];y[d+272>>2]=y[c+112>>2];y[d+276>>2]=a;a=y[c+100>>2];y[d+240>>2]=y[c+96>>2];y[d+244>>2]=a;a=y[c+108>>2];y[d+248>>2]=y[c+104>>2];y[d+252>>2]=a;a=y[c+116>>2];y[d+224>>2]=y[c+112>>2];y[d+228>>2]=a;a=y[c+124>>2];y[d+232>>2]=y[c+120>>2];y[d+236>>2]=a;a=d+256|0;ia(a,d+240|0,d+224|0);b=y[d+268>>2];y[c+120>>2]=y[d+264>>2];y[c+124>>2]=b;b=y[d+260>>2];y[c+112>>2]=y[d+256>>2];y[c+116>>2]=b;b=y[c+84>>2];y[d+208>>2]=y[c+80>>2];y[d+212>>2]=b;b=y[c+92>>2];y[d+216>>2]=y[c+88>>2];y[d+220>>2]=b;b=y[c+100>>2];y[d+192>>2]=y[c+96>>2];y[d+196>>2]=b;b=y[c+108>>2];y[d+200>>2]=y[c+104>>2];y[d+204>>2]=b;ia(a,d+208|0,d+192|0);b=y[d+268>>2];y[c+104>>2]=y[d+264>>2];y[c+108>>2]=b;b=y[d+260>>2];y[c+96>>2]=y[d+256>>2];y[c+100>>2]=b;b=c- -64|0;e=y[b+4>>2];y[d+176>>2]=y[b>>2];y[d+180>>2]=e;e=y[c+76>>2];y[d+184>>2]=y[c+72>>2];y[d+188>>2]=e;e=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=e;e=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=e;ia(a,d+176|0,d+160|0);e=y[d+268>>2];y[c+88>>2]=y[d+264>>2];y[c+92>>2]=e;e=y[d+260>>2];y[c+80>>2]=y[d+256>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=e;e=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=e;e=y[b+4>>2];y[d+128>>2]=y[b>>2];y[d+132>>2]=e;e=y[c+76>>2];y[d+136>>2]=y[c+72>>2];y[d+140>>2]=e;ia(a,d+144|0,d+128|0);e=y[d+268>>2];y[c+72>>2]=y[d+264>>2];y[c+76>>2]=e;e=y[d+260>>2];y[b>>2]=y[d+256>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=e;e=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=e;e=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=e;e=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=e;ia(a,d+112|0,d+96|0);e=y[d+268>>2];y[c+56>>2]=y[d+264>>2];y[c+60>>2]=e;e=y[d+260>>2];y[c+48>>2]=y[d+256>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=e;e=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=e;e=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=e;e=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=e;ia(a,d+80|0,d- -64|0);e=y[d+268>>2];y[c+40>>2]=y[d+264>>2];y[c+44>>2]=e;e=y[d+260>>2];y[c+32>>2]=y[d+256>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=e;e=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=e;e=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=e;ia(a,d+48|0,d+32|0);e=y[d+268>>2];y[c+24>>2]=y[d+264>>2];y[c+28>>2]=e;e=y[d+260>>2];y[c+16>>2]=y[d+256>>2];y[c+20>>2]=e;e=y[d+276>>2];y[d+16>>2]=y[d+272>>2];y[d+20>>2]=e;e=y[d+284>>2];y[d+24>>2]=y[d+280>>2];y[d+28>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;ia(a,d+16|0,d);a=y[d+268>>2];y[c+8>>2]=y[d+264>>2];y[c+12>>2]=a;a=y[d+260>>2];y[c>>2]=y[d+256>>2];y[c+4>>2]=a;y[c+12>>2]=y[c+12>>2]^h;y[c+8>>2]=y[c+8>>2]^g;y[c+4>>2]=y[c+4>>2]^f;y[c>>2]=y[c>>2]^q;y[b>>2]=y[b>>2]^i;y[c+68>>2]=y[c+68>>2]^l;y[c+72>>2]=y[c+72>>2]^o;y[c+76>>2]=s^y[c+76>>2];T=d+288|0;}function Sb(a,b){var 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;l=T-48|0;T=l;c=nc(a);a:{if(c){break a}c=-26;if(b-3>>>0<4294967294){break a}e=y[a+44>>2];c=y[a+48>>2];y[l+4>>2]=0;d=y[a+40>>2];y[l+32>>2]=c;y[l+16>>2]=-1;y[l+12>>2]=d;d=c<<3;i=d>>>0>>0?e:d;e=c<<2;c=(i>>>0)/(e>>>0)|0;y[l+24>>2]=c;y[l+28>>2]=c<<2;y[l+20>>2]=E(c,e);c=y[a+52>>2];y[l+40>>2]=b;y[l+36>>2]=c;b=T;k=b;c=b-1152&-64;T=c;e=l+4|0;b=-25;b:{c:{if(!e|!a){break c}d=Da(y[e+20>>2]<<3);y[e+4>>2]=d;b=-22;if(!d){break c}d:{b=y[e+16>>2];e:{if(!b){break e}d=b<<10;if(((d>>>0)/(b>>>0)|0)!=1024){break e}b=Da(12);y[e>>2]=b;if(!b){break e}y[b>>2]=0;y[b+4>>2]=0;b=Pc(c+128|0,d);y[10172]=b;f:{if(b){y[c+128>>2]=0;break f}b=y[c+128>>2];if(b){break d}}ta(y[e>>2]);y[e>>2]=0;}Rd(e,y[a+56>>2]);T=k;b=-22;break b}y[y[e>>2]>>2]=b;y[y[e>>2]+4>>2]=b;y[y[e>>2]+8>>2]=d;m=y[e+36>>2];b=c+128|0;Ja(b,0,0,64);y[c+124>>2]=y[a+48>>2];d=c+124|0;oa(b,d,4,0);y[c+124>>2]=y[a+4>>2];oa(b,d,4,0);y[c+124>>2]=y[a+44>>2];oa(b,d,4,0);y[c+124>>2]=y[a+40>>2];oa(b,d,4,0);y[c+124>>2]=19;oa(b,d,4,0);y[c+124>>2]=m;oa(b,d,4,0);y[c+124>>2]=y[a+12>>2];oa(b,d,4,0);d=y[a+8>>2];g:{if(!d){break g}oa(b,d,y[a+12>>2],0);if(!(w[a+56|0]&1)){break g}ja(y[a+8>>2],y[a+12>>2]);y[a+12>>2]=0;}y[c+124>>2]=y[a+20>>2];b=c+128|0;oa(b,c+124|0,4,0);d=y[a+16>>2];if(d){oa(b,d,y[a+20>>2],0);}y[c+124>>2]=y[a+28>>2];b=c+128|0;oa(b,c+124|0,4,0);d=y[a+24>>2];h:{if(!d){break h}oa(b,d,y[a+28>>2],0);if(!(z[a+56|0]&2)){break h}ja(y[a+24>>2],y[a+28>>2]);y[a+28>>2]=0;}y[c+124>>2]=y[a+36>>2];b=c+128|0;oa(b,c+124|0,4,0);d=y[a+32>>2];if(d){oa(b,d,y[a+36>>2],0);}Ia(c+128|0,c+48|0,64);ja(c+112|0,8);if(y[e+28>>2]){d=0;while(1){y[c+112>>2]=0;y[c+116>>2]=d;sc(c+128|0,1024,c+48|0,72);m=y[y[e>>2]+4>>2]+(E(y[e+24>>2],d)<<10)|0;b=0;while(1){h=b<<3;f=h+m|0;i=c+128|0;j=i+h|0;g=y[j+4>>2];y[f>>2]=y[j>>2];y[f+4>>2]=g;f=h|8;j=f+m|0;f=f+i|0;g=y[f+4>>2];y[j>>2]=y[f>>2];y[j+4>>2]=g;f=h|16;j=f+m|0;f=f+i|0;g=y[f+4>>2];y[j>>2]=y[f>>2];y[j+4>>2]=g;h=h|24;f=h+m|0;h=h+i|0;j=y[h+4>>2];y[f>>2]=y[h>>2];y[f+4>>2]=j;b=b+4|0;if((b|0)!=128){continue}break}y[c+112>>2]=1;sc(i,1024,c+48|0,72);m=(y[y[e>>2]+4>>2]+(E(y[e+24>>2],d)<<10)|0)+1024|0;b=0;while(1){h=b<<3;f=h+m|0;i=c+128|0;j=i+h|0;g=y[j+4>>2];y[f>>2]=y[j>>2];y[f+4>>2]=g;f=h|8;j=f+m|0;f=f+i|0;g=y[f+4>>2];y[j>>2]=y[f>>2];y[j+4>>2]=g;f=h|16;j=f+m|0;f=f+i|0;g=y[f+4>>2];y[j>>2]=y[f>>2];y[j+4>>2]=g;h=h|24;f=h+m|0;h=h+i|0;i=y[h+4>>2];y[f>>2]=y[h>>2];y[f+4>>2]=i;b=b+4|0;if((b|0)!=128){continue}break}d=d+1|0;if(d>>>0>2]){continue}break}}ja(c+128|0,1024);ja(c+48|0,72);b=0;}T=k;}c=b;if(b){break a}if(y[l+12>>2]){while(1){b=T-80|0;T=b;e=l+4|0;i:{if(!e|!y[e+28>>2]){break i}w[b+72|0]=0;y[b+64>>2]=o;c=0;while(1){y[b+76>>2]=0;y[b+68>>2]=c;d=y[b+68>>2];y[b+48>>2]=y[b+64>>2];y[b+52>>2]=d;d=y[b+76>>2];y[b+56>>2]=y[b+72>>2];y[b+60>>2]=d;Pb(e,b+48|0);c=c+1|0;d=y[e+28>>2];if(c>>>0>>0){continue}break}w[b+72|0]=1;if(!d){break i}c=0;while(1){y[b+76>>2]=0;y[b+68>>2]=c;d=y[b+68>>2];y[b+32>>2]=y[b+64>>2];y[b+36>>2]=d;d=y[b+76>>2];y[b+40>>2]=y[b+72>>2];y[b+44>>2]=d;Pb(e,b+32|0);c=c+1|0;d=y[e+28>>2];if(c>>>0>>0){continue}break}w[b+72|0]=2;if(!d){break i}c=0;while(1){y[b+76>>2]=0;y[b+68>>2]=c;d=y[b+68>>2];y[b+16>>2]=y[b+64>>2];y[b+20>>2]=d;d=y[b+76>>2];y[b+24>>2]=y[b+72>>2];y[b+28>>2]=d;Pb(e,b+16|0);c=c+1|0;d=y[e+28>>2];if(c>>>0>>0){continue}break}w[b+72|0]=3;if(!d){break i}c=0;while(1){y[b+76>>2]=0;y[b+68>>2]=c;d=y[b+68>>2];y[b>>2]=y[b+64>>2];y[b+4>>2]=d;d=y[b+76>>2];y[b+8>>2]=y[b+72>>2];y[b+12>>2]=d;Pb(e,b);c=c+1|0;if(c>>>0>2]){continue}break}}T=b+80|0;o=o+1|0;if(o>>>0>2]){continue}break}}b=T-2048|0;T=b;c=l+4|0;if(!(!a|!c)){o=y[c+24>>2];f=y[y[c>>2]+4>>2]+(o<<10)|0;t(b+1024|0,f-1024|0,1024);j=y[c+28>>2];if(j>>>0>=2){m=1;while(1){e=(f+(E(m,o)<<10)|0)-1024|0;h=0;while(1){d=h<<3;i=b+1024|0;k=d+i|0;g=y[k>>2];n=d+e|0;p=y[n>>2];n=y[k+4>>2]^y[n+4>>2];y[k>>2]=g^p;y[k+4>>2]=n;g=d|8;k=g+i|0;n=y[k>>2];g=e+g|0;p=y[g>>2];g=y[k+4>>2]^y[g+4>>2];y[k>>2]=n^p;y[k+4>>2]=g;g=d|16;k=g+i|0;n=y[k>>2];g=e+g|0;p=y[g>>2];g=y[k+4>>2]^y[g+4>>2];y[k>>2]=n^p;y[k+4>>2]=g;k=i;i=d|24;d=k+i|0;k=y[d>>2];i=e+i|0;g=y[i>>2];i=y[d+4>>2]^y[i+4>>2];y[d>>2]=g^k;y[d+4>>2]=i;h=h+4|0;if((h|0)!=128){continue}break}m=m+1|0;if((j|0)!=(m|0)){continue}break}}e=b+1024|0;t(b,e,1024);sc(y[a>>2],y[a+4>>2],b,1024);ja(e,1024);ja(b,1024);Rd(c,y[a+56>>2]);}T=b+2048|0;c=0;}T=l+48|0;return c}function Qe(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=T-288|0;T=d;k=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);l=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);m=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);g=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);h=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);i=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);n=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);j=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);a=j^33620224;y[c+112>>2]=a;y[c+96>>2]=j^1427652059;y[c+80>>2]=a;a=c- -64|0;b=j^n;y[a>>2]=b;y[c+56>>2]=1110511904;y[c+60>>2]=-584534669;y[c+48>>2]=1427652059;y[c+52>>2]=-248528275;y[c+40>>2]=1496785429;y[c+44>>2]=1652156816;y[c+32>>2]=33620224;y[c+36>>2]=218629379;y[c+24>>2]=1110511904;y[c+28>>2]=-584534669;y[c+16>>2]=1427652059;y[c+20>>2]=-248528275;y[c>>2]=b;b=i^1652156816;y[c+124>>2]=b;f=h^1496785429;y[c+120>>2]=f;e=g^218629379;y[c+116>>2]=e;y[c+108>>2]=i^-584534669;y[c+104>>2]=h^1110511904;y[c+100>>2]=g^-248528275;y[c+92>>2]=b;y[c+88>>2]=f;y[c+84>>2]=e;b=i^m;y[c+76>>2]=b;f=h^l;y[c+72>>2]=f;e=g^k;y[c+68>>2]=e;y[c+12>>2]=b;y[c+8>>2]=f;y[c+4>>2]=e;f=0;while(1){b=y[c+124>>2];y[d+280>>2]=y[c+120>>2];y[d+284>>2]=b;b=y[c+116>>2];y[d+272>>2]=y[c+112>>2];y[d+276>>2]=b;b=y[c+100>>2];y[d+240>>2]=y[c+96>>2];y[d+244>>2]=b;b=y[c+108>>2];y[d+248>>2]=y[c+104>>2];y[d+252>>2]=b;b=y[c+116>>2];y[d+224>>2]=y[c+112>>2];y[d+228>>2]=b;b=y[c+124>>2];y[d+232>>2]=y[c+120>>2];y[d+236>>2]=b;b=d+256|0;ia(b,d+240|0,d+224|0);e=y[d+268>>2];y[c+120>>2]=y[d+264>>2];y[c+124>>2]=e;e=y[d+260>>2];y[c+112>>2]=y[d+256>>2];y[c+116>>2]=e;e=y[c+84>>2];y[d+208>>2]=y[c+80>>2];y[d+212>>2]=e;e=y[c+92>>2];y[d+216>>2]=y[c+88>>2];y[d+220>>2]=e;e=y[c+100>>2];y[d+192>>2]=y[c+96>>2];y[d+196>>2]=e;e=y[c+108>>2];y[d+200>>2]=y[c+104>>2];y[d+204>>2]=e;ia(b,d+208|0,d+192|0);e=y[d+268>>2];y[c+104>>2]=y[d+264>>2];y[c+108>>2]=e;e=y[d+260>>2];y[c+96>>2]=y[d+256>>2];y[c+100>>2]=e;e=y[a+4>>2];y[d+176>>2]=y[a>>2];y[d+180>>2]=e;e=y[a+12>>2];y[d+184>>2]=y[a+8>>2];y[d+188>>2]=e;e=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=e;e=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=e;ia(b,d+176|0,d+160|0);e=y[d+268>>2];y[c+88>>2]=y[d+264>>2];y[c+92>>2]=e;e=y[d+260>>2];y[c+80>>2]=y[d+256>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=e;e=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=e;e=y[a+4>>2];y[d+128>>2]=y[a>>2];y[d+132>>2]=e;e=y[a+12>>2];y[d+136>>2]=y[a+8>>2];y[d+140>>2]=e;ia(b,d+144|0,d+128|0);e=y[d+268>>2];y[a+8>>2]=y[d+264>>2];y[a+12>>2]=e;e=y[d+260>>2];y[a>>2]=y[d+256>>2];y[a+4>>2]=e;e=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=e;e=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=e;e=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=e;e=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=e;ia(b,d+112|0,d+96|0);e=y[d+268>>2];y[c+56>>2]=y[d+264>>2];y[c+60>>2]=e;e=y[d+260>>2];y[c+48>>2]=y[d+256>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=e;e=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=e;e=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=e;e=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=e;ia(b,d+80|0,d- -64|0);e=y[d+268>>2];y[c+40>>2]=y[d+264>>2];y[c+44>>2]=e;e=y[d+260>>2];y[c+32>>2]=y[d+256>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=e;e=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=e;e=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=e;ia(b,d+48|0,d+32|0);e=y[d+268>>2];y[c+24>>2]=y[d+264>>2];y[c+28>>2]=e;e=y[d+260>>2];y[c+16>>2]=y[d+256>>2];y[c+20>>2]=e;e=y[d+276>>2];y[d+16>>2]=y[d+272>>2];y[d+20>>2]=e;e=y[d+284>>2];y[d+24>>2]=y[d+280>>2];y[d+28>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;ia(b,d+16|0,d);b=y[d+268>>2];y[c+8>>2]=y[d+264>>2];y[c+12>>2]=b;b=y[d+260>>2];y[c>>2]=y[d+256>>2];y[c+4>>2]=b;y[c+12>>2]=y[c+12>>2]^m;y[c+8>>2]=y[c+8>>2]^l;y[c+4>>2]=y[c+4>>2]^k;y[c>>2]=y[c>>2]^n;y[a>>2]=j^y[a>>2];y[c+68>>2]=y[c+68>>2]^g;y[c+72>>2]=y[c+72>>2]^h;y[c+76>>2]=y[c+76>>2]^i;f=f+1|0;if((f|0)!=10){continue}break}T=d+288|0;}function _b(a,b,c,d,e){var 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,x=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,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;j=T+-64|0;H=y[a+60>>2];I=y[a+56>>2];C=y[a+52>>2];B=y[a+48>>2];J=y[a+44>>2];K=y[a+40>>2];L=y[a+36>>2];M=y[a+32>>2];N=y[a+28>>2];O=y[a+24>>2];P=y[a+20>>2];Q=y[a+16>>2];R=y[a+12>>2];S=y[a+8>>2];U=y[a+4>>2];V=y[a>>2];while(1){a:{if(!e&d>>>0>63|e){f=c;break a}y[j+56>>2]=0;y[j+60>>2]=0;y[j+48>>2]=0;y[j+52>>2]=0;y[j+40>>2]=0;y[j+44>>2]=0;y[j+32>>2]=0;y[j+36>>2]=0;y[j+24>>2]=0;y[j+28>>2]=0;y[j+16>>2]=0;y[j+20>>2]=0;y[j+8>>2]=0;y[j+12>>2]=0;y[j>>2]=0;y[j+4>>2]=0;h=0;while(1){w[h+j|0]=z[b+h|0];h=h+1|0;if(!e&d>>>0>h>>>0|e){continue}break}f=j;b=f;W=c;}D=20;g=V;p=U;q=S;t=R;h=Q;c=P;k=O;l=N;m=M;v=L;r=K;i=H;x=I;u=C;s=B;n=J;while(1){o=h;h=g+h|0;g=Bi(h^s,16);m=g+m|0;s=Bi(o^m,12);o=s;A=h+s|0;s=Bi(A^g,8);m=s+m|0;h=Bi(o^m,7);g=l+t|0;i=Bi(g^i,16);n=i+n|0;l=Bi(n^l,12);q=k+q|0;t=Bi(q^x,16);r=t+r|0;k=Bi(r^k,12);E=g+l|0;x=E+h|0;q=k+q|0;F=Bi(q^t,8);g=Bi(x^F,16);p=c+p|0;t=Bi(p^u,16);v=t+v|0;c=Bi(v^c,12);o=h;p=c+p|0;u=Bi(p^t,8);G=u+v|0;h=G+g|0;o=Bi(o^h,12);t=o+x|0;x=Bi(g^t,8);v=x+h|0;h=Bi(v^o,7);o=m;m=q;g=Bi(i^E,8);i=g+n|0;q=Bi(i^l,7);m=m+q|0;u=Bi(m^u,16);l=o+u|0;n=Bi(l^q,12);q=n+m|0;u=Bi(u^q,8);m=l+u|0;l=Bi(m^n,7);n=i;i=p;r=r+F|0;p=Bi(r^k,7);i=i+p|0;s=Bi(i^s,16);k=n+s|0;n=i;i=Bi(k^p,12);p=n+i|0;s=Bi(s^p,8);n=k+s|0;k=Bi(n^i,7);o=r;i=g;g=Bi(c^G,7);r=g+A|0;i=Bi(i^r,16);c=o+i|0;A=Bi(c^g,12);g=A+r|0;i=Bi(i^g,8);r=c+i|0;c=Bi(r^A,7);D=D-2|0;if(D){continue}break}D=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);A=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);E=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);F=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);G=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);o=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);X=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);Y=z[b+32|0]|z[b+33|0]<<8|(z[b+34|0]<<16|z[b+35|0]<<24);Z=z[b+36|0]|z[b+37|0]<<8|(z[b+38|0]<<16|z[b+39|0]<<24);_=z[b+40|0]|z[b+41|0]<<8|(z[b+42|0]<<16|z[b+43|0]<<24);$=z[b+44|0]|z[b+45|0]<<8|(z[b+46|0]<<16|z[b+47|0]<<24);aa=z[b+48|0]|z[b+49|0]<<8|(z[b+50|0]<<16|z[b+51|0]<<24);ba=z[b+52|0]|z[b+53|0]<<8|(z[b+54|0]<<16|z[b+55|0]<<24);ca=z[b+56|0]|z[b+57|0]<<8|(z[b+58|0]<<16|z[b+59|0]<<24);da=z[b+60|0]|z[b+61|0]<<8|(z[b+62|0]<<16|z[b+63|0]<<24);g=g+V^(z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24));w[f|0]=g;w[f+1|0]=g>>>8;w[f+2|0]=g>>>16;w[f+3|0]=g>>>24;g=i+H^da;w[f+60|0]=g;w[f+61|0]=g>>>8;w[f+62|0]=g>>>16;w[f+63|0]=g>>>24;g=x+I^ca;w[f+56|0]=g;w[f+57|0]=g>>>8;w[f+58|0]=g>>>16;w[f+59|0]=g>>>24;g=u+C^ba;w[f+52|0]=g;w[f+53|0]=g>>>8;w[f+54|0]=g>>>16;w[f+55|0]=g>>>24;g=s+B^aa;w[f+48|0]=g;w[f+49|0]=g>>>8;w[f+50|0]=g>>>16;w[f+51|0]=g>>>24;g=n+J^$;w[f+44|0]=g;w[f+45|0]=g>>>8;w[f+46|0]=g>>>16;w[f+47|0]=g>>>24;g=r+K^_;w[f+40|0]=g;w[f+41|0]=g>>>8;w[f+42|0]=g>>>16;w[f+43|0]=g>>>24;g=v+L^Z;w[f+36|0]=g;w[f+37|0]=g>>>8;w[f+38|0]=g>>>16;w[f+39|0]=g>>>24;g=m+M^Y;w[f+32|0]=g;w[f+33|0]=g>>>8;w[f+34|0]=g>>>16;w[f+35|0]=g>>>24;l=l+N^X;w[f+28|0]=l;w[f+29|0]=l>>>8;w[f+30|0]=l>>>16;w[f+31|0]=l>>>24;k=o^k+O;w[f+24|0]=k;w[f+25|0]=k>>>8;w[f+26|0]=k>>>16;w[f+27|0]=k>>>24;c=G^c+P;w[f+20|0]=c;w[f+21|0]=c>>>8;w[f+22|0]=c>>>16;w[f+23|0]=c>>>24;c=F^h+Q;w[f+16|0]=c;w[f+17|0]=c>>>8;w[f+18|0]=c>>>16;w[f+19|0]=c>>>24;c=E^t+R;w[f+12|0]=c;w[f+13|0]=c>>>8;w[f+14|0]=c>>>16;w[f+15|0]=c>>>24;c=A^q+S;w[f+8|0]=c;w[f+9|0]=c>>>8;w[f+10|0]=c>>>16;w[f+11|0]=c>>>24;c=D^p+U;w[f+4|0]=c;w[f+5|0]=c>>>8;w[f+6|0]=c>>>16;w[f+7|0]=c>>>24;B=B+1|0;C=!B+C|0;if(!e&d>>>0<=64){if(!e&d>>>0<=63){h=0;while(1){w[h+W|0]=z[f+h|0];h=h+1|0;if(d>>>0>h>>>0){continue}break}}y[a+52>>2]=C;y[a+48>>2]=B;}else {b=b- -64|0;c=f- -64|0;e=e-1|0;d=d+-64|0;e=d>>>0<4294967232?e+1|0:e;continue}break}}function xb(a,b){var 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,x=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,U=0,V=0,W=0,X=0;c=T-800|0;T=c;e=b+40|0;d=y[e>>2];f=y[b+80>>2];g=y[b+44>>2];h=y[b+84>>2];i=y[b+48>>2];n=y[b+88>>2];j=y[b+52>>2];q=y[b+92>>2];o=y[b+56>>2];r=y[b+96>>2];s=y[b+60>>2];t=y[b+100>>2];k=b- -64|0;u=y[k>>2];v=y[b+104>>2];x=y[b+68>>2];A=y[b+108>>2];B=y[b+72>>2];C=y[b+112>>2];l=y[b+76>>2];m=y[b+116>>2];y[c+324>>2]=l+m;y[c+320>>2]=B+C;y[c+316>>2]=x+A;y[c+312>>2]=u+v;y[c+308>>2]=s+t;y[c+304>>2]=o+r;y[c+300>>2]=j+q;y[c+296>>2]=i+n;y[c+292>>2]=g+h;y[c+288>>2]=d+f;y[c+36>>2]=m-l;y[c+32>>2]=C-B;y[c+28>>2]=A-x;y[c+24>>2]=v-u;y[c+20>>2]=t-s;y[c+16>>2]=r-o;y[c+12>>2]=q-j;y[c+8>>2]=n-i;y[c+4>>2]=h-g;y[c>>2]=f-d;d=c+288|0;ga(d,d,c);g=c+240|0;ga(g,b,e);f=c+192|0;fa(f,g);ga(f,d,f);y[c+436>>2]=0;y[c+440>>2]=0;y[c+444>>2]=0;y[c+448>>2]=0;y[c+452>>2]=0;y[c+456>>2]=0;y[c+460>>2]=0;y[c+464>>2]=0;y[c+468>>2]=0;y[c+432>>2]=1;h=c+576|0;cc(h,c+432|0,f);f=c+720|0;ga(f,h,d);q=c+672|0;ga(q,h,g);j=c+48|0;ga(j,f,q);d=b+120|0;ga(j,j,d);ga(c+528|0,b,1632);ga(c+480|0,e,1632);ga(c+624|0,f,2944);f=c+336|0;ga(f,d,j);n=c+384|0;pa(n,f);F=z[c+384|0];f=y[b+36>>2];d=y[b+32>>2];y[c+176>>2]=d;y[c+180>>2]=f;g=y[b+28>>2];f=y[b+24>>2];y[c+168>>2]=f;y[c+172>>2]=g;h=y[b+20>>2];g=y[b+16>>2];y[c+160>>2]=g;y[c+164>>2]=h;i=y[b+12>>2];h=y[b+8>>2];y[c+152>>2]=h;y[c+156>>2]=i;o=y[b+4>>2];i=y[b>>2];y[c+144>>2]=i;y[c+148>>2]=o;o=y[e>>2];r=y[b+44>>2];s=y[b+48>>2];t=y[b+52>>2];u=y[b+56>>2];v=y[b+60>>2];x=y[k>>2];A=y[b+68>>2];B=y[b+72>>2];C=y[b+76>>2];G=y[c+484>>2];k=y[c+148>>2];H=y[c+492>>2];l=y[c+156>>2];I=y[c+500>>2];m=y[c+164>>2];J=y[c+508>>2];p=y[c+172>>2];K=y[c+516>>2];E=y[c+180>>2];L=y[c+480>>2];M=y[c+488>>2];N=y[c+496>>2];D=y[c+504>>2];e=0-(F&1)|0;y[c+176>>2]=d^e&(d^y[c+512>>2]);y[c+168>>2]=f^e&(f^D);y[c+160>>2]=g^e&(g^N);y[c+152>>2]=h^e&(h^M);y[c+144>>2]=i^e&(i^L);y[c+180>>2]=E^e&(E^K);y[c+172>>2]=p^e&(p^J);y[c+164>>2]=m^e&(m^I);y[c+156>>2]=l^e&(l^H);y[c+148>>2]=k^e&(k^G);E=y[c+528>>2];F=y[c+532>>2];G=y[c+536>>2];H=y[c+540>>2];I=y[c+544>>2];J=y[c+548>>2];K=y[c+552>>2];L=y[c+556>>2];M=y[c+560>>2];N=y[c+564>>2];d=y[c+672>>2];D=y[c+624>>2];f=y[c+676>>2];P=y[c+628>>2];g=y[c+680>>2];Q=y[c+632>>2];h=y[c+684>>2];R=y[c+636>>2];i=y[c+688>>2];S=y[c+640>>2];k=y[c+692>>2];U=y[c+644>>2];l=y[c+696>>2];V=y[c+648>>2];m=y[c+700>>2];W=y[c+652>>2];p=y[c+704>>2];X=y[c+656>>2];O=y[c+708>>2];y[c+708>>2]=O^e&(y[c+660>>2]^O);y[c+704>>2]=p^e&(p^X);y[c+700>>2]=m^e&(m^W);y[c+696>>2]=l^e&(l^V);y[c+692>>2]=k^e&(k^U);y[c+688>>2]=i^e&(i^S);y[c+684>>2]=h^e&(h^R);y[c+680>>2]=g^e&(g^Q);y[c+676>>2]=f^e&(f^P);y[c+672>>2]=d^e&(d^D);d=c+96|0;ga(d,c+144|0,j);pa(n,d);f=y[b+80>>2];g=y[b+84>>2];h=y[b+88>>2];i=y[b+92>>2];j=y[b+96>>2];k=y[b+100>>2];l=y[b+104>>2];m=y[b+108>>2];p=y[b+112>>2];D=y[b+116>>2];b=0-(w[c+384|0]&1)|0;d=C^e&(C^N);y[c+420>>2]=D-(b&(0-d^d)^d);d=B^e&(B^M);y[c+416>>2]=p-(b&(0-d^d)^d);d=A^e&(A^L);y[c+412>>2]=m-(b&(0-d^d)^d);d=x^e&(x^K);y[c+408>>2]=l-(b&(0-d^d)^d);d=v^e&(v^J);y[c+404>>2]=k-(b&(0-d^d)^d);d=u^e&(u^I);y[c+400>>2]=j-(b&(0-d^d)^d);d=t^e&(t^H);y[c+396>>2]=i-(b&(0-d^d)^d);d=s^e&(s^G);y[c+392>>2]=h-(b&(0-d^d)^d);d=r^e&(r^F);y[c+388>>2]=g-(b&(0-d^d)^d);d=b;b=o^e&(o^E);y[c+384>>2]=f-(d&(0-b^b)^b);ga(n,q,n);pa(c+768|0,n);b=0-(w[c+768|0]&1)|0;d=y[c+384>>2];y[c+384>>2]=b&(0-d^d)^d;d=y[c+388>>2];y[c+388>>2]=b&(0-d^d)^d;d=y[c+392>>2];y[c+392>>2]=b&(0-d^d)^d;d=y[c+396>>2];y[c+396>>2]=b&(0-d^d)^d;d=y[c+400>>2];y[c+400>>2]=b&(0-d^d)^d;d=y[c+404>>2];y[c+404>>2]=b&(0-d^d)^d;d=y[c+408>>2];y[c+408>>2]=b&(0-d^d)^d;d=y[c+412>>2];y[c+412>>2]=b&(0-d^d)^d;d=y[c+416>>2];y[c+416>>2]=b&(0-d^d)^d;d=b;b=y[c+420>>2];y[c+420>>2]=d&(0-b^b)^b;pa(a,n);T=c+800|0;}function Fe(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,x=0;f=T-224|0;T=f;l=y[e+60>>2]^d>>>29;m=y[e+56>>2]^d<<3;h=y[e+52>>2]^c>>>29;j=y[e+48>>2]^c<<3;g=e- -64|0;while(1){c=y[e+92>>2];y[f+216>>2]=y[e+88>>2];y[f+220>>2]=c;c=y[e+84>>2];y[f+208>>2]=y[e+80>>2];y[f+212>>2]=c;c=y[g+4>>2];y[f+176>>2]=y[g>>2];y[f+180>>2]=c;c=y[g+12>>2];y[f+184>>2]=y[g+8>>2];y[f+188>>2]=c;c=y[e+84>>2];y[f+160>>2]=y[e+80>>2];y[f+164>>2]=c;c=y[e+92>>2];y[f+168>>2]=y[e+88>>2];y[f+172>>2]=c;d=f+192|0;ia(d,f+176|0,f+160|0);c=y[f+204>>2];y[e+88>>2]=y[f+200>>2];y[e+92>>2]=c;c=y[f+196>>2];y[e+80>>2]=y[f+192>>2];y[e+84>>2]=c;c=y[e+52>>2];y[f+144>>2]=y[e+48>>2];y[f+148>>2]=c;c=y[e+60>>2];y[f+152>>2]=y[e+56>>2];y[f+156>>2]=c;c=y[g+4>>2];y[f+128>>2]=y[g>>2];y[f+132>>2]=c;c=y[g+12>>2];y[f+136>>2]=y[g+8>>2];y[f+140>>2]=c;ia(d,f+144|0,f+128|0);c=y[f+204>>2];y[g+8>>2]=y[f+200>>2];y[g+12>>2]=c;c=y[f+196>>2];y[g>>2]=y[f+192>>2];y[g+4>>2]=c;c=y[e+36>>2];y[f+112>>2]=y[e+32>>2];y[f+116>>2]=c;c=y[e+44>>2];y[f+120>>2]=y[e+40>>2];y[f+124>>2]=c;c=y[e+52>>2];y[f+96>>2]=y[e+48>>2];y[f+100>>2]=c;c=y[e+60>>2];y[f+104>>2]=y[e+56>>2];y[f+108>>2]=c;ia(d,f+112|0,f+96|0);c=y[f+204>>2];y[e+56>>2]=y[f+200>>2];y[e+60>>2]=c;c=y[f+196>>2];y[e+48>>2]=y[f+192>>2];y[e+52>>2]=c;c=y[e+20>>2];y[f+80>>2]=y[e+16>>2];y[f+84>>2]=c;c=y[e+28>>2];y[f+88>>2]=y[e+24>>2];y[f+92>>2]=c;c=y[e+36>>2];y[f+64>>2]=y[e+32>>2];y[f+68>>2]=c;c=y[e+44>>2];y[f+72>>2]=y[e+40>>2];y[f+76>>2]=c;ia(d,f+80|0,f- -64|0);c=y[f+204>>2];y[e+40>>2]=y[f+200>>2];y[e+44>>2]=c;c=y[f+196>>2];y[e+32>>2]=y[f+192>>2];y[e+36>>2]=c;c=y[e+4>>2];y[f+48>>2]=y[e>>2];y[f+52>>2]=c;c=y[e+12>>2];y[f+56>>2]=y[e+8>>2];y[f+60>>2]=c;c=y[e+20>>2];y[f+32>>2]=y[e+16>>2];y[f+36>>2]=c;c=y[e+28>>2];y[f+40>>2]=y[e+24>>2];y[f+44>>2]=c;ia(d,f+48|0,f+32|0);c=y[f+204>>2];y[e+24>>2]=y[f+200>>2];y[e+28>>2]=c;c=y[f+196>>2];y[e+16>>2]=y[f+192>>2];y[e+20>>2]=c;c=y[f+212>>2];y[f+16>>2]=y[f+208>>2];y[f+20>>2]=c;c=y[f+220>>2];y[f+24>>2]=y[f+216>>2];y[f+28>>2]=c;c=y[e+4>>2];y[f>>2]=y[e>>2];y[f+4>>2]=c;c=y[e+12>>2];y[f+8>>2]=y[e+8>>2];y[f+12>>2]=c;ia(d,f+16|0,f);k=y[f+192>>2];d=y[f+196>>2];c=y[f+200>>2];n=l^y[f+204>>2];y[e+12>>2]=n;p=c^m;y[e+8>>2]=p;q=d^h;y[e+4>>2]=q;r=j^k;y[e>>2]=r;i=i+1|0;if((i|0)!=7){continue}break}a:{b:{c:{c=b-16|0;if(c){if((c|0)==16){break c}break b}s=y[e+16>>2];t=y[e+48>>2];u=y[e+32>>2];v=y[e+80>>2];x=y[e- -64>>2];g=y[e+20>>2];l=y[e+52>>2];m=y[e+36>>2];h=y[e+84>>2];j=y[e+68>>2];k=y[e+24>>2];i=y[e+56>>2];d=y[e+40>>2];c=y[e+88>>2];b=y[e+72>>2];e=n^(y[e+28>>2]^(y[e+60>>2]^(y[e+44>>2]^(y[e+92>>2]^y[e+76>>2]))));w[a+12|0]=e;w[a+13|0]=e>>>8;w[a+14|0]=e>>>16;w[a+15|0]=e>>>24;b=p^(b^c^d^i^k);w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=q^(g^(l^(h^j^m)));w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=r^(s^(t^(u^(v^x))));w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;break a}j=y[e+32>>2];k=y[e+16>>2];i=y[e+36>>2];d=y[e+20>>2];c=y[e+40>>2];b=y[e+24>>2];h=n^(y[e+44>>2]^y[e+28>>2]);w[a+12|0]=h;w[a+13|0]=h>>>8;w[a+14|0]=h>>>16;w[a+15|0]=h>>>24;b=p^(b^c);w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=q^(d^i);w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=r^(j^k);w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;l=y[e+48>>2];m=y[e+80>>2];h=y[e- -64>>2];j=y[e+52>>2];k=y[e+84>>2];i=y[e+68>>2];d=y[e+56>>2];c=y[e+88>>2];b=y[e+72>>2];e=y[e+60>>2]^(y[e+92>>2]^y[e+76>>2]);w[a+28|0]=e;w[a+29|0]=e>>>8;w[a+30|0]=e>>>16;w[a+31|0]=e>>>24;b=d^(b^c);w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;b=j^(k^i);w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=l^(h^m);w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;break a}if(!b){break a}o(a,0,b);}T=f+224|0;}function xh(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,i=0,j=0,k=0,l=0,m=0;g=-1;h=d-65|0;if(!(h>>>0<4294967232|c>>>0>64)){a:{if(!(c?b:0)){if((h&255)>>>0>191){b:{if(!e){i=725511199;h=-1694144372;c=-1377402159;b=1359893119;break b}i=(z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24))^725511199;h=(z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24))^-1694144372;c=(z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24))^-1377402159;b=(z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24))^1359893119;}c:{if(!f){j=327033209;f=1541459225;g=-79577749;e=528734635;break c}e=f;j=(z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24))^327033209;f=(z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24))^1541459225;g=(z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24))^-79577749;e=(z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24))^528734635;}o(a- -64|0,0,293);w[a+56|0]=j;w[a+57|0]=j>>>8;w[a+58|0]=j>>>16;w[a+59|0]=j>>>24;w[a+60|0]=f;w[a+61|0]=f>>>8;w[a+62|0]=f>>>16;w[a+63|0]=f>>>24;w[a+48|0]=g;w[a+49|0]=g>>>8;w[a+50|0]=g>>>16;w[a+51|0]=g>>>24;w[a+52|0]=e;w[a+53|0]=e>>>8;w[a+54|0]=e>>>16;w[a+55|0]=e>>>24;w[a+40|0]=i;w[a+41|0]=i>>>8;w[a+42|0]=i>>>16;w[a+43|0]=i>>>24;w[a+44|0]=h;w[a+45|0]=h>>>8;w[a+46|0]=h>>>16;w[a+47|0]=h>>>24;w[a+32|0]=c;w[a+33|0]=c>>>8;w[a+34|0]=c>>>16;w[a+35|0]=c>>>24;w[a+36|0]=b;w[a+37|0]=b>>>8;w[a+38|0]=b>>>16;w[a+39|0]=b>>>24;w[a+24|0]=241;w[a+25|0]=54;w[a+26|0]=29;w[a+27|0]=95;w[a+28|0]=58;w[a+29|0]=245;w[a+30|0]=79;w[a+31|0]=165;w[a+16|0]=43;w[a+17|0]=248;w[a+18|0]=148;w[a+19|0]=254;w[a+20|0]=114;w[a+21|0]=243;w[a+22|0]=110;w[a+23|0]=60;w[a+8|0]=59;w[a+9|0]=167;w[a+10|0]=202;w[a+11|0]=132;w[a+12|0]=133;w[a+13|0]=174;w[a+14|0]=103;w[a+15|0]=187;b=d^-222443256;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=103;w[a+5|0]=230;w[a+6|0]=9;w[a+7|0]=106;break a}na();s();}k=T-128|0;T=k;d:{if(!(!b|(d-65&255)>>>0<=191|(c-65&255)>>>0<=191)){e:{if(!e){i=725511199;h=-1694144372;g=-1377402159;e=1359893119;break e}i=(z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24))^725511199;h=(z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24))^-1694144372;g=(z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24))^-1377402159;e=(z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24))^1359893119;}m=g;f:{if(!f){j=327033209;f=1541459225;l=-79577749;g=528734635;break f}g=f;j=(z[g+8|0]|z[g+9|0]<<8|(z[g+10|0]<<16|z[g+11|0]<<24))^327033209;f=(z[g+12|0]|z[g+13|0]<<8|(z[g+14|0]<<16|z[g+15|0]<<24))^1541459225;l=(z[g|0]|z[g+1|0]<<8|(z[g+2|0]<<16|z[g+3|0]<<24))^-79577749;g=(z[g+4|0]|z[g+5|0]<<8|(z[g+6|0]<<16|z[g+7|0]<<24))^528734635;}o(a- -64|0,0,293);w[a+56|0]=j;w[a+57|0]=j>>>8;w[a+58|0]=j>>>16;w[a+59|0]=j>>>24;w[a+60|0]=f;w[a+61|0]=f>>>8;w[a+62|0]=f>>>16;w[a+63|0]=f>>>24;w[a+48|0]=l;w[a+49|0]=l>>>8;w[a+50|0]=l>>>16;w[a+51|0]=l>>>24;w[a+52|0]=g;w[a+53|0]=g>>>8;w[a+54|0]=g>>>16;w[a+55|0]=g>>>24;w[a+40|0]=i;w[a+41|0]=i>>>8;w[a+42|0]=i>>>16;w[a+43|0]=i>>>24;w[a+44|0]=h;w[a+45|0]=h>>>8;w[a+46|0]=h>>>16;w[a+47|0]=h>>>24;w[a+32|0]=m;w[a+33|0]=m>>>8;w[a+34|0]=m>>>16;w[a+35|0]=m>>>24;w[a+36|0]=e;w[a+37|0]=e>>>8;w[a+38|0]=e>>>16;w[a+39|0]=e>>>24;w[a+24|0]=241;w[a+25|0]=54;w[a+26|0]=29;w[a+27|0]=95;w[a+28|0]=58;w[a+29|0]=245;w[a+30|0]=79;w[a+31|0]=165;w[a+16|0]=43;w[a+17|0]=248;w[a+18|0]=148;w[a+19|0]=254;w[a+20|0]=114;w[a+21|0]=243;w[a+22|0]=110;w[a+23|0]=60;w[a+8|0]=59;w[a+9|0]=167;w[a+10|0]=202;w[a+11|0]=132;w[a+12|0]=133;w[a+13|0]=174;w[a+14|0]=103;w[a+15|0]=187;e=(c<<8|d)^-222443256;w[a|0]=e;w[a+1|0]=e>>>8;w[a+2|0]=e>>>16;w[a+3|0]=e>>>24;d=c>>>24^1779033703;w[a+4|0]=d;w[a+5|0]=d>>>8;w[a+6|0]=d>>>16;w[a+7|0]=d>>>24;o(k,0,128);if(c){t(k,b,c);}t(a+96|0,k,128);w[a+352|0]=128;w[a+353|0]=0;w[a+354|0]=0;w[a+355|0]=0;ja(k,128);T=k+128|0;break d}na();s();}}g=0;}return g|0}function Ca(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=T-704|0;T=j;g=a+80|0;e=y[a+72>>2]>>>3&127;c=g+e|0;a:{if(e>>>0>=112){e=128-e|0;if(e){t(c,39152,e);}Xb(a,g,j,j+640|0);o(g,0,112);break a}e=112-e|0;if(!e){break a}t(c,39152,e);}e=a- -64|0;d=y[e>>2];c=y[e+4>>2];i=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;k=f<<24;h=d&-16777216;f=h>>>24|0;y[a+192>>2]=k|h<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));c=e|f|i;y[a+196>>2]=c;d=y[a+72>>2];i=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+76>>2];k=f<<24;h=d&-16777216;f=h>>>24|0;y[a+200>>2]=k|h<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));c=e|f|i;y[a+204>>2]=c;Xb(a,g,j,j+640|0);d=y[a>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+4>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b|0]=c;w[b+1|0]=c>>>8;w[b+2|0]=c>>>16;w[b+3|0]=c>>>24;c=e|f|h;e=c|0;w[b+4|0]=e;w[b+5|0]=e>>>8;w[b+6|0]=e>>>16;w[b+7|0]=e>>>24;d=y[a+8>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+12>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+8|0]=c;w[b+9|0]=c>>>8;w[b+10|0]=c>>>16;w[b+11|0]=c>>>24;c=e|f|h;e=c|0;w[b+12|0]=e;w[b+13|0]=e>>>8;w[b+14|0]=e>>>16;w[b+15|0]=e>>>24;d=y[a+16>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+20>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+16|0]=c;w[b+17|0]=c>>>8;w[b+18|0]=c>>>16;w[b+19|0]=c>>>24;c=e|f|h;e=c|0;w[b+20|0]=e;w[b+21|0]=e>>>8;w[b+22|0]=e>>>16;w[b+23|0]=e>>>24;d=y[a+24>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+28>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+24|0]=c;w[b+25|0]=c>>>8;w[b+26|0]=c>>>16;w[b+27|0]=c>>>24;c=e|f|h;e=c|0;w[b+28|0]=e;w[b+29|0]=e>>>8;w[b+30|0]=e>>>16;w[b+31|0]=e>>>24;d=y[a+32>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+36>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+32|0]=c;w[b+33|0]=c>>>8;w[b+34|0]=c>>>16;w[b+35|0]=c>>>24;c=e|f|h;e=c|0;w[b+36|0]=e;w[b+37|0]=e>>>8;w[b+38|0]=e>>>16;w[b+39|0]=e>>>24;d=y[a+40>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+44>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+40|0]=c;w[b+41|0]=c>>>8;w[b+42|0]=c>>>16;w[b+43|0]=c>>>24;c=e|f|h;e=c|0;w[b+44|0]=e;w[b+45|0]=e>>>8;w[b+46|0]=e>>>16;w[b+47|0]=e>>>24;d=y[a+48>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+52>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+48|0]=c;w[b+49|0]=c>>>8;w[b+50|0]=c>>>16;w[b+51|0]=c>>>24;c=e|f|h;e=c|0;w[b+52|0]=e;w[b+53|0]=e>>>8;w[b+54|0]=e>>>16;w[b+55|0]=e>>>24;d=y[a+56>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=b;i=f<<24;g=d&-16777216;f=g>>>24|0;b=y[a+60>>2];b=i|g<<8|(((b&255)<<24|d>>>8)&-16777216|((b&16777215)<<8|d>>>24)&16711680|(b>>>8&65280|b>>>24));w[c+56|0]=b;w[c+57|0]=b>>>8;w[c+58|0]=b>>>16;w[c+59|0]=b>>>24;b=e|f|h;b=b|0;w[c+60|0]=b;w[c+61|0]=b>>>8;w[c+62|0]=b>>>16;w[c+63|0]=b>>>24;ja(j,704);ja(a,208);T=j+704|0;return 0}function ec(a){var 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,p=0,q=0,r=0,s=0,t=0,u=0;b=T-2048|0;T=b;i=b+640|0;qa(i,a);c=y[a+36>>2];y[b+352>>2]=y[a+32>>2];y[b+356>>2]=c;c=y[a+28>>2];y[b+344>>2]=y[a+24>>2];y[b+348>>2]=c;c=y[a+20>>2];y[b+336>>2]=y[a+16>>2];y[b+340>>2]=c;c=y[a+12>>2];y[b+328>>2]=y[a+8>>2];y[b+332>>2]=c;c=y[a+4>>2];y[b+320>>2]=y[a>>2];y[b+324>>2]=c;c=y[a+44>>2];y[b+360>>2]=y[a+40>>2];y[b+364>>2]=c;c=y[a+52>>2];y[b+368>>2]=y[a+48>>2];y[b+372>>2]=c;c=y[a+60>>2];y[b+376>>2]=y[a+56>>2];y[b+380>>2]=c;d=a- -64|0;c=y[d+4>>2];y[b+384>>2]=y[d>>2];y[b+388>>2]=c;c=y[a+76>>2];y[b+392>>2]=y[a+72>>2];y[b+396>>2]=c;c=y[a+84>>2];y[b+400>>2]=y[a+80>>2];y[b+404>>2]=c;c=y[a+92>>2];y[b+408>>2]=y[a+88>>2];y[b+412>>2]=c;c=y[a+100>>2];y[b+416>>2]=y[a+96>>2];y[b+420>>2]=c;c=y[a+108>>2];y[b+424>>2]=y[a+104>>2];y[b+428>>2]=c;c=y[a+116>>2];y[b+432>>2]=y[a+112>>2];y[b+436>>2]=c;e=b+480|0;d=b+320|0;xa(e,d);c=b+160|0;f=b+600|0;ga(c,e,f);g=b+520|0;h=b+560|0;ga(b+200|0,g,h);ga(b+240|0,h,f);ga(b+280|0,e,g);sa(e,c,i);ga(d,e,f);l=b+360|0;ga(l,g,h);m=b+400|0;ga(m,h,f);n=b+440|0;ga(n,e,g);a=b+800|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);a=b+960|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);a=b+1120|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);a=b+1280|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);a=b+1440|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);a=b+1600|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);qa(b+1760|0,d);y[b+32>>2]=0;y[b+36>>2]=0;y[b+24>>2]=0;y[b+28>>2]=0;y[b+16>>2]=0;y[b+20>>2]=0;y[b+8>>2]=0;y[b+12>>2]=0;y[b>>2]=0;y[b+4>>2]=0;y[b+44>>2]=0;y[b+48>>2]=0;y[b+40>>2]=1;y[b+52>>2]=0;y[b+56>>2]=0;y[b+60>>2]=0;y[b+64>>2]=0;y[b+68>>2]=0;y[b+72>>2]=0;y[b+76>>2]=0;y[b+80>>2]=1;o(b+84|0,0,76);e=b+120|0;j=b+2008|0;k=b+1968|0;i=b+80|0;d=b+40|0;a=252;while(1){c=y[b+36>>2];y[b+1960>>2]=y[b+32>>2];y[b+1964>>2]=c;c=y[b+28>>2];y[b+1952>>2]=y[b+24>>2];y[b+1956>>2]=c;c=y[b+20>>2];y[b+1944>>2]=y[b+16>>2];y[b+1948>>2]=c;c=y[b+12>>2];y[b+1936>>2]=y[b+8>>2];y[b+1940>>2]=c;c=y[b+4>>2];y[b+1928>>2]=y[b>>2];y[b+1932>>2]=c;c=y[d+36>>2];y[k+32>>2]=y[d+32>>2];y[k+36>>2]=c;c=y[d+28>>2];y[k+24>>2]=y[d+24>>2];y[k+28>>2]=c;c=y[d+20>>2];y[k+16>>2]=y[d+16>>2];y[k+20>>2]=c;c=y[d+12>>2];y[k+8>>2]=y[d+8>>2];y[k+12>>2]=c;c=y[d+4>>2];y[k>>2]=y[d>>2];y[k+4>>2]=c;c=y[i+36>>2];y[j+32>>2]=y[i+32>>2];y[j+36>>2]=c;c=y[i+28>>2];y[j+24>>2]=y[i+24>>2];y[j+28>>2]=c;c=y[i+20>>2];y[j+16>>2]=y[i+16>>2];y[j+20>>2]=c;c=y[i+12>>2];y[j+8>>2]=y[i+8>>2];y[j+12>>2]=c;c=y[i+4>>2];y[j>>2]=y[i>>2];y[j+4>>2]=c;c=a;q=w[a+33712|0];p=b+480|0;xa(p,b+1928|0);a:{if((q|0)>0){a=b+320|0;ga(a,p,f);ga(l,g,h);ga(m,h,f);ga(n,p,g);sa(p,a,(b+640|0)+E((q&254)>>>1|0,160)|0);break a}if((q|0)>=0){break a}a=b+320|0;p=b+480|0;ga(a,p,f);ga(l,g,h);ga(m,h,f);ga(n,p,g);Hb(p,a,(b+640|0)+E((0-q&254)>>>1|0,160)|0);}r=b+480|0;ga(b,r,f);ga(d,g,h);ga(i,h,f);ga(e,r,g);a=c-1|0;if(c){continue}break}s=y[b+40>>2];t=y[b+80>>2];u=y[b+44>>2];f=y[b+84>>2];g=y[b+48>>2];h=y[b+88>>2];j=y[b+52>>2];k=y[b+92>>2];l=y[b+56>>2];m=y[b+96>>2];n=y[b+60>>2];q=y[b+100>>2];p=y[b+64>>2];e=y[b+104>>2];i=y[b+68>>2];d=y[b+108>>2];c=y[b+72>>2];a=y[b+112>>2];y[b+676>>2]=y[b+76>>2]-y[b+116>>2];y[b+672>>2]=c-a;y[b+668>>2]=i-d;y[b+664>>2]=p-e;y[b+660>>2]=n-q;y[b+656>>2]=l-m;y[b+652>>2]=j-k;y[b+648>>2]=g-h;y[b+644>>2]=u-f;y[b+640>>2]=s-t;pa(r,b);c=ya(r,32);pa(r,b+640|0);a=ya(r,32);T=b+2048|0;return a&c}function $b(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=T-288|0;T=c;f=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);g=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);h=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);i=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);j=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);k=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);l=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);m=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);a=y[b+124>>2];y[c+280>>2]=y[b+120>>2];y[c+284>>2]=a;a=y[b+116>>2];y[c+272>>2]=y[b+112>>2];y[c+276>>2]=a;a=y[b+100>>2];y[c+240>>2]=y[b+96>>2];y[c+244>>2]=a;a=y[b+108>>2];y[c+248>>2]=y[b+104>>2];y[c+252>>2]=a;a=y[b+116>>2];y[c+224>>2]=y[b+112>>2];y[c+228>>2]=a;a=y[b+124>>2];y[c+232>>2]=y[b+120>>2];y[c+236>>2]=a;a=c+256|0;ia(a,c+240|0,c+224|0);e=y[c+268>>2];y[b+120>>2]=y[c+264>>2];y[b+124>>2]=e;e=y[c+260>>2];y[b+112>>2]=y[c+256>>2];y[b+116>>2]=e;e=y[b+84>>2];y[c+208>>2]=y[b+80>>2];y[c+212>>2]=e;e=y[b+92>>2];y[c+216>>2]=y[b+88>>2];y[c+220>>2]=e;e=y[b+100>>2];y[c+192>>2]=y[b+96>>2];y[c+196>>2]=e;e=y[b+108>>2];y[c+200>>2]=y[b+104>>2];y[c+204>>2]=e;ia(a,c+208|0,c+192|0);e=y[c+268>>2];y[b+104>>2]=y[c+264>>2];y[b+108>>2]=e;e=y[c+260>>2];y[b+96>>2]=y[c+256>>2];y[b+100>>2]=e;e=b- -64|0;d=y[e+4>>2];y[c+176>>2]=y[e>>2];y[c+180>>2]=d;d=y[b+76>>2];y[c+184>>2]=y[b+72>>2];y[c+188>>2]=d;d=y[b+84>>2];y[c+160>>2]=y[b+80>>2];y[c+164>>2]=d;d=y[b+92>>2];y[c+168>>2]=y[b+88>>2];y[c+172>>2]=d;ia(a,c+176|0,c+160|0);d=y[c+268>>2];y[b+88>>2]=y[c+264>>2];y[b+92>>2]=d;d=y[c+260>>2];y[b+80>>2]=y[c+256>>2];y[b+84>>2]=d;d=y[b+52>>2];y[c+144>>2]=y[b+48>>2];y[c+148>>2]=d;d=y[b+60>>2];y[c+152>>2]=y[b+56>>2];y[c+156>>2]=d;d=y[e+4>>2];y[c+128>>2]=y[e>>2];y[c+132>>2]=d;d=y[b+76>>2];y[c+136>>2]=y[b+72>>2];y[c+140>>2]=d;ia(a,c+144|0,c+128|0);d=y[c+268>>2];y[b+72>>2]=y[c+264>>2];y[b+76>>2]=d;d=y[c+260>>2];y[e>>2]=y[c+256>>2];y[e+4>>2]=d;d=y[b+36>>2];y[c+112>>2]=y[b+32>>2];y[c+116>>2]=d;d=y[b+44>>2];y[c+120>>2]=y[b+40>>2];y[c+124>>2]=d;d=y[b+52>>2];y[c+96>>2]=y[b+48>>2];y[c+100>>2]=d;d=y[b+60>>2];y[c+104>>2]=y[b+56>>2];y[c+108>>2]=d;ia(a,c+112|0,c+96|0);d=y[c+268>>2];y[b+56>>2]=y[c+264>>2];y[b+60>>2]=d;d=y[c+260>>2];y[b+48>>2]=y[c+256>>2];y[b+52>>2]=d;d=y[b+20>>2];y[c+80>>2]=y[b+16>>2];y[c+84>>2]=d;d=y[b+28>>2];y[c+88>>2]=y[b+24>>2];y[c+92>>2]=d;d=y[b+36>>2];y[c+64>>2]=y[b+32>>2];y[c+68>>2]=d;d=y[b+44>>2];y[c+72>>2]=y[b+40>>2];y[c+76>>2]=d;ia(a,c+80|0,c- -64|0);d=y[c+268>>2];y[b+40>>2]=y[c+264>>2];y[b+44>>2]=d;d=y[c+260>>2];y[b+32>>2]=y[c+256>>2];y[b+36>>2]=d;d=y[b+4>>2];y[c+48>>2]=y[b>>2];y[c+52>>2]=d;d=y[b+12>>2];y[c+56>>2]=y[b+8>>2];y[c+60>>2]=d;d=y[b+20>>2];y[c+32>>2]=y[b+16>>2];y[c+36>>2]=d;d=y[b+28>>2];y[c+40>>2]=y[b+24>>2];y[c+44>>2]=d;ia(a,c+48|0,c+32|0);d=y[c+268>>2];y[b+24>>2]=y[c+264>>2];y[b+28>>2]=d;d=y[c+260>>2];y[b+16>>2]=y[c+256>>2];y[b+20>>2]=d;d=y[c+276>>2];y[c+16>>2]=y[c+272>>2];y[c+20>>2]=d;d=y[c+284>>2];y[c+24>>2]=y[c+280>>2];y[c+28>>2]=d;d=y[b+4>>2];y[c>>2]=y[b>>2];y[c+4>>2]=d;d=y[b+12>>2];y[c+8>>2]=y[b+8>>2];y[c+12>>2]=d;ia(a,c+16|0,c);a=y[c+268>>2];y[b+8>>2]=y[c+264>>2];y[b+12>>2]=a;a=y[c+260>>2];y[b>>2]=y[c+256>>2];y[b+4>>2]=a;y[b+12>>2]=y[b+12>>2]^l;y[b+8>>2]=y[b+8>>2]^k;y[b+4>>2]=y[b+4>>2]^j;y[b>>2]=y[b>>2]^m;y[e>>2]=y[e>>2]^i;y[b+68>>2]=y[b+68>>2]^h;y[b+72>>2]=y[b+72>>2]^g;y[b+76>>2]=y[b+76>>2]^f;T=c+288|0;}function jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=T-480|0;T=d;c=z[b|0];w[d+289|0]=c>>>4;w[d+288|0]=c&15;c=z[b+1|0];w[d+291|0]=c>>>4;w[d+290|0]=c&15;c=z[b+2|0];w[d+293|0]=c>>>4;w[d+292|0]=c&15;c=z[b+3|0];w[d+295|0]=c>>>4;w[d+294|0]=c&15;c=z[b+4|0];w[d+297|0]=c>>>4;w[d+296|0]=c&15;c=z[b+5|0];w[d+299|0]=c>>>4;w[d+298|0]=c&15;c=z[b+6|0];w[d+301|0]=c>>>4;w[d+300|0]=c&15;c=z[b+7|0];w[d+303|0]=c>>>4;w[d+302|0]=c&15;c=z[b+8|0];w[d+305|0]=c>>>4;w[d+304|0]=c&15;c=z[b+9|0];w[d+307|0]=c>>>4;w[d+306|0]=c&15;c=z[b+10|0];w[d+309|0]=c>>>4;w[d+308|0]=c&15;c=z[b+11|0];w[d+311|0]=c>>>4;w[d+310|0]=c&15;c=z[b+12|0];w[d+313|0]=c>>>4;w[d+312|0]=c&15;c=z[b+13|0];w[d+315|0]=c>>>4;w[d+314|0]=c&15;c=z[b+14|0];w[d+317|0]=c>>>4;w[d+316|0]=c&15;c=z[b+15|0];w[d+319|0]=c>>>4;w[d+318|0]=c&15;c=z[b+16|0];w[d+321|0]=c>>>4;w[d+320|0]=c&15;c=z[b+17|0];w[d+323|0]=c>>>4;w[d+322|0]=c&15;c=z[b+18|0];w[d+325|0]=c>>>4;w[d+324|0]=c&15;c=z[b+19|0];w[d+327|0]=c>>>4;w[d+326|0]=c&15;c=z[b+20|0];w[d+329|0]=c>>>4;w[d+328|0]=c&15;c=z[b+21|0];w[d+331|0]=c>>>4;w[d+330|0]=c&15;c=z[b+22|0];w[d+333|0]=c>>>4;w[d+332|0]=c&15;c=z[b+23|0];w[d+335|0]=c>>>4;w[d+334|0]=c&15;c=z[b+24|0];w[d+337|0]=c>>>4;w[d+336|0]=c&15;c=z[b+25|0];w[d+339|0]=c>>>4;w[d+338|0]=c&15;c=z[b+26|0];w[d+341|0]=c>>>4;w[d+340|0]=c&15;c=z[b+27|0];w[d+343|0]=c>>>4;w[d+342|0]=c&15;c=z[b+28|0];w[d+345|0]=c>>>4;w[d+344|0]=c&15;c=z[b+29|0];w[d+347|0]=c>>>4;w[d+346|0]=c&15;c=z[b+30|0];w[d+349|0]=c>>>4;w[d+348|0]=c&15;b=z[b+31|0];w[d+351|0]=b>>>4;w[d+350|0]=b&15;b=0;while(1){e=(d+288|0)+f|0;b=z[e|0]+b|0;c=b+8|0;w[e|0]=b-(c&240);b=z[e+1|0]+(c<<24>>24>>4)|0;c=b+8|0;w[e+1|0]=b-(c&240);b=z[e+2|0]+(c<<24>>24>>4)|0;c=b+8|0;w[e+2|0]=b-(c&240);b=c<<24>>24>>4;f=f+3|0;if((f|0)!=63){continue}break}w[d+351|0]=z[d+351|0]+b;y[a+32>>2]=0;y[a+36>>2]=0;y[a+24>>2]=0;y[a+28>>2]=0;y[a+16>>2]=0;y[a+20>>2]=0;y[a+8>>2]=0;y[a+12>>2]=0;y[a>>2]=0;y[a+4>>2]=0;y[a+44>>2]=0;y[a+48>>2]=0;f=a+40|0;y[f>>2]=1;y[a+52>>2]=0;y[a+56>>2]=0;y[a+60>>2]=0;y[a+64>>2]=0;y[a+68>>2]=0;y[a+72>>2]=0;y[a+76>>2]=0;y[a+80>>2]=1;o(a+84|0,0,76);l=a+120|0;c=a+80|0;g=d+208|0;k=d+168|0;h=d+248|0;b=1;while(1){e=d+8|0;Kc(e,b>>>1|0,w[(d+288|0)+b|0]);i=d+128|0;fc(i,a,e);ga(a,i,h);ga(f,k,g);ga(c,g,h);ga(l,i,k);e=b>>>0<62;b=b+2|0;if(e){continue}break}b=y[a+36>>2];y[d+392>>2]=y[a+32>>2];y[d+396>>2]=b;b=y[a+28>>2];y[d+384>>2]=y[a+24>>2];y[d+388>>2]=b;b=y[a+20>>2];y[d+376>>2]=y[a+16>>2];y[d+380>>2]=b;b=y[a+12>>2];y[d+368>>2]=y[a+8>>2];y[d+372>>2]=b;b=y[a+4>>2];y[d+360>>2]=y[a>>2];y[d+364>>2]=b;b=y[f+4>>2];y[d+400>>2]=y[f>>2];y[d+404>>2]=b;b=y[f+12>>2];y[d+408>>2]=y[f+8>>2];y[d+412>>2]=b;b=y[f+20>>2];y[d+416>>2]=y[f+16>>2];y[d+420>>2]=b;b=y[f+28>>2];y[d+424>>2]=y[f+24>>2];y[d+428>>2]=b;b=y[f+36>>2];y[d+432>>2]=y[f+32>>2];y[d+436>>2]=b;b=y[c+4>>2];y[d+440>>2]=y[c>>2];y[d+444>>2]=b;b=y[c+12>>2];y[d+448>>2]=y[c+8>>2];y[d+452>>2]=b;b=y[c+20>>2];y[d+456>>2]=y[c+16>>2];y[d+460>>2]=b;b=y[c+28>>2];y[d+464>>2]=y[c+24>>2];y[d+468>>2]=b;b=y[c+36>>2];y[d+472>>2]=y[c+32>>2];y[d+476>>2]=b;j=d+360|0;xa(i,j);ga(j,i,h);e=d+400|0;ga(e,k,g);b=d+440|0;ga(b,g,h);xa(i,j);ga(j,i,h);ga(e,k,g);ga(b,g,h);xa(i,j);ga(j,i,h);ga(e,k,g);ga(b,g,h);xa(i,j);ga(a,i,h);ga(f,k,g);ga(c,g,h);ga(l,i,k);b=0;while(1){e=d+8|0;Kc(e,b>>>1|0,w[(d+288|0)+b|0]);j=d+128|0;fc(j,a,e);ga(a,j,h);ga(f,k,g);ga(c,g,h);ga(l,j,k);e=b>>>0<62;b=b+2|0;if(e){continue}break}T=d+480|0;}function gd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var 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;d=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);h=d^1886610805;f=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);g=f^1936682341;i=d^1852142177;j=f^1819895653;d=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);f=d^1852075885;e=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);l=e^1685025377;k=d^2037671283;m=e^1952801890;d=c&-8;if(d){d=b+d|0;while(1){p=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);e=k^p;i=i+e|0;t=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);m=m^t;j=j+m|0;j=e>>>0>i>>>0?j+1|0:j;g=g+l|0;o=g+1|0;k=g;g=f+h|0;k=h>>>0>g>>>0?o:k;f=Ci(f,l,13)^g;h=i+f|0;n=W^k;l=j+n|0;n=Ci(f,n,17)^h;l=f>>>0>h>>>0?l+1|0:l;q=l^W;s=Ci(n,q,13);r=W;e=Ci(e,m,16);f=j^W;j=e^i;i=Ci(g,k,32);e=j+i|0;g=W+f|0;k=e>>>0>>0?g+1|0:g;i=q+k|0;o=i+1|0;g=i;i=e+n|0;g=i>>>0>>0?o:g;m=i^s;n=g^r;q=Ci(m,n,17);s=W;f=Ci(j,f,21);j=k^W;k=e^f;h=Ci(h,l,32);e=k+h|0;f=W+j|0;r=e>>>0>>0?f+1|0:f;h=r+n|0;o=h+1|0;f=h;h=e+m|0;n=h>>>0>>0?o:f;f=h^q;l=n^s;j=Ci(k,j,16);k=r^W;m=k;e=e^j;j=Ci(e,k,21);q=W;i=Ci(i,g,32);e=i+e|0;k=e^j;g=W+m|0;g=e>>>0>>0?g+1|0:g;m=g^q;i=Ci(h,n,32);j=W;h=e^p;g=g^t;b=b+8|0;if((d|0)!=(b|0)){continue}break}b=d;}e=c<<24;d=0;a:{switch((c&7)-1|0){case 6:e=e|z[b+6|0]<<16;case 5:e=e|z[b+5|0]<<8;case 4:e=e|z[b+4|0];case 3:d=z[b+3|0]<<24;case 2:d=d|z[b+2|0]<<16;case 1:d=d|z[b+1|0]<<8;case 0:d=z[b|0]|d;break;default:break a}}b=d^k;c=e^m;k=Ci(b,c,16);c=c+j|0;b=b+i|0;c=b>>>0>>0?c+1|0:c;j=b^k;k=c^W;m=Ci(j,k,21);n=W;i=g+l|0;o=i+1|0;g=i;i=f+h|0;h=h>>>0>i>>>0?o:g;g=h;p=Ci(i,h,32);h=j+p|0;j=m^h;k=W+k|0;k=h>>>0

>>0?k+1|0:k;m=n^k;n=Ci(j,m,16);p=W;f=Ci(f,l,13)^i;b=b+f|0;l=W^g;c=l+c|0;i=b>>>0>>0?c+1|0:c;g=Ci(b,i,32);c=j+g|0;j=n^c;m=W+m|0;g=c>>>0>>0?m+1|0:m;m=g^p;n=Ci(j,m,21);p=W;l=Ci(f,l,17)^b;f=l;b=h+f|0;i=W^i;h=i+k|0;h=b>>>0>>0?h+1|0:h;k=h;f=n;n=Ci(b,h,32);h=j+n|0;f=f^h;j=W+m|0;j=h>>>0>>0?j+1|0:j;m=j^p;n=Ci(f,m,16);p=W;o=c;i=Ci(l,i,13)^b;c=i;b=o+c|0;o=g;g=k^W;l=o+g|0;c=b>>>0>>0?l+1|0:l;k=c;c=Ci(b,c,32);l=m+W|0;c=f+(c^255)|0;m=c>>>0>>0?l+1|0:l;f=p^m;l=c^n;n=Ci(l,f,21);p=W;i=Ci(i,g,17)^b;d=d^h;b=i+d|0;g=k^W;e=g+(e^j)|0;d=b>>>0>>0?e+1|0:e;j=d;d=Ci(b,d,32);e=f+W|0;d=d+l|0;f=d>>>0>>0?e+1|0:e;e=f^p;h=d^n;l=Ci(h,e,16);k=W;i=Ci(i,g,13)^b;b=c+i|0;g=W^j;j=m+g|0;c=b>>>0>>0?j+1|0:j;j=c;c=Ci(b,c,32);o=k;e=e+W|0;c=c+h|0;k=c>>>0>>0?e+1|0:e;e=o^k;h=c^l;l=Ci(h,e,21);m=W;i=Ci(i,g,17);g=j^W;f=f+g|0;n=f+1|0;o=f;j=d;f=b^i;d=d+f|0;b=j>>>0>d>>>0?n:o;i=b;b=Ci(d,b,32);e=e+W|0;b=b+h|0;j=b>>>0>>0?e+1|0:e;e=j^m;h=b^l;l=Ci(h,e,16);m=W;f=Ci(f,g,13);i=i^W;g=k+i|0;f=d^f;d=c+f|0;c=d>>>0>>0?g+1|0:g;g=c;c=Ci(d,c,32);e=e+W|0;c=c+h|0;k=c>>>0>>0?e+1|0:e;e=k^m;h=c^l;l=Ci(h,e,21);m=W;f=Ci(f,i,17);i=g^W;g=j+i|0;o=g+1|0;j=g;g=d^f;d=b+g|0;f=d>>>0>>0?o:j;b=Ci(d,f,32);e=e+W|0;b=b+h|0;j=b>>>0>>0?e+1|0:e;e=j^m;h=b^l;l=Ci(h,e,16);m=W;i=Ci(g,i,13);f=f^W;g=k+f|0;i=d^i;d=c+i|0;c=d>>>0>>0?g+1|0:g;g=c;c=Ci(d,c,32);e=e+W|0;c=c+h|0;e=c>>>0>>0?e+1|0:e;h=Ci(c^l,e^m,21);l=W;d=Ci(i,f,17)^d;f=g^W;i=Ci(d,f,13);f=f+j|0;d=b+d|0;b=W^(b>>>0>d>>>0?f+1|0:f);d=d^i;h=Ci(d,b,17)^h;f=W^l;b=b+e|0;g=b+1|0;e=b;b=c+d|0;c=c>>>0>b>>>0?g:e;b=Ci(b,c,32)^h^b;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;b=c^(W^f);w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;return 0}function Fc(a,b){var 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,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;c=T-624|0;T=c;d=c+480|0;fa(d,b);ga(d,1632,d);f=y[c+516>>2];y[c+276>>2]=f;g=y[c+512>>2];y[c+272>>2]=g;h=y[c+508>>2];y[c+268>>2]=h;i=y[c+504>>2];y[c+264>>2]=i;j=y[c+500>>2];y[c+260>>2]=j;k=y[c+496>>2];y[c+256>>2]=k;l=y[c+492>>2];y[c+252>>2]=l;m=y[c+488>>2];y[c+248>>2]=m;n=y[c+484>>2];y[c+244>>2]=n;p=y[c+480>>2];y[c+240>>2]=p+1;e=c+240|0;ga(e,e,33968);y[c+468>>2]=f-12055116;y[c+464>>2]=g-18696448;y[c+460>>2]=h-3247719;y[c+456>>2]=i-6275908;y[c+452>>2]=j-8787816;y[c+448>>2]=k+114729;y[c+444>>2]=l+6949391;y[c+440>>2]=m-15372611;y[c+436>>2]=n+13857413;y[c+432>>2]=p-10913610;o=c+192|0;ga(o,d,1584);y[c+228>>2]=0-y[c+228>>2];y[c+224>>2]=0-y[c+224>>2];y[c+220>>2]=0-y[c+220>>2];y[c+216>>2]=0-y[c+216>>2];y[c+212>>2]=0-y[c+212>>2];y[c+208>>2]=0-y[c+208>>2];y[c+204>>2]=0-y[c+204>>2];y[c+200>>2]=0-y[c+200>>2];y[c+196>>2]=0-y[c+196>>2];y[c+192>>2]=y[c+192>>2]^-1;ga(o,o,c+432|0);K=c+384|0;d=cc(K,e,o);e=c+336|0;ga(e,K,b);L=c+576|0;pa(L,e);N=z[c+576|0];B=y[c+420>>2];e=y[c+372>>2];C=y[c+416>>2];q=y[c+368>>2];D=y[c+412>>2];r=y[c+364>>2];E=y[c+408>>2];s=y[c+360>>2];F=y[c+404>>2];t=y[c+356>>2];G=y[c+400>>2];u=y[c+352>>2];H=y[c+396>>2];v=y[c+348>>2];I=y[c+392>>2];w=y[c+344>>2];J=y[c+388>>2];x=y[c+340>>2];M=y[c+384>>2];A=y[c+336>>2];b=d-1|0;y[c+612>>2]=b&f;y[c+608>>2]=b&g;y[c+604>>2]=b&h;y[c+600>>2]=b&i;y[c+596>>2]=b&j;y[c+592>>2]=b&k;y[c+588>>2]=b&l;y[c+584>>2]=b&m;y[c+580>>2]=b&n;y[c+576>>2]=p|0-d;d=0-(N&1)|0;A=b&(0-(A^d&(A^0-A))^M)^M;y[c+384>>2]=A;x=J^b&(J^0-(x^d&(x^0-x)));y[c+388>>2]=x;w=I^b&(I^0-(w^d&(w^0-w)));y[c+392>>2]=w;v=H^b&(H^0-(v^d&(v^0-v)));y[c+396>>2]=v;u=G^b&(G^0-(u^d&(u^0-u)));y[c+400>>2]=u;t=F^b&(F^0-(t^d&(t^0-t)));y[c+404>>2]=t;s=E^b&(E^0-(s^d&(s^0-s)));y[c+408>>2]=s;r=D^b&(D^0-(r^d&(r^0-r)));y[c+412>>2]=r;q=C^b&(C^0-(q^d&(q^0-q)));y[c+416>>2]=q;d=B^b&(B^0-(e^d&(e^0-e)));y[c+420>>2]=d;y[c+564>>2]=f;y[c+560>>2]=g;y[c+556>>2]=h;y[c+552>>2]=i;y[c+548>>2]=j;y[c+544>>2]=k;y[c+540>>2]=l;y[c+536>>2]=m;y[c+532>>2]=n;y[c+528>>2]=p-1;b=c+528|0;ga(b,b,L);ga(b,b,34016);f=y[c+192>>2];g=y[c+528>>2];h=y[c+196>>2];i=y[c+532>>2];j=y[c+200>>2];k=y[c+536>>2];l=y[c+204>>2];m=y[c+540>>2];n=y[c+208>>2];p=y[c+544>>2];e=y[c+212>>2];B=y[c+548>>2];C=y[c+216>>2];D=y[c+552>>2];E=y[c+220>>2];F=y[c+556>>2];G=y[c+224>>2];H=y[c+560>>2];I=y[c+228>>2];J=y[c+564>>2];y[c+180>>2]=d<<1;y[c+176>>2]=q<<1;y[c+172>>2]=r<<1;y[c+168>>2]=s<<1;y[c+164>>2]=t<<1;y[c+160>>2]=u<<1;y[c+156>>2]=v<<1;y[c+152>>2]=w<<1;y[c+148>>2]=x<<1;y[c+144>>2]=A<<1;y[c+564>>2]=J-I;y[c+560>>2]=H-G;y[c+556>>2]=F-E;y[c+552>>2]=D-C;y[c+548>>2]=B-e;y[c+544>>2]=p-n;y[c+540>>2]=m-l;y[c+536>>2]=k-j;y[c+532>>2]=i-h;y[c+528>>2]=g-f;d=c+144|0;ga(d,d,o);o=c+96|0;ga(o,b,34064);fa(c+288|0,K);b=y[c+324>>2];y[c+84>>2]=0-b;f=y[c+320>>2];y[c+80>>2]=0-f;g=y[c+316>>2];y[c+76>>2]=0-g;h=y[c+312>>2];y[c+72>>2]=0-h;i=y[c+308>>2];y[c+68>>2]=0-i;j=y[c+304>>2];y[c+64>>2]=0-j;k=y[c+300>>2];y[c+60>>2]=0-k;l=y[c+296>>2];y[c+56>>2]=0-l;m=y[c+292>>2];y[c+52>>2]=0-m;n=y[c+288>>2];y[c+48>>2]=1-n;y[c+36>>2]=b;y[c+32>>2]=f;y[c+28>>2]=g;y[c+24>>2]=h;y[c+20>>2]=i;y[c+16>>2]=j;y[c+12>>2]=k;y[c+8>>2]=l;y[c+4>>2]=m;y[c>>2]=n+1;ga(a,d,c);b=c+48|0;ga(a+40|0,b,o);ga(a+80|0,o,c);ga(a+120|0,d,b);T=c+624|0;}function Cc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=T+-64|0;T=g;a:{if((c-65&255)>>>0>191){f=-1;if(!(z[a+80|0]|z[a+81|0]<<8|(z[a+82|0]<<16|z[a+83|0]<<24)|(z[a+84|0]|z[a+85|0]<<8|(z[a+86|0]<<16|z[a+87|0]<<24)))){h=z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24);if(h>>>0>=129){d=a- -64|0;e=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);f=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);i=f;h=e+128|0;f=h>>>0<128?f+1|0:f;w[d|0]=h;w[d+1|0]=h>>>8;w[d+2|0]=h>>>16;w[d+3|0]=h>>>24;w[d+4|0]=f;w[d+5|0]=f>>>8;w[d+6|0]=f>>>16;w[d+7|0]=f>>>24;f=z[a+76|0]|z[a+77|0]<<8|(z[a+78|0]<<16|z[a+79|0]<<24);d=(i|0)==-1&e>>>0>4294967167;e=d+(z[a+72|0]|z[a+73|0]<<8|(z[a+74|0]<<16|z[a+75|0]<<24))|0;f=d>>>0>e>>>0?f+1|0:f;w[a+72|0]=e;w[a+73|0]=e>>>8;w[a+74|0]=e>>>16;w[a+75|0]=e>>>24;w[a+76|0]=f;w[a+77|0]=f>>>8;w[a+78|0]=f>>>16;w[a+79|0]=f>>>24;f=a+96|0;Eb(a,f);d=(z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24))-128|0;w[a+352|0]=d;w[a+353|0]=d>>>8;w[a+354|0]=d>>>16;w[a+355|0]=d>>>24;if(d>>>0>=129){break a}if(d){t(f,a+224|0,d);}h=z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24);}d=a- -64|0;f=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);j=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);e=j;i=f+h|0;e=i>>>0>>0?e+1|0:e;w[d|0]=i;w[d+1|0]=i>>>8;w[d+2|0]=i>>>16;w[d+3|0]=i>>>24;w[d+4|0]=e;w[d+5|0]=e>>>8;w[d+6|0]=e>>>16;w[d+7|0]=e>>>24;d=(e|0)==(j|0)&f>>>0>i>>>0|e>>>0>>0;f=z[a+76|0]|z[a+77|0]<<8|(z[a+78|0]<<16|z[a+79|0]<<24);e=d+(z[a+72|0]|z[a+73|0]<<8|(z[a+74|0]<<16|z[a+75|0]<<24))|0;f=e>>>0>>0?f+1|0:f;w[a+72|0]=e;w[a+73|0]=e>>>8;w[a+74|0]=e>>>16;w[a+75|0]=e>>>24;w[a+76|0]=f;w[a+77|0]=f>>>8;w[a+78|0]=f>>>16;w[a+79|0]=f>>>24;if(z[a+356|0]){w[a+88|0]=255;w[a+89|0]=255;w[a+90|0]=255;w[a+91|0]=255;w[a+92|0]=255;w[a+93|0]=255;w[a+94|0]=255;w[a+95|0]=255;}w[a+80|0]=255;w[a+81|0]=255;w[a+82|0]=255;w[a+83|0]=255;w[a+84|0]=255;w[a+85|0]=255;w[a+86|0]=255;w[a+87|0]=255;d=a+96|0;f=0;e=256-h|0;if(e){o(d+h|0,0,e);}Eb(a,d);e=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);y[g>>2]=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);y[g+4>>2]=e;e=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);y[g+8>>2]=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);y[g+12>>2]=e;e=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);y[g+16>>2]=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);y[g+20>>2]=e;e=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);y[g+24>>2]=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);y[g+28>>2]=e;e=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);y[g+32>>2]=z[a+32|0]|z[a+33|0]<<8|(z[a+34|0]<<16|z[a+35|0]<<24);y[g+36>>2]=e;e=z[a+44|0]|z[a+45|0]<<8|(z[a+46|0]<<16|z[a+47|0]<<24);y[g+40>>2]=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);y[g+44>>2]=e;e=z[a+52|0]|z[a+53|0]<<8|(z[a+54|0]<<16|z[a+55|0]<<24);y[g+48>>2]=z[a+48|0]|z[a+49|0]<<8|(z[a+50|0]<<16|z[a+51|0]<<24);y[g+52>>2]=e;e=z[a+60|0]|z[a+61|0]<<8|(z[a+62|0]<<16|z[a+63|0]<<24);y[g+56>>2]=z[a+56|0]|z[a+57|0]<<8|(z[a+58|0]<<16|z[a+59|0]<<24);y[g+60>>2]=e;if(c){t(b,g,c);}ja(a,64);ja(d,256);}T=g- -64|0;return f}na();s();}Q(1386,1234,306,1142);s();}function se(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=T-192|0;T=d;y[d+128>>2]=0;y[d+132>>2]=0;y[d+136>>2]=0;y[d+140>>2]=0;y[d+144>>2]=0;y[d+148>>2]=0;y[d+152>>2]=0;y[d+156>>2]=0;y[d+96>>2]=0;y[d+100>>2]=0;y[d+104>>2]=0;y[d+108>>2]=0;y[d+112>>2]=0;y[d+116>>2]=0;y[d+120>>2]=0;y[d+124>>2]=0;e=y[9821];y[d+160>>2]=y[9820];y[d+164>>2]=e;e=y[9823];y[d+168>>2]=y[9822];y[d+172>>2]=e;e=y[9825];y[d+176>>2]=y[9824];y[d+180>>2]=e;e=y[9827];y[d+184>>2]=y[9826];y[d+188>>2]=e;e=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);y[d+64>>2]=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);y[d+68>>2]=e;e=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);y[d+72>>2]=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);y[d+76>>2]=e;e=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);y[d+80>>2]=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);y[d+84>>2]=e;e=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);y[d+88>>2]=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);y[d+92>>2]=e;f=d+128|0;e=d- -64|0;Ec(f,e);Pa(f);c=y[d+156>>2];y[d+24>>2]=y[d+152>>2];y[d+28>>2]=c;c=y[d+148>>2];y[d+16>>2]=y[d+144>>2];y[d+20>>2]=c;c=y[d+140>>2];y[d+8>>2]=y[d+136>>2];y[d+12>>2]=c;c=y[d+132>>2];y[d>>2]=y[d+128>>2];y[d+4>>2]=c;y[d+120>>2]=0;y[d+124>>2]=0;y[d+112>>2]=0;y[d+116>>2]=0;y[d+104>>2]=0;y[d+108>>2]=0;y[d+96>>2]=0;y[d+100>>2]=0;c=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);y[d+64>>2]=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[d+68>>2]=c;c=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[d+72>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[d+76>>2]=c;c=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[d+80>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[d+84>>2]=c;c=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[d+88>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[d+92>>2]=c;y[d+56>>2]=0;y[d+60>>2]=0;y[d+48>>2]=0;y[d+52>>2]=0;y[d+40>>2]=0;y[d+44>>2]=0;y[d+32>>2]=0;y[d+36>>2]=0;De(e,d);b=y[d+124>>2];y[d+184>>2]=y[d+120>>2];y[d+188>>2]=b;b=y[d+116>>2];y[d+176>>2]=y[d+112>>2];y[d+180>>2]=b;b=y[d+108>>2];y[d+168>>2]=y[d+104>>2];y[d+172>>2]=b;b=y[d+100>>2];y[d+160>>2]=y[d+96>>2];y[d+164>>2]=b;b=y[d+92>>2];y[d+152>>2]=y[d+88>>2];y[d+156>>2]=b;b=y[d+84>>2];y[d+144>>2]=y[d+80>>2];y[d+148>>2]=b;b=y[d+76>>2];y[d+136>>2]=y[d+72>>2];y[d+140>>2]=b;b=y[d+68>>2];y[d+128>>2]=y[d+64>>2];y[d+132>>2]=b;Pa(f);c=y[d+156>>2];b=y[d+152>>2];w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;w[a+28|0]=c;w[a+29|0]=c>>>8;w[a+30|0]=c>>>16;w[a+31|0]=c>>>24;c=y[d+148>>2];b=y[d+144>>2];w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;w[a+20|0]=c;w[a+21|0]=c>>>8;w[a+22|0]=c>>>16;w[a+23|0]=c>>>24;c=y[d+140>>2];b=y[d+136>>2];w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;w[a+12|0]=c;w[a+13|0]=c>>>8;w[a+14|0]=c>>>16;w[a+15|0]=c>>>24;c=y[d+132>>2];b=y[d+128>>2];w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=c;w[a+5|0]=c>>>8;w[a+6|0]=c>>>16;w[a+7|0]=c>>>24;ja(f,64);T=d+192|0;}function ta(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{if(!a){break a}d=a-8|0;b=y[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&2)){break a}b=y[d>>2];d=d-b|0;if(d>>>0>2];if(b>>>0<=255){e=y[d+8>>2];if((e|0)!=(c|0)){break e}j=40692,k=y[10173]&Bi(-2,b>>>3|0),y[j>>2]=k;break b}h=y[d+24>>2];if((c|0)!=(d|0)){b=y[d+8>>2];y[b+12>>2]=c;y[c+8>>2]=b;break c}e=y[d+20>>2];if(e){b=d+20|0;}else {e=y[d+16>>2];if(!e){break d}b=d+16|0;}while(1){g=b;c=e;b=c+20|0;e=y[c+20>>2];if(e){continue}b=c+16|0;e=y[c+16>>2];if(e){continue}break}y[g>>2]=0;break c}b=y[f+4>>2];if((b&3)!=3){break b}y[10175]=a;y[f+4>>2]=b&-2;y[d+4>>2]=a|1;y[f>>2]=a;return}y[e+12>>2]=c;y[c+8>>2]=e;break b}c=0;}if(!h){break b}b=y[d+28>>2];e=b<<2;f:{if(y[e+40996>>2]==(d|0)){y[e+40996>>2]=c;if(c){break f}j=40696,k=y[10174]&Bi(-2,b),y[j>>2]=k;break b}g:{if(y[h+16>>2]==(d|0)){y[h+16>>2]=c;break g}y[h+20>>2]=c;}if(!c){break b}}y[c+24>>2]=h;b=y[d+16>>2];if(b){y[c+16>>2]=b;y[b+24>>2]=c;}b=y[d+20>>2];if(!b){break b}y[c+20>>2]=b;y[b+24>>2]=c;}if(d>>>0>=f>>>0){break a}b=y[f+4>>2];if(!(b&1)){break a}h:{i:{j:{k:{if(!(b&2)){if(y[10179]==(f|0)){y[10179]=d;a=y[10176]+a|0;y[10176]=a;y[d+4>>2]=a|1;if(y[10178]!=(d|0)){break a}y[10175]=0;y[10178]=0;return}i=y[10178];if((i|0)==(f|0)){y[10178]=d;a=y[10175]+a|0;y[10175]=a;y[d+4>>2]=a|1;y[a+d>>2]=a;return}a=(b&-8)+a|0;c=y[f+12>>2];if(b>>>0<=255){e=y[f+8>>2];if((e|0)==(c|0)){j=40692,k=y[10173]&Bi(-2,b>>>3|0),y[j>>2]=k;break i}y[e+12>>2]=c;y[c+8>>2]=e;break i}h=y[f+24>>2];if((c|0)!=(f|0)){b=y[f+8>>2];y[b+12>>2]=c;y[c+8>>2]=b;break j}e=y[f+20>>2];if(e){b=f+20|0;}else {e=y[f+16>>2];if(!e){break k}b=f+16|0;}while(1){g=b;c=e;b=c+20|0;e=y[c+20>>2];if(e){continue}b=c+16|0;e=y[c+16>>2];if(e){continue}break}y[g>>2]=0;break j}y[f+4>>2]=b&-2;y[d+4>>2]=a|1;y[a+d>>2]=a;break h}c=0;}if(!h){break i}b=y[f+28>>2];e=b<<2;l:{if(y[e+40996>>2]==(f|0)){y[e+40996>>2]=c;if(c){break l}j=40696,k=y[10174]&Bi(-2,b),y[j>>2]=k;break i}m:{if(y[h+16>>2]==(f|0)){y[h+16>>2]=c;break m}y[h+20>>2]=c;}if(!c){break i}}y[c+24>>2]=h;b=y[f+16>>2];if(b){y[c+16>>2]=b;y[b+24>>2]=c;}b=y[f+20>>2];if(!b){break i}y[c+20>>2]=b;y[b+24>>2]=c;}y[d+4>>2]=a|1;y[a+d>>2]=a;if((d|0)!=(i|0)){break h}y[10175]=a;return}if(a>>>0<=255){b=(a&248)+40732|0;e=y[10173];a=1<<(a>>>3);n:{if(!(e&a)){y[10173]=a|e;a=b;break n}a=y[b+8>>2];}y[b+8>>2]=d;y[a+12>>2]=d;y[d+12>>2]=b;y[d+8>>2]=a;return}c=31;if(a>>>0<=16777215){b=H(a>>>8|0);c=(a>>>38-b&1|b<<1)^62;}y[d+28>>2]=c;y[d+16>>2]=0;y[d+20>>2]=0;b=(c<<2)+40996|0;o:{p:{e=y[10174];g=1<>2]=d;c=24;break q}c=a<<((c|0)!=31?25-(c>>>1|0)|0:0);b=y[b>>2];while(1){e=b;if((y[b+4>>2]&-8)==(a|0)){break p}b=c>>>29|0;c=c<<1;g=(b&4)+e|0;b=y[g+16>>2];if(b){continue}break}y[g+16>>2]=d;b=e;c=24;}e=d;g=d;a=8;break o}b=y[e+8>>2];y[b+12>>2]=d;y[e+8>>2]=d;c=8;g=0;a=24;}y[c+d>>2]=b;y[d+12>>2]=e;y[a+d>>2]=g;a=y[10181]-1|0;y[10181]=a?a:-1;}}function Ge(a,b,c){var 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,x=0,A=0;d=T-224|0;T=d;j=y[c+16>>2];e=c- -64|0;k=y[e>>2];l=y[c+80>>2];m=y[c+32>>2];n=y[c+48>>2];f=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);o=y[c+20>>2];p=y[c+68>>2];q=y[c+84>>2];r=y[c+36>>2];s=y[c+52>>2];g=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);t=y[c+24>>2];u=y[c+72>>2];v=y[c+88>>2];x=y[c+40>>2];A=y[c+56>>2];h=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);i=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);b=i^(y[c+44>>2]&y[c+60>>2]^(y[c+28>>2]^(y[c+92>>2]^y[c+76>>2])));w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=x&A^(u^v^t)^g;w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=r&s^(p^q^o)^f;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=m&n^(j^(k^l))^h;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;a=y[c+92>>2];y[d+216>>2]=y[c+88>>2];y[d+220>>2]=a;a=y[c+84>>2];y[d+208>>2]=y[c+80>>2];y[d+212>>2]=a;a=y[e+4>>2];y[d+176>>2]=y[e>>2];y[d+180>>2]=a;a=y[c+76>>2];y[d+184>>2]=y[c+72>>2];y[d+188>>2]=a;a=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=a;a=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=a;a=d+192|0;ia(a,d+176|0,d+160|0);b=y[d+204>>2];y[c+88>>2]=y[d+200>>2];y[c+92>>2]=b;b=y[d+196>>2];y[c+80>>2]=y[d+192>>2];y[c+84>>2]=b;b=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=b;b=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=b;b=y[e+4>>2];y[d+128>>2]=y[e>>2];y[d+132>>2]=b;b=y[c+76>>2];y[d+136>>2]=y[c+72>>2];y[d+140>>2]=b;ia(a,d+144|0,d+128|0);b=y[d+204>>2];y[c+72>>2]=y[d+200>>2];y[c+76>>2]=b;b=y[d+196>>2];y[e>>2]=y[d+192>>2];y[e+4>>2]=b;b=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=b;b=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=b;b=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=b;b=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=b;ia(a,d+112|0,d+96|0);b=y[d+204>>2];y[c+56>>2]=y[d+200>>2];y[c+60>>2]=b;b=y[d+196>>2];y[c+48>>2]=y[d+192>>2];y[c+52>>2]=b;b=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=b;b=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=b;b=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=b;b=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=b;ia(a,d+80|0,d- -64|0);b=y[d+204>>2];y[c+40>>2]=y[d+200>>2];y[c+44>>2]=b;b=y[d+196>>2];y[c+32>>2]=y[d+192>>2];y[c+36>>2]=b;b=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=b;b=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=b;b=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=b;b=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=b;ia(a,d+48|0,d+32|0);b=y[d+204>>2];y[c+24>>2]=y[d+200>>2];y[c+28>>2]=b;b=y[d+196>>2];y[c+16>>2]=y[d+192>>2];y[c+20>>2]=b;b=y[d+212>>2];y[d+16>>2]=y[d+208>>2];y[d+20>>2]=b;b=y[d+220>>2];y[d+24>>2]=y[d+216>>2];y[d+28>>2]=b;b=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=b;b=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=b;ia(a,d+16|0,d);a=y[d+192>>2];b=y[d+196>>2];e=y[d+200>>2];y[c+12>>2]=i^y[d+204>>2];y[c+8>>2]=e^g;y[c+4>>2]=b^f;y[c>>2]=a^h;T=d+224|0;}function Ee(a,b,c){var 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,x=0;d=T-224|0;T=d;g=y[c+16>>2];e=c- -64|0;f=y[e>>2];j=y[c+80>>2];k=y[c+32>>2];l=y[c+48>>2];h=y[c+20>>2];m=y[c+68>>2];n=y[c+84>>2];o=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);p=y[c+36>>2];q=y[c+52>>2];i=y[c+24>>2];r=y[c+72>>2];s=y[c+88>>2];t=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);u=y[c+40>>2];v=y[c+56>>2];x=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);b=y[c+44>>2]&y[c+60>>2]^(y[c+28>>2]^(y[c+76>>2]^(y[c+92>>2]^(z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24)))));w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;i=u&v^(i^(s^t^r));w[a+8|0]=i;w[a+9|0]=i>>>8;w[a+10|0]=i>>>16;w[a+11|0]=i>>>24;h=p&q^(h^(n^o^m));w[a+4|0]=h;w[a+5|0]=h>>>8;w[a+6|0]=h>>>16;w[a+7|0]=h>>>24;g=k&l^(g^(f^(j^x)));w[a|0]=g;w[a+1|0]=g>>>8;w[a+2|0]=g>>>16;w[a+3|0]=g>>>24;a=y[c+92>>2];y[d+216>>2]=y[c+88>>2];y[d+220>>2]=a;a=y[c+84>>2];y[d+208>>2]=y[c+80>>2];y[d+212>>2]=a;a=y[e+4>>2];y[d+176>>2]=y[e>>2];y[d+180>>2]=a;a=y[c+76>>2];y[d+184>>2]=y[c+72>>2];y[d+188>>2]=a;a=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=a;a=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=a;a=d+192|0;ia(a,d+176|0,d+160|0);f=y[d+204>>2];y[c+88>>2]=y[d+200>>2];y[c+92>>2]=f;f=y[d+196>>2];y[c+80>>2]=y[d+192>>2];y[c+84>>2]=f;f=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=f;f=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=f;f=y[e+4>>2];y[d+128>>2]=y[e>>2];y[d+132>>2]=f;f=y[c+76>>2];y[d+136>>2]=y[c+72>>2];y[d+140>>2]=f;ia(a,d+144|0,d+128|0);f=y[d+204>>2];y[c+72>>2]=y[d+200>>2];y[c+76>>2]=f;f=y[d+196>>2];y[e>>2]=y[d+192>>2];y[e+4>>2]=f;e=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=e;e=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=e;e=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=e;e=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=e;ia(a,d+112|0,d+96|0);e=y[d+204>>2];y[c+56>>2]=y[d+200>>2];y[c+60>>2]=e;e=y[d+196>>2];y[c+48>>2]=y[d+192>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=e;e=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=e;e=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=e;e=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=e;ia(a,d+80|0,d- -64|0);e=y[d+204>>2];y[c+40>>2]=y[d+200>>2];y[c+44>>2]=e;e=y[d+196>>2];y[c+32>>2]=y[d+192>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=e;e=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=e;e=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=e;ia(a,d+48|0,d+32|0);e=y[d+204>>2];y[c+24>>2]=y[d+200>>2];y[c+28>>2]=e;e=y[d+196>>2];y[c+16>>2]=y[d+192>>2];y[c+20>>2]=e;e=y[d+212>>2];y[d+16>>2]=y[d+208>>2];y[d+20>>2]=e;e=y[d+220>>2];y[d+24>>2]=y[d+216>>2];y[d+28>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;ia(a,d+16|0,d);a=y[d+192>>2];e=y[d+196>>2];f=y[d+200>>2];y[c+12>>2]=b^y[d+204>>2];y[c+8>>2]=f^i;y[c+4>>2]=e^h;y[c>>2]=a^g;T=d+224|0;}function bc(a,b,c,d,e){var 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,x=0,y=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;a:{if(!d){x=1634760805;y=2036477234;A=857760878;B=1797285236;break a}y=z[d+8|0]|z[d+9|0]<<8|(z[d+10|0]<<16|z[d+11|0]<<24);A=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);x=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);B=z[d+12|0]|z[d+13|0]<<8|(z[d+14|0]<<16|z[d+15|0]<<24);}d=x;E=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);k=E;F=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);o=F;G=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);g=G;H=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);f=H;h=A;I=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);l=I;J=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);i=J;K=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);p=K;L=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);m=L;b=y;M=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);n=M;q=B;N=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);s=N;O=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);r=O;P=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);c=P;while(1){t=Bi(h+k|0,7)^m;C=Bi(t+h|0,9)^r;u=Bi(c+d|0,7)^f;D=Bi(u+d|0,9)^p;Q=Bi(D+u|0,13)^c;v=Bi(n+q|0,7)^g;i=Bi(v+q|0,9)^i;g=Bi(i+v|0,13)^n;f=Bi(i+g|0,18)^q;j=Bi(b+l|0,7)^s;c=Q^Bi(f+j|0,7);r=C^Bi(c+f|0,9);s=Bi(c+r|0,13)^j;q=Bi(r+s|0,18)^f;m=j;j=Bi(b+j|0,9)^o;f=Bi(m+j|0,13)^l;b=Bi(f+j|0,18)^b;n=Bi(b+t|0,7)^g;p=Bi(n+b|0,9)^D;m=Bi(n+p|0,13)^t;b=Bi(p+m|0,18)^b;g=Bi(t+C|0,13)^k;h=Bi(g+C|0,18)^h;l=Bi(h+u|0,7)^f;i=Bi(l+h|0,9)^i;f=Bi(i+l|0,13)^u;h=Bi(i+f|0,18)^h;d=Bi(D+Q|0,18)^d;k=Bi(d+v|0,7)^g;o=Bi(k+d|0,9)^j;g=Bi(k+o|0,13)^v;d=Bi(o+g|0,18)^d;R=R+2|0;if(R>>>0>>0){continue}break}e=q+B|0;w[a+60|0]=e;w[a+61|0]=e>>>8;w[a+62|0]=e>>>16;w[a+63|0]=e>>>24;e=s+N|0;w[a+56|0]=e;w[a+57|0]=e>>>8;w[a+58|0]=e>>>16;w[a+59|0]=e>>>24;e=r+O|0;w[a+52|0]=e;w[a+53|0]=e>>>8;w[a+54|0]=e>>>16;w[a+55|0]=e>>>24;c=c+P|0;w[a+48|0]=c;w[a+49|0]=c>>>8;w[a+50|0]=c>>>16;w[a+51|0]=c>>>24;c=n+M|0;w[a+44|0]=c;w[a+45|0]=c>>>8;w[a+46|0]=c>>>16;w[a+47|0]=c>>>24;b=b+y|0;w[a+40|0]=b;w[a+41|0]=b>>>8;w[a+42|0]=b>>>16;w[a+43|0]=b>>>24;b=m+L|0;w[a+36|0]=b;w[a+37|0]=b>>>8;w[a+38|0]=b>>>16;w[a+39|0]=b>>>24;b=p+K|0;w[a+32|0]=b;w[a+33|0]=b>>>8;w[a+34|0]=b>>>16;w[a+35|0]=b>>>24;b=i+J|0;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=l+I|0;w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;b=h+A|0;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=f+H|0;w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;b=g+G|0;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=o+F|0;w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=k+E|0;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=d+x|0;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;}function qe(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0;if(b-65>>>0<4294967232|g>>>0>64){a=-1;}else {j=T;r=j;j=j-512&-64;T=j;a:{b:{if(!(!(d|e)|c)|(!a|(b-65&255)>>>0<=191)|(!(g?f:1)|g>>>0>=65)){break b}c:{if(g){if(!f){break b}d:{if(!h){m=725511199;n=-1694144372;l=-1377402159;h=1359893119;break d}m=(z[h+8|0]|z[h+9|0]<<8|(z[h+10|0]<<16|z[h+11|0]<<24))^725511199;n=(z[h+12|0]|z[h+13|0]<<8|(z[h+14|0]<<16|z[h+15|0]<<24))^-1694144372;l=(z[h|0]|z[h+1|0]<<8|(z[h+2|0]<<16|z[h+3|0]<<24))^-1377402159;h=(z[h+4|0]|z[h+5|0]<<8|(z[h+6|0]<<16|z[h+7|0]<<24))^1359893119;}e:{if(!i){k=327033209;p=1541459225;q=-79577749;i=528734635;break e}k=(z[i+8|0]|z[i+9|0]<<8|(z[i+10|0]<<16|z[i+11|0]<<24))^327033209;p=(z[i+12|0]|z[i+13|0]<<8|(z[i+14|0]<<16|z[i+15|0]<<24))^1541459225;q=(z[i|0]|z[i+1|0]<<8|(z[i+2|0]<<16|z[i+3|0]<<24))^-79577749;i=(z[i+4|0]|z[i+5|0]<<8|(z[i+6|0]<<16|z[i+7|0]<<24))^528734635;}o(j- -64|0,0,293);y[j+56>>2]=k;y[j+60>>2]=p;y[j+48>>2]=q;y[j+52>>2]=i;y[j+40>>2]=m;y[j+44>>2]=n;y[j+32>>2]=l;y[j+36>>2]=h;y[j+24>>2]=1595750129;y[j+28>>2]=-1521486534;y[j+16>>2]=-23791573;y[j+20>>2]=1013904242;y[j+8>>2]=-2067093701;y[j+12>>2]=-1150833019;y[j>>2]=(g<<8|b)^-222443256;y[j+4>>2]=g>>>24^1779033703;h=128;i=128-g|0;if(i){o((j+384|0)+g|0,0,i);}if(g){t(j+384|0,f,g);}f=j+384|0;t(j+96|0,f,128);y[j+352>>2]=128;ja(f,128);break c}f:{if(!h){m=725511199;n=-1694144372;g=1359893119;f=-1377402159;break f}m=(z[h+8|0]|z[h+9|0]<<8|(z[h+10|0]<<16|z[h+11|0]<<24))^725511199;n=(z[h+12|0]|z[h+13|0]<<8|(z[h+14|0]<<16|z[h+15|0]<<24))^-1694144372;g=(z[h+4|0]|z[h+5|0]<<8|(z[h+6|0]<<16|z[h+7|0]<<24))^1359893119;f=(z[h|0]|z[h+1|0]<<8|(z[h+2|0]<<16|z[h+3|0]<<24))^-1377402159;}g:{if(!i){k=327033209;p=1541459225;l=-79577749;i=528734635;break g}k=(z[i+8|0]|z[i+9|0]<<8|(z[i+10|0]<<16|z[i+11|0]<<24))^327033209;p=(z[i+12|0]|z[i+13|0]<<8|(z[i+14|0]<<16|z[i+15|0]<<24))^1541459225;l=(z[i|0]|z[i+1|0]<<8|(z[i+2|0]<<16|z[i+3|0]<<24))^-79577749;i=(z[i+4|0]|z[i+5|0]<<8|(z[i+6|0]<<16|z[i+7|0]<<24))^528734635;}h=0;o(j- -64|0,0,293);y[j+56>>2]=k;y[j+60>>2]=p;y[j+48>>2]=l;y[j+52>>2]=i;y[j+40>>2]=m;y[j+44>>2]=n;y[j+32>>2]=f;y[j+36>>2]=g;y[j+24>>2]=1595750129;y[j+28>>2]=-1521486534;y[j+16>>2]=-23791573;y[j+20>>2]=1013904242;y[j+8>>2]=-2067093701;y[j+12>>2]=-1150833019;y[j>>2]=b^-222443256;y[j+4>>2]=1779033703;}if(d|e){l=j+96|0;f=256-h|0;m=f;if(!e&d>>>0>f>>>0|e){n=j+224|0;while(1){if(f){t(h+l|0,c,f);}y[j+352>>2]=y[j+352>>2]+f;g=y[j+68>>2];i=g;h=y[j+64>>2];k=h+128|0;g=k>>>0<128?i+1|0:i;y[j+64>>2]=k;y[j+68>>2]=g;g=y[j+76>>2];h=(i|0)==-1&h>>>0>4294967167;i=h;h=h+y[j+72>>2]|0;g=i>>>0>h>>>0?g+1|0:g;y[j+72>>2]=h;y[j+76>>2]=g;Eb(j,l);t(l,n,128);k=y[j+352>>2];h=k-128|0;y[j+352>>2]=h;c=c+f|0;g=m;i=d-g|0;f=384-k|0;m=f;e=e-(d>>>0>>0)|0;d=i;if(!e&i>>>0>f>>>0|e){continue}break}}if(d){t(h+l|0,c,d);}y[j+352>>2]=d+y[j+352>>2];}Cc(j,a,b);T=r;break a}na();s();}a=0;}return a}function Lc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=a+b|0;c=y[a+4>>2];a:{b:{if(c&1){break b}if(!(c&2)){break a}c=y[a>>2];b=c+b|0;c:{d:{e:{a=a-c|0;if((a|0)!=y[10178]){d=y[a+12>>2];if(c>>>0<=255){e=y[a+8>>2];if((e|0)!=(d|0)){break e}j=40692,k=y[10173]&Bi(-2,c>>>3|0),y[j>>2]=k;break b}g=y[a+24>>2];if((a|0)!=(d|0)){c=y[a+8>>2];y[c+12>>2]=d;y[d+8>>2]=c;break c}e=y[a+20>>2];if(e){c=a+20|0;}else {e=y[a+16>>2];if(!e){break d}c=a+16|0;}while(1){h=c;d=e;c=d+20|0;e=y[d+20>>2];if(e){continue}c=d+16|0;e=y[d+16>>2];if(e){continue}break}y[h>>2]=0;break c}c=y[f+4>>2];if((c&3)!=3){break b}y[10175]=b;y[f+4>>2]=c&-2;y[a+4>>2]=b|1;y[f>>2]=b;return}y[e+12>>2]=d;y[d+8>>2]=e;break b}d=0;}if(!g){break b}c=y[a+28>>2];e=c<<2;f:{if(y[e+40996>>2]==(a|0)){y[e+40996>>2]=d;if(d){break f}j=40696,k=y[10174]&Bi(-2,c),y[j>>2]=k;break b}g:{if(y[g+16>>2]==(a|0)){y[g+16>>2]=d;break g}y[g+20>>2]=d;}if(!d){break b}}y[d+24>>2]=g;c=y[a+16>>2];if(c){y[d+16>>2]=c;y[c+24>>2]=d;}c=y[a+20>>2];if(!c){break b}y[d+20>>2]=c;y[c+24>>2]=d;}h:{i:{j:{k:{c=y[f+4>>2];if(!(c&2)){if(y[10179]==(f|0)){y[10179]=a;b=y[10176]+b|0;y[10176]=b;y[a+4>>2]=b|1;if(y[10178]!=(a|0)){break a}y[10175]=0;y[10178]=0;return}i=y[10178];if((i|0)==(f|0)){y[10178]=a;b=y[10175]+b|0;y[10175]=b;y[a+4>>2]=b|1;y[a+b>>2]=b;return}b=(c&-8)+b|0;d=y[f+12>>2];if(c>>>0<=255){e=y[f+8>>2];if((e|0)==(d|0)){j=40692,k=y[10173]&Bi(-2,c>>>3|0),y[j>>2]=k;break i}y[e+12>>2]=d;y[d+8>>2]=e;break i}g=y[f+24>>2];if((d|0)!=(f|0)){c=y[f+8>>2];y[c+12>>2]=d;y[d+8>>2]=c;break j}e=y[f+20>>2];if(e){c=f+20|0;}else {e=y[f+16>>2];if(!e){break k}c=f+16|0;}while(1){h=c;d=e;c=d+20|0;e=y[d+20>>2];if(e){continue}c=d+16|0;e=y[d+16>>2];if(e){continue}break}y[h>>2]=0;break j}y[f+4>>2]=c&-2;y[a+4>>2]=b|1;y[a+b>>2]=b;break h}d=0;}if(!g){break i}c=y[f+28>>2];e=c<<2;l:{if(y[e+40996>>2]==(f|0)){y[e+40996>>2]=d;if(d){break l}j=40696,k=y[10174]&Bi(-2,c),y[j>>2]=k;break i}m:{if(y[g+16>>2]==(f|0)){y[g+16>>2]=d;break m}y[g+20>>2]=d;}if(!d){break i}}y[d+24>>2]=g;c=y[f+16>>2];if(c){y[d+16>>2]=c;y[c+24>>2]=d;}c=y[f+20>>2];if(!c){break i}y[d+20>>2]=c;y[c+24>>2]=d;}y[a+4>>2]=b|1;y[a+b>>2]=b;if((a|0)!=(i|0)){break h}y[10175]=b;return}if(b>>>0<=255){c=(b&248)+40732|0;d=y[10173];b=1<<(b>>>3);n:{if(!(d&b)){y[10173]=b|d;b=c;break n}b=y[c+8>>2];}y[c+8>>2]=a;y[b+12>>2]=a;y[a+12>>2]=c;y[a+8>>2]=b;return}d=31;if(b>>>0<=16777215){c=H(b>>>8|0);d=(b>>>38-c&1|c<<1)^62;}y[a+28>>2]=d;y[a+16>>2]=0;y[a+20>>2]=0;c=(d<<2)+40996|0;o:{e=y[10174];h=1<>2]=a;y[a+24>>2]=c;break p}d=b<<((d|0)!=31?25-(d>>>1|0)|0:0);c=y[c>>2];while(1){e=c;if((y[c+4>>2]&-8)==(b|0)){break o}c=d>>>29|0;d=d<<1;h=e+(c&4)|0;c=y[h+16>>2];if(c){continue}break}y[h+16>>2]=a;y[a+24>>2]=e;}y[a+12>>2]=a;y[a+8>>2]=a;return}b=y[e+8>>2];y[b+12>>2]=a;y[e+8>>2]=a;y[a+24>>2]=0;y[a+12>>2]=e;y[a+8>>2]=b;}}function Bf(a,b,c,d,e,f,g,h,i,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;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=T-400|0;T=k;if(c){y[c>>2]=0;y[c+4>>2]=0;}if(d){w[d|0]=255;}p=i;i=j;j=-1;m=f;a:{b:{l=m>>>0<17;f=g;c:{if(l&!g){break c}l=g-l|0;q=l;g=m-17|0;if(!l&g>>>0>=4294967279|l){break b}n=k+32|0;o=a+32|0;_a(n,64,0,o,a);l=k+96|0;Ga(l,n);ja(n,64);la(l,h,p,i);la(l,39312,0-p&15,0);y[k+88>>2]=0;y[k+92>>2]=0;y[k+80>>2]=0;y[k+84>>2]=0;y[k+72>>2]=0;y[k+76>>2]=0;y[k+64>>2]=0;y[k+68>>2]=0;y[k+56>>2]=0;y[k+60>>2]=0;y[k+48>>2]=0;y[k+52>>2]=0;y[k+40>>2]=0;y[k+44>>2]=0;y[k+32>>2]=0;y[k+36>>2]=0;w[k+32|0]=z[e|0];gb(n,n,64,0,o,1,a);h=z[k+32|0];w[k+32|0]=z[e|0];la(l,n,64,0);e=e+1|0;la(l,e,g,q);la(l,39312,m-1&15,0);y[k+24>>2]=p;y[k+28>>2]=i;i=k+24|0;la(l,i,8,0);m=m+47|0;f=m>>>0<47?f+1|0:f;y[k+24>>2]=m;y[k+28>>2]=f;la(l,i,8,0);Fa(l,k);ja(l,256);if($a(k,e+g|0,16)){ja(k,16);break c}gb(b,e,g,q,o,2,a);w[a+36|0]=z[a+36|0]^z[k|0];w[a+37|0]=z[a+37|0]^z[k+1|0];w[a+38|0]=z[a+38|0]^z[k+2|0];w[a+39|0]=z[a+39|0]^z[k+3|0];w[a+40|0]=z[a+40|0]^z[k+4|0];w[a+41|0]=z[a+41|0]^z[k+5|0];w[a+42|0]=z[a+42|0]^z[k+6|0];w[a+43|0]=z[a+43|0]^z[k+7|0];Ke(o);d:{if(!(h&2)){if(!ya(o,4)){break d}}b=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);y[k+376>>2]=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);y[k+380>>2]=b;b=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);y[k+368>>2]=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);y[k+372>>2]=b;b=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);y[k+360>>2]=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);y[k+364>>2]=b;b=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);y[k+352>>2]=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);y[k+356>>2]=b;b=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);y[k+384>>2]=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);y[k+388>>2]=b;b=k+352|0;Yb(b,b,40,0,o,a);b=y[k+380>>2];e=y[k+376>>2];w[a+24|0]=e;w[a+25|0]=e>>>8;w[a+26|0]=e>>>16;w[a+27|0]=e>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[k+372>>2];e=y[k+368>>2];w[a+16|0]=e;w[a+17|0]=e>>>8;w[a+18|0]=e>>>16;w[a+19|0]=e>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[k+364>>2];e=y[k+360>>2];w[a+8|0]=e;w[a+9|0]=e>>>8;w[a+10|0]=e>>>16;w[a+11|0]=e>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[k+356>>2];e=y[k+352>>2];w[a|0]=e;w[a+1|0]=e>>>8;w[a+2|0]=e>>>16;w[a+3|0]=e>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=y[k+384>>2];e=y[k+388>>2];w[a+32|0]=1;w[a+33|0]=0;w[a+34|0]=0;w[a+35|0]=0;w[a+36|0]=b;w[a+37|0]=b>>>8;w[a+38|0]=b>>>16;w[a+39|0]=b>>>24;w[a+40|0]=e;w[a+41|0]=e>>>8;w[a+42|0]=e>>>16;w[a+43|0]=e>>>24;}if(c){y[c>>2]=g;y[c+4>>2]=q;}j=0;if(!d){break c}w[d|0]=h;}T=k+400|0;break a}na();s();}return j|0}function ne(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;h=T+-64|0;T=h;l=Da(32);a:{if(!l){a=-22;break a}y[h+28>>2]=0;y[h+32>>2]=0;y[h+24>>2]=16;y[h+20>>2]=e;y[h+16>>2]=d;y[h+12>>2]=c;y[h+8>>2]=32;y[h+4>>2]=l;y[h+36>>2]=0;y[h+40>>2]=0;y[h+60>>2]=0;y[h+56>>2]=1;y[h+52>>2]=1;y[h+48>>2]=b;y[h+44>>2]=a;a=Sb(h+4|0,g);b:{if(a){ja(l,32);break b}c:{if(!f){break c}i=h+4|0;e=T-32|0;T=e;a=-31;d:{e:{f:{switch(g-1|0){case 1:a=z[1439]|z[1440]<<8|(z[1441]<<16|z[1442]<<24);b=z[1435]|z[1436]<<8|(z[1437]<<16|z[1438]<<24);w[f+5|0]=b;w[f+6|0]=b>>>8;w[f+7|0]=b>>>16;w[f+8|0]=b>>>24;w[f+9|0]=a;w[f+10|0]=a>>>8;w[f+11|0]=a>>>16;w[f+12|0]=a>>>24;a=z[1434]|z[1435]<<8|(z[1436]<<16|z[1437]<<24);b=z[1430]|z[1431]<<8|(z[1432]<<16|z[1433]<<24);w[f|0]=b;w[f+1|0]=b>>>8;w[f+2|0]=b>>>16;w[f+3|0]=b>>>24;w[f+4|0]=a;w[f+5|0]=a>>>8;w[f+6|0]=a>>>16;w[f+7|0]=a>>>24;c=-12;b=12;break e;case 0:break f;default:break d}}a=z[1426]|z[1427]<<8|(z[1428]<<16|z[1429]<<24);w[f+8|0]=a;w[f+9|0]=a>>>8;w[f+10|0]=a>>>16;w[f+11|0]=a>>>24;a=z[1422]|z[1423]<<8|(z[1424]<<16|z[1425]<<24);b=z[1418]|z[1419]<<8|(z[1420]<<16|z[1421]<<24);w[f|0]=b;w[f+1|0]=b>>>8;w[f+2|0]=b>>>16;w[f+3|0]=b>>>24;w[f+4|0]=a;w[f+5|0]=a>>>8;w[f+6|0]=a>>>16;w[f+7|0]=a>>>24;c=-11;b=11;}a=nc(i);if(a){break d}w[e+13|0]=0;w[e+11|0]=49;w[e+12|0]=57;g:{c=c+128|0;d=e+11|0;a=Ha(d);if(c>>>0<=a>>>0){break g}b=b+f|0;g=a+1|0;if(g){t(b,d,g);}j=c-a|0;if(j>>>0<4){break g}g=a+b|0;w[g|0]=36;w[g+1|0]=109;w[g+2|0]=61;w[g+3|0]=0;a=y[i+44>>2];b=10;while(1){h:{c=b;b=b-1|0;k=b+(e+22|0)|0;d=(a>>>0)/10|0;w[k|0]=a-E(d,10)|48;if(a>>>0<10){break h}a=d;if(b){continue}}break}a=11-c|0;if(a){t(e+11|0,k,a);}b=e+11|0;w[b+a|0]=0;d=j-3|0;a=Ha(b);if(d>>>0<=a>>>0){break g}c=g+3|0;g=a+1|0;if(g){t(c,b,g);}j=d-a|0;if(j>>>0<4){break g}g=a+c|0;w[g|0]=44;w[g+1|0]=116;w[g+2|0]=61;w[g+3|0]=0;a=y[i+40>>2];b=10;while(1){i:{c=b;b=b-1|0;k=b+(e+22|0)|0;d=(a>>>0)/10|0;w[k|0]=a-E(d,10)|48;if(a>>>0<10){break i}a=d;if(b){continue}}break}a=11-c|0;if(a){t(e+11|0,k,a);}b=e+11|0;w[b+a|0]=0;d=j-3|0;a=Ha(b);if(d>>>0<=a>>>0){break g}c=g+3|0;g=a+1|0;if(g){t(c,b,g);}j=d-a|0;if(j>>>0<4){break g}g=a+c|0;w[g|0]=44;w[g+1|0]=112;w[g+2|0]=61;w[g+3|0]=0;a=y[i+48>>2];b=10;while(1){j:{c=b;b=b-1|0;k=b+(e+22|0)|0;d=(a>>>0)/10|0;w[k|0]=a-E(d,10)|48;if(a>>>0<10){break j}a=d;if(b){continue}}break}a=11-c|0;if(a){t(e+11|0,k,a);}b=e+11|0;w[b+a|0]=0;d=j-3|0;a=Ha(b);if(d>>>0<=a>>>0){break g}c=g+3|0;g=a+1|0;if(g){t(c,b,g);}d=d-a|0;if(d>>>0<2){break g}a=a+c|0;w[a|0]=36;w[a+1|0]=0;b=a+1|0;c=d-1|0;if(!Bc(b,c,y[i+16>>2],y[i+20>>2],3)){break g}a=-31;d=c;c=Ha(b);d=d-c|0;if(d>>>0<2){break d}a=b+c|0;w[a|0]=36;w[a+1|0]=0;a=Bc(a+1|0,d-1|0,y[i>>2],y[i+4>>2],3)?0:-31;break d}a=-31;}T=e+32|0;if(!a){break c}ja(l,32);ja(f,128);a=-31;break b}ja(l,32);a=0;}ta(l);}T=h- -64|0;return a}function ib(a,b){var 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,x=0,A=0,B=0;c=T-512|0;T=c;d=-1;f=z[b+31|0];e=z[b|0];if(!((((((f^-1)&127|z[b+1|0]&(z[b+2|0]&(z[b+3|0]&(z[b+4|0]&(z[b+5|0]&(z[b+6|0]&(z[b+7|0]&(z[b+8|0]&(z[b+9|0]&(z[b+10|0]&(z[b+11|0]&(z[b+12|0]&(z[b+13|0]&(z[b+14|0]&(z[b+15|0]&(z[b+16|0]&(z[b+17|0]&(z[b+18|0]&(z[b+19|0]&(z[b+20|0]&(z[b+21|0]&(z[b+22|0]&(z[b+23|0]&(z[b+24|0]&(z[b+25|0]&(z[b+26|0]&(z[b+27|0]&(z[b+28|0]&(z[b+29|0]&z[b+30|0]))))))))))))))))))))))))))))^-1)&255)-1&236-e)>>>8|(e|z[41218]>>>2^f>>>7))&1)){f=c+336|0;cb(f,b);fa(c+288|0,f);b=y[c+324>>2];y[c+276>>2]=0-b;d=y[c+320>>2];y[c+272>>2]=0-d;e=y[c+316>>2];y[c+268>>2]=0-e;g=y[c+312>>2];y[c+264>>2]=0-g;h=y[c+308>>2];y[c+260>>2]=0-h;i=y[c+304>>2];y[c+256>>2]=0-i;j=y[c+300>>2];y[c+252>>2]=0-j;k=y[c+296>>2];y[c+248>>2]=0-k;l=y[c+292>>2];y[c+244>>2]=0-l;m=y[c+288>>2];y[c+240>>2]=1-m;n=c+144|0;q=c+240|0;fa(n,q);y[c+228>>2]=b;y[c+224>>2]=d;y[c+220>>2]=e;y[c+216>>2]=g;y[c+212>>2]=h;y[c+208>>2]=i;y[c+204>>2]=j;y[c+200>>2]=k;y[c+196>>2]=l;y[c+192>>2]=m+1;d=c+96|0;g=c+192|0;fa(d,g);b=c+48|0;ga(b,1584,n);e=y[c+96>>2];h=y[c+48>>2];i=y[c+100>>2];j=y[c+52>>2];k=y[c+104>>2];l=y[c+56>>2];m=y[c+108>>2];n=y[c+60>>2];o=y[c+112>>2];p=y[c+64>>2];r=y[c+116>>2];s=y[c+68>>2];t=y[c+120>>2];u=y[c+72>>2];v=y[c+124>>2];x=y[c+76>>2];A=y[c+128>>2];B=y[c+80>>2];y[c+84>>2]=0-(y[c+84>>2]+y[c+132>>2]|0);y[c+80>>2]=0-(A+B|0);y[c+76>>2]=0-(v+x|0);y[c+72>>2]=0-(t+u|0);y[c+68>>2]=0-(r+s|0);y[c+64>>2]=0-(o+p|0);y[c+60>>2]=0-(m+n|0);y[c+56>>2]=0-(k+l|0);y[c+52>>2]=0-(i+j|0);y[c+48>>2]=0-(e+h|0);ga(c,b,d);y[c+388>>2]=0;y[c+392>>2]=0;y[c+384>>2]=1;y[c+396>>2]=0;y[c+400>>2]=0;y[c+404>>2]=0;y[c+408>>2]=0;y[c+412>>2]=0;y[c+416>>2]=0;y[c+420>>2]=0;e=c+432|0;p=cc(e,c+384|0,c);ga(a,e,g);d=a+40|0;ga(d,e,a);ga(d,d,b);ga(a,a,f);f=y[a+36>>2]<<1;y[a+36>>2]=f;e=y[a+32>>2]<<1;y[a+32>>2]=e;g=y[a+28>>2]<<1;y[a+28>>2]=g;h=y[a+24>>2]<<1;y[a+24>>2]=h;i=y[a+20>>2]<<1;y[a+20>>2]=i;j=y[a+16>>2]<<1;y[a+16>>2]=j;k=y[a+12>>2]<<1;y[a+12>>2]=k;l=y[a+8>>2]<<1;y[a+8>>2]=l;m=y[a+4>>2]<<1;y[a+4>>2]=m;n=y[a>>2]<<1;y[a>>2]=n;o=c+480|0;pa(o,a);b=0-(w[c+480|0]&1)|0;y[a+36>>2]=f^b&(f^0-f);y[a+32>>2]=e^b&(e^0-e);y[a+28>>2]=g^b&(g^0-g);y[a+24>>2]=h^b&(h^0-h);y[a+20>>2]=i^b&(i^0-i);y[a+16>>2]=j^b&(j^0-j);y[a+12>>2]=k^b&(k^0-k);y[a+8>>2]=l^b&(l^0-l);y[a+4>>2]=m^b&(m^0-m);y[a>>2]=n^b&(n^0-n);ga(d,q,d);y[a+84>>2]=0;y[a+88>>2]=0;y[a+80>>2]=1;y[a+92>>2]=0;y[a+96>>2]=0;y[a+100>>2]=0;y[a+104>>2]=0;y[a+108>>2]=0;y[a+112>>2]=0;y[a+116>>2]=0;b=a+120|0;ga(b,a,d);pa(o,b);a=z[c+480|0];pa(o,d);d=0-(ya(o,32)|(1-p|a&1))|0;}T=c+512|0;return d}function Cf(a,b,c,d,e,f,g,h,i,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;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;k=T-384|0;T=k;if(c){y[c>>2]=0;y[c+4>>2]=0;}a:{m=0|e;if(!f&m>>>0<4294967279){n=k+16|0;e=a+32|0;_a(n,64,0,e,a);l=k+80|0;Ga(l,n);ja(n,64);o=g;g=h|p;la(l,o,g,i);la(l,39312,0-g&15,0);y[k+16>>2]=0;y[k+20>>2]=0;y[k+72>>2]=0;y[k+76>>2]=0;y[k+64>>2]=0;y[k+68>>2]=0;y[k+56>>2]=0;y[k+60>>2]=0;y[k+48>>2]=0;y[k+52>>2]=0;y[k+40>>2]=0;y[k+44>>2]=0;y[k+32>>2]=0;y[k+36>>2]=0;y[k+24>>2]=0;y[k+28>>2]=0;w[k+16|0]=j;gb(n,n,64,0,e,1,a);la(l,n,64,0);w[b|0]=z[k+16|0];b=b+1|0;gb(b,d,m,f,e,2,a);la(l,b,m,f);la(l,39312,m&15,0);y[k+8>>2]=g;y[k+12>>2]=i;d=k+8|0;la(l,d,8,0);y[k+8>>2]=m- -64;y[k+12>>2]=f-((m>>>0<4294967232)-1|0);la(l,d,8,0);b=b+m|0;Fa(l,b);ja(l,256);w[a+36|0]=z[a+36|0]^z[b|0];w[a+37|0]=z[a+37|0]^z[b+1|0];w[a+38|0]=z[a+38|0]^z[b+2|0];w[a+39|0]=z[a+39|0]^z[b+3|0];w[a+40|0]=z[a+40|0]^z[b+4|0];w[a+41|0]=z[a+41|0]^z[b+5|0];w[a+42|0]=z[a+42|0]^z[b+6|0];w[a+43|0]=z[a+43|0]^z[b+7|0];Ke(e);b:{if(!(j&2)){if(!ya(e,4)){break b}}b=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);y[k+360>>2]=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);y[k+364>>2]=b;b=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);y[k+352>>2]=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);y[k+356>>2]=b;b=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);y[k+344>>2]=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);y[k+348>>2]=b;b=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);y[k+336>>2]=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);y[k+340>>2]=b;b=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);y[k+368>>2]=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);y[k+372>>2]=b;b=k+336|0;Yb(b,b,40,0,e,a);b=y[k+364>>2];d=y[k+360>>2];w[a+24|0]=d;w[a+25|0]=d>>>8;w[a+26|0]=d>>>16;w[a+27|0]=d>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[k+356>>2];d=y[k+352>>2];w[a+16|0]=d;w[a+17|0]=d>>>8;w[a+18|0]=d>>>16;w[a+19|0]=d>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[k+348>>2];d=y[k+344>>2];w[a+8|0]=d;w[a+9|0]=d>>>8;w[a+10|0]=d>>>16;w[a+11|0]=d>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[k+340>>2];d=y[k+336>>2];w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=y[k+368>>2];d=y[k+372>>2];w[e|0]=1;w[e+1|0]=0;w[e+2|0]=0;w[e+3|0]=0;w[a+36|0]=b;w[a+37|0]=b>>>8;w[a+38|0]=b>>>16;w[a+39|0]=b>>>24;w[a+40|0]=d;w[a+41|0]=d>>>8;w[a+42|0]=d>>>16;w[a+43|0]=d>>>24;}if(c){a=m+17|0;f=a>>>0<17?f+1|0:f;y[c>>2]=a;y[c+4>>2]=f;}T=k+384|0;break a}na();s();}return 0}function sc(a,b,c,d){var e=0,f=0,g=0;e=T;g=e;e=e-576&-64;T=e;y[e+188>>2]=b;a:{if(b>>>0<=64){f=e+192|0;if((Ja(f,0,0,b)|0)<0){break a}if((oa(f,e+188|0,4,0)|0)<0);if((oa(f,c,d,0)|0)<0);Ia(f,a,b);break a}f=e+192|0;if((Ja(f,0,0,64)|0)<0){break a}if((oa(f,e+188|0,4,0)|0)<0);if((oa(f,c,d,0)|0)<0);if((Ia(f,e+112|0,64)|0)<0){break a}c=y[e+140>>2];d=y[e+136>>2];w[a+24|0]=d;w[a+25|0]=d>>>8;w[a+26|0]=d>>>16;w[a+27|0]=d>>>24;w[a+28|0]=c;w[a+29|0]=c>>>8;w[a+30|0]=c>>>16;w[a+31|0]=c>>>24;c=y[e+132>>2];d=y[e+128>>2];w[a+16|0]=d;w[a+17|0]=d>>>8;w[a+18|0]=d>>>16;w[a+19|0]=d>>>24;w[a+20|0]=c;w[a+21|0]=c>>>8;w[a+22|0]=c>>>16;w[a+23|0]=c>>>24;c=y[e+124>>2];d=y[e+120>>2];w[a+8|0]=d;w[a+9|0]=d>>>8;w[a+10|0]=d>>>16;w[a+11|0]=d>>>24;w[a+12|0]=c;w[a+13|0]=c>>>8;w[a+14|0]=c>>>16;w[a+15|0]=c>>>24;c=y[e+116>>2];d=y[e+112>>2];w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=c;w[a+5|0]=c>>>8;w[a+6|0]=c>>>16;w[a+7|0]=c>>>24;a=a+32|0;b=b-32|0;if(b>>>0>=65){while(1){c=y[e+172>>2];y[e+104>>2]=y[e+168>>2];y[e+108>>2]=c;c=y[e+164>>2];y[e+96>>2]=y[e+160>>2];y[e+100>>2]=c;c=y[e+156>>2];y[e+88>>2]=y[e+152>>2];y[e+92>>2]=c;c=y[e+148>>2];y[e+80>>2]=y[e+144>>2];y[e+84>>2]=c;c=y[e+140>>2];y[e+72>>2]=y[e+136>>2];y[e+76>>2]=c;c=y[e+132>>2];y[e+64>>2]=y[e+128>>2];y[e+68>>2]=c;c=y[e+124>>2];y[e+56>>2]=y[e+120>>2];y[e+60>>2]=c;c=y[e+116>>2];y[e+48>>2]=y[e+112>>2];y[e+52>>2]=c;if((Wb(e+112|0,64,e+48|0,64,0,0,0)|0)<0){break a}c=y[e+140>>2];d=y[e+136>>2];w[a+24|0]=d;w[a+25|0]=d>>>8;w[a+26|0]=d>>>16;w[a+27|0]=d>>>24;w[a+28|0]=c;w[a+29|0]=c>>>8;w[a+30|0]=c>>>16;w[a+31|0]=c>>>24;c=y[e+132>>2];d=y[e+128>>2];w[a+16|0]=d;w[a+17|0]=d>>>8;w[a+18|0]=d>>>16;w[a+19|0]=d>>>24;w[a+20|0]=c;w[a+21|0]=c>>>8;w[a+22|0]=c>>>16;w[a+23|0]=c>>>24;c=y[e+124>>2];d=y[e+120>>2];w[a+8|0]=d;w[a+9|0]=d>>>8;w[a+10|0]=d>>>16;w[a+11|0]=d>>>24;w[a+12|0]=c;w[a+13|0]=c>>>8;w[a+14|0]=c>>>16;w[a+15|0]=c>>>24;c=y[e+116>>2];d=y[e+112>>2];w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=c;w[a+5|0]=c>>>8;w[a+6|0]=c>>>16;w[a+7|0]=c>>>24;a=a+32|0;b=b-32|0;if(b>>>0>64){continue}break}}c=y[e+172>>2];y[e+104>>2]=y[e+168>>2];y[e+108>>2]=c;c=y[e+164>>2];y[e+96>>2]=y[e+160>>2];y[e+100>>2]=c;c=y[e+156>>2];y[e+88>>2]=y[e+152>>2];y[e+92>>2]=c;c=y[e+148>>2];y[e+80>>2]=y[e+144>>2];y[e+84>>2]=c;c=y[e+140>>2];y[e+72>>2]=y[e+136>>2];y[e+76>>2]=c;c=y[e+132>>2];y[e+64>>2]=y[e+128>>2];y[e+68>>2]=c;c=y[e+124>>2];y[e+56>>2]=y[e+120>>2];y[e+60>>2]=c;c=y[e+116>>2];y[e+48>>2]=y[e+112>>2];y[e+52>>2]=c;c=e+112|0;if(!b|(Wb(c,b,e+48|0,64,0,0,0)|0)<0){break a}t(a,c,b);}ja(e+192|0,384);T=g;}function Id(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,x=0,A=0,C=0,D=0,F=0,G=0,H=0;m=Ai(i,0,h,0);p=W;if(!p&m>>>0>=1073741824|p){y[10172]=22;return -1}if((g|0)==1|g>>>0>1){y[10172]=22;return -1}m=f;o=g;while(1){if(m|o){p=m;m=m&m-1;o=o-!p&o;r=r+1|0;q=r?q:q+1|0;continue}break}W=q;if(!(!W&r>>>0<2&(!g&f>>>0>=2|(g|0)!=0))){y[10172]=28;return -1}if(!(i?h:0)){y[10172]=28;return -1}a:{b:{if(!(33554431/(i>>>0)>>>0>>0|h>>>0>16777215)){if(!g&33554431/(h>>>0)>>>0>=f>>>0){break b}}break a}r=h<<7;x=E(r,i);v=E(f,r);m=v+x|0;if(x>>>0>m>>>0){break a}q=h<<8;m=(q+m|0)- -64|0;if(m>>>0<=q>>>0){break a}c:{if(m>>>0>B[a+8>>2]){u=-1;if(Ob(a));p=T-16|0;T=p;o=Pc(p+12|0,m);y[10172]=o;o=o?0:y[p+12>>2];y[a+4>>2]=o;y[a>>2]=o;y[a+8>>2]=o?m:0;T=p+16|0;if(!o){break c}}A=y[a+4>>2];Jd(b,c,d,e,A,x);u=x+A|0;m=u+v|0;p=m+(h<<7)|0;G=(p+r|0)+-64|0;F=f-1|0;o=h<<5;v=m+q|0;H=(m+r|0)+-64|0;while(1){q=E(r,D)+A|0;d=0;while(1){a=d<<2;e=a+q|0;y[a+m>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);e=a|4;l=e+m|0;e=e+q|0;y[l>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);e=a|8;l=e+m|0;e=e+q|0;y[l>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);a=a|12;e=a+m|0;a=a+q|0;y[e>>2]=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);d=d+4|0;if((o|0)!=(d|0)){continue}break}a=0;d=0;while(1){e=!r;if(!e){t(u+(E(a,o)<<2)|0,m,r);}Nb(m,p,v,h);if(!e){t(u+(E(o,a|1)<<2)|0,p,r);}Nb(p,m,v,h);C=0;e=0;a=a+2|0;d=a>>>0<2?d+1|0:d;if((g|0)==(d|0)&a>>>0>>0|d>>>0>>0){continue}break}while(1){a=u+(E(o,F&y[H>>2])<<2)|0;d=0;while(1){l=d<<2;n=l+m|0;y[n>>2]=y[n>>2]^y[a+l>>2];n=l|4;s=n+m|0;y[s>>2]=y[s>>2]^y[a+n>>2];n=l|8;s=n+m|0;y[s>>2]=y[s>>2]^y[a+n>>2];l=l|12;n=l+m|0;y[n>>2]=y[n>>2]^y[a+l>>2];d=d+4|0;if((o|0)!=(d|0)){continue}break}Nb(m,p,v,h);a=u+(E(o,F&y[G>>2])<<2)|0;d=0;while(1){l=d<<2;n=l+p|0;y[n>>2]=y[n>>2]^y[a+l>>2];n=l|4;s=n+p|0;y[s>>2]=y[s>>2]^y[a+n>>2];n=l|8;s=n+p|0;y[s>>2]=y[s>>2]^y[a+n>>2];l=l|12;n=l+p|0;y[n>>2]=y[n>>2]^y[a+l>>2];d=d+4|0;if((o|0)!=(d|0)){continue}break}Nb(p,m,v,h);d=0;C=C+2|0;a=C>>>0<2?e+1|0:e;e=a;if((g|0)==(a|0)&f>>>0>C>>>0|a>>>0>>0){continue}break}while(1){a=d<<2;e=a+q|0;l=y[a+m>>2];w[e|0]=l;w[e+1|0]=l>>>8;w[e+2|0]=l>>>16;w[e+3|0]=l>>>24;l=a|4;e=l+q|0;l=y[m+l>>2];w[e|0]=l;w[e+1|0]=l>>>8;w[e+2|0]=l>>>16;w[e+3|0]=l>>>24;l=a|8;e=l+q|0;l=y[m+l>>2];w[e|0]=l;w[e+1|0]=l>>>8;w[e+2|0]=l>>>16;w[e+3|0]=l>>>24;e=a|12;a=e+q|0;e=y[e+m>>2];w[a|0]=e;w[a+1|0]=e>>>8;w[a+2|0]=e>>>16;w[a+3|0]=e>>>24;d=d+4|0;if((o|0)!=(d|0)){continue}break}D=D+1|0;if((D|0)!=(i|0)){continue}break}Jd(b,c,A,x,j,k);u=0;}return u}y[10172]=48;return -1}function ue(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T-192|0;T=d;y[d+96>>2]=0;y[d+100>>2]=0;y[d+104>>2]=0;y[d+108>>2]=0;y[d+112>>2]=0;y[d+116>>2]=0;y[d+120>>2]=0;y[d+124>>2]=0;e=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);y[d+64>>2]=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[d+68>>2]=e;e=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[d+72>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[d+76>>2]=e;e=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[d+80>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[d+84>>2]=e;e=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[d+88>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[d+92>>2]=e;y[d+32>>2]=0;y[d+36>>2]=0;y[d+40>>2]=0;y[d+44>>2]=0;y[d+48>>2]=0;y[d+52>>2]=0;y[d+56>>2]=0;y[d+60>>2]=0;b=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);y[d>>2]=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);y[d+4>>2]=b;b=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);y[d+8>>2]=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);y[d+12>>2]=b;b=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);y[d+16>>2]=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);y[d+20>>2]=b;b=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);y[d+24>>2]=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);y[d+28>>2]=b;De(d- -64|0,d);c=y[d+124>>2];y[d+184>>2]=y[d+120>>2];y[d+188>>2]=c;b=y[d+116>>2];y[d+176>>2]=y[d+112>>2];y[d+180>>2]=b;b=y[d+108>>2];y[d+168>>2]=y[d+104>>2];y[d+172>>2]=b;b=y[d+100>>2];y[d+160>>2]=y[d+96>>2];y[d+164>>2]=b;b=y[d+92>>2];y[d+152>>2]=y[d+88>>2];y[d+156>>2]=b;b=y[d+84>>2];y[d+144>>2]=y[d+80>>2];y[d+148>>2]=b;b=y[d+76>>2];y[d+136>>2]=y[d+72>>2];y[d+140>>2]=b;b=y[d+68>>2];y[d+128>>2]=y[d+64>>2];y[d+132>>2]=b;b=d+128|0;Pa(b);e=y[d+156>>2];c=y[d+152>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=e;w[a+29|0]=e>>>8;w[a+30|0]=e>>>16;w[a+31|0]=e>>>24;e=y[d+148>>2];c=y[d+144>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=e;w[a+21|0]=e>>>8;w[a+22|0]=e>>>16;w[a+23|0]=e>>>24;e=y[d+140>>2];c=y[d+136>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=e;w[a+13|0]=e>>>8;w[a+14|0]=e>>>16;w[a+15|0]=e>>>24;e=y[d+132>>2];c=y[d+128>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=e;w[a+5|0]=e>>>8;w[a+6|0]=e>>>16;w[a+7|0]=e>>>24;ja(b,64);T=d+192|0;}function Nb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;e=((d<<7)+a|0)+-64|0;f=y[e+60>>2];y[c+56>>2]=y[e+56>>2];y[c+60>>2]=f;f=y[e+52>>2];y[c+48>>2]=y[e+48>>2];y[c+52>>2]=f;f=y[e+44>>2];y[c+40>>2]=y[e+40>>2];y[c+44>>2]=f;f=y[e+36>>2];y[c+32>>2]=y[e+32>>2];y[c+36>>2]=f;f=y[e+28>>2];y[c+24>>2]=y[e+24>>2];y[c+28>>2]=f;f=y[e+20>>2];y[c+16>>2]=y[e+16>>2];y[c+20>>2]=f;f=y[e+12>>2];y[c+8>>2]=y[e+8>>2];y[c+12>>2]=f;f=y[e+4>>2];y[c>>2]=y[e>>2];y[c+4>>2]=f;f=d<<6;i=d<<1;while(1){d=(h<<6)+a|0;y[c>>2]=y[c>>2]^y[d>>2];y[c+4>>2]=y[c+4>>2]^y[d+4>>2];y[c+8>>2]=y[c+8>>2]^y[d+8>>2];y[c+12>>2]=y[c+12>>2]^y[d+12>>2];y[c+16>>2]=y[c+16>>2]^y[d+16>>2];y[c+20>>2]=y[c+20>>2]^y[d+20>>2];y[c+24>>2]=y[c+24>>2]^y[d+24>>2];y[c+28>>2]=y[c+28>>2]^y[d+28>>2];y[c+32>>2]=y[c+32>>2]^y[d+32>>2];y[c+36>>2]=y[c+36>>2]^y[d+36>>2];y[c+40>>2]=y[c+40>>2]^y[d+40>>2];y[c+44>>2]=y[c+44>>2]^y[d+44>>2];y[c+48>>2]=y[c+48>>2]^y[d+48>>2];y[c+52>>2]=y[c+52>>2]^y[d+52>>2];y[c+56>>2]=y[c+56>>2]^y[d+56>>2];y[c+60>>2]=y[c+60>>2]^y[d+60>>2];Hd(c);g=y[c+60>>2];e=(h<<5)+b|0;y[e+56>>2]=y[c+56>>2];y[e+60>>2]=g;g=y[c+52>>2];y[e+48>>2]=y[c+48>>2];y[e+52>>2]=g;g=y[c+44>>2];y[e+40>>2]=y[c+40>>2];y[e+44>>2]=g;g=y[c+36>>2];y[e+32>>2]=y[c+32>>2];y[e+36>>2]=g;g=y[c+28>>2];y[e+24>>2]=y[c+24>>2];y[e+28>>2]=g;g=y[c+20>>2];y[e+16>>2]=y[c+16>>2];y[e+20>>2]=g;g=y[c+12>>2];y[e+8>>2]=y[c+8>>2];y[e+12>>2]=g;g=y[c+4>>2];y[e>>2]=y[c>>2];y[e+4>>2]=g;y[c>>2]=y[c>>2]^y[d- -64>>2];y[c+4>>2]=y[c+4>>2]^y[d+68>>2];y[c+8>>2]=y[c+8>>2]^y[d+72>>2];y[c+12>>2]=y[c+12>>2]^y[d+76>>2];y[c+16>>2]=y[c+16>>2]^y[d+80>>2];y[c+20>>2]=y[c+20>>2]^y[d+84>>2];y[c+24>>2]=y[c+24>>2]^y[d+88>>2];y[c+28>>2]=y[c+28>>2]^y[d+92>>2];y[c+32>>2]=y[c+32>>2]^y[d+96>>2];y[c+36>>2]=y[c+36>>2]^y[d+100>>2];y[c+40>>2]=y[c+40>>2]^y[d+104>>2];y[c+44>>2]=y[c+44>>2]^y[d+108>>2];y[c+48>>2]=y[c+48>>2]^y[d+112>>2];y[c+52>>2]=y[c+52>>2]^y[d+116>>2];y[c+56>>2]=y[c+56>>2]^y[d+120>>2];y[c+60>>2]=y[c+60>>2]^y[d+124>>2];Hd(c);d=e+f|0;e=y[c+60>>2];y[d+56>>2]=y[c+56>>2];y[d+60>>2]=e;e=y[c+52>>2];y[d+48>>2]=y[c+48>>2];y[d+52>>2]=e;e=y[c+44>>2];y[d+40>>2]=y[c+40>>2];y[d+44>>2]=e;e=y[c+36>>2];y[d+32>>2]=y[c+32>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+24>>2]=y[c+24>>2];y[d+28>>2]=e;e=y[c+20>>2];y[d+16>>2]=y[c+16>>2];y[d+20>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;h=h+2|0;if(i>>>0>h>>>0){continue}break}}function hc(a,b,c,d){var 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,A=0,B=0,C=0,D=0,F=0;A=z[a+80|0]?0:16777216;o=y[a+36>>2];m=y[a+32>>2];n=y[a+28>>2];k=y[a+24>>2];l=y[a+20>>2];q=y[a+4>>2];B=E(q,5);s=y[a+8>>2];w=E(s,5);u=y[a+12>>2];v=E(u,5);x=y[a+16>>2];t=E(x,5);r=y[a>>2];while(1){g=((z[b+3|0]|z[b+4|0]<<8|(z[b+5|0]<<16|z[b+6|0]<<24))>>>2&67108863)+k|0;e=Ai(g,0,u,0);i=W;k=((z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24))&67108863)+l|0;h=Ai(k,0,x,0);l=h+e|0;e=W+i|0;e=h>>>0>l>>>0?e+1|0:e;n=((z[b+6|0]|z[b+7|0]<<8|(z[b+8|0]<<16|z[b+9|0]<<24))>>>4&67108863)+n|0;i=Ai(n,0,s,0);l=i+l|0;e=W+e|0;e=i>>>0>l>>>0?e+1|0:e;m=((z[b+9|0]|z[b+10|0]<<8|(z[b+11|0]<<16|z[b+12|0]<<24))>>>6|0)+m|0;i=Ai(m,0,q,0);l=i+l|0;e=W+e|0;e=i>>>0>l>>>0?e+1|0:e;o=o+A+((z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24))>>>8)|0;i=Ai(o,0,r,0);l=i+l|0;e=W+e|0;C=l;l=i>>>0>l>>>0?e+1|0:e;e=Ai(g,0,s,0);i=W;h=Ai(k,0,u,0);e=h+e|0;f=W+i|0;f=e>>>0>>0?f+1|0:f;h=Ai(n,0,q,0);i=h+e|0;e=W+f|0;e=h>>>0>i>>>0?e+1|0:e;h=Ai(m,0,r,0);i=h+i|0;e=W+e|0;e=h>>>0>i>>>0?e+1|0:e;h=Ai(o,0,t,0);i=h+i|0;e=W+e|0;D=i;i=h>>>0>i>>>0?e+1|0:e;e=Ai(g,0,q,0);j=W;f=Ai(k,0,s,0);h=f+e|0;e=W+j|0;e=f>>>0>h>>>0?e+1|0:e;j=Ai(n,0,r,0);h=j+h|0;f=W+e|0;f=h>>>0>>0?f+1|0:f;j=Ai(m,0,t,0);h=j+h|0;e=W+f|0;e=h>>>0>>0?e+1|0:e;j=Ai(o,0,v,0);h=j+h|0;e=W+e|0;F=h;h=h>>>0>>0?e+1|0:e;e=Ai(g,0,r,0);f=W;p=Ai(k,0,q,0);j=p+e|0;e=W+f|0;e=j>>>0

>>0?e+1|0:e;f=Ai(n,0,t,0);j=f+j|0;e=W+e|0;e=f>>>0>j>>>0?e+1|0:e;p=Ai(m,0,v,0);j=p+j|0;f=W+e|0;f=j>>>0

>>0?f+1|0:f;p=Ai(o,0,w,0);j=p+j|0;e=W+f|0;e=j>>>0

>>0?e+1|0:e;p=j;j=e;e=Ai(g,0,t,0);f=W;k=Ai(k,0,r,0);g=k+e|0;e=W+f|0;e=g>>>0>>0?e+1|0:e;k=Ai(n,0,v,0);g=k+g|0;e=W+e|0;e=g>>>0>>0?e+1|0:e;k=Ai(m,0,w,0);g=k+g|0;e=W+e|0;e=g>>>0>>0?e+1|0:e;k=Ai(o,0,B,0);g=k+g|0;f=W+e|0;f=g>>>0>>0?f+1|0:f;k=g;n=(f&67108863)<<6|g>>>26;g=n+p|0;e=j;e=g>>>0>>0?e+1|0:e;n=g;m=(e&67108863)<<6|g>>>26;g=m+F|0;e=h;e=g>>>0>>0?e+1|0:e;m=g;f=i;g=(e&67108863)<<6|g>>>26;e=g+D|0;o=e;f=e>>>0>>0?f+1|0:f;i=(f&67108863)<<6|e>>>26;g=i+C|0;e=l;e=E(((g>>>0>>0?e+1|0:e)&67108863)<<6|g>>>26,5)+(k&67108863)|0;k=(n&67108863)+(e>>>26|0)|0;n=m&67108863;m=o&67108863;o=g&67108863;l=e&67108863;b=b+16|0;d=d-(c>>>0<16)|0;c=c-16|0;if(!d&c>>>0>15|d){continue}break}y[a+36>>2]=o;y[a+32>>2]=m;y[a+28>>2]=n;y[a+24>>2]=k;y[a+20>>2]=l;}function Aa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var 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,x=0;a:{if(!d){f=2036477234;g=857760878;e=1634760805;k=1797285236;break a}f=z[d+8|0]|z[d+9|0]<<8|(z[d+10|0]<<16|z[d+11|0]<<24);g=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);e=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);k=z[d+12|0]|z[d+13|0]<<8|(z[d+14|0]<<16|z[d+15|0]<<24);}h=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);m=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);i=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);n=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);j=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);t=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);o=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);d=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);p=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);q=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);b=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);c=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);while(1){l=c;r=b;b=c+e|0;c=Bi(r^b,16);e=c+o|0;o=Bi(l^e,12);l=o;r=b+o|0;s=Bi(r^c,8);o=s+e|0;b=Bi(l^o,7);c=d+k|0;h=Bi(c^h,16);n=h+n|0;d=Bi(n^d,12);l=p;k=f+p|0;f=Bi(k^m,16);p=f+j|0;e=Bi(l^p,12);j=f;f=e+k|0;j=Bi(j^f,8);u=c+d|0;k=u+b|0;c=Bi(j^k,16);g=g+q|0;m=Bi(g^i,16);i=m+t|0;q=Bi(i^q,12);g=q+g|0;l=b;b=Bi(g^m,8);v=b+i|0;i=v+c|0;l=Bi(l^i,12);k=l+k|0;m=Bi(c^k,8);t=m+i|0;c=Bi(t^l,7);h=Bi(h^u,8);n=h+n|0;d=Bi(n^d,7);f=d+f|0;i=Bi(f^b,16);b=i+o|0;d=Bi(b^d,12);f=d+f|0;i=Bi(i^f,8);o=b+i|0;d=Bi(o^d,7);j=j+p|0;b=Bi(j^e,7);g=b+g|0;p=Bi(g^s,16);e=p+n|0;s=Bi(b^e,12);g=s+g|0;b=Bi(p^g,8);n=e+b|0;p=Bi(n^s,7);l=j;j=h;e=Bi(q^v,7);h=e+r|0;j=Bi(j^h,16);q=l+j|0;r=Bi(e^q,12);e=r+h|0;h=Bi(j^e,8);j=q+h|0;q=Bi(j^r,7);x=x+1|0;if((x|0)!=10){continue}break}w[a|0]=e;w[a+1|0]=e>>>8;w[a+2|0]=e>>>16;w[a+3|0]=e>>>24;w[a+28|0]=h;w[a+29|0]=h>>>8;w[a+30|0]=h>>>16;w[a+31|0]=h>>>24;w[a+24|0]=m;w[a+25|0]=m>>>8;w[a+26|0]=m>>>16;w[a+27|0]=m>>>24;w[a+20|0]=i;w[a+21|0]=i>>>8;w[a+22|0]=i>>>16;w[a+23|0]=i>>>24;w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;w[a+12|0]=k;w[a+13|0]=k>>>8;w[a+14|0]=k>>>16;w[a+15|0]=k>>>24;w[a+8|0]=f;w[a+9|0]=f>>>8;w[a+10|0]=f>>>16;w[a+11|0]=f>>>24;w[a+4|0]=g;w[a+5|0]=g>>>8;w[a+6|0]=g>>>16;w[a+7|0]=g>>>24;return 0}function sa(a,b,c){var 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,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;d=y[b+40>>2];e=y[b+4>>2];g=y[b+44>>2];h=y[b+8>>2];i=y[b+48>>2];j=y[b+12>>2];k=y[b+52>>2];l=y[b+16>>2];m=y[b+56>>2];n=y[b+20>>2];o=y[b+60>>2];p=y[b+24>>2];f=b- -64|0;q=y[f>>2];r=y[b+28>>2];s=y[b+68>>2];t=y[b+32>>2];u=y[b+72>>2];v=y[b>>2];y[a+36>>2]=y[b+36>>2]+y[b+76>>2];y[a+32>>2]=t+u;y[a+28>>2]=r+s;y[a+24>>2]=p+q;y[a+20>>2]=n+o;y[a+16>>2]=l+m;y[a+12>>2]=j+k;y[a+8>>2]=h+i;y[a+4>>2]=e+g;y[a>>2]=d+v;g=y[b+40>>2];d=y[b+4>>2];h=y[b+44>>2];i=y[b+8>>2];j=y[b+48>>2];k=y[b+12>>2];l=y[b+52>>2];m=y[b+16>>2];n=y[b+56>>2];o=y[b+20>>2];p=y[b+60>>2];q=y[b+24>>2];f=y[f>>2];e=y[b+28>>2];r=y[b+68>>2];s=y[b+32>>2];t=y[b+72>>2];u=y[b>>2];y[a+76>>2]=y[b+76>>2]-y[b+36>>2];y[a+72>>2]=t-s;y[a+68>>2]=r-e;e=a- -64|0;y[e>>2]=f-q;y[a+60>>2]=p-o;y[a+56>>2]=n-m;y[a+52>>2]=l-k;y[a+48>>2]=j-i;y[a+44>>2]=h-d;d=a+40|0;y[d>>2]=g-u;ga(a+80|0,a,c);ga(d,d,c+40|0);ga(a+120|0,c+120|0,b+120|0);ga(a,b+80|0,c+80|0);v=y[a+4>>2];z=y[a+8>>2];A=y[a+12>>2];B=y[a+16>>2];C=y[a+20>>2];D=y[a+24>>2];E=y[a+28>>2];F=y[a+32>>2];G=y[a+36>>2];b=y[d>>2];c=y[a+80>>2];g=y[a+44>>2];h=y[a+84>>2];i=y[a+48>>2];j=y[a+88>>2];k=y[a+52>>2];l=y[a+92>>2];m=y[a+56>>2];n=y[a+96>>2];o=y[a+60>>2];p=y[a+100>>2];f=y[e>>2];q=y[a+104>>2];r=y[a+68>>2];s=y[a+108>>2];t=y[a+72>>2];u=y[a+112>>2];H=y[a>>2];w=y[a+76>>2];x=y[a+116>>2];y[a+76>>2]=w+x;y[a+72>>2]=t+u;y[a+68>>2]=r+s;y[e>>2]=f+q;y[a+60>>2]=o+p;y[a+56>>2]=m+n;y[a+52>>2]=k+l;y[a+48>>2]=i+j;y[a+44>>2]=g+h;y[d>>2]=b+c;y[a+36>>2]=x-w;y[a+32>>2]=u-t;y[a+28>>2]=s-r;y[a+24>>2]=q-f;y[a+20>>2]=p-o;y[a+16>>2]=n-m;y[a+12>>2]=l-k;y[a+8>>2]=j-i;y[a+4>>2]=h-g;y[a>>2]=c-b;b=G<<1;c=y[a+156>>2];y[a+156>>2]=b-c;d=F<<1;e=y[a+152>>2];y[a+152>>2]=d-e;g=E<<1;h=y[a+148>>2];y[a+148>>2]=g-h;i=D<<1;j=y[a+144>>2];y[a+144>>2]=i-j;k=C<<1;l=y[a+140>>2];y[a+140>>2]=k-l;m=B<<1;n=y[a+136>>2];y[a+136>>2]=m-n;o=A<<1;p=y[a+132>>2];y[a+132>>2]=o-p;f=z<<1;q=y[a+128>>2];y[a+128>>2]=f-q;r=v<<1;s=y[a+124>>2];y[a+124>>2]=r-s;t=H<<1;u=y[a+120>>2];y[a+120>>2]=t-u;y[a+112>>2]=d+e;y[a+108>>2]=g+h;y[a+104>>2]=i+j;y[a+100>>2]=k+l;y[a+96>>2]=m+n;y[a+92>>2]=o+p;y[a+88>>2]=f+q;y[a+84>>2]=r+s;y[a+80>>2]=t+u;y[a+116>>2]=b+c;}function Hb(a,b,c){var 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,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;d=y[b+40>>2];e=y[b+4>>2];g=y[b+44>>2];h=y[b+8>>2];i=y[b+48>>2];j=y[b+12>>2];k=y[b+52>>2];l=y[b+16>>2];m=y[b+56>>2];n=y[b+20>>2];o=y[b+60>>2];p=y[b+24>>2];f=b- -64|0;q=y[f>>2];r=y[b+28>>2];s=y[b+68>>2];t=y[b+32>>2];u=y[b+72>>2];v=y[b>>2];y[a+36>>2]=y[b+36>>2]+y[b+76>>2];y[a+32>>2]=t+u;y[a+28>>2]=r+s;y[a+24>>2]=p+q;y[a+20>>2]=n+o;y[a+16>>2]=l+m;y[a+12>>2]=j+k;y[a+8>>2]=h+i;y[a+4>>2]=e+g;y[a>>2]=d+v;g=y[b+40>>2];d=y[b+4>>2];h=y[b+44>>2];i=y[b+8>>2];j=y[b+48>>2];k=y[b+12>>2];l=y[b+52>>2];m=y[b+16>>2];n=y[b+56>>2];o=y[b+20>>2];p=y[b+60>>2];q=y[b+24>>2];f=y[f>>2];e=y[b+28>>2];r=y[b+68>>2];s=y[b+32>>2];t=y[b+72>>2];u=y[b>>2];y[a+76>>2]=y[b+76>>2]-y[b+36>>2];y[a+72>>2]=t-s;y[a+68>>2]=r-e;e=a- -64|0;y[e>>2]=f-q;y[a+60>>2]=p-o;y[a+56>>2]=n-m;y[a+52>>2]=l-k;y[a+48>>2]=j-i;y[a+44>>2]=h-d;d=a+40|0;y[d>>2]=g-u;ga(a+80|0,a,c+40|0);ga(d,d,c);ga(a+120|0,c+120|0,b+120|0);ga(a,b+80|0,c+80|0);v=y[a+4>>2];z=y[a+8>>2];A=y[a+12>>2];B=y[a+16>>2];C=y[a+20>>2];D=y[a+24>>2];E=y[a+28>>2];F=y[a+32>>2];G=y[a+36>>2];b=y[d>>2];c=y[a+80>>2];g=y[a+44>>2];h=y[a+84>>2];i=y[a+48>>2];j=y[a+88>>2];k=y[a+52>>2];l=y[a+92>>2];m=y[a+56>>2];n=y[a+96>>2];o=y[a+60>>2];p=y[a+100>>2];f=y[e>>2];q=y[a+104>>2];r=y[a+68>>2];s=y[a+108>>2];t=y[a+72>>2];u=y[a+112>>2];H=y[a>>2];w=y[a+76>>2];x=y[a+116>>2];y[a+76>>2]=w+x;y[a+72>>2]=t+u;y[a+68>>2]=r+s;y[e>>2]=f+q;y[a+60>>2]=o+p;y[a+56>>2]=m+n;y[a+52>>2]=k+l;y[a+48>>2]=i+j;y[a+44>>2]=g+h;y[d>>2]=b+c;y[a+36>>2]=x-w;y[a+32>>2]=u-t;y[a+28>>2]=s-r;y[a+24>>2]=q-f;y[a+20>>2]=p-o;y[a+16>>2]=n-m;y[a+12>>2]=l-k;y[a+8>>2]=j-i;y[a+4>>2]=h-g;y[a>>2]=c-b;b=y[a+156>>2];c=G<<1;y[a+156>>2]=b+c;d=y[a+152>>2];e=F<<1;y[a+152>>2]=d+e;g=y[a+148>>2];h=E<<1;y[a+148>>2]=g+h;i=y[a+144>>2];j=D<<1;y[a+144>>2]=i+j;k=y[a+140>>2];l=C<<1;y[a+140>>2]=k+l;m=y[a+136>>2];n=B<<1;y[a+136>>2]=m+n;o=y[a+132>>2];p=A<<1;y[a+132>>2]=o+p;f=y[a+128>>2];q=z<<1;y[a+128>>2]=f+q;r=y[a+124>>2];s=v<<1;y[a+124>>2]=r+s;t=y[a+120>>2];u=H<<1;y[a+120>>2]=t+u;y[a+112>>2]=e-d;y[a+108>>2]=h-g;y[a+104>>2]=j-i;y[a+100>>2]=l-k;y[a+96>>2]=n-m;y[a+92>>2]=p-o;y[a+88>>2]=q-f;y[a+84>>2]=s-r;y[a+80>>2]=u-t;y[a+116>>2]=c-b;}function fc(a,b,c){var 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,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;d=y[b+40>>2];e=y[b+4>>2];g=y[b+44>>2];h=y[b+8>>2];i=y[b+48>>2];j=y[b+12>>2];k=y[b+52>>2];l=y[b+16>>2];m=y[b+56>>2];n=y[b+20>>2];o=y[b+60>>2];p=y[b+24>>2];f=b- -64|0;q=y[f>>2];r=y[b+28>>2];s=y[b+68>>2];t=y[b+32>>2];u=y[b+72>>2];v=y[b>>2];y[a+36>>2]=y[b+36>>2]+y[b+76>>2];y[a+32>>2]=t+u;y[a+28>>2]=r+s;y[a+24>>2]=p+q;y[a+20>>2]=n+o;y[a+16>>2]=l+m;y[a+12>>2]=j+k;y[a+8>>2]=h+i;y[a+4>>2]=e+g;y[a>>2]=d+v;g=y[b+40>>2];d=y[b+4>>2];h=y[b+44>>2];i=y[b+8>>2];j=y[b+48>>2];k=y[b+12>>2];l=y[b+52>>2];m=y[b+16>>2];n=y[b+56>>2];o=y[b+20>>2];p=y[b+60>>2];q=y[b+24>>2];f=y[f>>2];e=y[b+28>>2];r=y[b+68>>2];s=y[b+32>>2];t=y[b+72>>2];u=y[b>>2];y[a+76>>2]=y[b+76>>2]-y[b+36>>2];y[a+72>>2]=t-s;y[a+68>>2]=r-e;e=a- -64|0;y[e>>2]=f-q;y[a+60>>2]=p-o;y[a+56>>2]=n-m;y[a+52>>2]=l-k;y[a+48>>2]=j-i;y[a+44>>2]=h-d;d=a+40|0;y[d>>2]=g-u;ga(a+80|0,a,c);ga(d,d,c+40|0);ga(a+120|0,c+80|0,b+120|0);v=y[b+80>>2];z=y[b+84>>2];A=y[b+88>>2];B=y[b+92>>2];C=y[b+96>>2];D=y[b+100>>2];E=y[b+104>>2];F=y[b+108>>2];G=y[b+112>>2];H=y[b+116>>2];b=y[d>>2];c=y[a+80>>2];g=y[a+44>>2];h=y[a+84>>2];i=y[a+48>>2];j=y[a+88>>2];k=y[a+52>>2];l=y[a+92>>2];m=y[a+56>>2];n=y[a+96>>2];o=y[a+60>>2];p=y[a+100>>2];f=y[e>>2];q=y[a+104>>2];r=y[a+68>>2];s=y[a+108>>2];t=y[a+72>>2];u=y[a+112>>2];w=y[a+76>>2];x=y[a+116>>2];y[a+76>>2]=w+x;y[a+72>>2]=t+u;y[a+68>>2]=r+s;y[e>>2]=f+q;y[a+60>>2]=o+p;y[a+56>>2]=m+n;y[a+52>>2]=k+l;y[a+48>>2]=i+j;y[a+44>>2]=g+h;y[d>>2]=b+c;y[a+36>>2]=x-w;y[a+32>>2]=u-t;y[a+28>>2]=s-r;y[a+24>>2]=q-f;y[a+20>>2]=p-o;y[a+16>>2]=n-m;y[a+12>>2]=l-k;y[a+8>>2]=j-i;y[a+4>>2]=h-g;y[a>>2]=c-b;b=H<<1;c=y[a+156>>2];y[a+156>>2]=b-c;d=G<<1;e=y[a+152>>2];y[a+152>>2]=d-e;g=F<<1;h=y[a+148>>2];y[a+148>>2]=g-h;i=E<<1;j=y[a+144>>2];y[a+144>>2]=i-j;k=D<<1;l=y[a+140>>2];y[a+140>>2]=k-l;m=C<<1;n=y[a+136>>2];y[a+136>>2]=m-n;o=B<<1;p=y[a+132>>2];y[a+132>>2]=o-p;f=A<<1;q=y[a+128>>2];y[a+128>>2]=f-q;r=z<<1;s=y[a+124>>2];y[a+124>>2]=r-s;t=v<<1;u=y[a+120>>2];y[a+120>>2]=t-u;y[a+112>>2]=d+e;y[a+108>>2]=g+h;y[a+104>>2]=i+j;y[a+100>>2]=k+l;y[a+96>>2]=m+n;y[a+92>>2]=o+p;y[a+88>>2]=f+q;y[a+84>>2]=r+s;y[a+80>>2]=t+u;y[a+116>>2]=b+c;}function Ja(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=-1;f=d-65|0;if(!(f>>>0<4294967232|c>>>0>64)){a:{if(!(c?b:0)){if((f&255)>>>0<=191){na();s();}o(a- -64|0,0,293);w[a+56|0]=121;w[a+57|0]=33;w[a+58|0]=126;w[a+59|0]=19;w[a+60|0]=25;w[a+61|0]=205;w[a+62|0]=224;w[a+63|0]=91;w[a+48|0]=107;w[a+49|0]=189;w[a+50|0]=65;w[a+51|0]=251;w[a+52|0]=171;w[a+53|0]=217;w[a+54|0]=131;w[a+55|0]=31;w[a+40|0]=31;w[a+41|0]=108;w[a+42|0]=62;w[a+43|0]=43;w[a+44|0]=140;w[a+45|0]=104;w[a+46|0]=5;w[a+47|0]=155;w[a+32|0]=209;w[a+33|0]=130;w[a+34|0]=230;w[a+35|0]=173;w[a+36|0]=127;w[a+37|0]=82;w[a+38|0]=14;w[a+39|0]=81;w[a+24|0]=241;w[a+25|0]=54;w[a+26|0]=29;w[a+27|0]=95;w[a+28|0]=58;w[a+29|0]=245;w[a+30|0]=79;w[a+31|0]=165;w[a+16|0]=43;w[a+17|0]=248;w[a+18|0]=148;w[a+19|0]=254;w[a+20|0]=114;w[a+21|0]=243;w[a+22|0]=110;w[a+23|0]=60;w[a+8|0]=59;w[a+9|0]=167;w[a+10|0]=202;w[a+11|0]=132;w[a+12|0]=133;w[a+13|0]=174;w[a+14|0]=103;w[a+15|0]=187;b=d^-222443256;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=103;w[a+5|0]=230;w[a+6|0]=9;w[a+7|0]=106;break a}e=T-128|0;T=e;b:{if(!(!b|(d-65&255)>>>0<=191|(c-65&255)>>>0<=191)){o(a- -64|0,0,293);w[a+56|0]=121;w[a+57|0]=33;w[a+58|0]=126;w[a+59|0]=19;w[a+60|0]=25;w[a+61|0]=205;w[a+62|0]=224;w[a+63|0]=91;w[a+48|0]=107;w[a+49|0]=189;w[a+50|0]=65;w[a+51|0]=251;w[a+52|0]=171;w[a+53|0]=217;w[a+54|0]=131;w[a+55|0]=31;w[a+40|0]=31;w[a+41|0]=108;w[a+42|0]=62;w[a+43|0]=43;w[a+44|0]=140;w[a+45|0]=104;w[a+46|0]=5;w[a+47|0]=155;w[a+32|0]=209;w[a+33|0]=130;w[a+34|0]=230;w[a+35|0]=173;w[a+36|0]=127;w[a+37|0]=82;w[a+38|0]=14;w[a+39|0]=81;w[a+24|0]=241;w[a+25|0]=54;w[a+26|0]=29;w[a+27|0]=95;w[a+28|0]=58;w[a+29|0]=245;w[a+30|0]=79;w[a+31|0]=165;w[a+16|0]=43;w[a+17|0]=248;w[a+18|0]=148;w[a+19|0]=254;w[a+20|0]=114;w[a+21|0]=243;w[a+22|0]=110;w[a+23|0]=60;w[a+8|0]=59;w[a+9|0]=167;w[a+10|0]=202;w[a+11|0]=132;w[a+12|0]=133;w[a+13|0]=174;w[a+14|0]=103;w[a+15|0]=187;d=(c<<8|d)^-222443256;w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;d=c>>>24^1779033703;w[a+4|0]=d;w[a+5|0]=d>>>8;w[a+6|0]=d>>>16;w[a+7|0]=d>>>24;o(e,0,128);if(c){t(e,b,c);}t(a+96|0,e,128);w[a+352|0]=128;w[a+353|0]=0;w[a+354|0]=0;w[a+355|0]=0;ja(e,128);T=e+128|0;break b}na();s();}}e=0;}return e|0}function Sa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var 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,x=0;a:{if(!d){e=1797285236;i=2036477234;j=857760878;d=1634760805;break a}e=z[d+12|0]|z[d+13|0]<<8|(z[d+14|0]<<16|z[d+15|0]<<24);i=z[d+8|0]|z[d+9|0]<<8|(z[d+10|0]<<16|z[d+11|0]<<24);j=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);d=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);}f=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);h=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);g=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);r=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);q=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);s=20;o=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);p=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);l=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);m=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);n=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);b=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);c=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);while(1){k=Bi(c+j|0,7)^f;t=Bi(k+j|0,9)^q;l=Bi(d+o|0,7)^l;u=Bi(l+d|0,9)^h;v=Bi(u+l|0,13)^o;m=Bi(e+p|0,7)^m;g=Bi(m+e|0,9)^g;h=Bi(g+m|0,13)^p;e=Bi(g+h|0,18)^e;f=Bi(b+i|0,7)^r;o=v^Bi(e+f|0,7);q=t^Bi(o+e|0,9);r=Bi(o+q|0,13)^f;e=Bi(q+r|0,18)^e;n=Bi(f+i|0,9)^n;x=Bi(n+f|0,13)^b;b=Bi(x+n|0,18)^i;p=Bi(b+k|0,7)^h;h=Bi(p+b|0,9)^u;f=Bi(h+p|0,13)^k;i=Bi(f+h|0,18)^b;k=Bi(k+t|0,13)^c;c=Bi(k+t|0,18)^j;b=Bi(c+l|0,7)^x;g=Bi(b+c|0,9)^g;l=Bi(b+g|0,13)^l;j=Bi(g+l|0,18)^c;d=Bi(u+v|0,18)^d;c=Bi(d+m|0,7)^k;n=Bi(c+d|0,9)^n;m=Bi(c+n|0,13)^m;d=Bi(n+m|0,18)^d;k=s>>>0>2;s=s-2|0;if(k){continue}break}w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+28|0]=f;w[a+29|0]=f>>>8;w[a+30|0]=f>>>16;w[a+31|0]=f>>>24;w[a+24|0]=h;w[a+25|0]=h>>>8;w[a+26|0]=h>>>16;w[a+27|0]=h>>>24;w[a+20|0]=g;w[a+21|0]=g>>>8;w[a+22|0]=g>>>16;w[a+23|0]=g>>>24;w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;w[a+12|0]=e;w[a+13|0]=e>>>8;w[a+14|0]=e>>>16;w[a+15|0]=e>>>24;w[a+8|0]=i;w[a+9|0]=i>>>8;w[a+10|0]=i>>>16;w[a+11|0]=i>>>24;w[a+4|0]=j;w[a+5|0]=j>>>8;w[a+6|0]=j>>>16;w[a+7|0]=j>>>24;return 0}function cb(a,b){var 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,A=0,B=0,C=0,D=0,E=0;r=z[b+31|0];s=z[b+30|0];t=z[b+29|0];u=z[b+6|0];v=z[b+5|0];w=z[b+4|0];x=z[b+9|0];A=z[b+8|0];B=z[b+7|0];C=z[b+12|0];l=z[b+11|0];m=z[b+10|0];p=z[b+15|0];n=z[b+14|0];D=z[b+13|0];i=z[b+28|0];k=z[b+27|0];j=z[b+26|0];h=z[b+25|0];f=z[b+24|0];e=z[b+23|0];E=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);d=z[b+21|0];g=d<<15;d=c;c=g;g=z[b+20|0];o=c|g<<7;g=d|d;c=z[b+22|0];c=c<<23|o;d=d|g;q=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);b=0;g=c;o=q+16777216|0;b=o>>>0<16777216?1:b;c=(b&33554431)<<7|o>>>25;g=g+c|0;b=(b>>>25|0)+d|0;d=g;c=d>>>0>>0?b+1|0:b;g=d+33554432|0;b=g>>>0<33554432?c+1|0:c;y[a+24>>2]=d-(g&-67108864);d=e>>>27|0;e=f<<13|e<<5;c=d|f>>>19|h>>>11;d=b;f=h<<21|e;d=(d&67108863)<<6|g>>>26;e=f+d|0;d=e;b=c;e=f+16777216|0;c=e>>>0<16777216?b+1|0:b;y[a+28>>2]=d-(e&1040187392);d=k>>>20|j>>>28|i>>>12;b=c;c=b>>>25|0;b=(b&33554431)<<7|e>>>25;e=b+(k<<12|j<<4|i<<20)|0;d=c+d|0;c=e;d=c>>>0>>0?d+1|0:d;b=d;i=c+33554432|0;e=i>>>0<33554432?b+1|0:b;y[a+32>>2]=c-(i&-67108864);j=q-(o&-33554432)|0;f=n<<10|D<<2|p<<18;h=n>>>22|p>>>14;c=l>>>21|m>>>29;l=l<<11|m<<3|C<<19;k=l+16777216|0;d=k>>>0<16777216?c+1|0:c;b=d>>>25|0;c=f;f=(d&33554431)<<7|k>>>25;d=c+f|0;c=b+h|0;c=d>>>0>>0?c+1|0:c;b=c;f=d+33554432|0;b=f>>>0<33554432?b+1|0:b;c=f;f=((b&67108863)<<6|c>>>26)+j|0;y[a+20>>2]=f;y[a+16>>2]=d-(c&-67108864);f=A<<13|B<<5|x<<21;h=0;m=v<<14|w<<6|u<<22;c=0;j=m+16777216|0;c=j>>>0<16777216?c+1|0:c;d=c>>>25|0;b=f;f=(c&33554431)<<7|j>>>25;c=b+f|0;b=d+h|0;b=c>>>0>>0?b+1|0:b;h=c+33554432|0;d=h>>>0<33554432?b+1|0:b;y[a+8>>2]=c-(h&-67108864);n=r<<18&33292288|(s<<10|t<<2);c=0;e=(e&67108863)<<6|i>>>26;i=e+n|0;b=c;e=n+16777216|0;c=e>>>0<16777216?b+1|0:b;y[a+36>>2]=i-(e&33554432);d=l+((d&67108863)<<6|h>>>26)|0;y[a+12>>2]=d-(k&234881024);f=m-(j&2113929216)|0;b=c;c=b>>>25|0;d=Ai((b&33554431)<<7|e>>>25,c,19,0);c=d+E|0;b=W;d=c>>>0>>0?b+1|0:b;b=c+33554432|0;d=b>>>0<33554432?d+1|0:d;e=((d&67108863)<<6|b>>>26)+f|0;y[a+4>>2]=e;y[a>>2]=c-(b&-67108864);}function va(a,b,c,d){var 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;o=T-704|0;T=o;a:{if(!(c|d)){break a}g=y[a+76>>2];f=g;g=(d<<3|c>>>29)+f|0;k=y[a+72>>2];i=c<<3;h=k+i|0;y[a+72>>2]=h;g=h>>>0>>0?g+1|0:g;y[a+76>>2]=g;e=a- -64|0;i=e;h=(f|0)==(g|0)&h>>>0>>0|f>>>0>g>>>0;g=y[e+4>>2];r=h;h=h+y[e>>2]|0;e=r>>>0>h>>>0?g+1|0:g;j=d>>>29|0;h=j+h|0;y[i>>2]=h;y[i+4>>2]=h>>>0>>0?e+1|0:e;h=a+80|0;i=((f&7)<<29|k>>>3)&127;g=i;e=128-g|0;k=e;j=0;r=0-(j+(g>>>0>128)|0)|0;g=r;if((d|0)==(g|0)&c>>>0>=e>>>0|d>>>0>g>>>0){s=e&3;f=0;g=0;b:{if(!j&(i^127)>>>0>=3|j){j=e&252;while(1){e=f+i|0;w[e+h|0]=z[b+f|0];e=f|1;q=i+e|0;w[h+q|0]=z[b+e|0];e=f|2;q=i+e|0;w[h+q|0]=z[b+e|0];e=f|3;q=i+e|0;w[h+q|0]=z[b+e|0];f=f+4|0;g=f>>>0<4?g+1|0:g;e=p;m=m+4|0;e=m>>>0<4?e+1|0:e;p=e;if((j|0)!=(m|0)|(n|0)!=(e|0)){continue}break}if(!(s|t)){break b}}while(1){e=f+i|0;w[e+h|0]=z[b+f|0];e=g;f=f+1|0;g=f?e:e+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((l|0)!=(s|0)|(t|0)!=(e|0)){continue}break}}f=o+640|0;Xb(a,h,o,f);b=b+k|0;d=d-((c>>>0>>0)+r|0)|0;c=c-k|0;if(!d&c>>>0>127|d){while(1){Xb(a,b,o,f);b=b+128|0;d=d-(c>>>0<128)|0;c=c-128|0;if(!d&c>>>0>127|d){continue}break}}c:{if(!(c|d)){break c}a=c&3;p=0;l=0;n=0;f=0;g=0;if(!d&c>>>0>=4|d){m=c&124;k=0;c=0;d=0;while(1){w[f+h|0]=z[b+f|0];e=f|1;w[e+h|0]=z[b+e|0];e=f|2;w[e+h|0]=z[b+e|0];e=f|3;w[e+h|0]=z[b+e|0];e=g;f=f+4|0;g=f>>>0<4?e+1|0:e;e=d;c=c+4|0;e=c>>>0<4?e+1|0:e;d=e;if((c|0)!=(m|0)|(k|0)!=(e|0)){continue}break}if(!(a|p)){break c}}while(1){w[f+h|0]=z[b+f|0];f=f+1|0;g=f?g:g+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((a|0)!=(l|0)|(p|0)!=(e|0)){continue}break}}ja(o,704);break a}a=c&3;k=0;f=0;g=0;if(!d&c>>>0>=4|d){c=c&-4;while(1){e=f+i|0;w[e+h|0]=z[b+f|0];e=f|1;j=i+e|0;w[h+j|0]=z[b+e|0];e=f|2;j=i+e|0;w[h+j|0]=z[b+e|0];e=f|3;j=i+e|0;w[h+j|0]=z[b+e|0];f=f+4|0;g=f>>>0<4?g+1|0:g;e=p;m=m+4|0;e=m>>>0<4?e+1|0:e;p=e;if((c|0)!=(m|0)|(d|0)!=(e|0)){continue}break}if(!(a|k)){break a}}while(1){c=f+i|0;w[c+h|0]=z[b+f|0];f=f+1|0;g=f?g:g+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((a|0)!=(l|0)|(k|0)!=(e|0)){continue}break}}T=o+704|0;return 0}function xe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=T-736|0;T=c;h=c+704|0;ha(h,b,b);e=c+224|0;ha(e,b,h);g=c+672|0;ha(g,b,e);f=c+640|0;ha(f,g,g);j=c+416|0;ha(j,h,f);h=c+320|0;ha(h,b,j);d=c+608|0;ha(d,f,f);f=c+288|0;ha(f,h,h);i=c+576|0;ha(i,j,f);m=c+448|0;ha(m,d,f);k=c+544|0;ha(k,i,i);i=c+384|0;ha(i,d,k);l=c+352|0;ha(l,e,i);e=c+192|0;ha(e,d,l);d=c+160|0;ha(d,g,e);ha(c+96|0,g,d);e=c+512|0;ha(e,k,l);d=c+480|0;ha(d,g,e);e=c+256|0;ha(e,m,d);ha(c+128|0,f,e);f=c- -64|0;ha(f,i,d);d=c+32|0;ha(d,g,f);ha(c,j,d);ha(a,h,c);g=0;while(1){ha(a,a,a);g=g+1|0;if((g|0)!=126){continue}break}ha(a,a,c+352|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+704|0);ha(a,a,c);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+160|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+256|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c- -64|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+96|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+320|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+512|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+192|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+480|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+128|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+32|0);T=c+736|0;return 0-ya(b,32)|0}function Yd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=T-160|0;T=k;rb(b,c,32,0);w[b|0]=z[b|0]&248;w[b+31|0]=z[b+31|0]&63|64;jb(k,b);Wa(a,k);f=c;g=z[f|0]|z[f+1|0]<<8|(z[f+2|0]<<16|z[f+3|0]<<24);e=z[f+4|0]|z[f+5|0]<<8|(z[f+6|0]<<16|z[f+7|0]<<24);h=z[f+8|0]|z[f+9|0]<<8|(z[f+10|0]<<16|z[f+11|0]<<24);i=z[f+12|0]|z[f+13|0]<<8|(z[f+14|0]<<16|z[f+15|0]<<24);j=z[f+16|0]|z[f+17|0]<<8|(z[f+18|0]<<16|z[f+19|0]<<24);c=z[f+20|0]|z[f+21|0]<<8|(z[f+22|0]<<16|z[f+23|0]<<24);l=z[f+28|0]|z[f+29|0]<<8|(z[f+30|0]<<16|z[f+31|0]<<24);d=b;b=z[f+24|0]|z[f+25|0]<<8|(z[f+26|0]<<16|z[f+27|0]<<24);w[d+24|0]=b;w[d+25|0]=b>>>8;w[d+26|0]=b>>>16;w[d+27|0]=b>>>24;w[d+28|0]=l;w[d+29|0]=l>>>8;w[d+30|0]=l>>>16;w[d+31|0]=l>>>24;w[d+16|0]=j;w[d+17|0]=j>>>8;w[d+18|0]=j>>>16;w[d+19|0]=j>>>24;w[d+20|0]=c;w[d+21|0]=c>>>8;w[d+22|0]=c>>>16;w[d+23|0]=c>>>24;w[d+8|0]=h;w[d+9|0]=h>>>8;w[d+10|0]=h>>>16;w[d+11|0]=h>>>24;w[d+12|0]=i;w[d+13|0]=i>>>8;w[d+14|0]=i>>>16;w[d+15|0]=i>>>24;w[d|0]=g;w[d+1|0]=g>>>8;w[d+2|0]=g>>>16;w[d+3|0]=g>>>24;w[d+4|0]=e;w[d+5|0]=e>>>8;w[d+6|0]=e>>>16;w[d+7|0]=e>>>24;e=a;h=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);i=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);j=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);c=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);b=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);a=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);g=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);e=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);w[d+56|0]=e;w[d+57|0]=e>>>8;w[d+58|0]=e>>>16;w[d+59|0]=e>>>24;w[d+60|0]=g;w[d+61|0]=g>>>8;w[d+62|0]=g>>>16;w[d+63|0]=g>>>24;w[d+48|0]=b;w[d+49|0]=b>>>8;w[d+50|0]=b>>>16;w[d+51|0]=b>>>24;w[d+52|0]=a;w[d+53|0]=a>>>8;w[d+54|0]=a>>>16;w[d+55|0]=a>>>24;w[d+40|0]=j;w[d+41|0]=j>>>8;w[d+42|0]=j>>>16;w[d+43|0]=j>>>24;w[d+44|0]=c;w[d+45|0]=c>>>8;w[d+46|0]=c>>>16;w[d+47|0]=c>>>24;w[d+32|0]=h;w[d+33|0]=h>>>8;w[d+34|0]=h>>>16;w[d+35|0]=h>>>24;w[d+36|0]=i;w[d+37|0]=i>>>8;w[d+38|0]=i>>>16;w[d+39|0]=i>>>24;T=k+160|0;return 0}function Ra(a,b,c){var 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;o=y[b+4>>2];d=y[a+4>>2];p=y[b+8>>2];e=y[a+8>>2];q=y[b+12>>2];f=y[a+12>>2];r=y[b+16>>2];g=y[a+16>>2];s=y[b+20>>2];h=y[a+20>>2];t=y[b+24>>2];i=y[a+24>>2];n=y[b+28>>2];j=y[a+28>>2];u=y[b+32>>2];k=y[a+32>>2];v=y[b+36>>2];l=y[a+36>>2];c=0-c|0;m=y[a>>2];y[a>>2]=c&(m^y[b>>2])^m;y[a+36>>2]=l^c&(l^v);y[a+32>>2]=k^c&(k^u);y[a+28>>2]=j^c&(j^n);y[a+24>>2]=i^c&(i^t);y[a+20>>2]=h^c&(h^s);y[a+16>>2]=g^c&(g^r);y[a+12>>2]=f^c&(f^q);y[a+8>>2]=e^c&(e^p);y[a+4>>2]=d^c&(d^o);d=y[a+40>>2];o=y[b+40>>2];e=y[a+44>>2];p=y[b+44>>2];f=y[a+48>>2];q=y[b+48>>2];g=y[a+52>>2];r=y[b+52>>2];h=y[a+56>>2];s=y[b+56>>2];i=y[a+60>>2];t=y[b+60>>2];n=a- -64|0;j=y[n>>2];u=y[b- -64>>2];k=y[a+68>>2];v=y[b+68>>2];l=y[a+72>>2];m=y[b+72>>2];w=y[a+76>>2];y[a+76>>2]=w^c&(y[b+76>>2]^w);y[a+72>>2]=l^c&(l^m);y[a+68>>2]=k^c&(k^v);y[n>>2]=j^c&(j^u);y[a+60>>2]=i^c&(i^t);y[a+56>>2]=h^c&(h^s);y[a+52>>2]=g^c&(g^r);y[a+48>>2]=f^c&(f^q);y[a+44>>2]=e^c&(e^p);y[a+40>>2]=d^c&(d^o);d=y[a+80>>2];o=y[b+80>>2];e=y[a+84>>2];p=y[b+84>>2];f=y[a+88>>2];q=y[b+88>>2];g=y[a+92>>2];r=y[b+92>>2];h=y[a+96>>2];s=y[b+96>>2];i=y[a+100>>2];t=y[b+100>>2];j=y[a+104>>2];n=y[b+104>>2];k=y[a+108>>2];u=y[b+108>>2];l=y[a+112>>2];v=y[b+112>>2];m=y[a+116>>2];y[a+116>>2]=c&(m^y[b+116>>2])^m;y[a+112>>2]=l^c&(l^v);y[a+108>>2]=k^c&(k^u);y[a+104>>2]=j^c&(j^n);y[a+100>>2]=i^c&(i^t);y[a+96>>2]=h^c&(h^s);y[a+92>>2]=g^c&(g^r);y[a+88>>2]=f^c&(f^q);y[a+84>>2]=e^c&(e^p);y[a+80>>2]=d^c&(d^o);d=y[a+120>>2];o=y[b+120>>2];e=y[a+124>>2];p=y[b+124>>2];f=y[a+128>>2];q=y[b+128>>2];g=y[a+132>>2];r=y[b+132>>2];h=y[a+136>>2];s=y[b+136>>2];i=y[a+140>>2];t=y[b+140>>2];j=y[a+144>>2];n=y[b+144>>2];k=y[a+148>>2];u=y[b+148>>2];l=y[a+152>>2];v=y[b+152>>2];m=y[b+156>>2];b=y[a+156>>2];y[a+156>>2]=c&(m^b)^b;y[a+152>>2]=l^c&(l^v);y[a+148>>2]=k^c&(k^u);y[a+144>>2]=j^c&(j^n);y[a+140>>2]=i^c&(i^t);y[a+136>>2]=h^c&(h^s);y[a+132>>2]=g^c&(g^r);y[a+128>>2]=f^c&(f^q);y[a+124>>2]=e^c&(e^p);y[a+120>>2]=d^c&(d^o);}function Ac(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((h&-7)==1){a:{b:{c:{d:{e:{f:{g:{if(d){h:{i:{if(h>>>0<=3){while(1){l=i;j:{k:{l:{m:{while(1){k=w[c+l|0];j=k-65|0;j=j&(k-91&(j^-1))>>>8&255|(k+4&(k-58&(k+65488^-1))>>>8&255|(k+185&(k-123&(k+65439^-1))>>>8&255|(((k^16336)+1^-1)>>>8&63|((k^16340)+1^-1)>>>8&62)));j=(j-1&(k^65470)+1)>>>8&255|j;if((j|0)!=255){break m}j=0;if(!e){break h}if(ob(e,k)){l=l+1|0;if(l>>>0>=d>>>0){break l}continue}break}i=l;break h}o=j+(o<<6)|0;if(m>>>0>1){break k}m=m+6|0;break j}a=i+1|0;i=a>>>0>>0?d:a;break h}m=m-2|0;if(b>>>0<=n>>>0){break i}w[a+n|0]=o>>>m;n=n+1|0;}j=0;i=l+1|0;if(i>>>0>>0){continue}break}break h}while(1){n:{k=w[c+l|0];j=k-65|0;j=j&(k-91&(j^-1))>>>8&255|(k+4&(k-58&(k+65488^-1))>>>8&255|(k+185&(k-123&(k+65439^-1))>>>8&255|(((k^16288)+1^-1)>>>8&63|((k^16338)+1^-1)>>>8&62)));j=(j-1&(k^65470)+1)>>>8&255|j;if((j|0)==255){j=0;if(!e){break h}if(ob(e,k)){l=l+1|0;if(l>>>0>=d>>>0){break n}continue}i=l;break h}o=j+(o<<6)|0;o:{if(m>>>0<2){m=m+6|0;break o}m=m-2|0;if(b>>>0<=n>>>0){break i}w[a+n|0]=o>>>m;n=n+1|0;}j=0;i=l+1|0;if(i>>>0>=d>>>0){break h}l=i;continue}break}a=i+1|0;i=a>>>0>>0?d:a;break h}i=l;y[10172]=68;j=1;}if(m>>>0>4){break g}a=i;}else {a=0;}l=-1;if(j){i=a;break a}if((-1<>>1|0;if(!j){break p}if(!e){break e}i=a>>>0>d>>>0?a:d;while(1){if((a|0)==(i|0)){e=68;break d}q:{b=w[a+c|0];if((b|0)==61){j=j-1|0;break q}if(ob(e,b)){break q}e=28;i=a;break d}a=a+1|0;if(j){continue}break}}l=0;if(!e|a>>>0>=d>>>0){break f}while(1){if(!ob(e,w[a+c|0])){break f}a=a+1|0;if((d|0)!=(a|0)){continue}break}i=d;break b}l=-1;break a}i=a;break b}e=68;if(a>>>0>=d>>>0){i=a;break d}e=28;if(z[a+c|0]!=61){i=a;break d}i=a+1|0;if((j|0)==1){l=0;break b}if((d|0)==(i|0)){i=a>>>0>d>>>0?a:d;e=68;break d}if(z[c+i|0]==61){break c}}y[10172]=e;break a}i=a+2|0;l=0;}p=n;}r:{if(g){y[g>>2]=c+i;break r}if((d|0)==(i|0)){break r}y[10172]=28;l=-1;}if(f){y[f>>2]=p;}return l|0}na();s();}function cc(a,b,c){var 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,x=0,z=0;d=T-320|0;T=d;e=d+240|0;fa(e,c);ga(e,e,c);fa(a,e);ga(a,a,c);ga(a,a,b);gc(a,a);ga(a,a,e);ga(a,a,b);e=d+192|0;fa(e,a);ga(e,e,c);f=y[b+4>>2];n=y[b+8>>2];p=y[b+12>>2];q=y[b+16>>2];r=y[b+20>>2];s=y[b+24>>2];t=y[b+28>>2];u=y[b+32>>2];v=y[b>>2];c=y[d+192>>2];e=y[d+196>>2];g=y[d+200>>2];h=y[d+204>>2];i=y[d+208>>2];j=y[d+212>>2];k=y[d+216>>2];l=y[d+220>>2];m=y[d+224>>2];o=y[d+228>>2];x=y[b+36>>2];y[d+180>>2]=o-x;y[d+176>>2]=m-u;y[d+172>>2]=l-t;y[d+168>>2]=k-s;y[d+164>>2]=j-r;y[d+160>>2]=i-q;y[d+156>>2]=h-p;y[d+152>>2]=g-n;y[d+148>>2]=e-f;y[d+144>>2]=c-v;y[d+132>>2]=o+x;y[d+128>>2]=m+u;y[d+124>>2]=l+t;y[d+120>>2]=k+s;y[d+116>>2]=j+r;y[d+112>>2]=i+q;y[d+108>>2]=h+p;y[d+104>>2]=g+n;y[d+100>>2]=e+f;y[d+96>>2]=c+v;f=d+48|0;ga(f,b,1632);y[d+84>>2]=o+y[d+84>>2];y[d+80>>2]=m+y[d+80>>2];y[d+76>>2]=l+y[d+76>>2];y[d+72>>2]=k+y[d+72>>2];y[d+68>>2]=j+y[d+68>>2];y[d+64>>2]=i+y[d+64>>2];y[d+60>>2]=h+y[d+60>>2];y[d+56>>2]=g+y[d+56>>2];y[d+52>>2]=e+y[d+52>>2];y[d+48>>2]=c+y[d+48>>2];pa(d,d+144|0);p=ya(d,32);pa(d,d+96|0);n=ya(d,32);pa(d,f);b=ya(d,32);ga(d,a,1632);m=y[a+4>>2];l=y[a+8>>2];k=y[a+12>>2];j=y[a+16>>2];i=y[a+20>>2];h=y[a+24>>2];g=y[a+28>>2];e=y[a+32>>2];f=y[a>>2];q=y[d>>2];r=y[d+4>>2];s=y[d+8>>2];t=y[d+12>>2];u=y[d+16>>2];v=y[d+20>>2];o=y[d+24>>2];x=y[d+28>>2];z=y[d+32>>2];b=0-(b|n)|0;c=y[a+36>>2];c=b&(c^y[d+36>>2])^c;y[a+36>>2]=c;e=e^b&(e^z);y[a+32>>2]=e;g=g^b&(g^x);y[a+28>>2]=g;h=h^b&(h^o);y[a+24>>2]=h;i=i^b&(i^v);y[a+20>>2]=i;j=j^b&(j^u);y[a+16>>2]=j;k=k^b&(k^t);y[a+12>>2]=k;l=l^b&(l^s);y[a+8>>2]=l;m=m^b&(m^r);y[a+4>>2]=m;f=f^b&(f^q);y[a>>2]=f;pa(d+288|0,a);b=0-(w[d+288|0]&1)|0;y[a+36>>2]=c^b&(c^0-c);y[a+32>>2]=e^b&(e^0-e);y[a+28>>2]=g^b&(g^0-g);y[a+24>>2]=h^b&(h^0-h);y[a+20>>2]=i^b&(i^0-i);y[a+16>>2]=j^b&(j^0-j);y[a+12>>2]=k^b&(k^0-k);y[a+8>>2]=l^b&(l^0-l);y[a+4>>2]=m^b&(m^0-m);y[a>>2]=f^b&(f^0-f);T=d+320|0;return n|p}function ab(a,b){var 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,x=0,A=0,B=0,C=0;c=T-320|0;T=c;A=a+40|0;cb(A,b);y[a+84>>2]=0;y[a+88>>2]=0;y[a+80>>2]=1;y[a+92>>2]=0;y[a+96>>2]=0;y[a+100>>2]=0;y[a+104>>2]=0;y[a+108>>2]=0;y[a+112>>2]=0;y[a+116>>2]=0;d=c+240|0;fa(d,A);e=c+192|0;ga(e,d,1584);y[c+192>>2]=y[c+192>>2]+1;f=y[c+240>>2]-1|0;y[c+240>>2]=f;g=y[c+244>>2];h=y[c+248>>2];i=y[c+252>>2];j=y[c+256>>2];k=y[c+260>>2];l=y[c+264>>2];m=y[c+268>>2];n=y[c+272>>2];o=y[c+276>>2];ga(a,d,e);gc(a,a);ga(a,d,a);d=c+144|0;fa(d,a);ga(d,d,e);d=y[c+180>>2];y[c+132>>2]=d-o;e=y[c+176>>2];y[c+128>>2]=e-n;p=y[c+172>>2];y[c+124>>2]=p-m;q=y[c+168>>2];y[c+120>>2]=q-l;r=y[c+164>>2];y[c+116>>2]=r-k;s=y[c+160>>2];y[c+112>>2]=s-j;t=y[c+156>>2];y[c+108>>2]=t-i;u=y[c+152>>2];y[c+104>>2]=u-h;v=y[c+148>>2];y[c+100>>2]=v-g;x=y[c+144>>2];y[c+96>>2]=x-f;y[c+84>>2]=d+o;y[c+80>>2]=e+n;y[c+76>>2]=m+p;y[c+72>>2]=l+q;y[c+68>>2]=k+r;y[c+64>>2]=j+s;y[c+60>>2]=i+t;y[c+56>>2]=h+u;y[c+52>>2]=g+v;y[c+48>>2]=f+x;pa(c,c+96|0);n=ya(c,32);pa(c,c+48|0);p=ya(c,32);ga(c,a,1632);m=y[a+4>>2];l=y[a+8>>2];k=y[a+12>>2];j=y[a+16>>2];i=y[a+20>>2];h=y[a+24>>2];g=y[a+28>>2];f=y[a+32>>2];o=y[a>>2];q=y[c>>2];r=y[c+4>>2];s=y[c+8>>2];t=y[c+12>>2];u=y[c+16>>2];v=y[c+20>>2];x=y[c+24>>2];B=y[c+28>>2];C=y[c+32>>2];d=n-1|0;e=y[a+36>>2];e=d&(e^y[c+36>>2])^e;y[a+36>>2]=e;f=f^d&(f^C);y[a+32>>2]=f;g=g^d&(g^B);y[a+28>>2]=g;h=h^d&(h^x);y[a+24>>2]=h;i=i^d&(i^v);y[a+20>>2]=i;j=j^d&(j^u);y[a+16>>2]=j;k=k^d&(k^t);y[a+12>>2]=k;l=l^d&(l^s);y[a+8>>2]=l;m=m^d&(m^r);y[a+4>>2]=m;d=o^d&(o^q);y[a>>2]=d;pa(c+288|0,a);b=0-(w[c+288|0]&1^z[b+31|0]>>>7^z[41218]>>>2)|0;y[a+36>>2]=e^b&(e^0-e);y[a+32>>2]=f^b&(f^0-f);y[a+28>>2]=g^b&(g^0-g);y[a+24>>2]=h^b&(h^0-h);y[a+20>>2]=i^b&(i^0-i);y[a+16>>2]=j^b&(j^0-j);y[a+12>>2]=k^b&(k^0-k);y[a+8>>2]=l^b&(l^0-l);y[a+4>>2]=m^b&(m^0-m);y[a>>2]=d^b&(d^0-d);ga(a+120|0,a,A);T=c+320|0;return (n|p)-1|0}function xa(a,b){var 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,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;c=T-48|0;T=c;fa(a,b);fa(a+80|0,b+40|0);Oc(a+120|0,b+80|0);i=y[b+40>>2];e=y[b+44>>2];d=y[b+4>>2];f=y[b+48>>2];j=y[b+8>>2];g=y[b+52>>2];k=y[b+12>>2];h=y[b+56>>2];p=y[b+16>>2];l=y[b+60>>2];q=y[b+20>>2];m=y[b- -64>>2];r=y[b+24>>2];n=y[b+68>>2];s=y[b+28>>2];o=y[b+72>>2];t=y[b+32>>2];v=y[b>>2];y[a+76>>2]=y[b+76>>2]+y[b+36>>2];y[a+72>>2]=o+t;y[a+68>>2]=n+s;w=a- -64|0;y[w>>2]=m+r;y[a+60>>2]=l+q;y[a+56>>2]=h+p;y[a+52>>2]=g+k;y[a+48>>2]=f+j;y[a+44>>2]=e+d;b=a+40|0;y[b>>2]=i+v;fa(c,b);i=y[a+80>>2];e=y[a+4>>2];d=y[a+84>>2];f=y[a+8>>2];j=y[a+88>>2];g=y[a+12>>2];k=y[a+92>>2];h=y[a+16>>2];p=y[a+96>>2];l=y[a+20>>2];q=y[a+100>>2];m=y[a+24>>2];r=y[a+104>>2];n=y[a+28>>2];s=y[a+108>>2];o=y[a+32>>2];t=y[a+112>>2];v=y[a>>2];u=y[a+116>>2];x=y[a+36>>2];z=u-x|0;y[a+116>>2]=z;A=t-o|0;y[a+112>>2]=A;B=s-n|0;y[a+108>>2]=B;C=r-m|0;y[a+104>>2]=C;D=q-l|0;y[a+100>>2]=D;E=p-h|0;y[a+96>>2]=E;F=k-g|0;y[a+92>>2]=F;G=j-f|0;y[a+88>>2]=G;H=d-e|0;y[a+84>>2]=H;I=i-v|0;y[a+80>>2]=I;u=u+x|0;y[a+76>>2]=u;o=o+t|0;y[a+72>>2]=o;n=n+s|0;y[a+68>>2]=n;m=m+r|0;y[w>>2]=m;l=l+q|0;y[a+60>>2]=l;h=h+p|0;y[a+56>>2]=h;g=g+k|0;y[a+52>>2]=g;f=f+j|0;y[a+48>>2]=f;e=e+d|0;y[a+44>>2]=e;d=b;b=i+v|0;y[d>>2]=b;i=y[c>>2];d=y[c+4>>2];j=y[c+8>>2];k=y[c+12>>2];p=y[c+16>>2];q=y[c+20>>2];r=y[c+24>>2];s=y[c+28>>2];t=y[c+32>>2];y[a+36>>2]=y[c+36>>2]-u;y[a+32>>2]=t-o;y[a+28>>2]=s-n;y[a+24>>2]=r-m;y[a+20>>2]=q-l;y[a+16>>2]=p-h;y[a+12>>2]=k-g;y[a+8>>2]=j-f;y[a+4>>2]=d-e;y[a>>2]=i-b;b=y[a+120>>2];i=y[a+124>>2];e=y[a+128>>2];d=y[a+132>>2];f=y[a+136>>2];j=y[a+140>>2];g=y[a+144>>2];k=y[a+148>>2];h=y[a+152>>2];y[a+156>>2]=y[a+156>>2]-z;y[a+152>>2]=h-A;y[a+148>>2]=k-B;y[a+144>>2]=g-C;y[a+140>>2]=j-D;y[a+136>>2]=f-E;y[a+132>>2]=d-F;y[a+128>>2]=e-G;y[a+124>>2]=i-H;y[a+120>>2]=b-I;T=c+48|0;}function La(a,b,c,d){var 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;o=T-288|0;T=o;a:{if(!(c|d)){break a}h=y[a+36>>2];f=h;e=(d<<3|c>>>29)+f|0;g=y[a+32>>2];j=c<<3;i=g+j|0;y[a+32>>2]=i;y[a+36>>2]=j>>>0>i>>>0?e+1|0:e;h=a+40|0;k=((f&7)<<29|g>>>3)&63;g=k;j=64-g|0;e=0;r=0-(e+(g>>>0>64)|0)|0;g=r;if((d|0)==(g|0)&c>>>0>=j>>>0|d>>>0>g>>>0){s=j&3;f=0;g=0;b:{if(!e&(k^63)>>>0>=3|e){t=j&124;while(1){e=f+k|0;w[e+h|0]=z[b+f|0];i=f|1;e=k+i|0;w[e+h|0]=z[b+i|0];i=f|2;e=k+i|0;w[e+h|0]=z[b+i|0];i=f|3;e=k+i|0;w[e+h|0]=z[b+i|0];f=f+4|0;g=f>>>0<4?g+1|0:g;e=p;m=m+4|0;e=m>>>0<4?e+1|0:e;p=e;if((m|0)!=(t|0)|(q|0)!=(e|0)){continue}break}if(!(s|q)){break b}}while(1){e=f+k|0;w[e+h|0]=z[b+f|0];e=g;f=f+1|0;g=f?e:e+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((l|0)!=(s|0)|(q|0)!=(e|0)){continue}break}}n=o+256|0;Tb(a,h,o,n);b=b+j|0;d=d-((c>>>0>>0)+r|0)|0;c=c-j|0;if(!d&c>>>0>63|d){while(1){Tb(a,b,o,n);b=b- -64|0;g=d-1|0;c=c+-64|0;d=c>>>0<4294967232?g+1|0:g;if(!d&c>>>0>63|d){continue}break}}c:{if(!(c|d)){break c}i=c&3;j=0;l=0;n=0;f=0;g=0;if(!d&c>>>0>=4|d){m=c&60;p=0;c=0;d=0;while(1){w[f+h|0]=z[b+f|0];a=f|1;w[a+h|0]=z[a+b|0];a=f|2;w[a+h|0]=z[a+b|0];a=f|3;w[a+h|0]=z[a+b|0];e=g;f=f+4|0;g=f>>>0<4?e+1|0:e;e=d;c=c+4|0;e=c>>>0<4?e+1|0:e;d=e;if((c|0)!=(m|0)|(p|0)!=(e|0)){continue}break}if(!(j|i)){break c}}while(1){w[f+h|0]=z[b+f|0];f=f+1|0;g=f?g:g+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((i|0)!=(l|0)|(j|0)!=(e|0)){continue}break}}ja(o,288);break a}q=c&3;i=0;f=0;g=0;if(!d&c>>>0>=4|d){j=c&-4;while(1){a=f+k|0;w[a+h|0]=z[b+f|0];c=f|1;a=k+c|0;w[a+h|0]=z[b+c|0];c=f|2;a=k+c|0;w[a+h|0]=z[b+c|0];c=f|3;a=k+c|0;w[a+h|0]=z[b+c|0];f=f+4|0;g=f>>>0<4?g+1|0:g;e=p;m=m+4|0;e=m>>>0<4?e+1|0:e;p=e;if((j|0)!=(m|0)|(d|0)!=(e|0)){continue}break}if(!(i|q)){break a}}while(1){a=f+k|0;w[a+h|0]=z[b+f|0];f=f+1|0;g=f?g:g+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((l|0)!=(q|0)|(i|0)!=(e|0)){continue}break}}T=o+288|0;return 0}function Mc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=T-160|0;T=d;e=z[41218];y[a+4>>2]=0;y[a+8>>2]=0;y[a>>2]=1;y[a+12>>2]=0;y[a+16>>2]=0;y[a+20>>2]=0;y[a+24>>2]=0;y[a+28>>2]=0;y[a+32>>2]=0;y[a+44>>2]=0;y[a+48>>2]=0;y[a+36>>2]=0;y[a+40>>2]=1;y[a+52>>2]=0;y[a+56>>2]=0;y[a+60>>2]=0;y[a+64>>2]=0;y[a+68>>2]=0;y[a+72>>2]=0;y[a+76>>2]=0;y[a+80>>2]=1;o(a+84|0,0,76);e=e>>>2^(c&128)>>>7;c=c-((0-e&c)<<1)|0;Ra(a,b,z[41218]>>>2^((c^1)&255)-1>>>31);Ra(a,b+160|0,z[41218]>>>2^((c^2)&255)-1>>>31);Ra(a,b+320|0,z[41218]>>>2^((c^3)&255)-1>>>31);Ra(a,b+480|0,z[41218]>>>2^((c^4)&255)-1>>>31);Ra(a,b+640|0,z[41218]>>>2^((c^5)&255)-1>>>31);Ra(a,b+800|0,z[41218]>>>2^((c^6)&255)-1>>>31);Ra(a,b+960|0,z[41218]>>>2^((c^7)&255)-1>>>31);Ra(a,b+1120|0,z[41218]>>>2^((c^8)&255)-1>>>31);b=y[a+76>>2];y[d+32>>2]=y[a+72>>2];y[d+36>>2]=b;b=a- -64|0;c=y[b+4>>2];y[d+24>>2]=y[b>>2];y[d+28>>2]=c;b=y[a+60>>2];y[d+16>>2]=y[a+56>>2];y[d+20>>2]=b;b=y[a+52>>2];y[d+8>>2]=y[a+48>>2];y[d+12>>2]=b;b=y[a+44>>2];y[d>>2]=y[a+40>>2];y[d+4>>2]=b;b=y[a+36>>2];y[d+72>>2]=y[a+32>>2];y[d+76>>2]=b;b=y[a+28>>2];y[d+64>>2]=y[a+24>>2];y[d+68>>2]=b;b=y[a+20>>2];y[d+56>>2]=y[a+16>>2];y[d+60>>2]=b;b=y[a+12>>2];y[d+48>>2]=y[a+8>>2];y[d+52>>2]=b;b=y[a+4>>2];y[d+40>>2]=y[a>>2];y[d+44>>2]=b;b=y[a+92>>2];y[d+88>>2]=y[a+88>>2];y[d+92>>2]=b;b=y[a+84>>2];y[d+80>>2]=y[a+80>>2];y[d+84>>2]=b;b=y[a+100>>2];y[d+96>>2]=y[a+96>>2];y[d+100>>2]=b;b=y[a+108>>2];y[d+104>>2]=y[a+104>>2];y[d+108>>2]=b;b=y[a+116>>2];y[d+112>>2]=y[a+112>>2];y[d+116>>2]=b;b=y[a+120>>2];c=y[a+124>>2];f=y[a+128>>2];g=y[a+132>>2];h=y[a+136>>2];i=y[a+140>>2];j=y[a+144>>2];k=y[a+148>>2];l=y[a+152>>2];y[d+156>>2]=0-y[a+156>>2];y[d+152>>2]=0-l;y[d+148>>2]=0-k;y[d+144>>2]=0-j;y[d+140>>2]=0-i;y[d+136>>2]=0-h;y[d+132>>2]=0-g;y[d+128>>2]=0-f;y[d+124>>2]=0-c;y[d+120>>2]=0-b;Ra(a,d,e);T=d+160|0;}function lc(a,b,c,d,e,f){var g=0;y[f>>2]=8;a:{b:{g=a;a=!b&a>>>0<=32768;g=a?32768:g;c:{d:{a=a?0:b;if(!a&c>>>5>>>0<=g>>>0|a){if(c>>>0>=4096){break d}b=1;break c}y[e>>2]=1;b=(g>>>0)/(y[f>>2]<<2>>>0)|0;a=1;if(b>>>0<4){break a}a=2;if(b>>>0<8){break a}if(b>>>0<16){y[d>>2]=3;return}if(b>>>0<32){y[d>>2]=4;return}if(b>>>0<64){y[d>>2]=5;return}if(b>>>0<128){y[d>>2]=6;return}if(b>>>0<256){y[d>>2]=7;return}if(b>>>0<512){y[d>>2]=8;return}if(b>>>0<1024){y[d>>2]=9;return}if(b>>>0<2048){y[d>>2]=10;return}if(b>>>0<4096){y[d>>2]=11;return}if(b>>>0<8192){y[d>>2]=12;return}if(b>>>0<16384){y[d>>2]=13;return}if(b>>>0<32768){y[d>>2]=14;return}if(b>>>0<65536){y[d>>2]=15;return}if(b>>>0<131072){y[d>>2]=16;return}if(b>>>0<262144){y[d>>2]=17;return}if(b>>>0<524288){y[d>>2]=18;return}if(b>>>0<1048576){y[d>>2]=19;return}if(b>>>0<2097152){y[d>>2]=20;return}if(b>>>0<4194304){y[d>>2]=21;return}if(b>>>0<8388608){y[d>>2]=22;return}if(b>>>0<16777216){y[d>>2]=23;return}if(b>>>0>=33554432){break b}y[d>>2]=24;return}b=2;if(c>>>0<8192){break c}b=3;if(c>>>0<16384){break c}b=4;if(c>>>0<32768){break c}b=5;if(c>>>0<65536){break c}b=6;if(c>>>0<131072){break c}b=7;if(c>>>0<262144){break c}b=8;if(c>>>0<524288){break c}b=9;if(c>>>0<1048576){break c}b=10;if(c>>>0<2097152){break c}b=11;if(c>>>0<4194304){break c}b=12;if(c>>>0<8388608){break c}b=13;if(c>>>0<16777216){break c}b=14;if(c>>>0<33554432){break c}b=15;if(c>>>0<67108864){break c}b=16;if(c>>>0<134217728){break c}b=17;if(c>>>0<268435456){break c}b=18;if(c>>>0<536870912){break c}b=19;if(c>>>0<1073741824){break c}b=(c|0)>=0?20:21;}c=b;y[d>>2]=c;b=a;a=b>>>2|0;b=(b&3)<<30|g>>>2;d=c&31;if((c&63)>>>0>=32){c=0;a=a>>>d|0;}else {c=a>>>d|0;a=((1<>>d;}y[e>>2]=((!c&a>>>0>=1073741823|c?1073741823:a)>>>0)/B[f>>2];return}a=b>>>0<67108864?25:26;}y[d>>2]=a;}function Re(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;i=T-112|0;T=i;if(c|d){j=z[h+28|0]|z[h+29|0]<<8|(z[h+30|0]<<16|z[h+31|0]<<24);y[i+24>>2]=z[h+24|0]|z[h+25|0]<<8|(z[h+26|0]<<16|z[h+27|0]<<24);y[i+28>>2]=j;j=z[h+20|0]|z[h+21|0]<<8|(z[h+22|0]<<16|z[h+23|0]<<24);y[i+16>>2]=z[h+16|0]|z[h+17|0]<<8|(z[h+18|0]<<16|z[h+19|0]<<24);y[i+20>>2]=j;j=z[h+12|0]|z[h+13|0]<<8|(z[h+14|0]<<16|z[h+15|0]<<24);y[i+8>>2]=z[h+8|0]|z[h+9|0]<<8|(z[h+10|0]<<16|z[h+11|0]<<24);y[i+12>>2]=j;j=z[h+4|0]|z[h+5|0]<<8|(z[h+6|0]<<16|z[h+7|0]<<24);y[i>>2]=z[h|0]|z[h+1|0]<<8|(z[h+2|0]<<16|z[h+3|0]<<24);y[i+4>>2]=j;h=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[i+96>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[i+100>>2]=h;w[i+104|0]=f;w[i+111|0]=g>>>24;w[i+110|0]=g>>>16;w[i+109|0]=g>>>8;w[i+108|0]=g;w[i+107|0]=(g&16777215)<<8|f>>>24;w[i+106|0]=(g&65535)<<16|f>>>16;w[i+105|0]=(g&255)<<24|f>>>8;a:{if(!d&c>>>0>=64|d){while(1){h=0;vb(i+32|0,i+96|0,i,0);while(1){f=i+32|0;w[a+h|0]=z[f+h|0]^z[b+h|0];e=h|1;w[e+a|0]=z[e+f|0]^z[b+e|0];h=h+2|0;if((h|0)!=64){continue}break}e=z[i+104|0]+1|0;w[i+104|0]=e;e=z[i+105|0]+(e>>>8|0)|0;w[i+105|0]=e;e=z[i+106|0]+(e>>>8|0)|0;w[i+106|0]=e;e=z[i+107|0]+(e>>>8|0)|0;w[i+107|0]=e;e=z[i+108|0]+(e>>>8|0)|0;w[i+108|0]=e;e=z[i+109|0]+(e>>>8|0)|0;w[i+109|0]=e;e=z[i+110|0]+(e>>>8|0)|0;w[i+110|0]=e;w[i+111|0]=z[i+111|0]+(e>>>8|0);b=b- -64|0;a=a- -64|0;d=d-1|0;c=c+-64|0;d=c>>>0<4294967232?d+1|0:d;if(!d&c>>>0>63|d){continue}break}if(!(c|d)){break a}}h=0;vb(i+32|0,i+96|0,i,0);if((c|0)!=1|d){d=c&1;f=c&62;e=0;while(1){g=i+32|0;w[a+h|0]=z[g+h|0]^z[b+h|0];c=h|1;w[c+a|0]=z[c+g|0]^z[b+c|0];h=h+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}if(!d){break a}}w[a+h|0]=z[(i+32|0)+h|0]^z[b+h|0];}ja(i+32|0,64);ja(i,32);}T=i+112|0;return 0}function Xd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=T-192|0;T=d;za(d,32);rb(b,d,32,0);w[b|0]=z[b|0]&248;w[b+31|0]=z[b+31|0]&63|64;e=d+32|0;jb(e,b);Wa(a,e);f=d;e=y[d+28>>2];d=y[d+24>>2];w[b+24|0]=d;w[b+25|0]=d>>>8;w[b+26|0]=d>>>16;w[b+27|0]=d>>>24;w[b+28|0]=e;w[b+29|0]=e>>>8;w[b+30|0]=e>>>16;w[b+31|0]=e>>>24;e=y[f+20>>2];d=y[f+16>>2];w[b+16|0]=d;w[b+17|0]=d>>>8;w[b+18|0]=d>>>16;w[b+19|0]=d>>>24;w[b+20|0]=e;w[b+21|0]=e>>>8;w[b+22|0]=e>>>16;w[b+23|0]=e>>>24;e=y[f+12>>2];d=y[f+8>>2];w[b+8|0]=d;w[b+9|0]=d>>>8;w[b+10|0]=d>>>16;w[b+11|0]=d>>>24;w[b+12|0]=e;w[b+13|0]=e>>>8;w[b+14|0]=e>>>16;w[b+15|0]=e>>>24;e=y[f+4>>2];d=y[f>>2];w[b|0]=d;w[b+1|0]=d>>>8;w[b+2|0]=d>>>16;w[b+3|0]=d>>>24;w[b+4|0]=e;w[b+5|0]=e>>>8;w[b+6|0]=e>>>16;w[b+7|0]=e>>>24;c=a;g=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);h=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);i=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);e=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);d=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);a=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);j=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);c=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);w[b+56|0]=c;w[b+57|0]=c>>>8;w[b+58|0]=c>>>16;w[b+59|0]=c>>>24;w[b+60|0]=j;w[b+61|0]=j>>>8;w[b+62|0]=j>>>16;w[b+63|0]=j>>>24;w[b+48|0]=d;w[b+49|0]=d>>>8;w[b+50|0]=d>>>16;w[b+51|0]=d>>>24;w[b+52|0]=a;w[b+53|0]=a>>>8;w[b+54|0]=a>>>16;w[b+55|0]=a>>>24;w[b+40|0]=i;w[b+41|0]=i>>>8;w[b+42|0]=i>>>16;w[b+43|0]=i>>>24;w[b+44|0]=e;w[b+45|0]=e>>>8;w[b+46|0]=e>>>16;w[b+47|0]=e>>>24;w[b+32|0]=g;w[b+33|0]=g>>>8;w[b+34|0]=g>>>16;w[b+35|0]=g>>>24;w[b+36|0]=h;w[b+37|0]=h>>>8;w[b+38|0]=h>>>16;w[b+39|0]=h>>>24;ja(f,32);T=f+192|0;return 0}function te(a,b){a=a|0;b=b|0;var c=0,d=0;d=T+-64|0;T=d;c=z[b+60|0]|z[b+61|0]<<8|(z[b+62|0]<<16|z[b+63|0]<<24);y[d+56>>2]=z[b+56|0]|z[b+57|0]<<8|(z[b+58|0]<<16|z[b+59|0]<<24);y[d+60>>2]=c;c=z[b+52|0]|z[b+53|0]<<8|(z[b+54|0]<<16|z[b+55|0]<<24);y[d+48>>2]=z[b+48|0]|z[b+49|0]<<8|(z[b+50|0]<<16|z[b+51|0]<<24);y[d+52>>2]=c;c=z[b+44|0]|z[b+45|0]<<8|(z[b+46|0]<<16|z[b+47|0]<<24);y[d+40>>2]=z[b+40|0]|z[b+41|0]<<8|(z[b+42|0]<<16|z[b+43|0]<<24);y[d+44>>2]=c;c=z[b+36|0]|z[b+37|0]<<8|(z[b+38|0]<<16|z[b+39|0]<<24);y[d+32>>2]=z[b+32|0]|z[b+33|0]<<8|(z[b+34|0]<<16|z[b+35|0]<<24);y[d+36>>2]=c;c=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[d+24>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[d+28>>2]=c;c=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[d+16>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[d+20>>2]=c;c=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[d+8>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[d+12>>2]=c;c=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);y[d>>2]=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[d+4>>2]=c;Pa(d);b=y[d+28>>2];c=y[d+24>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[d+20>>2];c=y[d+16>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[d+12>>2];c=y[d+8>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[d+4>>2];c=y[d>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;ja(d,64);T=d- -64|0;}function Xa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=T-96|0;T=d;if(c>>>0>=65){Ub(a);La(a,b,c,0);Ua(a,d);c=32;b=d;}Ub(a);y[d+88>>2]=909522486;y[d+92>>2]=909522486;y[d+80>>2]=909522486;y[d+84>>2]=909522486;y[d+72>>2]=909522486;y[d+76>>2]=909522486;y[d+64>>2]=909522486;y[d+68>>2]=909522486;y[d+56>>2]=909522486;y[d+60>>2]=909522486;y[d+48>>2]=909522486;y[d+52>>2]=909522486;y[d+40>>2]=909522486;y[d+44>>2]=909522486;y[d+32>>2]=909522486;y[d+36>>2]=909522486;a:{if(!c){break a}k=c&3;if(c>>>0>=4){g=c&124;while(1){h=d+32|0;f=h+e|0;w[f|0]=z[f|0]^z[b+e|0];f=e|1;l=f+h|0;w[l|0]=z[l|0]^z[b+f|0];f=e|2;l=f+h|0;w[l|0]=z[l|0]^z[b+f|0];f=h;h=e|3;f=f+h|0;w[f|0]=z[f|0]^z[b+h|0];e=e+4|0;i=i+4|0;if((g|0)!=(i|0)){continue}break}if(!k){break a}}while(1){i=(d+32|0)+e|0;w[i|0]=z[i|0]^z[b+e|0];e=e+1|0;j=j+1|0;if((k|0)!=(j|0)){continue}break}}La(a,d+32|0,64,0);k=a+104|0;Ub(k);y[d+88>>2]=1549556828;y[d+92>>2]=1549556828;y[d+80>>2]=1549556828;y[d+84>>2]=1549556828;y[d+72>>2]=1549556828;y[d+76>>2]=1549556828;y[d+64>>2]=1549556828;y[d+68>>2]=1549556828;y[d+56>>2]=1549556828;y[d+60>>2]=1549556828;y[d+48>>2]=1549556828;y[d+52>>2]=1549556828;y[d+40>>2]=1549556828;y[d+44>>2]=1549556828;y[d+32>>2]=1549556828;y[d+36>>2]=1549556828;b:{if(!c){break b}h=c&3;j=0;e=0;if(c>>>0>=4){c=c&124;i=0;while(1){a=d+32|0;g=a+e|0;w[g|0]=z[g|0]^z[b+e|0];g=e|1;f=g+a|0;w[f|0]=z[f|0]^z[b+g|0];g=e|2;f=g+a|0;w[f|0]=z[f|0]^z[b+g|0];f=a;a=e|3;g=f+a|0;w[g|0]=z[g|0]^z[a+b|0];e=e+4|0;i=i+4|0;if((c|0)!=(i|0)){continue}break}if(!h){break b}}while(1){a=(d+32|0)+e|0;w[a|0]=z[a|0]^z[b+e|0];e=e+1|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}a=d+32|0;La(k,a,64,0);ja(a,64);ja(d,32);T=d+96|0;return 0}function Wb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(b-65>>>0<4294967232|g>>>0>64){a=-1;}else {h=T;m=h;h=h-512&-64;T=h;a:{b:{if(!(!(d|e)|c)|(!a|(b-65&255)>>>0<=191)|(!(g?f:1)|g>>>0>=65)){break b}c:{if(g){if(!f){break b}o(h- -64|0,0,293);y[h+56>>2]=327033209;y[h+60>>2]=1541459225;y[h+48>>2]=-79577749;y[h+52>>2]=528734635;y[h+40>>2]=725511199;y[h+44>>2]=-1694144372;y[h+32>>2]=-1377402159;y[h+36>>2]=1359893119;y[h+24>>2]=1595750129;y[h+28>>2]=-1521486534;y[h+16>>2]=-23791573;y[h+20>>2]=1013904242;y[h+8>>2]=-2067093701;y[h+12>>2]=-1150833019;y[h>>2]=(g<<8|b)^-222443256;y[h+4>>2]=g>>>24^1779033703;j=128;i=128-g|0;if(i){o((h+384|0)+g|0,0,i);}if(g){t(h+384|0,f,g);}f=h+384|0;t(h+96|0,f,128);y[h+352>>2]=128;ja(f,128);break c}o(h- -64|0,0,293);y[h+56>>2]=327033209;y[h+60>>2]=1541459225;y[h+48>>2]=-79577749;y[h+52>>2]=528734635;y[h+40>>2]=725511199;y[h+44>>2]=-1694144372;y[h+32>>2]=-1377402159;y[h+36>>2]=1359893119;y[h+24>>2]=1595750129;y[h+28>>2]=-1521486534;y[h+16>>2]=-23791573;y[h+20>>2]=1013904242;y[h+8>>2]=-2067093701;y[h+12>>2]=-1150833019;y[h>>2]=b^-222443256;y[h+4>>2]=1779033703;}if(d|e){l=h+96|0;f=256-j|0;if(!e&d>>>0>f>>>0|e){n=h+224|0;while(1){if(f){t(j+l|0,c,f);}y[h+352>>2]=y[h+352>>2]+f;g=y[h+68>>2];j=g;i=y[h+64>>2];k=i+128|0;g=k>>>0<128?g+1|0:g;y[h+64>>2]=k;y[h+68>>2]=g;g=y[h+76>>2];i=(j|0)==-1&i>>>0>4294967167;j=i;i=i+y[h+72>>2]|0;g=j>>>0>i>>>0?g+1|0:g;y[h+72>>2]=i;y[h+76>>2]=g;Eb(h,l);t(l,n,128);k=y[h+352>>2];j=k-128|0;y[h+352>>2]=j;c=c+f|0;g=f;i=d-g|0;e=e-(d>>>0>>0)|0;f=384-k|0;d=i;if(!e&f>>>0>>0|e){continue}break}}if(d){t(j+l|0,c,d);}y[h+352>>2]=d+y[h+352>>2];}Cc(h,a,b);T=m;break a}na();s();}a=0;}return a}function _e(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,i=0;g=T-112|0;T=g;h=c;if(d|c){c=z[f+28|0]|z[f+29|0]<<8|(z[f+30|0]<<16|z[f+31|0]<<24);y[g+24>>2]=z[f+24|0]|z[f+25|0]<<8|(z[f+26|0]<<16|z[f+27|0]<<24);y[g+28>>2]=c;c=z[f+20|0]|z[f+21|0]<<8|(z[f+22|0]<<16|z[f+23|0]<<24);y[g+16>>2]=z[f+16|0]|z[f+17|0]<<8|(z[f+18|0]<<16|z[f+19|0]<<24);y[g+20>>2]=c;c=z[f+12|0]|z[f+13|0]<<8|(z[f+14|0]<<16|z[f+15|0]<<24);y[g+8>>2]=z[f+8|0]|z[f+9|0]<<8|(z[f+10|0]<<16|z[f+11|0]<<24);y[g+12>>2]=c;c=z[f+4|0]|z[f+5|0]<<8|(z[f+6|0]<<16|z[f+7|0]<<24);y[g>>2]=z[f|0]|z[f+1|0]<<8|(z[f+2|0]<<16|z[f+3|0]<<24);y[g+4>>2]=c;c=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);e=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[g+104>>2]=0;y[g+108>>2]=0;y[g+96>>2]=c;y[g+100>>2]=e;a:{if(!d&h>>>0>=64|d){while(1){c=0;ub(g+32|0,g+96|0,g,0);while(1){f=g+32|0;w[a+c|0]=z[f+c|0]^z[b+c|0];e=c|1;w[e+a|0]=z[e+f|0]^z[b+e|0];c=c+2|0;if((c|0)!=64){continue}break}c=z[g+104|0]+1|0;w[g+104|0]=c;c=z[g+105|0]+(c>>>8|0)|0;w[g+105|0]=c;c=z[g+106|0]+(c>>>8|0)|0;w[g+106|0]=c;c=z[g+107|0]+(c>>>8|0)|0;w[g+107|0]=c;c=z[g+108|0]+(c>>>8|0)|0;w[g+108|0]=c;c=z[g+109|0]+(c>>>8|0)|0;w[g+109|0]=c;c=z[g+110|0]+(c>>>8|0)|0;w[g+110|0]=c;w[g+111|0]=z[g+111|0]+(c>>>8|0);b=b- -64|0;a=a- -64|0;d=d-1|0;h=h+-64|0;d=h>>>0<4294967232?d+1|0:d;if(!d&h>>>0>63|d){continue}break}if(!(d|h)){break a}}c=0;ub(g+32|0,g+96|0,g,0);if((h|0)!=1|d){f=h&1;h=h&62;d=0;while(1){i=g+32|0;w[a+c|0]=z[i+c|0]^z[b+c|0];e=c|1;w[e+a|0]=z[e+i|0]^z[b+e|0];c=c+2|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}if(!f){break a}}w[a+c|0]=z[(g+32|0)+c|0]^z[b+c|0];}ja(g+32|0,64);ja(g,32);}T=g+112|0;return 0}function Ye(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,i=0;g=T-112|0;T=g;h=c;if(d|c){c=z[f+28|0]|z[f+29|0]<<8|(z[f+30|0]<<16|z[f+31|0]<<24);y[g+24>>2]=z[f+24|0]|z[f+25|0]<<8|(z[f+26|0]<<16|z[f+27|0]<<24);y[g+28>>2]=c;c=z[f+20|0]|z[f+21|0]<<8|(z[f+22|0]<<16|z[f+23|0]<<24);y[g+16>>2]=z[f+16|0]|z[f+17|0]<<8|(z[f+18|0]<<16|z[f+19|0]<<24);y[g+20>>2]=c;c=z[f+12|0]|z[f+13|0]<<8|(z[f+14|0]<<16|z[f+15|0]<<24);y[g+8>>2]=z[f+8|0]|z[f+9|0]<<8|(z[f+10|0]<<16|z[f+11|0]<<24);y[g+12>>2]=c;c=z[f+4|0]|z[f+5|0]<<8|(z[f+6|0]<<16|z[f+7|0]<<24);y[g>>2]=z[f|0]|z[f+1|0]<<8|(z[f+2|0]<<16|z[f+3|0]<<24);y[g+4>>2]=c;c=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);e=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[g+104>>2]=0;y[g+108>>2]=0;y[g+96>>2]=c;y[g+100>>2]=e;a:{if(!d&h>>>0>=64|d){while(1){c=0;tb(g+32|0,g+96|0,g,0);while(1){f=g+32|0;w[a+c|0]=z[f+c|0]^z[b+c|0];e=c|1;w[e+a|0]=z[e+f|0]^z[b+e|0];c=c+2|0;if((c|0)!=64){continue}break}c=z[g+104|0]+1|0;w[g+104|0]=c;c=z[g+105|0]+(c>>>8|0)|0;w[g+105|0]=c;c=z[g+106|0]+(c>>>8|0)|0;w[g+106|0]=c;c=z[g+107|0]+(c>>>8|0)|0;w[g+107|0]=c;c=z[g+108|0]+(c>>>8|0)|0;w[g+108|0]=c;c=z[g+109|0]+(c>>>8|0)|0;w[g+109|0]=c;c=z[g+110|0]+(c>>>8|0)|0;w[g+110|0]=c;w[g+111|0]=z[g+111|0]+(c>>>8|0);b=b- -64|0;a=a- -64|0;d=d-1|0;h=h+-64|0;d=h>>>0<4294967232?d+1|0:d;if(!d&h>>>0>63|d){continue}break}if(!(d|h)){break a}}c=0;tb(g+32|0,g+96|0,g,0);if((h|0)!=1|d){f=h&1;h=h&62;d=0;while(1){i=g+32|0;w[a+c|0]=z[i+c|0]^z[b+c|0];e=c|1;w[e+a|0]=z[e+i|0]^z[b+e|0];c=c+2|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}if(!f){break a}}w[a+c|0]=z[(g+32|0)+c|0]^z[b+c|0];}ja(g+32|0,64);ja(g,32);}T=g+112|0;return 0}function ve(a,b){a=a|0;b=b|0;var c=0,d=0;c=T-128|0;T=c;y[c+64>>2]=0;y[c+68>>2]=0;y[c+72>>2]=0;y[c+76>>2]=0;y[c+80>>2]=0;y[c+84>>2]=0;y[c+88>>2]=0;y[c+92>>2]=0;w[c+64|0]=1;y[c+32>>2]=0;y[c+36>>2]=0;y[c+40>>2]=0;y[c+44>>2]=0;y[c+48>>2]=0;y[c+52>>2]=0;y[c+56>>2]=0;y[c+60>>2]=0;d=y[9821];y[c+96>>2]=y[9820];y[c+100>>2]=d;d=y[9823];y[c+104>>2]=y[9822];y[c+108>>2]=d;d=y[9825];y[c+112>>2]=y[9824];y[c+116>>2]=d;d=y[9827];y[c+120>>2]=y[9826];y[c+124>>2]=d;d=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[c+24>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[c+28>>2]=d;d=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[c+16>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[c+20>>2]=d;d=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[c+8>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[c+12>>2]=d;d=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);y[c>>2]=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[c+4>>2]=d;b=c- -64|0;Ec(b,c);Pa(b);d=y[c+92>>2];b=y[c+88>>2];w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;w[a+28|0]=d;w[a+29|0]=d>>>8;w[a+30|0]=d>>>16;w[a+31|0]=d>>>24;d=y[c+84>>2];b=y[c+80>>2];w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;w[a+20|0]=d;w[a+21|0]=d>>>8;w[a+22|0]=d>>>16;w[a+23|0]=d>>>24;d=y[c+76>>2];b=y[c+72>>2];w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;w[a+12|0]=d;w[a+13|0]=d>>>8;w[a+14|0]=d>>>16;w[a+15|0]=d>>>24;d=y[c+68>>2];b=y[c+64>>2];w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=d;w[a+5|0]=d>>>8;w[a+6|0]=d>>>16;w[a+7|0]=d>>>24;T=c+128|0;} +function Ze(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=T-112|0;T=f;h=b;g=c;if(b|g){b=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);y[f+24>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);y[f+28>>2]=b;b=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+16>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+20>>2]=b;b=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+8>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);y[f+12>>2]=b;b=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[f>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[f+4>>2]=b;b=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);c=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);y[f+104>>2]=0;y[f+108>>2]=0;y[f+96>>2]=b;y[f+100>>2]=c;a:{if(!g&h>>>0>=64|g){while(1){tb(a,f+96|0,f,0);b=z[f+104|0]+1|0;w[f+104|0]=b;b=z[f+105|0]+(b>>>8|0)|0;w[f+105|0]=b;b=z[f+106|0]+(b>>>8|0)|0;w[f+106|0]=b;b=z[f+107|0]+(b>>>8|0)|0;w[f+107|0]=b;b=z[f+108|0]+(b>>>8|0)|0;w[f+108|0]=b;b=z[f+109|0]+(b>>>8|0)|0;w[f+109|0]=b;b=z[f+110|0]+(b>>>8|0)|0;w[f+110|0]=b;w[f+111|0]=z[f+111|0]+(b>>>8|0);a=a- -64|0;g=g-1|0;h=h+-64|0;g=h>>>0<4294967232?g+1|0:g;if(!g&h>>>0>63|g){continue}break}if(!(g|h)){break a}}c=0;tb(f+32|0,f+96|0,f,0);d=h&3;b=0;if(!g&h>>>0>=4|g){h=h&60;e=0;while(1){g=f+32|0;w[a+b|0]=z[g+b|0];i=b|1;w[i+a|0]=z[g+i|0];i=b|2;w[i+a|0]=z[g+i|0];i=b|3;w[i+a|0]=z[g+i|0];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}if(!d){break a}}while(1){w[a+b|0]=z[(f+32|0)+b|0];b=b+1|0;c=c+1|0;if((d|0)!=(c|0)){continue}break}}ja(f+32|0,64);ja(f,32);}T=f+112|0;return 0}function Se(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=T-112|0;T=f;if(b|c){g=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);y[f+24>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);y[f+28>>2]=g;g=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+16>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+20>>2]=g;g=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+8>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);y[f+12>>2]=g;g=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[f>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[f+4>>2]=g;e=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);d=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);y[f+104>>2]=0;y[f+108>>2]=0;y[f+96>>2]=e;y[f+100>>2]=d;a:{if(!c&b>>>0>=64|c){while(1){vb(a,f+96|0,f,0);d=z[f+104|0]+1|0;w[f+104|0]=d;d=z[f+105|0]+(d>>>8|0)|0;w[f+105|0]=d;d=z[f+106|0]+(d>>>8|0)|0;w[f+106|0]=d;d=z[f+107|0]+(d>>>8|0)|0;w[f+107|0]=d;d=z[f+108|0]+(d>>>8|0)|0;w[f+108|0]=d;d=z[f+109|0]+(d>>>8|0)|0;w[f+109|0]=d;d=z[f+110|0]+(d>>>8|0)|0;w[f+110|0]=d;w[f+111|0]=z[f+111|0]+(d>>>8|0);a=a- -64|0;c=c-1|0;b=b+-64|0;c=b>>>0<4294967232?c+1|0:c;if(!c&b>>>0>63|c){continue}break}if(!(b|c)){break a}}d=0;vb(f+32|0,f+96|0,f,0);g=b&3;e=0;if(!c&b>>>0>=4|c){c=b&60;b=0;while(1){j=f+32|0;h=j;w[a+e|0]=z[h+e|0];i=e|1;w[i+a|0]=z[h+i|0];i=e|2;w[i+a|0]=z[h+i|0];h=e|3;w[h+a|0]=z[h+j|0];e=e+4|0;b=b+4|0;if((c|0)!=(b|0)){continue}break}if(!g){break a}}while(1){w[a+e|0]=z[(f+32|0)+e|0];e=e+1|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}ja(f+32|0,64);ja(f,32);}T=f+112|0;return 0}function $e(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=T-112|0;T=f;h=b;g=c;if(b|g){b=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);y[f+24>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);y[f+28>>2]=b;b=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+16>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+20>>2]=b;b=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+8>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);y[f+12>>2]=b;b=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[f>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[f+4>>2]=b;b=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);c=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);y[f+104>>2]=0;y[f+108>>2]=0;y[f+96>>2]=b;y[f+100>>2]=c;a:{if(!g&h>>>0>=64|g){while(1){ub(a,f+96|0,f,0);b=z[f+104|0]+1|0;w[f+104|0]=b;b=z[f+105|0]+(b>>>8|0)|0;w[f+105|0]=b;b=z[f+106|0]+(b>>>8|0)|0;w[f+106|0]=b;b=z[f+107|0]+(b>>>8|0)|0;w[f+107|0]=b;b=z[f+108|0]+(b>>>8|0)|0;w[f+108|0]=b;b=z[f+109|0]+(b>>>8|0)|0;w[f+109|0]=b;b=z[f+110|0]+(b>>>8|0)|0;w[f+110|0]=b;w[f+111|0]=z[f+111|0]+(b>>>8|0);a=a- -64|0;g=g-1|0;h=h+-64|0;g=h>>>0<4294967232?g+1|0:g;if(!g&h>>>0>63|g){continue}break}if(!(g|h)){break a}}c=0;ub(f+32|0,f+96|0,f,0);d=h&3;b=0;if(!g&h>>>0>=4|g){h=h&60;e=0;while(1){g=f+32|0;w[a+b|0]=z[g+b|0];i=b|1;w[i+a|0]=z[g+i|0];i=b|2;w[i+a|0]=z[g+i|0];i=b|3;w[i+a|0]=z[g+i|0];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}if(!d){break a}}while(1){w[a+b|0]=z[(f+32|0)+b|0];b=b+1|0;c=c+1|0;if((d|0)!=(c|0)){continue}break}}ja(f+32|0,64);ja(f,32);}T=f+112|0;return 0}function we(a,b){a=a|0;b=b|0;var c=0,d=0;c=T-128|0;T=c;y[c+64>>2]=0;y[c+68>>2]=0;y[c+72>>2]=0;y[c+76>>2]=0;y[c+80>>2]=0;y[c+84>>2]=0;y[c+88>>2]=0;y[c+92>>2]=0;y[c+32>>2]=0;y[c+36>>2]=0;y[c+40>>2]=0;y[c+44>>2]=0;y[c+48>>2]=0;y[c+52>>2]=0;y[c+56>>2]=0;y[c+60>>2]=0;d=y[9821];y[c+96>>2]=y[9820];y[c+100>>2]=d;d=y[9823];y[c+104>>2]=y[9822];y[c+108>>2]=d;d=y[9825];y[c+112>>2]=y[9824];y[c+116>>2]=d;d=y[9827];y[c+120>>2]=y[9826];y[c+124>>2]=d;d=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);y[c>>2]=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[c+4>>2]=d;d=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[c+8>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[c+12>>2]=d;d=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[c+16>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[c+20>>2]=d;d=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[c+24>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[c+28>>2]=d;b=c- -64|0;Ec(b,c);Pa(b);d=y[c+92>>2];b=y[c+88>>2];w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;w[a+28|0]=d;w[a+29|0]=d>>>8;w[a+30|0]=d>>>16;w[a+31|0]=d>>>24;d=y[c+84>>2];b=y[c+80>>2];w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;w[a+20|0]=d;w[a+21|0]=d>>>8;w[a+22|0]=d>>>16;w[a+23|0]=d>>>24;d=y[c+76>>2];b=y[c+72>>2];w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;w[a+12|0]=d;w[a+13|0]=d>>>8;w[a+14|0]=d>>>16;w[a+15|0]=d>>>24;d=y[c+68>>2];b=y[c+64>>2];w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=d;w[a+5|0]=d>>>8;w[a+6|0]=d>>>16;w[a+7|0]=d>>>24;T=c+128|0;}function kc(a,b,c,d){var 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;a:{g=y[a+56>>2];e=y[a+60>>2];if(g|e){h=16-g|0;k=h;f=0-((g>>>0>16)+e|0)|0;h=(f|0)==(d|0)&c>>>0>h>>>0|d>>>0>f>>>0;j=h?k:c;h=h?f:d;k=h;if(h|j){p=j&3;h=a- -64|0;f=0;g=0;b:{if(!k&j>>>0>=4|k){l=j&-4;while(1){e=f+y[a+56>>2]|0;w[e+h|0]=z[b+f|0];m=f|1;e=m+y[a+56>>2]|0;w[e+h|0]=z[b+m|0];m=f|2;e=m+y[a+56>>2]|0;w[e+h|0]=z[b+m|0];m=f|3;e=m+y[a+56>>2]|0;w[e+h|0]=z[b+m|0];e=g;f=f+4|0;g=f>>>0<4?e+1|0:e;n=n+4|0;i=n>>>0<4?i+1|0:i;if((l|0)!=(n|0)|(i|0)!=(k|0)){continue}break}if(!(p|r)){break b}}while(1){e=f+y[a+56>>2]|0;w[e+h|0]=z[b+f|0];e=g;f=f+1|0;g=f?e:e+1|0;e=q;o=o+1|0;e=o?e:e+1|0;q=e;if((o|0)!=(p|0)|(r|0)!=(e|0)){continue}break}}g=y[a+56>>2];e=y[a+60>>2];}i=e+k|0;g=g+j|0;i=g>>>0>>0?i+1|0:i;y[a+56>>2]=g;y[a+60>>2]=i;if(!i&g>>>0<16){break a}hc(a,a- -64|0,16,0);y[a+56>>2]=0;y[a+60>>2]=0;g=c;c=g-j|0;d=d-((g>>>0>>0)+k|0)|0;b=b+j|0;}if(!d&c>>>0>=16|d){g=c&-16;hc(a,b,g,d);c=c&15;d=0;b=b+g|0;}if(!(c|d)){break a}j=c&3;k=0;h=a- -64|0;o=0;q=0;f=0;g=0;c:{if(!d&c>>>0>=4|d){p=c&12;n=0;i=0;while(1){e=f+y[a+56>>2]|0;w[e+h|0]=z[b+f|0];l=f|1;e=l+y[a+56>>2]|0;w[e+h|0]=z[b+l|0];l=f|2;e=l+y[a+56>>2]|0;w[e+h|0]=z[b+l|0];l=f|3;e=l+y[a+56>>2]|0;w[e+h|0]=z[b+l|0];e=g;f=f+4|0;g=f>>>0<4?e+1|0:e;n=n+4|0;i=n>>>0<4?i+1|0:i;if((n|0)!=(p|0)|(i|0)!=(r|0)){continue}break}if(!(j|k)){break c}}while(1){e=f+y[a+56>>2]|0;w[e+h|0]=z[b+f|0];f=f+1|0;g=f?g:g+1|0;e=q;o=o+1|0;e=o?e:e+1|0;q=e;if((j|0)!=(o|0)|(k|0)!=(e|0)){continue}break}}i=d+y[a+60>>2]|0;b=c+y[a+56>>2]|0;i=b>>>0>>0?i+1|0:i;y[a+56>>2]=b;y[a+60>>2]=i;}}function Ua(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=T-288|0;T=e;f=a+40|0;c=y[a+32>>2]>>>3&63;d=f+c|0;a:{if(c>>>0>=56){c=64-c|0;if(c){t(d,39616,c);}Tb(a,f,e,e+256|0);c=f;y[c+48>>2]=0;y[c+52>>2]=0;y[c+40>>2]=0;y[c+44>>2]=0;y[c+32>>2]=0;y[c+36>>2]=0;y[c+24>>2]=0;y[c+28>>2]=0;y[c+16>>2]=0;y[c+20>>2]=0;y[c+8>>2]=0;y[c+12>>2]=0;y[c>>2]=0;y[c+4>>2]=0;break a}c=56-c|0;if(!c){break a}t(d,39616,c);}d=y[a+32>>2];c=d&16711680;h=c>>>8|0;g=c<<24;c=d&-16777216;i=c>>>24|0;g=g|c<<8;c=y[a+36>>2];y[a+96>>2]=g|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));c=h|i|(d<<24|(d&65280)<<8);y[a+100>>2]=c;Tb(a,f,e,e+256|0);c=y[a>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b|0]=c;w[b+1|0]=c>>>8;w[b+2|0]=c>>>16;w[b+3|0]=c>>>24;c=y[a+4>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+4|0]=c;w[b+5|0]=c>>>8;w[b+6|0]=c>>>16;w[b+7|0]=c>>>24;c=y[a+8>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+8|0]=c;w[b+9|0]=c>>>8;w[b+10|0]=c>>>16;w[b+11|0]=c>>>24;c=y[a+12>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+12|0]=c;w[b+13|0]=c>>>8;w[b+14|0]=c>>>16;w[b+15|0]=c>>>24;c=y[a+16>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+16|0]=c;w[b+17|0]=c>>>8;w[b+18|0]=c>>>16;w[b+19|0]=c>>>24;c=y[a+20>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+20|0]=c;w[b+21|0]=c>>>8;w[b+22|0]=c>>>16;w[b+23|0]=c>>>24;c=y[a+24>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+24|0]=c;w[b+25|0]=c>>>8;w[b+26|0]=c>>>16;w[b+27|0]=c>>>24;c=y[a+28>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+28|0]=c;w[b+29|0]=c>>>8;w[b+30|0]=c>>>16;w[b+31|0]=c>>>24;ja(e,288);ja(a,104);T=e+288|0;return 0}function Fg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=T;j=f;f=f-512&-64;T=f;g=a?a:b;if(g){i=-1;h=f+96|0;if(!Ea(h,d,e)){d=f+128|0;Ja(d,0,0,64);oa(d,h,32,0);ja(h,32);oa(d,c,32,0);oa(d,e,32,0);c=f+32|0;Ia(d,c,64);ja(d,384);w[g|0]=z[f+32|0];a=b?b:a;w[a|0]=z[f+64|0];w[g+1|0]=z[f+33|0];w[a+1|0]=z[f+65|0];w[g+2|0]=z[f+34|0];w[a+2|0]=z[f+66|0];w[g+3|0]=z[f+35|0];w[a+3|0]=z[f+67|0];w[g+4|0]=z[f+36|0];w[a+4|0]=z[f+68|0];w[g+5|0]=z[f+37|0];w[a+5|0]=z[f+69|0];w[g+6|0]=z[f+38|0];w[a+6|0]=z[f+70|0];w[g+7|0]=z[f+39|0];w[a+7|0]=z[f+71|0];w[g+8|0]=z[f+40|0];w[a+8|0]=z[f+72|0];w[g+9|0]=z[f+41|0];w[a+9|0]=z[f+73|0];w[g+10|0]=z[f+42|0];w[a+10|0]=z[f+74|0];w[g+11|0]=z[f+43|0];w[a+11|0]=z[f+75|0];w[g+12|0]=z[f+44|0];w[a+12|0]=z[f+76|0];w[g+13|0]=z[f+45|0];w[a+13|0]=z[f+77|0];w[g+14|0]=z[f+46|0];w[a+14|0]=z[f+78|0];w[g+15|0]=z[f+47|0];w[a+15|0]=z[f+79|0];w[g+16|0]=z[f+48|0];w[a+16|0]=z[f+80|0];w[g+17|0]=z[f+49|0];w[a+17|0]=z[f+81|0];w[g+18|0]=z[f+50|0];w[a+18|0]=z[f+82|0];w[g+19|0]=z[f+51|0];w[a+19|0]=z[f+83|0];w[g+20|0]=z[f+52|0];w[a+20|0]=z[f+84|0];w[g+21|0]=z[f+53|0];w[a+21|0]=z[f+85|0];w[g+22|0]=z[f+54|0];w[a+22|0]=z[f+86|0];w[g+23|0]=z[f+55|0];w[a+23|0]=z[f+87|0];w[g+24|0]=z[f+56|0];w[a+24|0]=z[f+88|0];w[g+25|0]=z[f+57|0];w[a+25|0]=z[f+89|0];w[g+26|0]=z[f+58|0];w[a+26|0]=z[f+90|0];w[g+27|0]=z[f+59|0];w[a+27|0]=z[f+91|0];w[g+28|0]=z[f+60|0];w[a+28|0]=z[f+92|0];w[g+29|0]=z[f+61|0];w[a+29|0]=z[f+93|0];w[g+30|0]=z[f+62|0];w[a+30|0]=z[f+94|0];w[g+31|0]=z[f+63|0];w[a+31|0]=z[f+95|0];ja(c,64);i=0;}T=j;return i|0}na();s();}function Eg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=T;j=f;f=f-512&-64;T=f;g=a?a:b;if(g){i=-1;h=f+96|0;if(!Ea(h,d,e)){d=f+128|0;Ja(d,0,0,64);oa(d,h,32,0);ja(h,32);oa(d,e,32,0);oa(d,c,32,0);c=f+32|0;Ia(d,c,64);ja(d,384);a=b?b:a;w[a|0]=z[f+32|0];w[g|0]=z[f+64|0];w[a+1|0]=z[f+33|0];w[g+1|0]=z[f+65|0];w[a+2|0]=z[f+34|0];w[g+2|0]=z[f+66|0];w[a+3|0]=z[f+35|0];w[g+3|0]=z[f+67|0];w[a+4|0]=z[f+36|0];w[g+4|0]=z[f+68|0];w[a+5|0]=z[f+37|0];w[g+5|0]=z[f+69|0];w[a+6|0]=z[f+38|0];w[g+6|0]=z[f+70|0];w[a+7|0]=z[f+39|0];w[g+7|0]=z[f+71|0];w[a+8|0]=z[f+40|0];w[g+8|0]=z[f+72|0];w[a+9|0]=z[f+41|0];w[g+9|0]=z[f+73|0];w[a+10|0]=z[f+42|0];w[g+10|0]=z[f+74|0];w[a+11|0]=z[f+43|0];w[g+11|0]=z[f+75|0];w[a+12|0]=z[f+44|0];w[g+12|0]=z[f+76|0];w[a+13|0]=z[f+45|0];w[g+13|0]=z[f+77|0];w[a+14|0]=z[f+46|0];w[g+14|0]=z[f+78|0];w[a+15|0]=z[f+47|0];w[g+15|0]=z[f+79|0];w[a+16|0]=z[f+48|0];w[g+16|0]=z[f+80|0];w[a+17|0]=z[f+49|0];w[g+17|0]=z[f+81|0];w[a+18|0]=z[f+50|0];w[g+18|0]=z[f+82|0];w[a+19|0]=z[f+51|0];w[g+19|0]=z[f+83|0];w[a+20|0]=z[f+52|0];w[g+20|0]=z[f+84|0];w[a+21|0]=z[f+53|0];w[g+21|0]=z[f+85|0];w[a+22|0]=z[f+54|0];w[g+22|0]=z[f+86|0];w[a+23|0]=z[f+55|0];w[g+23|0]=z[f+87|0];w[a+24|0]=z[f+56|0];w[g+24|0]=z[f+88|0];w[a+25|0]=z[f+57|0];w[g+25|0]=z[f+89|0];w[a+26|0]=z[f+58|0];w[g+26|0]=z[f+90|0];w[a+27|0]=z[f+59|0];w[g+27|0]=z[f+91|0];w[a+28|0]=z[f+60|0];w[g+28|0]=z[f+92|0];w[a+29|0]=z[f+61|0];w[g+29|0]=z[f+93|0];w[a+30|0]=z[f+62|0];w[g+30|0]=z[f+94|0];w[a+31|0]=z[f+63|0];w[g+31|0]=z[f+95|0];ja(c,64);i=0;}T=j;return i|0}na();s();}function ef(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0;n=b;b=e;e=0;b=b|e;h=T-128|0;T=h;p=a;o(a,0,102);l=22;q=c|e;a:{{c:{if(d){break c}lc(b,f,g,h+16|0,h+12|0,h+8|0);i=h+96|0;za(i,32);l=28;b=h+32|0;d=y[h+16>>2];a=y[h+12>>2];c=y[h+8>>2];f=Ai(a,0,c,0);g=W;d:{if(!g&f>>>0>1073741823|g|d>>>0>63){break d}w[b|0]=36;w[b+1|0]=55;w[b+2|0]=36;w[b+4|0]=z[(c&63)+1024|0];w[b+3|0]=z[d+1024|0];w[b+8|0]=z[(c>>>24&63)+1024|0];w[b+7|0]=z[(c>>>18&63)+1024|0];w[b+6|0]=z[(c>>>12&63)+1024|0];w[b+5|0]=z[(c>>>6&63)+1024|0];c=b+9|0;if(!c){break d}j=b+58|0;if((c|0)==(j|0)){break d}w[c|0]=z[(a&63)+1024|0];c=j-c|0;if((c|0)==1){break d}w[b+10|0]=z[(a>>>6&63)+1024|0];if((c|0)==2){break d}w[b+11|0]=z[(a>>>12&63)+1024|0];if((c|0)==3){break d}w[b+12|0]=z[(a>>>18&63)+1024|0];if((c|0)==4){break d}w[b+13|0]=z[(a>>>24&63)+1024|0];c=b+14|0;if(!c){break d}g=j-c|0;a=0;while(1){e:{d=c;if(a>>>0>=32){break e}c=z[a+i|0];f=a+1|0;m=f>>>0>=32;f:{if(m){k=0;break f}c=z[f+i|0]<<8|c;f=a+2|0;if(f>>>0>=32){k=0;break f}c=z[f+i|0]<<16|c;k=1;f=a+3|0;}a=f;if(!g){break d}w[d|0]=z[(c&63)+1024|0];if((g|0)==1){break d}w[d+1|0]=z[(c>>>6&63)+1024|0];r=d+g|0;f=d+2|0;g:{if(m){break g}if((g|0)==2){break d}w[d+2|0]=z[(c>>>12&63)+1024|0];f=d+3|0;if(!k){break g}if((g|0)==3){break d}w[d+3|0]=z[(c>>>18|0)+1024|0];f=d+4|0;}c=f;g=r-c|0;if(c){continue}break d}break}if(d>>>0>=j>>>0){break d}w[d|0]=0;e=b;}if(!e){break c}a=h+20|0;if(mc(a));b=Gd(a,n,q,b,p);Ob(a);if(!b){break c}a=0;break a}y[10172]=l;}a=-1;}T=h+128|0;return a|0}function Qa(a,b,c){var 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;o=y[b+4>>2];d=y[a+4>>2];p=y[b+8>>2];e=y[a+8>>2];q=y[b+12>>2];f=y[a+12>>2];r=y[b+16>>2];g=y[a+16>>2];s=y[b+20>>2];h=y[a+20>>2];t=y[b+24>>2];i=y[a+24>>2];m=y[b+28>>2];j=y[a+28>>2];u=y[b+32>>2];k=y[a+32>>2];v=y[b+36>>2];l=y[a+36>>2];c=0-c|0;n=y[a>>2];y[a>>2]=c&(n^y[b>>2])^n;y[a+36>>2]=l^c&(l^v);y[a+32>>2]=k^c&(k^u);y[a+28>>2]=j^c&(j^m);y[a+24>>2]=i^c&(i^t);y[a+20>>2]=h^c&(h^s);y[a+16>>2]=g^c&(g^r);y[a+12>>2]=f^c&(f^q);y[a+8>>2]=e^c&(e^p);y[a+4>>2]=d^c&(d^o);d=y[a+40>>2];o=y[b+40>>2];e=y[a+44>>2];p=y[b+44>>2];f=y[a+48>>2];q=y[b+48>>2];g=y[a+52>>2];r=y[b+52>>2];h=y[a+56>>2];s=y[b+56>>2];i=y[a+60>>2];t=y[b+60>>2];m=a- -64|0;j=y[m>>2];u=y[b- -64>>2];k=y[a+68>>2];v=y[b+68>>2];l=y[a+72>>2];n=y[b+72>>2];w=y[a+76>>2];y[a+76>>2]=w^c&(y[b+76>>2]^w);y[a+72>>2]=l^c&(l^n);y[a+68>>2]=k^c&(k^v);y[m>>2]=j^c&(j^u);y[a+60>>2]=i^c&(i^t);y[a+56>>2]=h^c&(h^s);y[a+52>>2]=g^c&(g^r);y[a+48>>2]=f^c&(f^q);y[a+44>>2]=e^c&(e^p);y[a+40>>2]=d^c&(d^o);d=y[a+80>>2];o=y[b+80>>2];e=y[a+84>>2];p=y[b+84>>2];f=y[a+88>>2];q=y[b+88>>2];g=y[a+92>>2];r=y[b+92>>2];h=y[a+96>>2];s=y[b+96>>2];i=y[a+100>>2];t=y[b+100>>2];j=y[a+104>>2];m=y[b+104>>2];k=y[a+108>>2];u=y[b+108>>2];l=y[a+112>>2];v=y[b+112>>2];n=y[b+116>>2];b=y[a+116>>2];y[a+116>>2]=c&(n^b)^b;y[a+112>>2]=l^c&(l^v);y[a+108>>2]=k^c&(k^u);y[a+104>>2]=j^c&(j^m);y[a+100>>2]=i^c&(i^t);y[a+96>>2]=h^c&(h^s);y[a+92>>2]=g^c&(g^r);y[a+88>>2]=f^c&(f^q);y[a+84>>2]=e^c&(e^p);y[a+80>>2]=d^c&(d^o);}function bb(a,b){var c=0,d=0,e=0;c=T-192|0;T=c;e=c+144|0;fa(e,b);d=c+96|0;fa(d,e);fa(d,d);ga(d,b,d);ga(e,e,d);b=c+48|0;fa(b,e);ga(d,d,b);fa(b,d);fa(b,b);fa(b,b);fa(b,b);fa(b,b);ga(d,b,d);fa(b,d);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);ga(b,b,d);fa(c,b);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(b,c,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);ga(d,b,d);fa(b,d);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);ga(b,b,d);fa(c,b);b=1;while(1){fa(c,c);b=b+1|0;if((b|0)!=100){continue}break}b=c+48|0;ga(b,c,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);d=c+96|0;ga(d,b,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);ga(a,d,c+144|0);T=c+192|0;}function Kh(a){a=a|0;var b=0,c=0,d=0;c=T-48|0;T=c;b=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);y[c+24>>2]=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);y[c+28>>2]=b;b=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);y[c+16>>2]=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);y[c+20>>2]=b;b=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);y[c+8>>2]=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);y[c+12>>2]=b;b=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);y[c>>2]=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);y[c+4>>2]=b;b=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);y[c+32>>2]=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);y[c+36>>2]=b;Yb(c,c,40,0,a+32|0,a);b=y[c+28>>2];d=y[c+24>>2];w[a+24|0]=d;w[a+25|0]=d>>>8;w[a+26|0]=d>>>16;w[a+27|0]=d>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[c+20>>2];d=y[c+16>>2];w[a+16|0]=d;w[a+17|0]=d>>>8;w[a+18|0]=d>>>16;w[a+19|0]=d>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[c+12>>2];d=y[c+8>>2];w[a+8|0]=d;w[a+9|0]=d>>>8;w[a+10|0]=d>>>16;w[a+11|0]=d>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[c+4>>2];d=y[c>>2];w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;d=y[c+36>>2];b=y[c+32>>2];w[a+32|0]=1;w[a+33|0]=0;w[a+34|0]=0;w[a+35|0]=0;w[a+36|0]=b;w[a+37|0]=b>>>8;w[a+38|0]=b>>>16;w[a+39|0]=b>>>24;w[a+40|0]=d;w[a+41|0]=d>>>8;w[a+42|0]=d>>>16;w[a+43|0]=d>>>24;T=c+48|0;}function gc(a,b){var c=0,d=0,e=0;d=T-144|0;T=d;e=d+96|0;fa(e,b);c=d+48|0;fa(c,e);fa(c,c);ga(c,b,c);ga(e,e,c);fa(e,e);ga(e,c,e);fa(c,e);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(e,c,e);fa(c,e);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(c,c,e);fa(d,c);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);ga(c,d,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(e,c,e);fa(c,e);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(c,c,e);fa(d,c);c=1;while(1){fa(d,d);c=c+1|0;if((c|0)!=100){continue}break}c=d+48|0;ga(c,d,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);e=d+96|0;ga(e,c,e);fa(e,e);fa(e,e);ga(a,e,b);T=d+144|0;}function Qc(a,b){var 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,x=0,A=0,B=0;c=T-320|0;T=c;g=a+40|0;cb(g,b);y[a+84>>2]=0;y[a+88>>2]=0;y[a+80>>2]=1;y[a+92>>2]=0;y[a+96>>2]=0;y[a+100>>2]=0;y[a+104>>2]=0;y[a+108>>2]=0;y[a+112>>2]=0;y[a+116>>2]=0;f=c+240|0;fa(f,g);e=c+192|0;ga(e,f,1584);i=-1;h=y[c+240>>2]-1|0;y[c+240>>2]=h;y[c+192>>2]=y[c+192>>2]+1;j=y[c+244>>2];k=y[c+248>>2];l=y[c+252>>2];m=y[c+256>>2];n=y[c+260>>2];o=y[c+264>>2];p=y[c+268>>2];q=y[c+272>>2];r=y[c+276>>2];d=c+144|0;fa(d,e);ga(d,d,e);fa(a,d);ga(a,a,e);ga(a,a,f);gc(a,a);ga(a,a,d);ga(a,a,f);d=c+96|0;fa(d,a);ga(d,d,e);e=y[c+132>>2];y[c+84>>2]=e-r;d=y[c+128>>2];y[c+80>>2]=d-q;f=y[c+124>>2];y[c+76>>2]=f-p;s=y[c+120>>2];y[c+72>>2]=s-o;t=y[c+116>>2];y[c+68>>2]=t-n;u=y[c+112>>2];y[c+64>>2]=u-m;v=y[c+108>>2];y[c+60>>2]=v-l;x=y[c+104>>2];y[c+56>>2]=x-k;A=y[c+100>>2];y[c+52>>2]=A-j;B=y[c+96>>2];y[c+48>>2]=B-h;pa(c,c+48|0);a:{if(!ya(c,32)){y[c+36>>2]=e+r;y[c+32>>2]=d+q;y[c+28>>2]=f+p;y[c+24>>2]=o+s;y[c+20>>2]=n+t;y[c+16>>2]=m+u;y[c+12>>2]=l+v;y[c+8>>2]=k+x;y[c+4>>2]=j+A;y[c>>2]=h+B;e=c+288|0;pa(e,c);if(!ya(e,32)){break a}ga(a,a,1632);}pa(c+288|0,a);if((w[c+288|0]&1)==(z[b+31|0]>>>7|0)){y[a>>2]=0-y[a>>2];y[a+36>>2]=0-y[a+36>>2];y[a+32>>2]=0-y[a+32>>2];y[a+28>>2]=0-y[a+28>>2];y[a+24>>2]=0-y[a+24>>2];y[a+20>>2]=0-y[a+20>>2];y[a+16>>2]=0-y[a+16>>2];y[a+12>>2]=0-y[a+12>>2];y[a+8>>2]=0-y[a+8>>2];y[a+4>>2]=0-y[a+4>>2];}ga(a+120|0,a,g);i=0;}T=c+320|0;return i}function Kc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=T-128|0;T=d;e=z[41218];y[a+4>>2]=0;y[a+8>>2]=0;y[a>>2]=1;y[a+12>>2]=0;y[a+16>>2]=0;y[a+20>>2]=0;y[a+24>>2]=0;y[a+28>>2]=0;y[a+32>>2]=0;y[a+36>>2]=0;y[a+40>>2]=1;o(a+44|0,0,76);b=E(b,960)+2992|0;e=e>>>2^(c&128)>>>7;c=c-((0-e&c)<<1)|0;Qa(a,b,z[41218]>>>2^((c^1)&255)-1>>>31);Qa(a,b+120|0,z[41218]>>>2^((c^2)&255)-1>>>31);Qa(a,b+240|0,z[41218]>>>2^((c^3)&255)-1>>>31);Qa(a,b+360|0,z[41218]>>>2^((c^4)&255)-1>>>31);Qa(a,b+480|0,z[41218]>>>2^((c^5)&255)-1>>>31);Qa(a,b+600|0,z[41218]>>>2^((c^6)&255)-1>>>31);Qa(a,b+720|0,z[41218]>>>2^((c^7)&255)-1>>>31);Qa(a,b+840|0,z[41218]>>>2^((c^8)&255)-1>>>31);b=y[a+76>>2];y[d+40>>2]=y[a+72>>2];y[d+44>>2]=b;b=a- -64|0;c=y[b+4>>2];y[d+32>>2]=y[b>>2];y[d+36>>2]=c;b=y[a+60>>2];y[d+24>>2]=y[a+56>>2];y[d+28>>2]=b;b=y[a+52>>2];y[d+16>>2]=y[a+48>>2];y[d+20>>2]=b;b=y[a+44>>2];y[d+8>>2]=y[a+40>>2];y[d+12>>2]=b;b=y[a+4>>2];y[d+48>>2]=y[a>>2];y[d+52>>2]=b;b=y[a+12>>2];y[d+56>>2]=y[a+8>>2];y[d+60>>2]=b;b=y[a+20>>2];y[d+64>>2]=y[a+16>>2];y[d+68>>2]=b;b=y[a+28>>2];y[d+72>>2]=y[a+24>>2];y[d+76>>2]=b;b=y[a+36>>2];y[d+80>>2]=y[a+32>>2];y[d+84>>2]=b;b=y[a+80>>2];c=y[a+84>>2];f=y[a+88>>2];g=y[a+92>>2];h=y[a+96>>2];i=y[a+100>>2];j=y[a+104>>2];k=y[a+108>>2];l=y[a+112>>2];y[d+124>>2]=0-y[a+116>>2];y[d+120>>2]=0-l;y[d+116>>2]=0-k;y[d+112>>2]=0-j;y[d+108>>2]=0-i;y[d+104>>2]=0-h;y[d+100>>2]=0-g;y[d+96>>2]=0-f;y[d+92>>2]=0-c;y[d+88>>2]=0-b;Qa(a,d+8|0,e);T=d+128|0;}function Te(a,b){a=a|0;b=b|0;var 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;c=T-304|0;T=c;w[a|0]=z[b|0];w[a+1|0]=z[b+1|0];w[a+2|0]=z[b+2|0];w[a+3|0]=z[b+3|0];w[a+4|0]=z[b+4|0];w[a+5|0]=z[b+5|0];w[a+6|0]=z[b+6|0];w[a+7|0]=z[b+7|0];w[a+8|0]=z[b+8|0];w[a+9|0]=z[b+9|0];w[a+10|0]=z[b+10|0];w[a+11|0]=z[b+11|0];w[a+12|0]=z[b+12|0];w[a+13|0]=z[b+13|0];w[a+14|0]=z[b+14|0];w[a+15|0]=z[b+15|0];w[a+16|0]=z[b+16|0];w[a+17|0]=z[b+17|0];w[a+18|0]=z[b+18|0];w[a+19|0]=z[b+19|0];w[a+20|0]=z[b+20|0];w[a+21|0]=z[b+21|0];w[a+22|0]=z[b+22|0];w[a+23|0]=z[b+23|0];w[a+24|0]=z[b+24|0];w[a+25|0]=z[b+25|0];w[a+26|0]=z[b+26|0];w[a+27|0]=z[b+27|0];w[a+28|0]=z[b+28|0];w[a+29|0]=z[b+29|0];w[a+30|0]=z[b+30|0];b=z[b+31|0];w[a|0]=z[a|0]&248;w[a+31|0]=b&63|64;jb(c+48|0,a);b=y[c+128>>2];d=y[c+88>>2];e=y[c+132>>2];f=y[c+92>>2];g=y[c+136>>2];h=y[c+96>>2];i=y[c+140>>2];j=y[c+100>>2];k=y[c+144>>2];l=y[c+104>>2];m=y[c+148>>2];n=y[c+108>>2];o=y[c+152>>2];p=y[c+112>>2];q=y[c+156>>2];r=y[c+116>>2];s=y[c+160>>2];t=y[c+120>>2];u=y[c+124>>2];v=y[c+164>>2];y[c+292>>2]=u+v;y[c+288>>2]=s+t;y[c+284>>2]=q+r;y[c+280>>2]=o+p;y[c+276>>2]=m+n;y[c+272>>2]=k+l;y[c+268>>2]=i+j;y[c+264>>2]=g+h;y[c+260>>2]=e+f;y[c+256>>2]=b+d;y[c+244>>2]=v-u;y[c+240>>2]=s-t;y[c+236>>2]=q-r;y[c+232>>2]=o-p;y[c+228>>2]=m-n;y[c+224>>2]=k-l;y[c+220>>2]=i-j;y[c+216>>2]=g-h;y[c+212>>2]=e-f;y[c+208>>2]=b-d;b=c+208|0;bb(b,b);ga(c,c+256|0,b);pa(a,c);T=c+304|0;return 0}function zb(a){var 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,z=0,A=0,B=0,C=0,D=0;b=T-320|0;T=b;d=b+240|0;fa(d,a);e=b+192|0;fa(e,a+40|0);c=b+144|0;fa(c,a+80|0);a=y[b+240>>2];f=y[b+192>>2];g=y[b+244>>2];h=y[b+196>>2];i=y[b+248>>2];j=y[b+200>>2];k=y[b+252>>2];l=y[b+204>>2];m=y[b+256>>2];n=y[b+208>>2];o=y[b+260>>2];p=y[b+212>>2];q=y[b+264>>2];r=y[b+216>>2];s=y[b+268>>2];t=y[b+220>>2];u=y[b+272>>2];v=y[b+224>>2];y[b+84>>2]=y[b+228>>2]-y[b+276>>2];y[b+80>>2]=v-u;y[b+76>>2]=t-s;y[b+72>>2]=r-q;y[b+68>>2]=p-o;y[b+64>>2]=n-m;y[b+60>>2]=l-k;y[b+56>>2]=j-i;y[b+52>>2]=h-g;y[b+48>>2]=f-a;a=b+48|0;ga(a,a,c);ga(b,d,e);ga(b,b,1584);fa(b+96|0,c);c=y[b+48>>2];d=y[b+96>>2];e=y[b>>2];f=y[b+52>>2];g=y[b+100>>2];h=y[b+4>>2];i=y[b+56>>2];j=y[b+104>>2];k=y[b+8>>2];l=y[b+60>>2];m=y[b+108>>2];n=y[b+12>>2];o=y[b+64>>2];p=y[b+112>>2];q=y[b+16>>2];r=y[b+68>>2];s=y[b+116>>2];t=y[b+20>>2];u=y[b+72>>2];v=y[b+120>>2];w=y[b+24>>2];x=y[b+76>>2];z=y[b+124>>2];A=y[b+28>>2];B=y[b+80>>2];C=y[b+128>>2];D=y[b+32>>2];y[b+84>>2]=y[b+84>>2]-(y[b+132>>2]+y[b+36>>2]|0);y[b+80>>2]=B-(C+D|0);y[b+76>>2]=x-(z+A|0);y[b+72>>2]=u-(v+w|0);y[b+68>>2]=r-(s+t|0);y[b+64>>2]=o-(p+q|0);y[b+60>>2]=l-(m+n|0);y[b+56>>2]=i-(j+k|0);y[b+52>>2]=f-(g+h|0);y[b+48>>2]=c-(d+e|0);c=b+288|0;pa(c,a);a=ya(c,32);T=b+320|0;return a}function Bc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{f:{if((e&-7)!=1){break f}f=(d>>>0)/3|0;h=f<<2;f=E(f,-3)+d|0;g:{if(!f){break g}if(!(e&2)){h=h+4|0;break g}h=((f>>>1|0)+h|0)+2|0;}if(b>>>0<=h>>>0){break f}h:{if(e>>>0>=4){if(!d){e=0;break b}f=0;e=0;break h}if(!d){e=0;break b}f=0;e=0;break e}while(1){j=z[c+i|0]|j<<8;f=f|8;while(1){f=f-6|0;g=j>>>f&63;k=g+65510>>>8|0;l=g+65484>>>8|0;w[a+e|0]=((g^16321)+1^-1)>>>8&45|((g+32705^-1)>>>8&95|(l&(g+71&(k^-1))|k&g+65)|g+252&g+65474>>>8&(l^-1));e=e+1|0;if(f>>>0>5){continue}break}i=i+1|0;if((i|0)!=(d|0)){continue}break}if(!f){break c}i=45;g=95;d=32705;break d}na();s();}while(1){j=z[c+i|0]|j<<8;f=f|8;while(1){f=f-6|0;g=j>>>f&63;k=g+65510>>>8|0;l=g+65484>>>8|0;w[a+e|0]=((g^16321)+1^-1)>>>8&43|((g+16321^-1)>>>8&47|(l&(g+71&(k^-1))|k&g+65)|g+252&g+65474>>>8&(l^-1));e=e+1|0;if(f>>>0>5){continue}break}i=i+1|0;if((i|0)!=(d|0)){continue}break}if(!f){break c}i=43;g=47;d=16321;}c=j<<6-f&63;f=c+65510>>>8|0;j=c+65484>>>8|0;w[a+e|0]=((c^16321)+1^-1)>>>8&i|(g&(c+d^-1)>>>8|(j&(c+71&(f^-1))|f&c+65)|c+252&c+65474>>>8&(j^-1));e=e+1|0;}if(e>>>0>h>>>0){break a}}i:{if(e>>>0>=h>>>0){h=e;break i}c=h-e|0;if(!c){break i}o(a+e|0,61,c);}c=h+1|0;b=(b>>>0>c>>>0?b:c)-h|0;if(b){o(a+h|0,0,b);}return a|0}Q(1104,1218,231,1503);s();}function oa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(c|d){a:{l=a+224|0;k=a+96|0;f=z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24);g=a- -64|0;while(1){e=f+k|0;i=256-f|0;if(!d&c>>>0<=i>>>0){if(c){t(e,b,c);}b=c+(z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24))|0;w[a+352|0]=b;w[a+353|0]=b>>>8;w[a+354|0]=b>>>16;w[a+355|0]=b>>>24;break a}if(i){t(e,b,i);}e=i+(z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24))|0;w[a+352|0]=e;w[a+353|0]=e>>>8;w[a+354|0]=e>>>16;w[a+355|0]=e>>>24;f=z[g+4|0]|z[g+5|0]<<8|(z[g+6|0]<<16|z[g+7|0]<<24);m=f;h=z[g|0]|z[g+1|0]<<8|(z[g+2|0]<<16|z[g+3|0]<<24);j=h+128|0;f=j>>>0<128?f+1|0:f;e=g;w[e|0]=j;w[e+1|0]=j>>>8;w[e+2|0]=j>>>16;w[e+3|0]=j>>>24;w[e+4|0]=f;w[e+5|0]=f>>>8;w[e+6|0]=f>>>16;w[e+7|0]=f>>>24;f=z[a+76|0]|z[a+77|0]<<8|(z[a+78|0]<<16|z[a+79|0]<<24);e=(m|0)==-1&h>>>0>4294967167;h=e+(z[a+72|0]|z[a+73|0]<<8|(z[a+74|0]<<16|z[a+75|0]<<24))|0;f=e>>>0>h>>>0?f+1|0:f;w[a+72|0]=h;w[a+73|0]=h>>>8;w[a+74|0]=h>>>16;w[a+75|0]=h>>>24;w[a+76|0]=f;w[a+77|0]=f>>>8;w[a+78|0]=f>>>16;w[a+79|0]=f>>>24;Eb(a,k);t(k,l,128);f=(z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24))-128|0;e=f;w[a+352|0]=e;w[a+353|0]=e>>>8;w[a+354|0]=e>>>16;w[a+355|0]=e>>>24;b=b+i|0;d=d-(c>>>0>>0)|0;c=c-i|0;if(d|c){continue}break}}}return 0}function zh(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(d){if(e){break i}i=1;e=0;while(1){l=z[c+h|0];j=(l&223)-55&255;n=(j+65526^j+65520)>>>8|0;l=l^48;o=l+65526>>>8|0;if(!((n|o)&255)){break g}if(b>>>0<=m>>>0){break h}j=j&n|l&o;j:{if(!(k&255)){e=j<<4;break j}w[a+m|0]=e|j;m=m+1|0;}k=k^-1;h=h+1|0;if((h|0)!=(d|0)){continue}break}h=d;break g}a=0;if(!g){break a}break c}while(1){k:{l:{m:{n:{o:{j=z[c+h|0];i=(j&223)-55&255;l=(i+65526^i+65520)>>>8|0;n=j^48;o=n+65526>>>8|0;if(!((l|o)&255)){if(k&255){break f}i=0;if(!ob(e,j)){break d}k=h+1|0;h=k;if(h>>>0>>0){break o}break d}if(b>>>0<=m>>>0){break h}i=i&l|n&o;if(!(k&255)){break n}w[a+m|0]=i|p;k=k^-1;m=m+1|0;break k}while(1){j=z[c+h|0];l=(j&223)-55&255;n=(l+65526^l+65520)>>>8|0;o=j^48;p=o+65526>>>8|0;if(!((n|p)&255)){if(!ob(e,j)){break d}h=h+1|0;if(h>>>0>>0){continue}break m}break}if(b>>>0<=m>>>0){break l}i=l&n|o&p;}p=i<<4;k=255;break k}h=d>>>0>k>>>0?d:k;break d}k=0;break h}i=1;h=h+1|0;if(h>>>0>>0){continue}break}break g}y[10172]=68;i=0;}if(!(k&255)){break e}}y[10172]=28;i=-1;h=h-1|0;m=0;break d}m=i?m:0;i=i-1|0;}if(g){break c}if((d|0)!=(h|0)){break b}a=i;break a}y[g>>2]=c+h;a=i;break a}y[10172]=28;a=-1;}if(f){y[f>>2]=m;}return a|0}function oe(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=T-16|0;T=e;j=y[a+20>>2];y[a+20>>2]=0;k=y[a+4>>2];y[a+4>>2]=0;h=-26;a:{b:{c:{d:{switch(c-1|0){case 1:if(pb(b,1182,9)){break b}b=b+9|0;break c;case 0:break d;default:break a}}if(pb(b,1173,8)){break b}b=b+8|0;}if(z[b|0]!=36|z[b+1|0]!=118|z[b+2|0]!=61){break b}f=b+3|0;i=z[f|0];if((i-58&255)>>>0<246){break b}b=0;g=i;c=f;while(1){d=c;if(b>>>0>429496729){break b}c=(g&255)-48|0;b=E(b,10);if(c>>>0>(b^-1)>>>0){break b}b=b+c|0;c=d+1|0;g=z[c|0];if((g-58&255)>>>0>245){continue}break}if((i|0)==48&(d|0)!=(f|0)|(c|0)==(f|0)){break b}if((b|0)!=19){break a}if((g&255)!=36|z[d+2|0]!=109|z[d+3|0]!=61){break b}b=e+12|0;c=zc(d+4|0,b);if(!c){break b}y[a+44>>2]=y[e+12>>2];if(z[c|0]!=44|z[c+1|0]!=116|z[c+2|0]!=61){break b}c=zc(c+3|0,b);if(!c){break b}y[a+40>>2]=y[e+12>>2];if(z[c|0]!=44|z[c+1|0]!=112|z[c+2|0]!=61){break b}c=zc(c+3|0,b);if(!c){break b}d=y[e+12>>2];y[a+48>>2]=d;y[a+52>>2]=d;if(z[c|0]!=36){break b}y[e+12>>2]=j;f=y[a+16>>2];c=c+1|0;d=c;g=Ha(c);c=e+8|0;if(Ac(f,j,d,g,0,b,c,3)){break b}y[a+20>>2]=y[e+12>>2];d=y[e+8>>2];if(z[d|0]!=36){break b}y[e+12>>2]=k;d=d+1|0;if(Ac(y[a>>2],k,d,Ha(d),0,b,c,3)){break b}y[a+4>>2]=y[e+12>>2];b=y[e+8>>2];h=nc(a);if(h){break a}h=z[b|0]?-32:0;break a}h=-32;}T=e+16|0;return h}function Hd(a){var 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;c=y[a+60>>2];q=y[a+56>>2];p=y[a+52>>2];n=y[a+48>>2];b=y[a+44>>2];d=y[a+40>>2];r=y[a+36>>2];m=y[a+32>>2];e=y[a+28>>2];f=y[a+24>>2];g=y[a+20>>2];h=y[a+16>>2];i=y[a+12>>2];j=y[a+8>>2];k=y[a+4>>2];l=y[a>>2];while(1){o=Bi(g+k|0,7)^r;s=Bi(o+g|0,9)^p;h=Bi(l+n|0,7)^h;t=Bi(h+l|0,9)^m;u=Bi(t+h|0,13)^n;i=Bi(b+c|0,7)^i;e=Bi(i+c|0,9)^e;m=Bi(e+i|0,13)^b;c=Bi(e+m|0,18)^c;b=Bi(d+f|0,7)^q;n=u^Bi(c+b|0,7);p=s^Bi(n+c|0,9);q=Bi(n+p|0,13)^b;c=Bi(p+q|0,18)^c;j=Bi(b+d|0,9)^j;f=Bi(j+b|0,13)^f;d=Bi(f+j|0,18)^d;b=Bi(d+o|0,7)^m;m=Bi(b+d|0,9)^t;r=Bi(b+m|0,13)^o;d=Bi(m+r|0,18)^d;k=Bi(o+s|0,13)^k;g=Bi(k+s|0,18)^g;f=Bi(g+h|0,7)^f;e=Bi(f+g|0,9)^e;h=Bi(e+f|0,13)^h;g=Bi(h+e|0,18)^g;l=Bi(t+u|0,18)^l;k=Bi(l+i|0,7)^k;j=Bi(k+l|0,9)^j;i=Bi(j+k|0,13)^i;l=Bi(i+j|0,18)^l;o=v>>>0<6;v=v+2|0;if(o){continue}break}y[a>>2]=y[a>>2]+l;y[a+4>>2]=y[a+4>>2]+k;y[a+8>>2]=y[a+8>>2]+j;y[a+12>>2]=y[a+12>>2]+i;y[a+16>>2]=y[a+16>>2]+h;y[a+20>>2]=y[a+20>>2]+g;y[a+24>>2]=y[a+24>>2]+f;y[a+28>>2]=y[a+28>>2]+e;y[a+32>>2]=y[a+32>>2]+m;y[a+36>>2]=y[a+36>>2]+r;y[a+40>>2]=y[a+40>>2]+d;y[a+44>>2]=y[a+44>>2]+b;y[a+48>>2]=y[a+48>>2]+n;y[a+52>>2]=y[a+52>>2]+p;y[a+56>>2]=y[a+56>>2]+q;y[a+60>>2]=y[a+60>>2]+c;}function Dd(a,b,c,d){var e=0,f=0;e=T-320|0;T=e;f=-1;a:{if(!dc(c)){break a}if(yb(c)){break a}if(ab(e,c)){break a}if(!ec(e)){break a}w[a|0]=z[b|0];w[a+1|0]=z[b+1|0];w[a+2|0]=z[b+2|0];w[a+3|0]=z[b+3|0];w[a+4|0]=z[b+4|0];w[a+5|0]=z[b+5|0];w[a+6|0]=z[b+6|0];w[a+7|0]=z[b+7|0];w[a+8|0]=z[b+8|0];w[a+9|0]=z[b+9|0];w[a+10|0]=z[b+10|0];w[a+11|0]=z[b+11|0];w[a+12|0]=z[b+12|0];w[a+13|0]=z[b+13|0];w[a+14|0]=z[b+14|0];w[a+15|0]=z[b+15|0];w[a+16|0]=z[b+16|0];w[a+17|0]=z[b+17|0];w[a+18|0]=z[b+18|0];w[a+19|0]=z[b+19|0];w[a+20|0]=z[b+20|0];w[a+21|0]=z[b+21|0];w[a+22|0]=z[b+22|0];w[a+23|0]=z[b+23|0];w[a+24|0]=z[b+24|0];w[a+25|0]=z[b+25|0];w[a+26|0]=z[b+26|0];w[a+27|0]=z[b+27|0];w[a+28|0]=z[b+28|0];w[a+29|0]=z[b+29|0];w[a+30|0]=z[b+30|0];c=z[b+31|0];if(d){w[a|0]=z[a|0]&248;c=c|64;}w[a+31|0]=c&127;c=e+160|0;Nc(c,a,e);Wa(a,c);if((z[a+31|0]&127|(z[a+30|0]|(z[a+29|0]|(z[a+28|0]|(z[a+27|0]|(z[a+26|0]|(z[a+25|0]|(z[a+24|0]|(z[a+23|0]|(z[a+22|0]|(z[a+21|0]|(z[a+20|0]|(z[a+19|0]|(z[a+18|0]|(z[a+17|0]|(z[a+16|0]|(z[a+15|0]|(z[a+14|0]|(z[a+13|0]|(z[a+12|0]|(z[a+11|0]|(z[a+10|0]|(z[a+9|0]|(z[a+8|0]|(z[a+7|0]|(z[a+6|0]|(z[a+5|0]|(z[a+4|0]|(z[a+3|0]|(z[a+2|0]|(z[a+1|0]|z[a|0]^1)))))))))))))))))))))))))))))))-1&256){break a}f=ya(b,32)?-1:0;}T=e+320|0;return f}function Gd(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=T-48|0;T=k;if(e){za(e,102);}a:{if(z[d|0]!=36|z[d+1|0]!=55|z[d+2|0]!=36){break a}l=eb(z[d+3|0]);if(!l){break a}g=Mb(k+12|0,d+4|0);if(!g){break a}j=Mb(k+8|0,g);if(!j){break a}h=Ha(j)+1|0;while(1){b:{g=0;if(!h){break b}h=h-1|0;g=j+h|0;if(z[g|0]!=36){continue}}break}i=g-j|0;c:{if(g){break c}i=Ha(j);}g=i;h=g+(j-d|0)|0;i=h+45|0;if(i>>>0>102|g>>>0>i>>>0){break a}i=a;m=b;n=c;l=l-1024|0;a=l&31;if((l&63)>>>0>=32){b=1<>>32-a;}if(Id(i,m,n,j,g,c,b,y[k+12>>2],y[k+8>>2],k+16|0,32)){break a}if(h){t(e,d,h);}a=e+h|0;w[a|0]=36;c=(h^-1)+102|0;f=a+1|0;a=0;while(1){d:{b=f;d=a;if(d>>>0>31){g=f;break d}h=d+1|0;a=31-d|0;i=a>>>0>=2?2:a;a=h+i|0;g=0;j=0;l=k+16|0;f=z[l+d|0];e:{if(!i){break e}f=z[h+l|0]<<8|f;d=d+2|0;if((d|0)==(a|0)){break e}j=1;f=z[d+l|0]<<16|f;}if(!c){break d}w[b|0]=z[(f&63)+1024|0];if((c|0)==1){break d}w[b+1|0]=z[(f>>>6&63)+1024|0];i=b+c|0;d=b+2|0;f:{if((a|0)==(h|0)){break f}if((c|0)==2){break d}w[b+2|0]=z[(f>>>12&63)+1024|0];d=b+3|0;if(!j){break f}if((c|0)==3){break d}w[b+3|0]=z[(f>>>18|0)+1024|0];d=b+4|0;}f=d;c=i-f|0;if(f){continue}}break}ja(k+16|0,32);f=0;if(!g|e+102>>>0<=g>>>0){break a}w[g|0]=0;f=e;}T=k+48|0;return f}function qa(a,b){var 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;c=y[b+40>>2];e=y[b+4>>2];f=y[b+44>>2];g=y[b+8>>2];h=y[b+48>>2];i=y[b+12>>2];j=y[b+52>>2];k=y[b+16>>2];l=y[b+56>>2];m=y[b+20>>2];n=y[b+60>>2];o=y[b+24>>2];d=b- -64|0;p=y[d>>2];q=y[b+28>>2];r=y[b+68>>2];s=y[b+32>>2];t=y[b+72>>2];u=y[b>>2];y[a+36>>2]=y[b+36>>2]+y[b+76>>2];y[a+32>>2]=s+t;y[a+28>>2]=q+r;y[a+24>>2]=o+p;y[a+20>>2]=m+n;y[a+16>>2]=k+l;y[a+12>>2]=i+j;y[a+8>>2]=g+h;y[a+4>>2]=e+f;y[a>>2]=c+u;c=y[b+40>>2];e=y[b+4>>2];f=y[b+44>>2];g=y[b+8>>2];h=y[b+48>>2];i=y[b+12>>2];j=y[b+52>>2];k=y[b+16>>2];l=y[b+56>>2];m=y[b+20>>2];n=y[b+60>>2];o=y[b+24>>2];d=y[d>>2];p=y[b+28>>2];q=y[b+68>>2];r=y[b+32>>2];s=y[b+72>>2];t=y[b>>2];y[a+76>>2]=y[b+76>>2]-y[b+36>>2];y[a+72>>2]=s-r;y[a+68>>2]=q-p;y[a- -64>>2]=d-o;y[a+60>>2]=n-m;y[a+56>>2]=l-k;y[a+52>>2]=j-i;y[a+48>>2]=h-g;y[a+44>>2]=f-e;y[a+40>>2]=c-t;c=y[b+84>>2];y[a+80>>2]=y[b+80>>2];y[a+84>>2]=c;c=y[b+92>>2];y[a+88>>2]=y[b+88>>2];y[a+92>>2]=c;c=y[b+100>>2];y[a+96>>2]=y[b+96>>2];y[a+100>>2]=c;c=y[b+108>>2];y[a+104>>2]=y[b+104>>2];y[a+108>>2]=c;c=y[b+116>>2];y[a+112>>2]=y[b+112>>2];y[a+116>>2]=c;ga(a+120|0,b+120|0,1680);}function jc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0;c=y[a+56>>2];d=y[a+60>>2];if(c|d){f=a- -64|0;w[f+c|0]=1;l=c+1|0;d=l?d:d+1|0;a:{if(!d&l>>>0>15|d){break a}d=15-c|0;if(!d){break a}o((a+c|0)+65|0,0,d);}w[a+80|0]=1;hc(a,f,16,0);}l=y[a+52>>2];j=y[a+48>>2];f=y[a+44>>2];c=y[a+24>>2];g=y[a+28>>2]+(c>>>26|0)|0;e=y[a+32>>2]+(g>>>26|0)|0;m=y[a+36>>2]+(e>>>26|0)|0;h=y[a+20>>2]+E(m>>>26|0,5)|0;i=h&67108863;d=i+5|0;p=e&67108863;k=g&67108863;c=(c&67108863)+(h>>>26|0)|0;h=c+(d>>>26|0)|0;q=k+(h>>>26|0)|0;r=p+(q>>>26|0)|0;s=(m&67108863)+(r>>>26|0)|0;e=s-67108864|0;g=e>>31;n=h;h=(e>>>31|0)-1|0;e=h&67108863;c=c&g|n&e;i=c<<26|(d&e|g&i);d=i+y[a+40>>2]|0;w[b|0]=d;w[b+1|0]=d>>>8;w[b+2|0]=d>>>16;w[b+3|0]=d>>>24;i=d>>>0>>0;d=0;k=g&k|e&q;c=k<<20|c>>>6;n=c;c=c+f|0;d=n>>>0>c>>>0?1:d;f=c;c=c+i|0;d=f>>>0>c>>>0?d+1|0:d;w[b+4|0]=c;w[b+5|0]=c>>>8;w[b+6|0]=c>>>16;w[b+7|0]=c>>>24;c=0;e=g&p|e&r;f=e<<14|k>>>12;j=f+j|0;f=f>>>0>j>>>0?1:c;c=j;j=d;c=c+d|0;d=f;d=c>>>0>>0?d+1|0:d;w[b+8|0]=c;w[b+9|0]=c>>>8;w[b+10|0]=c>>>16;w[b+11|0]=c>>>24;c=(h&s|g&m)<<8|e>>>18;c=c+l|0;d=c+d|0;w[b+12|0]=d;w[b+13|0]=d>>>8;w[b+14|0]=d>>>16;w[b+15|0]=d>>>24;ja(a,88);}function Cd(a,b,c){var d=0,e=0;d=T-160|0;T=d;w[a|0]=z[b|0];w[a+1|0]=z[b+1|0];w[a+2|0]=z[b+2|0];w[a+3|0]=z[b+3|0];w[a+4|0]=z[b+4|0];w[a+5|0]=z[b+5|0];w[a+6|0]=z[b+6|0];w[a+7|0]=z[b+7|0];w[a+8|0]=z[b+8|0];w[a+9|0]=z[b+9|0];w[a+10|0]=z[b+10|0];w[a+11|0]=z[b+11|0];w[a+12|0]=z[b+12|0];w[a+13|0]=z[b+13|0];w[a+14|0]=z[b+14|0];w[a+15|0]=z[b+15|0];w[a+16|0]=z[b+16|0];w[a+17|0]=z[b+17|0];w[a+18|0]=z[b+18|0];w[a+19|0]=z[b+19|0];w[a+20|0]=z[b+20|0];w[a+21|0]=z[b+21|0];w[a+22|0]=z[b+22|0];w[a+23|0]=z[b+23|0];w[a+24|0]=z[b+24|0];w[a+25|0]=z[b+25|0];w[a+26|0]=z[b+26|0];w[a+27|0]=z[b+27|0];w[a+28|0]=z[b+28|0];w[a+29|0]=z[b+29|0];w[a+30|0]=z[b+30|0];e=z[b+31|0];if(c){w[a|0]=z[a|0]&248;e=e|64;}w[a+31|0]=e&127;jb(d,a);Wa(a,d);c=-1;if(!((z[a+31|0]&127|(z[a+30|0]|(z[a+29|0]|(z[a+28|0]|(z[a+27|0]|(z[a+26|0]|(z[a+25|0]|(z[a+24|0]|(z[a+23|0]|(z[a+22|0]|(z[a+21|0]|(z[a+20|0]|(z[a+19|0]|(z[a+18|0]|(z[a+17|0]|(z[a+16|0]|(z[a+15|0]|(z[a+14|0]|(z[a+13|0]|(z[a+12|0]|(z[a+11|0]|(z[a+10|0]|(z[a+9|0]|(z[a+8|0]|(z[a+7|0]|(z[a+6|0]|(z[a+5|0]|(z[a+4|0]|(z[a+3|0]|(z[a+2|0]|(z[a+1|0]|z[a|0]^1)))))))))))))))))))))))))))))))-1&256)){c=ya(b,32)?-1:0;}T=d+160|0;return c}function Ea(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T-16|0;T=d;w[d+15|0]=0;e=-1;if(!(X[y[9954]](a,b,c)|0)){w[d+15|0]=z[a|0]|z[d+15|0];w[d+15|0]=z[a+1|0]|z[d+15|0];w[d+15|0]=z[a+2|0]|z[d+15|0];w[d+15|0]=z[a+3|0]|z[d+15|0];w[d+15|0]=z[a+4|0]|z[d+15|0];w[d+15|0]=z[a+5|0]|z[d+15|0];w[d+15|0]=z[a+6|0]|z[d+15|0];w[d+15|0]=z[a+7|0]|z[d+15|0];w[d+15|0]=z[a+8|0]|z[d+15|0];w[d+15|0]=z[a+9|0]|z[d+15|0];w[d+15|0]=z[a+10|0]|z[d+15|0];w[d+15|0]=z[a+11|0]|z[d+15|0];w[d+15|0]=z[a+12|0]|z[d+15|0];w[d+15|0]=z[a+13|0]|z[d+15|0];w[d+15|0]=z[a+14|0]|z[d+15|0];w[d+15|0]=z[a+15|0]|z[d+15|0];w[d+15|0]=z[a+16|0]|z[d+15|0];w[d+15|0]=z[a+17|0]|z[d+15|0];w[d+15|0]=z[a+18|0]|z[d+15|0];w[d+15|0]=z[a+19|0]|z[d+15|0];w[d+15|0]=z[a+20|0]|z[d+15|0];w[d+15|0]=z[a+21|0]|z[d+15|0];w[d+15|0]=z[a+22|0]|z[d+15|0];w[d+15|0]=z[a+23|0]|z[d+15|0];w[d+15|0]=z[a+24|0]|z[d+15|0];w[d+15|0]=z[a+25|0]|z[d+15|0];w[d+15|0]=z[a+26|0]|z[d+15|0];w[d+15|0]=z[a+27|0]|z[d+15|0];w[d+15|0]=z[a+28|0]|z[d+15|0];w[d+15|0]=z[a+29|0]|z[d+15|0];w[d+15|0]=z[a+30|0]|z[d+15|0];w[d+15|0]=z[a+31|0]|z[d+15|0];e=(z[d+15|0]<<23)-8388608>>31;}T=d+16|0;return e|0}function Xc(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{if((d|0)==1|d>>>0>1){y[10172]=22;break b}d=T-128|0;T=d;y[d+64>>2]=0;y[d+56>>2]=0;y[d+60>>2]=0;y[d+48>>2]=0;y[d+52>>2]=0;y[d+40>>2]=0;y[d+44>>2]=0;y[d+32>>2]=0;y[d+36>>2]=0;y[d+24>>2]=0;y[d+28>>2]=0;y[d+16>>2]=0;y[d+20>>2]=0;f=Ha(a);y[d+28>>2]=f;y[d+44>>2]=f;y[d+12>>2]=f;g=Da(f);y[d+40>>2]=g;h=Da(f);y[d+24>>2]=h;i=Da(f);y[d+8>>2]=i;c:{d:{if(!i|(!g|!h)){break d}f=Da(f);if(!f){break d}a=oe(d+8|0,a,e);if(a){ta(y[d+40>>2]);ta(y[d+24>>2]);ta(y[d+8>>2]);ta(f);break c}i=y[d+28>>2];j=y[d+24>>2];a=y[d+60>>2];k=y[d+52>>2];l=y[d+48>>2];g=y[d+12>>2];za(f,g);h=Da(g);e:{if(!h){a=-22;break e}y[d+92>>2]=0;y[d+96>>2]=0;y[d+88>>2]=i;y[d+84>>2]=j;y[d+80>>2]=c;y[d+76>>2]=b;y[d+72>>2]=g;y[d+68>>2]=h;y[d+100>>2]=0;y[d+104>>2]=0;y[d+124>>2]=0;y[d+120>>2]=a;y[d+116>>2]=a;y[d+112>>2]=k;y[d+108>>2]=l;a=Sb(d+68|0,e);if(!(a|!g)){t(f,h,g);}ja(h,g);ta(h);}ta(y[d+40>>2]);ta(y[d+24>>2]);if(!a){a=$a(f,y[d+8>>2],y[d+12>>2])?-35:0;}ta(f);ta(y[d+8>>2]);break c}ta(g);ta(h);ta(i);a=-22;}T=d+128|0;b=a;if(!a){break a}if((a|0)!=-35){break b}y[10172]=28;}b=-1;}return b}function db(a,b){a=a|0;b=b|0;var c=0;c=T-16|0;y[c+12>>2]=a;y[c+8>>2]=b;x[c+6>>1]=0;x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]]^z[y[c+8>>2]];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+1|0]^z[y[c+8>>2]+1|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+2|0]^z[y[c+8>>2]+2|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+3|0]^z[y[c+8>>2]+3|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+4|0]^z[y[c+8>>2]+4|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+5|0]^z[y[c+8>>2]+5|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+6|0]^z[y[c+8>>2]+6|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+7|0]^z[y[c+8>>2]+7|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+8|0]^z[y[c+8>>2]+8|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+9|0]^z[y[c+8>>2]+9|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+10|0]^z[y[c+8>>2]+10|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+11|0]^z[y[c+8>>2]+11|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+12|0]^z[y[c+8>>2]+12|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+13|0]^z[y[c+8>>2]+13|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+14|0]^z[y[c+8>>2]+14|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+15|0]^z[y[c+8>>2]+15|0];x[c+6>>1]=A[c+6>>1];x[c+6>>1]=A[c+6>>1]-1;x[c+6>>1]=A[20608]>>>2^A[c+6>>1]>>>15;return A[c+6>>1]-1|0}function pa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=y[b+32>>2];g=y[b+28>>2];h=y[b+24>>2];i=y[b+20>>2];j=y[b+16>>2];k=y[b+12>>2];c=y[b+4>>2];d=y[b>>2];e=y[b+36>>2];b=y[b+8>>2];d=E((f+(g+(h+(i+(j+(k+((c+(d+(E(e,19)+16777216>>>25|0)>>26)>>25)+b>>26)>>25)>>26)>>25)>>26)>>25)>>26)+e>>25,19)+d|0;w[a|0]=d;w[a+2|0]=d>>>16;w[a+1|0]=d>>>8;c=c+(d>>26)|0;w[a+5|0]=c>>>14;w[a+4|0]=c>>>6;w[a+3|0]=d>>>24&3|c<<2;b=b+(c>>25)|0;w[a+8|0]=b>>>13;w[a+7|0]=b>>>5;w[a+6|0]=b<<3|(c&29360128)>>>22;d=(b>>26)+k|0;w[a+11|0]=d>>>11;w[a+10|0]=d>>>3;w[a+9|0]=d<<5|(b&65011712)>>>21;c=(d>>25)+j|0;w[a+15|0]=c>>>18;w[a+14|0]=c>>>10;w[a+13|0]=c>>>2;b=(c>>26)+i|0;w[a+16|0]=b;w[a+12|0]=c<<6|(d&33030144)>>>19;w[a+18|0]=b>>>16;w[a+17|0]=b>>>8;c=(b>>25)+h|0;w[a+21|0]=c>>>15;w[a+20|0]=c>>>7;w[a+19|0]=b>>>24&1|c<<1;b=(c>>26)+g|0;w[a+24|0]=b>>>13;w[a+23|0]=b>>>5;w[a+22|0]=b<<3|(c&58720256)>>>23;c=(b>>25)+f|0;w[a+27|0]=c>>>12;w[a+26|0]=c>>>4;w[a+25|0]=c<<4|(b&31457280)>>>21;b=e+(c>>26)|0;w[a+30|0]=b>>>10;w[a+29|0]=b>>>2;w[a+31|0]=(b&33292288)>>>18;w[a+28|0]=b<<6|(c&66060288)>>>20;}function Va(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=T-192|0;T=g;if(c>>>0>=129){Za(a);va(a,b,c,0);Ca(a,g);c=64;b=g;}Za(a);o(g- -64|0,54,128);a:{if(!c){break a}k=c&3;if(c>>>0>=4){f=c&252;while(1){h=g- -64|0;e=h+d|0;w[e|0]=z[e|0]^z[b+d|0];e=d|1;l=e+h|0;w[l|0]=z[l|0]^z[b+e|0];e=d|2;l=e+h|0;w[l|0]=z[l|0]^z[b+e|0];e=h;h=d|3;e=e+h|0;w[e|0]=z[e|0]^z[b+h|0];d=d+4|0;i=i+4|0;if((f|0)!=(i|0)){continue}break}if(!k){break a}}while(1){i=(g- -64|0)+d|0;w[i|0]=z[i|0]^z[b+d|0];d=d+1|0;j=j+1|0;if((k|0)!=(j|0)){continue}break}}d=g- -64|0;va(a,d,128,0);k=a+208|0;Za(k);o(d,92,128);b:{if(!c){break b}h=c&3;j=0;d=0;if(c>>>0>=4){c=c&252;i=0;while(1){a=g- -64|0;f=a+d|0;w[f|0]=z[f|0]^z[b+d|0];f=d|1;e=f+a|0;w[e|0]=z[e|0]^z[b+f|0];f=d|2;e=f+a|0;w[e|0]=z[e|0]^z[b+f|0];e=a;a=d|3;f=e+a|0;w[f|0]=z[f|0]^z[a+b|0];d=d+4|0;i=i+4|0;if((c|0)!=(i|0)){continue}break}if(!h){break b}}while(1){a=(g- -64|0)+d|0;w[a|0]=z[a|0]^z[b+d|0];d=d+1|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}a=g- -64|0;va(k,a,128,0);ja(a,128);ja(g,64);T=g+192|0;return 0}function mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b;d=z[c+32|0]|z[c+33|0]<<8|(z[c+34|0]<<16|z[c+35|0]<<24);e=z[c+36|0]|z[c+37|0]<<8|(z[c+38|0]<<16|z[c+39|0]<<24);f=z[c+40|0]|z[c+41|0]<<8|(z[c+42|0]<<16|z[c+43|0]<<24);g=z[c+44|0]|z[c+45|0]<<8|(z[c+46|0]<<16|z[c+47|0]<<24);h=z[c+48|0]|z[c+49|0]<<8|(z[c+50|0]<<16|z[c+51|0]<<24);b=z[c+52|0]|z[c+53|0]<<8|(z[c+54|0]<<16|z[c+55|0]<<24);i=z[c+60|0]|z[c+61|0]<<8|(z[c+62|0]<<16|z[c+63|0]<<24);c=z[c+56|0]|z[c+57|0]<<8|(z[c+58|0]<<16|z[c+59|0]<<24);w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=i;w[a+29|0]=i>>>8;w[a+30|0]=i>>>16;w[a+31|0]=i>>>24;w[a+16|0]=h;w[a+17|0]=h>>>8;w[a+18|0]=h>>>16;w[a+19|0]=h>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;w[a+8|0]=f;w[a+9|0]=f>>>8;w[a+10|0]=f>>>16;w[a+11|0]=f>>>24;w[a+12|0]=g;w[a+13|0]=g>>>8;w[a+14|0]=g>>>16;w[a+15|0]=g>>>24;w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=e;w[a+5|0]=e>>>8;w[a+6|0]=e>>>16;w[a+7|0]=e>>>24;return 0}function nh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b;d=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);e=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);f=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);g=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);h=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);b=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);i=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);c=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=i;w[a+29|0]=i>>>8;w[a+30|0]=i>>>16;w[a+31|0]=i>>>24;w[a+16|0]=h;w[a+17|0]=h>>>8;w[a+18|0]=h>>>16;w[a+19|0]=h>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;w[a+8|0]=f;w[a+9|0]=f>>>8;w[a+10|0]=f>>>16;w[a+11|0]=f>>>24;w[a+12|0]=g;w[a+13|0]=g>>>8;w[a+14|0]=g>>>16;w[a+15|0]=g>>>24;w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=e;w[a+5|0]=e>>>8;w[a+6|0]=e>>>16;w[a+7|0]=e>>>24;return 0}function pi(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=T+-64|0;T=h;if(c|d){y[h+8>>2]=2036477234;y[h+12>>2]=1797285236;y[h>>2]=1634760805;y[h+4>>2]=857760878;y[h+16>>2]=z[g|0]|z[g+1|0]<<8|(z[g+2|0]<<16|z[g+3|0]<<24);y[h+20>>2]=z[g+4|0]|z[g+5|0]<<8|(z[g+6|0]<<16|z[g+7|0]<<24);y[h+24>>2]=z[g+8|0]|z[g+9|0]<<8|(z[g+10|0]<<16|z[g+11|0]<<24);y[h+28>>2]=z[g+12|0]|z[g+13|0]<<8|(z[g+14|0]<<16|z[g+15|0]<<24);y[h+32>>2]=z[g+16|0]|z[g+17|0]<<8|(z[g+18|0]<<16|z[g+19|0]<<24);y[h+36>>2]=z[g+20|0]|z[g+21|0]<<8|(z[g+22|0]<<16|z[g+23|0]<<24);y[h+40>>2]=z[g+24|0]|z[g+25|0]<<8|(z[g+26|0]<<16|z[g+27|0]<<24);g=z[g+28|0]|z[g+29|0]<<8|(z[g+30|0]<<16|z[g+31|0]<<24);y[h+48>>2]=f;y[h+44>>2]=g;y[h+52>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[h+56>>2]=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[h+60>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);_b(h,b,a,c,d);ja(h,64);}T=h- -64|0;return 0}function ri(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T+-64|0;T=f;if(b|c){y[f+8>>2]=2036477234;y[f+12>>2]=1797285236;y[f>>2]=1634760805;y[f+4>>2]=857760878;y[f+16>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[f+20>>2]=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[f+24>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);y[f+28>>2]=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+32>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+36>>2]=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+40>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);e=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);y[f+48>>2]=0;y[f+44>>2]=e;y[f+52>>2]=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);y[f+56>>2]=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);y[f+60>>2]=z[d+8|0]|z[d+9|0]<<8|(z[d+10|0]<<16|z[d+11|0]<<24);if(b){o(a,0,b);}_b(f,a,a,b,c);ja(f,64);}T=f- -64|0;return 0}function Vf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=T;f=g-192&-64;T=f;y[f+64>>2]=(z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24))&67108863;y[f+68>>2]=(z[e+3|0]|z[e+4|0]<<8|(z[e+5|0]<<16|z[e+6|0]<<24))>>>2&67108611;y[f+72>>2]=(z[e+6|0]|z[e+7|0]<<8|(z[e+8|0]<<16|z[e+9|0]<<24))>>>4&67092735;y[f+76>>2]=(z[e+9|0]|z[e+10|0]<<8|(z[e+11|0]<<16|z[e+12|0]<<24))>>>6&66076671;h=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+84>>2]=0;y[f+88>>2]=0;y[f+92>>2]=0;y[f+96>>2]=0;y[f+100>>2]=0;y[f+80>>2]=h>>>8&1048575;y[f+104>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+108>>2]=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+112>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);e=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);w[f+144|0]=0;y[f+120>>2]=0;y[f+124>>2]=0;y[f+116>>2]=e;e=f- -64|0;kc(e,b,c,d);b=f+48|0;jc(e,b);a=db(a,b);T=g;return a|0}function jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;g=c;c=d;k=g|0;d=T;g=d;f=d-512&-64;T=f;d=-1;h=f- -64|0;i=f+32|0;if(!nb(h,i)){d=f+128|0;Ja(d,0,0,24);oa(d,h,32,0);oa(d,e,32,0);j=f+96|0;Ia(d,j,24);d=$d(a+32|0,b,k,c,j,e,i);b=y[f+92>>2];c=y[f+88>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[f+84>>2];c=y[f+80>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[f+76>>2];c=y[f+72>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[f+68>>2];c=y[f+64>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;ja(i,32);ja(h,32);ja(j,24);}T=g;return d|0}function Wf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;g=c;c=d;k=g|0;d=T;g=d;f=d-512&-64;T=f;d=-1;h=f- -64|0;i=f+32|0;if(!nb(h,i)){d=f+128|0;Ja(d,0,0,24);oa(d,h,32,0);oa(d,e,32,0);j=f+96|0;Ia(d,j,24);d=Bd(a+32|0,b,k,c,j,e,i);b=y[f+92>>2];c=y[f+88>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[f+84>>2];c=y[f+80>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[f+76>>2];c=y[f+72>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[f+68>>2];c=y[f+64>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;ja(i,32);ja(h,32);ja(j,24);}T=g;return d|0}function qi(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=T+-64|0;T=i;if(c|d){y[i+8>>2]=2036477234;y[i+12>>2]=1797285236;y[i>>2]=1634760805;y[i+4>>2]=857760878;y[i+16>>2]=z[h|0]|z[h+1|0]<<8|(z[h+2|0]<<16|z[h+3|0]<<24);y[i+20>>2]=z[h+4|0]|z[h+5|0]<<8|(z[h+6|0]<<16|z[h+7|0]<<24);y[i+24>>2]=z[h+8|0]|z[h+9|0]<<8|(z[h+10|0]<<16|z[h+11|0]<<24);y[i+28>>2]=z[h+12|0]|z[h+13|0]<<8|(z[h+14|0]<<16|z[h+15|0]<<24);y[i+32>>2]=z[h+16|0]|z[h+17|0]<<8|(z[h+18|0]<<16|z[h+19|0]<<24);y[i+36>>2]=z[h+20|0]|z[h+21|0]<<8|(z[h+22|0]<<16|z[h+23|0]<<24);y[i+40>>2]=z[h+24|0]|z[h+25|0]<<8|(z[h+26|0]<<16|z[h+27|0]<<24);h=z[h+28|0]|z[h+29|0]<<8|(z[h+30|0]<<16|z[h+31|0]<<24);y[i+48>>2]=f;y[i+52>>2]=g;y[i+44>>2]=h;y[i+56>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[i+60>>2]=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);_b(i,b,a,c,d);ja(i,64);}T=i- -64|0;return 0}function si(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T+-64|0;T=f;if(b|c){y[f+8>>2]=2036477234;y[f+12>>2]=1797285236;y[f>>2]=1634760805;y[f+4>>2]=857760878;y[f+16>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[f+20>>2]=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[f+24>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);y[f+28>>2]=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+32>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+36>>2]=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+40>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);e=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);y[f+48>>2]=0;y[f+52>>2]=0;y[f+44>>2]=e;y[f+56>>2]=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);y[f+60>>2]=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);if(b){o(a,0,b);}_b(f,a,a,b,c);ja(f,64);}T=f- -64|0;return 0}function og(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=T;f=g-128&-64;T=f;y[f>>2]=(z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24))&67108863;y[f+4>>2]=(z[e+3|0]|z[e+4|0]<<8|(z[e+5|0]<<16|z[e+6|0]<<24))>>>2&67108611;y[f+8>>2]=(z[e+6|0]|z[e+7|0]<<8|(z[e+8|0]<<16|z[e+9|0]<<24))>>>4&67092735;y[f+12>>2]=(z[e+9|0]|z[e+10|0]<<8|(z[e+11|0]<<16|z[e+12|0]<<24))>>>6&66076671;h=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+20>>2]=0;y[f+24>>2]=0;y[f+28>>2]=0;y[f+32>>2]=0;y[f+36>>2]=0;y[f+16>>2]=h>>>8&1048575;y[f+40>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+44>>2]=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+48>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);e=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);w[f+80|0]=0;y[f+56>>2]=0;y[f+60>>2]=0;y[f+52>>2]=e;kc(f,b,c,d);jc(f,a);T=g;return 0}function Bb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=T-352|0;T=h;Aa(h,f,g,0);a:{b:{if(!(!((!e&a-c>>>0>>0|(e|0)!=0)&a>>>0>c>>>0)&(!e&c-a>>>0>=d>>>0|a>>>0>=c>>>0))){if(d){t(a,c,d);}y[h+56>>2]=0;y[h+60>>2]=0;y[h+48>>2]=0;y[h+52>>2]=0;y[h+40>>2]=0;y[h+44>>2]=0;y[h+32>>2]=0;y[h+36>>2]=0;g=(e|0)!=0;c=g|!e&d>>>0>=32;i=c?32:d;k=c?0:e;g=g|!e&d>>>0>32;c=a;break b}y[h+56>>2]=0;y[h+60>>2]=0;y[h+48>>2]=0;y[h+52>>2]=0;y[h+40>>2]=0;y[h+44>>2]=0;y[h+32>>2]=0;y[h+36>>2]=0;j=(e|0)!=0;g=j|!e&d>>>0>=32;i=g?32:d;k=g?0:e;g=j|!e&d>>>0>32;if(d|e){break b}m=1;break a}if(i){t(h- -64|0,c,i);}m=0;}l=h+32|0;j=k;n=i+32|0;j=n>>>0<32?j+1|0:j;o=j;j=f+16|0;Zb(l,l,n,o,j,h);Ga(h+96|0,l);if(!(!i|m)){t(a,h- -64|0,i);}ja(h+32|0,64);if(g){hb(a+i|0,c+i|0,d-i|0,e-(k+(d>>>0>>0)|0)|0,j,1,0,h);}ja(h,32);c=h+96|0;la(c,a,d,e);Fa(c,b);ja(c,256);T=h+352|0;return 0}function Ab(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=T-352|0;T=h;Sa(h,f,g,0);a:{b:{if(!(!((!e&a-c>>>0>>0|(e|0)!=0)&a>>>0>c>>>0)&(!e&c-a>>>0>=d>>>0|a>>>0>=c>>>0))){if(d){t(a,c,d);}y[h+56>>2]=0;y[h+60>>2]=0;y[h+48>>2]=0;y[h+52>>2]=0;y[h+40>>2]=0;y[h+44>>2]=0;y[h+32>>2]=0;y[h+36>>2]=0;g=(e|0)!=0;c=g|!e&d>>>0>=32;i=c?32:d;k=c?0:e;g=g|!e&d>>>0>32;c=a;break b}y[h+56>>2]=0;y[h+60>>2]=0;y[h+48>>2]=0;y[h+52>>2]=0;y[h+40>>2]=0;y[h+44>>2]=0;y[h+32>>2]=0;y[h+36>>2]=0;j=(e|0)!=0;g=j|!e&d>>>0>=32;i=g?32:d;k=g?0:e;g=j|!e&d>>>0>32;if(d|e){break b}m=1;break a}if(i){t(h- -64|0,c,i);}m=0;}l=h+32|0;j=k;n=i+32|0;j=n>>>0<32?j+1|0:j;o=j;j=f+16|0;Gb(l,l,n,o,j,h);Ga(h+96|0,l);if(!(!i|m)){t(a,h- -64|0,i);}ja(h+32|0,64);if(g){sb(a+i|0,c+i|0,d-i|0,e-(k+(d>>>0>>0)|0)|0,j,1,0,h);}ja(h,32);c=h+96|0;la(c,a,d,e);Fa(c,b);ja(c,256);T=h+352|0;return 0}function Qf(a,b){a=a|0;b=b|0;var c=0;y[a>>2]=(z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24))&67108863;y[a+4>>2]=(z[b+3|0]|z[b+4|0]<<8|(z[b+5|0]<<16|z[b+6|0]<<24))>>>2&67108611;y[a+8>>2]=(z[b+6|0]|z[b+7|0]<<8|(z[b+8|0]<<16|z[b+9|0]<<24))>>>4&67092735;y[a+12>>2]=(z[b+9|0]|z[b+10|0]<<8|(z[b+11|0]<<16|z[b+12|0]<<24))>>>6&66076671;c=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[a+20>>2]=0;y[a+24>>2]=0;y[a+28>>2]=0;y[a+32>>2]=0;y[a+36>>2]=0;y[a+16>>2]=c>>>8&1048575;y[a+40>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[a+44>>2]=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[a+48>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);b=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);w[a+80|0]=0;y[a+56>>2]=0;y[a+60>>2]=0;y[a+52>>2]=b;return 0}function Pg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T-320|0;T=d;e=-1;if(!ib(d,c)){w[a|0]=z[b|0];w[a+1|0]=z[b+1|0];w[a+2|0]=z[b+2|0];w[a+3|0]=z[b+3|0];w[a+4|0]=z[b+4|0];w[a+5|0]=z[b+5|0];w[a+6|0]=z[b+6|0];w[a+7|0]=z[b+7|0];w[a+8|0]=z[b+8|0];w[a+9|0]=z[b+9|0];w[a+10|0]=z[b+10|0];w[a+11|0]=z[b+11|0];w[a+12|0]=z[b+12|0];w[a+13|0]=z[b+13|0];w[a+14|0]=z[b+14|0];w[a+15|0]=z[b+15|0];w[a+16|0]=z[b+16|0];w[a+17|0]=z[b+17|0];w[a+18|0]=z[b+18|0];w[a+19|0]=z[b+19|0];w[a+20|0]=z[b+20|0];w[a+21|0]=z[b+21|0];w[a+22|0]=z[b+22|0];w[a+23|0]=z[b+23|0];w[a+24|0]=z[b+24|0];w[a+25|0]=z[b+25|0];w[a+26|0]=z[b+26|0];w[a+27|0]=z[b+27|0];w[a+28|0]=z[b+28|0];w[a+29|0]=z[b+29|0];w[a+30|0]=z[b+30|0];w[a+31|0]=z[b+31|0]&127;b=d+160|0;Nc(b,a,d);xb(a,b);e=ya(a,32)?-1:0;}T=d+320|0;return e|0}function wd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-480|0;T=f;Va(f,e,32);Na(f,b,c,d);Ya(f,f+416|0);b=y[f+444>>2];c=y[f+440>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[f+436>>2];c=y[f+432>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[f+428>>2];c=y[f+424>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[f+420>>2];c=y[f+416>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;T=f+480|0;return 0}function Og(a,b){a=a|0;b=b|0;var c=0;c=T-160|0;T=c;w[a|0]=z[b|0];w[a+1|0]=z[b+1|0];w[a+2|0]=z[b+2|0];w[a+3|0]=z[b+3|0];w[a+4|0]=z[b+4|0];w[a+5|0]=z[b+5|0];w[a+6|0]=z[b+6|0];w[a+7|0]=z[b+7|0];w[a+8|0]=z[b+8|0];w[a+9|0]=z[b+9|0];w[a+10|0]=z[b+10|0];w[a+11|0]=z[b+11|0];w[a+12|0]=z[b+12|0];w[a+13|0]=z[b+13|0];w[a+14|0]=z[b+14|0];w[a+15|0]=z[b+15|0];w[a+16|0]=z[b+16|0];w[a+17|0]=z[b+17|0];w[a+18|0]=z[b+18|0];w[a+19|0]=z[b+19|0];w[a+20|0]=z[b+20|0];w[a+21|0]=z[b+21|0];w[a+22|0]=z[b+22|0];w[a+23|0]=z[b+23|0];w[a+24|0]=z[b+24|0];w[a+25|0]=z[b+25|0];w[a+26|0]=z[b+26|0];w[a+27|0]=z[b+27|0];w[a+28|0]=z[b+28|0];w[a+29|0]=z[b+29|0];w[a+30|0]=z[b+30|0];w[a+31|0]=z[b+31|0]&127;jb(c,a);xb(a,c);a=ya(a,32);T=c+160|0;return (a?-1:0)|0}function oh(a,b){a=a|0;b=b|0;var c=0,d=0;d=T+-64|0;T=d;rb(d,b,32,0);w[d|0]=z[d|0]&248;w[d+31|0]=z[d+31|0]&63|64;b=y[d+20>>2];c=y[d+16>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[d+12>>2];c=y[d+8>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[d+4>>2];c=y[d>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=y[d+28>>2];c=y[d+24>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;ja(d,64);T=d- -64|0;return 0}function tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=T+-64|0;T=e;rb(e,c,32,0);c=y[e+28>>2];d=y[e+24>>2];w[b+24|0]=d;w[b+25|0]=d>>>8;w[b+26|0]=d>>>16;w[b+27|0]=d>>>24;w[b+28|0]=c;w[b+29|0]=c>>>8;w[b+30|0]=c>>>16;w[b+31|0]=c>>>24;c=y[e+20>>2];d=y[e+16>>2];w[b+16|0]=d;w[b+17|0]=d>>>8;w[b+18|0]=d>>>16;w[b+19|0]=d>>>24;w[b+20|0]=c;w[b+21|0]=c>>>8;w[b+22|0]=c>>>16;w[b+23|0]=c>>>24;c=y[e+12>>2];d=y[e+8>>2];w[b+8|0]=d;w[b+9|0]=d>>>8;w[b+10|0]=d>>>16;w[b+11|0]=d>>>24;w[b+12|0]=c;w[b+13|0]=c>>>8;w[b+14|0]=c>>>16;w[b+15|0]=c>>>24;c=y[e+4>>2];d=y[e>>2];w[b|0]=d;w[b+1|0]=d>>>8;w[b+2|0]=d>>>16;w[b+3|0]=d>>>24;w[b+4|0]=c;w[b+5|0]=c>>>8;w[b+6|0]=c>>>16;w[b+7|0]=c>>>24;ja(e,64);a=wb(a,b);T=e- -64|0;return a|0}function xi(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;j=T;l=j;j=j-192&-32;T=j;Qe(i,h,j- -64|0);h=0;if(g>>>0>63){i=64;while(1){Pe(f+h|0,j- -64|0);h=i;i=i- -64|0;if(i>>>0<=g>>>0){continue}break}}i=h|32;if(i>>>0<=g>>>0){while(1){$b(f+h|0,j- -64|0);h=i;i=i+32|0;if(i>>>0<=g>>>0){continue}break}}i=g&31;if(i){k=32-i|0;if(k){o(i|j+32,0,k);}if(i){t(j+32|0,f+h|0,i);}$b(j+32|0,j- -64|0);}f=32;h=0;if(e>>>0>=32){while(1){Oe(a+h|0,d+h|0,j- -64|0);h=f;f=f+32|0;if(f>>>0<=e>>>0){continue}break}}f=e&31;a:{if(!f){break a}i=32-f|0;if(i){o(f|j+32,0,i);}i=!f;if(!i){t(j+32|0,d+h|0,f);}Oe(j,j+32|0,j- -64|0);if(i){break a}t(a+h|0,j,f);}Ne(b,c,g,e,j- -64|0);T=l;return 0}function Ng(a,b){a=a|0;b=b|0;var c=0,d=0;d=T+-64|0;T=d;Ya(a,d);c=y[d+28>>2];a=y[d+24>>2];w[b+24|0]=a;w[b+25|0]=a>>>8;w[b+26|0]=a>>>16;w[b+27|0]=a>>>24;w[b+28|0]=c;w[b+29|0]=c>>>8;w[b+30|0]=c>>>16;w[b+31|0]=c>>>24;c=y[d+20>>2];a=y[d+16>>2];w[b+16|0]=a;w[b+17|0]=a>>>8;w[b+18|0]=a>>>16;w[b+19|0]=a>>>24;w[b+20|0]=c;w[b+21|0]=c>>>8;w[b+22|0]=c>>>16;w[b+23|0]=c>>>24;c=y[d+12>>2];a=y[d+8>>2];w[b+8|0]=a;w[b+9|0]=a>>>8;w[b+10|0]=a>>>16;w[b+11|0]=a>>>24;w[b+12|0]=c;w[b+13|0]=c>>>8;w[b+14|0]=c>>>16;w[b+15|0]=c>>>24;c=y[d+4>>2];a=y[d>>2];w[b|0]=a;w[b+1|0]=a>>>8;w[b+2|0]=a>>>16;w[b+3|0]=a>>>24;w[b+4|0]=c;w[b+5|0]=c>>>8;w[b+6|0]=c>>>16;w[b+7|0]=c>>>24;T=d- -64|0;return 0}function Pc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;if(b>>>0>4294967168){return 48}a:{if(b>>>0>=4294967168){y[10172]=48;c=0;break a}f=b>>>0<11?16:b+11&-8;b=Da(f+76|0);c=0;if(!b){break a}c=b-8|0;b:{if(!(b&63)){b=c;break b}g=b-4|0;h=y[g>>2];b=(b+63&-64)-8|0;b=(b-c>>>0<=15?64:0)+b|0;d=b-c|0;e=(h&-8)-d|0;if(!(h&3)){c=y[c>>2];y[b+4>>2]=e;y[b>>2]=c+d;break b}y[b+4>>2]=e|y[b+4>>2]&1|2;e=b+e|0;y[e+4>>2]=y[e+4>>2]|1;y[g>>2]=d|y[g>>2]&1|2;e=c+d|0;y[e+4>>2]=y[e+4>>2]|1;Lc(c,d);}c=y[b+4>>2];c:{if(!(c&3)){break c}d=c&-8;if(d>>>0<=f+16>>>0){break c}y[b+4>>2]=f|c&1|2;c=b+f|0;f=d-f|0;y[c+4>>2]=f|3;d=b+d|0;y[d+4>>2]=y[d+4>>2]|1;Lc(c,f);}c=b+8|0;}if(!c){return 48}y[a>>2]=c;return 0}function le(a,b,c,d,e,f,g,h,i,j,k){if(b){o(a,0,b);}if((c|0)==1|c>>>0>1){y[10172]=22;return -1}a:{if(!c&b>>>0<=15){break a}if(!(!(f|i)&j>>>0<2147483649)){y[10172]=22;return -1}if(!((!i&h>>>0>=3|(i|0)!=0)&j>>>0>8191)|(a|0)==(d|0)){break a}if((k|0)==1){c=T+-64|0;T=c;if(a){za(a,b);}i=j>>>10|0;f=Da(b);b:{if(!f){d=-22;break b}y[c+28>>2]=0;y[c+32>>2]=0;y[c+24>>2]=16;y[c+20>>2]=g;y[c+16>>2]=e;y[c+12>>2]=d;y[c+8>>2]=b;y[c+4>>2]=f;y[c+36>>2]=0;y[c+40>>2]=0;y[c+60>>2]=0;y[c+56>>2]=1;y[c+52>>2]=1;y[c+48>>2]=i;y[c+44>>2]=h;d=Sb(c+4|0,1);if(!(!b|(d|!a))){t(a,f,b);}ja(f,b);ta(f);}T=c- -64|0;return d?-1:0}y[10172]=28;return -1}y[10172]=28;return -1}function cf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=a;e=T-32|0;T=e;lc(b,c,d,e+28|0,e+20|0,e+12|0);a=0;a:{b:{c:{while(1){d:{if(!z[a+f|0]){b=a;break d}b=a+1|0;if(!z[f+b|0]){break d}b=a+2|0;if(!z[f+b|0]){break d}a=a+3|0;if((a|0)!=102){continue}break c}break}if((b|0)!=101){break c}c=e+8|0;d=e+16|0;a=0;e:{if(z[f|0]!=36|z[f+1|0]!=55|z[f+2|0]!=36){break e}b=eb(z[f+3|0]);y[e+24>>2]=b?b-1024|0:0;if(!b){break e}b=Mb(c,f+4|0);if(!b){break e}a=Mb(d,b);}if(a){break b}y[10172]=28;a=-1;break a}y[10172]=28;a=-1;break a}a=1;if(y[e+28>>2]!=y[e+24>>2]|y[e+12>>2]!=y[e+8>>2]){break a}a=y[e+20>>2]!=y[e+16>>2];}T=e+32|0;return a|0}function Qb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0;h=T-96|0;T=h;Sa(h,f,g,0);g=h+32|0;i=f+16|0;ac(g,32,0,i,h);f=-1;a:{b:{if(Jb(c,b,d,e,g)){break b}f=0;if(!a){break a}c:{d:{if(!(!((!e&b-a>>>0>>0|(e|0)!=0)&a>>>0>>0)&(!e&a-b>>>0>=d>>>0|a>>>0<=b>>>0))){if(d){t(a,b,d);}b=a;break d}if(!(d|e)){break c}}j=h- -64|0;f=!e&d>>>0>=32|(e|0)!=0;c=f?32:d;g=f?0:e;k=!c;if(!k){t(j,b,c);}f=h+32|0;l=f;f=g;m=c+32|0;f=m>>>0<32?f+1|0:f;Gb(l,l,m,f,i,h);if(!k){t(a,j,c);}ja(h+32|0,64);f=0;if(!e&d>>>0<33){break b}sb(a+c|0,b+c|0,d-c|0,e-(g+(c>>>0>d>>>0)|0)|0,i,1,0,h);break b}a=h+32|0;Gb(a,a,32,0,i,h);ja(a,64);}ja(h,32);}T=h+96|0;return f}function ce(a,b,c,d,e,f,g,h,i,j,k){if(b){o(a,0,b);}if((c|0)==1|c>>>0>1){y[10172]=22;return -1}a:{if(!c&b>>>0<=15){break a}if(!(!(f|i)&j>>>0<2147483649)){y[10172]=22;return -1}if(!(!!(h|i)&j>>>0>8191)|(a|0)==(d|0)){break a}if((k|0)==2){c=T+-64|0;T=c;if(a){za(a,b);}i=j>>>10|0;f=Da(b);b:{if(!f){d=-22;break b}y[c+28>>2]=0;y[c+32>>2]=0;y[c+24>>2]=16;y[c+20>>2]=g;y[c+16>>2]=e;y[c+12>>2]=d;y[c+8>>2]=b;y[c+4>>2]=f;y[c+36>>2]=0;y[c+40>>2]=0;y[c+60>>2]=0;y[c+56>>2]=1;y[c+52>>2]=1;y[c+48>>2]=i;y[c+44>>2]=h;d=Sb(c+4|0,2);if(!(!b|(d|!a))){t(a,f,b);}ja(f,b);ta(f);}T=c- -64|0;return d?-1:0}y[10172]=28;return -1}y[10172]=28;return -1}function Rb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0;h=T-96|0;T=h;Aa(h,f,g,0);g=h+32|0;i=f+16|0;Fb(g,32,0,i,h);f=-1;a:{b:{if(Jb(c,b,d,e,g)){break b}f=0;if(!a){break a}c:{d:{if(!(!((!e&b-a>>>0>>0|(e|0)!=0)&a>>>0>>0)&(!e&a-b>>>0>=d>>>0|a>>>0<=b>>>0))){if(d){t(a,b,d);}b=a;break d}if(!(d|e)){break c}}j=h- -64|0;f=!e&d>>>0>=32|(e|0)!=0;c=f?32:d;g=f?0:e;k=!c;if(!k){t(j,b,c);}f=h+32|0;l=f;f=g;m=c+32|0;f=m>>>0<32?f+1|0:f;Zb(l,l,m,f,i,h);if(!k){t(a,j,c);}f=0;if(!e&d>>>0<33){break b}hb(a+c|0,b+c|0,d-c|0,e-(g+(c>>>0>d>>>0)|0)|0,i,1,0,h);break b}a=h+32|0;Zb(a,a,32,0,i,h);}ja(h,32);}T=h+96|0;return f} +function ia(a,b,c){var d=0,e=0,f=0;d=y[b+12>>2];e=y[b+8>>2];f=y[b+4>>2];b=y[b>>2];y[a>>2]=y[c>>2]^(y[(d>>>22&1020)+37408>>2]^(y[(e>>>14&1020)+36384>>2]^(y[(f>>>6&1020)+35360>>2]^y[((b&255)<<2)+34336>>2])));y[a+4>>2]=y[c+4>>2]^(y[(b>>>22&1020)+37408>>2]^(y[(d>>>14&1020)+36384>>2]^(y[(e>>>6&1020)+35360>>2]^y[((f&255)<<2)+34336>>2])));y[a+8>>2]=y[c+8>>2]^(y[(f>>>22&1020)+37408>>2]^(y[(b>>>14&1020)+36384>>2]^(y[(d>>>6&1020)+35360>>2]^y[((e&255)<<2)+34336>>2])));y[a+12>>2]=y[c+12>>2]^(y[(e>>>22&1020)+37408>>2]^(y[(f>>>14&1020)+36384>>2]^(y[(b>>>6&1020)+35360>>2]^y[((d&255)<<2)+34336>>2])));}function yd(a,b,c,d,e,f,g,h,i,j){var k=0,l=0;k=T-400|0;T=k;y[k+4>>2]=0;l=k+16|0;Aa(l,i,j,0);j=z[i+20|0]|z[i+21|0]<<8|(z[i+22|0]<<16|z[i+23|0]<<24);y[k+8>>2]=z[i+16|0]|z[i+17|0]<<8|(z[i+18|0]<<16|z[i+19|0]<<24);y[k+12>>2]=j;j=k+80|0;_a(j,64,0,k+4|0,l);i=k+144|0;Ga(i,j);ja(j,64);la(i,f,g,h);la(i,39776,0-g&15,0);la(i,b,c,d);la(i,39776,0-c&15,0);y[k+72>>2]=g;y[k+76>>2]=h;f=k+72|0;la(i,f,8,0);y[k+72>>2]=c;y[k+76>>2]=d;la(i,f,8,0);f=k+48|0;Fa(i,f);ja(i,256);i=db(f,e);ja(f,16);a:{if(!a){break a}if(i){if(c){o(a,0,c);}i=-1;break a}Be(a,b,c,d,k+4|0,k+16|0);i=0;}ja(k+16|0,32);T=k+400|0;return i}function Jd(a,b,c,d,e,f){var g=0,h=0;g=T-496|0;T=g;h=g+288|0;Xa(h,a,b);Ka(h,c,d,0);if(f){a=0;b=0;while(1){b=b+1|0;c=Di(b&16711935,8)|Di(b,24)&16711935;w[g+76|0]=c;w[g+77|0]=c>>>8;w[g+78|0]=c>>>16;w[g+79|0]=c>>>24;c=g+80|0;t(c,g+288|0,208);Ka(c,g+76|0,4,0);qb(c,g+32|0);c=y[g+60>>2];y[g+24>>2]=y[g+56>>2];y[g+28>>2]=c;c=y[g+52>>2];y[g+16>>2]=y[g+48>>2];y[g+20>>2]=c;c=y[g+44>>2];y[g+8>>2]=y[g+40>>2];y[g+12>>2]=c;c=y[g+36>>2];y[g>>2]=y[g+32>>2];y[g+4>>2]=c;c=f-a|0;c=c>>>0>=32?32:c;if(c){t(a+e|0,g,c);}a=b<<5;if(f>>>0>a>>>0){continue}break}}ja(g+288|0,208);T=g+496|0;}function Kd(a,b,c,d,e,f){var g=0,h=0,i=0;g=T-32|0;T=g;h=-1;i=c>>>0<32;a:{if(i&!d){break a}Zd(g,32,0,e,f);if(Jb(b+16|0,b+32|0,c-32|0,d-i|0,g)){break a}rc(a,b,c,d,e,f);w[a+24|0]=0;w[a+25|0]=0;w[a+26|0]=0;w[a+27|0]=0;w[a+28|0]=0;w[a+29|0]=0;w[a+30|0]=0;w[a+31|0]=0;w[a+16|0]=0;w[a+17|0]=0;w[a+18|0]=0;w[a+19|0]=0;w[a+20|0]=0;w[a+21|0]=0;w[a+22|0]=0;w[a+23|0]=0;w[a+8|0]=0;w[a+9|0]=0;w[a+10|0]=0;w[a+11|0]=0;w[a+12|0]=0;w[a+13|0]=0;w[a+14|0]=0;w[a+15|0]=0;w[a|0]=0;w[a+1|0]=0;w[a+2|0]=0;w[a+3|0]=0;w[a+4|0]=0;w[a+5|0]=0;w[a+6|0]=0;w[a+7|0]=0;h=0;}T=g+32|0;return h}function di(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=T-496|0;T=f;w[f+15|0]=1;a:{if(b>>>0<=16320){if(b>>>0>=64){g=64;while(1){i=g;g=f+80|0;Va(g,e,64);if(h){Na(g,(a+h|0)+-64|0,64,0);}g=f+80|0;Na(g,c,d,0);Na(g,f+15|0,1,0);Ya(g,a+h|0);w[f+15|0]=z[f+15|0]+1;h=i;g=h- -64|0;if(g>>>0<=b>>>0){continue}break}}b=b&63;if(b){h=f+80|0;Va(h,e,64);if(i){Na(h,(a+i|0)+-64|0,64,0);}e=f+80|0;Na(e,c,d,0);Na(e,f+15|0,1,0);c=f+16|0;Ya(e,c);if(b){t(a+i|0,c,b);}ja(f+16|0,64);}ja(f+80|0,416);a=0;break a}y[10172]=28;a=-1;}T=f+496|0;return a|0}function zd(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0;l=T-384|0;T=l;y[l+4>>2]=0;m=l+16|0;Aa(m,j,k,0);k=z[j+20|0]|z[j+21|0]<<8|(z[j+22|0]<<16|z[j+23|0]<<24);y[l+8>>2]=z[j+16|0]|z[j+17|0]<<8|(z[j+18|0]<<16|z[j+19|0]<<24);y[l+12>>2]=k;k=l- -64|0;n=l+4|0;_a(k,64,0,n,m);j=l+128|0;Ga(j,k);ja(k,64);la(j,g,h,i);la(j,39776,0-h&15,0);Be(a,d,e,f,n,m);la(j,a,e,f);la(j,39776,0-e&15,0);y[l+56>>2]=h;y[l+60>>2]=i;a=l+56|0;la(j,a,8,0);y[l+56>>2]=e;y[l+60>>2]=f;la(j,a,8,0);Fa(j,b);ja(j,256);if(c){y[c>>2]=16;y[c+4>>2]=0;}ja(l+16|0,32);T=l+384|0;return 0}function Ch(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=T-256|0;T=f;w[f+15|0]=1;a:{if(b>>>0<=8160){if(b>>>0>=32){g=32;while(1){i=g;g=f+48|0;Xa(g,e,32);if(h){Ka(g,(a+h|0)-32|0,32,0);}g=f+48|0;Ka(g,c,d,0);Ka(g,f+15|0,1,0);qb(g,a+h|0);w[f+15|0]=z[f+15|0]+1;h=i;g=h+32|0;if(g>>>0<=b>>>0){continue}break}}b=b&31;if(b){h=f+48|0;Xa(h,e,32);if(i){Ka(h,(a+i|0)-32|0,32,0);}e=f+48|0;Ka(e,c,d,0);Ka(e,f+15|0,1,0);c=f+16|0;qb(e,c);if(b){t(a+i|0,c,b);}ja(f+16|0,32);}ja(f+48|0,208);a=0;break a}y[10172]=28;a=-1;}T=f+256|0;return a|0}function nc(a){var b=0,c=0,d=0;if(!a){return -25}if(!y[a>>2]){return -1}if(B[a+4>>2]<16){return -2}if(!(y[a+8>>2]|!y[a+12>>2])){return -18}b=y[a+20>>2];if(!y[a+16>>2]){return b?-19:-6}if(b>>>0<8){return -6}if(!(y[a+24>>2]|!y[a+28>>2])){return -20}if(!(y[a+32>>2]|!y[a+36>>2])){return -21}b=y[a+48>>2];if(!b){return -16}if(b>>>0>16777215){return -17}d=-14;c=y[a+44>>2];a:{if(c>>>0<8){break a}if(c>>>0>2097152){return -15}if(b<<3>>>0>c>>>0){break a}if(!y[a+40>>2]){return -12}a=y[a+52>>2];if(!a){return -28}d=a>>>0>16777215?-29:0;}return d}function ob(a,b){var c=0,d=0,e=0;d=b;a:{b:{c:{b=b&255;if(b){if(a&3){while(1){c=z[a|0];if(!c|(b|0)==(c|0)){break a}a=a+1|0;if(a&3){continue}break}}c=y[a>>2];if(((c|16843008-c)&-2139062144)!=-2139062144){break c}e=E(b,16843009);while(1){b=c^e;if(((16843008-b|b)&-2139062144)!=-2139062144){break c}c=y[a+4>>2];b=a+4|0;a=b;if(((16843008-c|c)&-2139062144)==-2139062144){continue}break}break b}a=Ha(a)+a|0;break a}b=a;}while(1){a=b;c=z[a|0];if(!c){break a}b=a+1|0;if((c|0)!=(d&255)){continue}break}}return z[a|0]==(d&255)?a:0}function he(a,b,c,d,e){var f=0,g=0,h=0;f=T+-64|0;T=f;h=Ha(a);a:{if(!(!c&h>>>0<128)){y[10172]=28;a=-1;break a}y[f+60>>2]=0;y[f+52>>2]=0;y[f+56>>2]=0;y[f+44>>2]=0;y[f+48>>2]=0;c=0;b:{if(!h){break b}c=h;}g=Da(c);if(!(!g|!(z[g-4|0]&3))){ja(g,c);}if(!g){a=-1;break a}y[f+12>>2]=g;y[f+20>>2]=g;y[f+24>>2]=h;y[f+4>>2]=g;y[f+16>>2]=h;y[f+28>>2]=0;y[f+32>>2]=0;y[f+8>>2]=h;y[f+36>>2]=0;y[f+40>>2]=0;c:{if(oe(f+4|0,a,e)){y[10172]=28;a=-1;break c}a=y[f+44>>2]!=(b|0)|y[f+48>>2]!=(d>>>10|0);}ta(g);}T=f- -64|0;return a}function rb(a,b,c,d){var e=0,f=0;e=T-208|0;T=e;y[e+72>>2]=0;y[e+76>>2]=0;y[e+64>>2]=0;y[e+68>>2]=0;f=y[9613];y[e>>2]=y[9612];y[e+4>>2]=f;f=y[9615];y[e+8>>2]=y[9614];y[e+12>>2]=f;f=y[9617];y[e+16>>2]=y[9616];y[e+20>>2]=f;f=y[9619];y[e+24>>2]=y[9618];y[e+28>>2]=f;f=y[9621];y[e+32>>2]=y[9620];y[e+36>>2]=f;f=y[9623];y[e+40>>2]=y[9622];y[e+44>>2]=f;f=y[9625];y[e+48>>2]=y[9624];y[e+52>>2]=f;f=y[9627];y[e+56>>2]=y[9626];y[e+60>>2]=f;va(e,b,c,d);Ca(e,a);T=e+208|0;return 0}function ff(a,b,c,d,e,f,g,h,i,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;i=i|0;j=j|0;var k=0,l=0;k=0|e;h=h|l;e=T-16|0;T=e;b=b|l;if(b){o(a,0,b);}f=c|f;a:{if((f|0)==1|f>>>0>1){y[10172]=22;a=-1;break a}if(!c&b>>>0>=16|c){lc(h,i,j,e+12|0,e+8|0,e+4|0);if((a|0)==(d|0)){y[10172]=28;a=-1;break a}h=d;d=y[e+12>>2];c=d&31;if((d&63)>>>0>=32){d=1<>>32-c;}a=Fd(h,k,g,32,f,d,y[e+4>>2],y[e+8>>2],a,b);break a}y[10172]=28;a=-1;}T=e+16|0;return a|0}function ji(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=T-16|0;T=g;a:{b:{if(!d){b=-1;break b}f=d-1|0;c:{if(!(f&d)){h=c^-1;f=f&h;break c}h=c^-1;f=f-((c>>>0)%(d>>>0)|0)|0;}if(f>>>0>=h>>>0){break a}c=c+f|0;if(c>>>0>=e>>>0){b=-1;break b}if(a){y[a>>2]=c+1;}a=b+c|0;b=0;w[g+15|0]=0;c=0;while(1){e=a-c|0;h=e;i=z[e|0]&z[g+15|0];e=(c^f)-1>>>24|0;w[h|0]=i|e&128;w[g+15|0]=e|z[g+15|0];c=c+1|0;if((d|0)!=(c|0)){continue}break}}T=g+16|0;return b|0}na();s();}function Mh(a,b,c){a=a|0;b=b|0;c=c|0;za(b,24);Aa(a,b,c,0);w[a+32|0]=1;w[a+33|0]=0;w[a+34|0]=0;w[a+35|0]=0;c=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);b=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);w[a+44|0]=0;w[a+45|0]=0;w[a+46|0]=0;w[a+47|0]=0;w[a+48|0]=0;w[a+49|0]=0;w[a+50|0]=0;w[a+51|0]=0;w[a+36|0]=c;w[a+37|0]=c>>>8;w[a+38|0]=c>>>16;w[a+39|0]=c>>>24;w[a+40|0]=b;w[a+41|0]=b>>>8;w[a+42|0]=b>>>16;w[a+43|0]=b>>>24;return 0}function Lh(a,b,c){a=a|0;b=b|0;c=c|0;Aa(a,b,c,0);w[a+32|0]=1;w[a+33|0]=0;w[a+34|0]=0;w[a+35|0]=0;c=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);b=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);w[a+44|0]=0;w[a+45|0]=0;w[a+46|0]=0;w[a+47|0]=0;w[a+48|0]=0;w[a+49|0]=0;w[a+50|0]=0;w[a+51|0]=0;w[a+36|0]=c;w[a+37|0]=c>>>8;w[a+38|0]=c>>>16;w[a+39|0]=c>>>24;w[a+40|0]=b;w[a+41|0]=b>>>8;w[a+42|0]=b>>>16;w[a+43|0]=b>>>24;return 0}function Za(a){a=a|0;var b=0;y[a+72>>2]=0;y[a+76>>2]=0;b=a- -64|0;y[b>>2]=0;y[b+4>>2]=0;b=y[9613];y[a>>2]=y[9612];y[a+4>>2]=b;b=y[9615];y[a+8>>2]=y[9614];y[a+12>>2]=b;b=y[9617];y[a+16>>2]=y[9616];y[a+20>>2]=b;b=y[9619];y[a+24>>2]=y[9618];y[a+28>>2]=b;b=y[9621];y[a+32>>2]=y[9620];y[a+36>>2]=b;b=y[9623];y[a+40>>2]=y[9622];y[a+44>>2]=b;b=y[9625];y[a+48>>2]=y[9624];y[a+52>>2]=b;b=y[9627];y[a+56>>2]=y[9626];y[a+60>>2]=b;return 0}function ya(a,b){var c=0,d=0,e=0,f=0,g=0;c=T-16|0;w[c+15|0]=0;a:{if(!b){break a}e=b&3;if(b>>>0>=4){g=b&-4;while(1){b=a+d|0;w[c+15|0]=z[b|0]|z[c+15|0];w[c+15|0]=z[b+1|0]|z[c+15|0];w[c+15|0]=z[b+2|0]|z[c+15|0];w[c+15|0]=z[b+3|0]|z[c+15|0];d=d+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}if(!e){break a}}b=0;while(1){w[c+15|0]=z[a+d|0]|z[c+15|0];d=d+1|0;b=b+1|0;if((e|0)!=(b|0)){continue}break}}return z[c+15|0]-1>>>31|0}function dc(a){return (((z[a+31|0]^-1)&127|z[a+1|0]&(z[a+2|0]&(z[a+3|0]&(z[a+4|0]&(z[a+5|0]&(z[a+6|0]&(z[a+7|0]&(z[a+8|0]&(z[a+9|0]&(z[a+10|0]&(z[a+11|0]&(z[a+12|0]&(z[a+13|0]&(z[a+14|0]&(z[a+15|0]&(z[a+16|0]&(z[a+17|0]&(z[a+18|0]&(z[a+19|0]&(z[a+20|0]&(z[a+21|0]&(z[a+22|0]&(z[a+23|0]&(z[a+24|0]&(z[a+25|0]&(z[a+26|0]&(z[a+27|0]&(z[a+28|0]&(z[a+30|0]&z[a+29|0]))))))))))))))))))))))))))))^255)-1&236-z[a|0]^-1)>>>8&1}function $a(a,b,c){var d=0,e=0,f=0;d=T-16|0;y[d+12>>2]=a;y[d+8>>2]=b;a=0;w[d+7|0]=0;a:{if(!c){break a}if((c|0)!=1){b=c&1;f=c&-2;c=0;while(1){w[d+7|0]=z[d+7|0]|z[y[d+12>>2]+a|0]^z[y[d+8>>2]+a|0];e=a|1;w[d+7|0]=z[d+7|0]|z[e+y[d+12>>2]|0]^z[y[d+8>>2]+e|0];a=a+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}if(!b){break a}}w[d+7|0]=z[d+7|0]|z[y[d+12>>2]+a|0]^z[y[d+8>>2]+a|0];}return (z[d+7|0]-1>>>31|0)-1|0}function df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a;g=c;c=0;d=T-128|0;T=d;a:{b:{while(1){if(!z[c+e|0]){a=c;break b}a=c+1|0;if(!z[e+a|0]){break b}a=c+2|0;if(!z[e+a|0]){break b}c=c+3|0;if((c|0)!=102){continue}break}c=-1;break a}c=-1;if((a|0)!=101){break a}f=d+4|0;if(mc(f));a=d+16|0;o(a,0,102);b=Gd(f,b,g,e,a);Ob(f);if(!b){break a}c=$a(a,e,102);ja(a,102);}T=d+128|0;return c|0}function Od(a,b,c,d,e,f,g,h,i,j){var k=0,l=0,m=0;k=T-352|0;T=k;m=k+32|0;_a(m,64,0,i,j);l=k+96|0;Ga(l,m);ja(m,64);la(l,f,g,h);la(l,39744,0-g&15,0);la(l,b,c,d);la(l,39744,0-c&15,0);y[k+24>>2]=g;y[k+28>>2]=h;f=k+24|0;la(l,f,8,0);y[k+24>>2]=c;y[k+28>>2]=d;la(l,f,8,0);Fa(l,k);ja(l,256);f=db(k,e);ja(k,16);a:{if(!a){break a}if(f){if(c){o(a,0,c);}f=-1;break a}gb(a,b,c,d,i,1,j);f=0;}T=k+352|0;return f}function yb(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;while(1){c=z[a+d|0];b=d+2688|0;e=c^z[b|0]|e;f=c^z[b+192|0]|f;g=c^z[b+160|0]|g;h=c^z[b+128|0]|h;i=c^z[b+96|0]|i;j=c^z[b- -64|0]|j;k=c^z[b+32|0]|k;d=d+1|0;if((d|0)!=31){continue}break}a=z[a+31|0]&127;b=a^127;return (((b|f)&255)-1|(((b|g)&255)-1|(((b|h)&255)-1|(((a^122|i)&255)-1|(((a^5|j)&255)-1|(((a|k)&255)-1|((a|e)&255)-1))))))>>>8&1}function ed(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;a:{b:{c:{d:{if(!e&d>>>0<64){break d}e=e-1|0;h=e+1|0;g=e;e=d+-64|0;d=e>>>0<4294967232?h:g;if(!d&e>>>0>4294967231|d){break d}g=c;c=c- -64|0;if(!pc(g,c,e,d,f,0)){break c}if(!a|!e){break d}o(a,0,e);}d=-1;if(!b){break b}y[b>>2]=0;y[b+4>>2]=0;d=-1;break a}if(b){y[b>>2]=e;y[b+4>>2]=d;}d=0;if(!a|!e){break b}t(a,c,e);}}return d|0}function Ci(a,b,c){var d=0,e=0,f=0,g=0;g=c&63;f=g;e=f&31;if(f>>>0>=32){f=-1>>>e|0;}else {d=-1>>>e|0;f=d|(1<>>0>=32){d=f<>>32-e|d<>>0>=32){d=-1<>>32-d;}a=c&a;b=b&d;d=e&31;if(e>>>0>=32){c=0;a=b>>>d|0;}else {c=b>>>d|0;a=((1<>>d;}a=a|g;W=c|f;return a}function ld(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=T-32|0;T=g;h=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);e=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[g+24>>2]=0;y[g+28>>2]=0;y[g+16>>2]=h;y[g+20>>2]=e;y[g+8>>2]=0;y[g+12>>2]=0;y[g>>2]=c;y[g+4>>2]=d;a:{if(b-65>>>0<=4294967246){y[10172]=28;a=-1;break a}a=qe(a,b,0,0,0,f,32,g,g+16|0);}T=g+32|0;return a|0}function vd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=T-512|0;T=f;g=f+32|0;Va(g,e,32);Na(g,b,c,d);Ya(g,f+448|0);b=y[f+476>>2];y[f+24>>2]=y[f+472>>2];y[f+28>>2]=b;b=y[f+468>>2];y[f+16>>2]=y[f+464>>2];y[f+20>>2]=b;b=y[f+460>>2];y[f+8>>2]=y[f+456>>2];y[f+12>>2]=b;b=y[f+452>>2];y[f>>2]=y[f+448>>2];y[f+4>>2]=b;b=kb(a,f);c=$a(f,a,32);T=f+512|0;return ((a|0)==(f|0)?-1:b)|c}function Pd(a,b,c,d,e,f,g,h,i,j){var k=0,l=0,m=0;k=T-352|0;T=k;m=k+32|0;Fb(m,64,0,i,j);l=k+96|0;Ga(l,m);ja(m,64);la(l,f,g,h);y[k+24>>2]=g;y[k+28>>2]=h;f=k+24|0;la(l,f,8,0);la(l,b,c,d);y[k+24>>2]=c;y[k+28>>2]=d;la(l,f,8,0);Fa(l,k);ja(l,256);f=db(k,e);ja(k,16);a:{if(!a){break a}if(f){if(c){o(a,0,c);}f=-1;break a}hb(a,b,c,d,i,1,0,j);f=0;}T=k+352|0;return f}function Qd(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0;l=T-336|0;T=l;n=l+16|0;_a(n,64,0,j,k);m=l+80|0;Ga(m,n);ja(n,64);la(m,g,h,i);la(m,39744,0-h&15,0);gb(a,d,e,f,j,1,k);la(m,a,e,f);la(m,39744,0-e&15,0);y[l+8>>2]=h;y[l+12>>2]=i;a=l+8|0;la(m,a,8,0);y[l+8>>2]=e;y[l+12>>2]=f;la(m,a,8,0);Fa(m,b);ja(m,256);if(c){y[c>>2]=16;y[c+4>>2]=0;}T=l+336|0;return 0}function Wc(a,b,c){var d=0;d=T-16|0;y[d+12>>2]=a;y[d+8>>2]=b;a=0;x[d+6>>1]=0;while(1){x[d+6>>1]=A[d+6>>1]|z[y[d+12>>2]+a|0]^z[y[d+8>>2]+a|0];b=a|1;x[d+6>>1]=A[d+6>>1]|z[b+y[d+12>>2]|0]^z[b+y[d+8>>2]|0];a=a+2|0;if((c|0)!=(a|0)){continue}break}x[d+6>>1]=A[d+6>>1];x[d+6>>1]=A[d+6>>1]-1;x[d+6>>1]=A[20608]>>>2^A[d+6>>1]>>>15;return A[d+6>>1]-1|0}function ii(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=T-16|0;y[e+12>>2]=0;if(d-1>>>0>>0){f=c-1|0;j=f+b|0;c=0;b=0;while(1){g=z[j-c|0];i=((g^128)-1&(y[e+12>>2]-1&h-1))>>>8&1;y[e+12>>2]=y[e+12>>2]|0-i&c;b=b|i;h=h|g;c=c+1|0;if((d|0)!=(c|0)){continue}break}y[a>>2]=f-y[e+12>>2];a=(b&255)-1|0;}else {a=-1;}return a|0}function Ah(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(!(d>>>0>2147483646|d<<1>>>0>=b>>>0)){b=0;if(d){while(1){e=(b<<1)+a|0;g=z[b+c|0];f=g&15;w[e+1|0]=((f<<8)+(f+65526&55552)|0)+22272>>>8;f=e;e=g>>>4|0;w[f|0]=((e+65526>>>8&217)+e|0)+87;b=b+1|0;if((d|0)!=(b|0)){continue}break}b=d<<1;}else {b=0;}w[b+a|0]=0;return a|0}na();s();}function zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;f=z[a|0];a:{if((f-58&255)>>>0<246){break a}c=f;d=a;while(1){g=d;if(e>>>0>429496729){break a}c=(c&255)-48|0;e=E(e,10);if(c>>>0>(e^-1)>>>0){break a}e=e+c|0;d=d+1|0;c=z[d|0];if((c-58&255)>>>0>245){continue}break}if((f|0)==48&(a|0)!=(g|0)|(a|0)==(d|0)){break a}y[b>>2]=e;h=d;}return h}function fd(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=T-16|0;T=g;h=a- -64|0;if(d){t(h,c,d);}c=0;qc(a,g+8|0,h,d,e,f,0);a:{if(y[g+12>>2]|y[g+8>>2]!=64){if(b){y[b>>2]=0;y[b+4>>2]=0;}b=d- -64|0;if(b){o(a,0,b);}c=-1;break a}if(!b){break a}y[b>>2]=d- -64;y[b+4>>2]=e-((d>>>0<4294967232)-1|0);}T=g+16|0;return c|0}function eb(a){var b=0,c=0,d=0,e=0;b=65;c=1024;d=a&255;a:{b:{if((d|0)!=z[1024]){d=E(d,16843009);while(1){e=d^y[c>>2];if(((e|16843008-e)&-2139062144)!=-2139062144){break b}c=c+4|0;b=b-4|0;if(b>>>0>3){continue}break}}if(!b){break a}}a=a&255;while(1){if((a|0)==z[c|0]){return c}c=c+1|0;b=b-1|0;if(b){continue}break}}return 0}function Rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=T-112|0;T=e;y[e+40>>2]=0;y[e+44>>2]=0;f=y[9833];y[e+8>>2]=y[9832];y[e+12>>2]=f;f=y[9835];y[e+16>>2]=y[9834];y[e+20>>2]=f;f=y[9837];y[e+24>>2]=y[9836];y[e+28>>2]=f;f=y[9839];y[e+32>>2]=y[9838];y[e+36>>2]=f;f=e+8|0;La(f,b,c,d);Ua(f,a);T=e+112|0;return 0}function Sd(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0;l=T-336|0;T=l;n=l+16|0;Fb(n,64,0,j,k);m=l+80|0;Ga(m,n);ja(n,64);la(m,g,h,i);y[l+8>>2]=h;y[l+12>>2]=i;g=l+8|0;la(m,g,8,0);hb(a,d,e,f,j,1,0,k);la(m,a,e,f);y[l+8>>2]=e;y[l+12>>2]=f;la(m,g,8,0);Fa(m,b);ja(m,256);if(c){y[c>>2]=16;y[c+4>>2]=0;}T=l+336|0;return 0}function Ld(a,b,c,d,e,f){if(!d&c>>>0>=32|d){rc(a,b,c,d,e,f);Zc(a+16|0,a+32|0,c-32|0,d-(c>>>0<32)|0,a);w[a+8|0]=0;w[a+9|0]=0;w[a+10|0]=0;w[a+11|0]=0;w[a+12|0]=0;w[a+13|0]=0;w[a+14|0]=0;w[a+15|0]=0;w[a|0]=0;w[a+1|0]=0;w[a+2|0]=0;w[a+3|0]=0;w[a+4|0]=0;w[a+5|0]=0;w[a+6|0]=0;w[a+7|0]=0;a=0;}else {a=-1;}return a}function Ha(a){var b=0,c=0,d=0;a:{b:{b=a;if(!(b&3)){break b}if(!z[b|0]){return 0}while(1){b=b+1|0;if(!(b&3)){break b}if(z[b|0]){continue}break}break a}while(1){c=b;b=b+4|0;d=y[c>>2];if(((d|16843008-d)&-2139062144)==-2139062144){continue}break}while(1){b=c;c=b+1|0;if(z[b|0]){continue}break}}return b-a|0}function Mb(a,b){var c=0,d=0,e=0,f=0,g=0;a:{c=eb(z[b|0]);if(!c){break a}d=eb(z[b+1|0]);if(!d){break a}e=eb(z[b+2|0]);if(!e){break a}f=eb(z[b+3|0]);if(!f){break a}g=eb(z[b+4|0]);if(!g){break a}y[a>>2]=c-1024|d-1024<<6|e-1024<<12|f-1024<<18|g-1024<<24;return b+5|0}y[a>>2]=0;return 0}function Hf(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;b=0|b;e=e|l;h=h|l;a:{b:{switch(k-1|0){case 0:a=le(a,b,c,d,e,f,g,h,i,j,1);break a;case 1:a=ce(a,b,c,d,e,f,g,h,i,j,2);break a;default:break b}}y[10172]=28;a=-1;}return a|0}function Tc(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0;m=-1;l=d>>>0<32;a:{if(l&!e){break a}l=e-l|0;n=d-32|0;if(!l&n>>>0>4294967263|l|(!h&g>>>0>4294967263|h)){break a}m=X[y[k>>2]](a,c,n,(c+d|0)-32|0,32,f,g,i,j)|0;}if(b){y[b>>2]=m?0:d-32|0;y[b+4>>2]=m?0:e-(d>>>0<32)|0;}return m}function Gc(a,b){var c=0,d=0,e=0,f=0;c=T-896|0;T=c;d=c+848|0;cb(d,b);e=c+800|0;cb(e,b+32|0);f=c+320|0;Fc(f,d);b=c+160|0;Fc(b,e);d=c+640|0;qa(d,b);b=c+480|0;sa(b,f,d);d=c+600|0;ga(c,b,d);e=c+520|0;f=c+560|0;ga(c+40|0,e,f);ga(c+80|0,f,d);ga(c+120|0,b,e);xb(a,c);T=c+896|0;}function lg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;h=0|h;c=-1;e=e|l;if(!f&e>>>0>=16|f){c=Pd(a,d,e-16|0,f-(e>>>0<16)|0,(d+e|0)-16|0,g,h,i,j,k);}if(b){y[b>>2]=c?0:e-16|0;y[b+4>>2]=c?0:f-(e>>>0<16)|0;}return c|0}function jg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;h=0|h;c=-1;e=e|l;if(!f&e>>>0>=16|f){c=Od(a,d,e-16|0,f-(e>>>0<16)|0,(d+e|0)-16|0,g,h,i,j,k);}if(b){y[b>>2]=c?0:e-16|0;y[b+4>>2]=c?0:f-(e>>>0<16)|0;}return c|0}function fg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;h=0|h;c=-1;e=e|l;if(!f&e>>>0>=16|f){c=yd(a,d,e-16|0,f-(e>>>0<16)|0,(d+e|0)-16|0,g,h,i,j,k);}if(b){y[b>>2]=c?0:e-16|0;y[b+4>>2]=c?0:f-(e>>>0<16)|0;}return c|0}function qg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;i=0;g=i|g;a:{d=d|i;if(!e&d>>>0<4294967280){Sd(a,a+d|0,0,c,d,e,f,g,h,j,k);if(b){a=d+16|0;e=a>>>0<16?e+1|0:e;y[b>>2]=a;y[b+4>>2]=e;}break a}na();s();}return 0}function ng(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;i=0;g=i|g;a:{d=d|i;if(!e&d>>>0<4294967280){Qd(a,a+d|0,0,c,d,e,f,g,h,j,k);if(b){a=d+16|0;e=a>>>0<16?e+1|0:e;y[b>>2]=a;y[b+4>>2]=e;}break a}na();s();}return 0}function hg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;i=0;g=i|g;a:{d=d|i;if(!e&d>>>0<4294967280){zd(a,a+d|0,0,c,d,e,f,g,h,j,k);if(b){a=d+16|0;e=a>>>0<16?e+1|0:e;y[b>>2]=a;y[b+4>>2]=e;}break a}na();s();}return 0}function hf(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,i=0;g=T;i=g;h=g-448&-64;T=h;g=-1;if(!d&c>>>0>=48|d){g=h- -64|0;Ja(g,0,0,24);oa(g,b,32,0);oa(g,e,32,0);e=h+32|0;Ia(g,e,24);g=_d(a,b+32|0,c-32|0,d-(c>>>0<32)|0,e,b,f);}T=i;return g|0}function Uf(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,i=0;g=T;i=g;h=g-448&-64;T=h;g=-1;if(!d&c>>>0>=48|d){g=h- -64|0;Ja(g,0,0,24);oa(g,b,32,0);oa(g,e,32,0);e=h+32|0;Ia(g,e,24);g=Ad(a,b+32|0,c-32|0,d-(c>>>0<32)|0,e,b,f);}T=i;return g|0}function ai(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=T-800|0;T=d;f=-1;e=d+640|0;a:{if(ab(e,b)){break a}if(!zb(e)){break a}b=d+480|0;if(ab(b,c)){break a}if(!zb(b)){break a}qa(d,b);b=d+160|0;sa(b,e,d);c=d+320|0;Ib(c,b);Wa(a,c);f=0;}T=d+800|0;return f|0}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=T-800|0;T=d;f=-1;e=d+640|0;a:{if(ab(e,b)){break a}if(!zb(e)){break a}b=d+480|0;if(ab(b,c)){break a}if(!zb(b)){break a}qa(d,b);b=d+160|0;Hb(b,e,d);c=d+320|0;Ib(c,b);Wa(a,c);f=0;}T=d+800|0;return f|0}function Ke(a){var b=0,c=0,d=0,e=0,f=0;b=1;while(1){d=b;b=a+e|0;c=d+z[b|0]|0;w[b|0]=c;c=z[b+1|0]+(c>>>8|0)|0;w[b+1|0]=c;c=z[b+2|0]+(c>>>8|0)|0;w[b+2|0]=c;d=b;b=z[b+3|0]+(c>>>8|0)|0;w[d+3|0]=b;b=b>>>8|0;e=e+4|0;f=f+4|0;if((f|0)!=4){continue}break}}function ke(a,b,c,d,e,f,g){var h=0;h=T-16|0;T=h;o(a,0,128);a:{if(!(!(d|f)&g>>>0<2147483649)){y[10172]=22;a=-1;break a}if(!((!f&e>>>0>=3|(f|0)!=0)&g>>>0>8191)){y[10172]=28;a=-1;break a}za(h,16);a=ne(e,g>>>10|0,b,c,h,a,1)?-1:0;}T=h+16|0;return a}function Rd(a,b){var c=0;a:{if(!(b&4)){break a}b=y[a>>2];if(b){ja(y[b+4>>2],y[a+16>>2]<<10);}b=y[a+4>>2];if(!b){break a}ja(b,y[a+20>>2]<<3);}ta(y[a+4>>2]);y[a+4>>2]=0;b=y[a>>2];b:{if(!b){break b}c=y[b>>2];if(!c){break b}ta(c);}ta(b);y[a>>2]=0;}function of(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;j=d;d=e;i=T+-64|0;T=i;a:{if(Ea(i+32|0,h,g)){e=-1;break a}e=-1;if(Aa(i,39680,i+32|0,0));e=Bb(a,b,c,j,d,f,i);ja(i,32);}T=i- -64|0;return e|0}function lf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;j=d;d=e;i=T+-64|0;T=i;a:{if(Ea(i+32|0,h,g)){e=-1;break a}e=-1;if(Aa(i,39680,i+32|0,0));e=Rb(a,b,c,j,d,f,i);ja(i,32);}T=i- -64|0;return e|0}function Vc(a,b,c,d,e,f,g,h,i,j,k){a:{if(!(!e&d>>>0>4294967263|(e|0)!=0|(!h&g>>>0>=4294967264|(h|0)!=0))){a=X[y[k>>2]](a,a+d|0,32,c,d,f,g,i,j)|0;if(b){c=d+32|0;d=c>>>0<32?e+1|0:e;y[b>>2]=a?0:c;y[b+4>>2]=a?0:d;}break a}na();s();}return a}function pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a:{d=T-16|0;T=d;if(!c){if(b|c){while(1){w[d+15|0]=0;f=a+e|0,g=P(39864,d+15|0,0)|0,w[f|0]=g;e=e+1|0;if((b|0)!=(e|0)){continue}break}}T=d+16|0;break a}Q(1346,1192,198,1092);s();}}function ag(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=T-544|0;T=f;g=f- -64|0;Va(g,e,32);va(g,b,c,d);b=f+480|0;Ca(g,b);c=f+272|0;va(c,b,64,0);Ca(c,f);ja(b,64);b=xd(a,f);c=$a(f,a,64);T=f+544|0;return ((a|0)==(f|0)?-1:b)|c}function cg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=T-272|0;T=f;g=f+32|0;Xa(g,e,32);La(g,b,c,d);b=f+240|0;Ua(g,b);c=f+136|0;La(c,b,32,0);Ua(c,f);ja(b,32);b=kb(a,f);c=$a(f,a,32);T=f+272|0;return ((a|0)==(f|0)?-1:b)|c}function Jc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;b=32;c=1;while(1){d=b-2|0;e=z[d+a|0];f=z[d+2912|0];b=b-1|0;g=z[b+2912|0];h=z[a+b|0];b=(g^h)-1>>8&c;i=e-f>>8&b|(h-g>>8&c|i);c=b&(e^f)-1>>8;b=d;if(b){continue}break}return (i|0)!=0}function be(a,b,c,d,e,f,g){var h=0;h=T-16|0;T=h;o(a,0,128);a:{if(!(!(d|f)&g>>>0<2147483649)){y[10172]=22;a=-1;break a}if(!(!!(e|f)&g>>>0>8191)){y[10172]=28;a=-1;break a}za(h,16);a=ne(e,g>>>10|0,b,c,h,a,2)?-1:0;}T=h+16|0;return a}function Ub(a){a=a|0;var b=0;y[a+32>>2]=0;y[a+36>>2]=0;b=y[9833];y[a>>2]=y[9832];y[a+4>>2]=b;b=y[9835];y[a+8>>2]=y[9834];y[a+12>>2]=b;b=y[9837];y[a+16>>2]=y[9836];y[a+20>>2]=b;b=y[9839];y[a+24>>2]=y[9838];y[a+28>>2]=b;return 0}function _d(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0;h=T+-64|0;T=h;i=-1;j=c>>>0<16;a:{if(j&!d){break a}k=h+32|0;if(Ea(k,g,f)){break a}if(Aa(h,39680,k,0));i=Rb(a,b+16|0,b,c-16|0,d-j|0,e,h);ja(h,32);}T=h- -64|0;return i}function Gf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;c=0|c;e=e|i;a:{b:{switch(h-1|0){case 1:a=be(a,b,c,d,e,f,g);break a;default:na();s();case 0:break b}}a=ke(a,b,c,d,e,f,g);}return a|0}function Ai(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=E(e,f);g=c&65535;h=a&65535;i=E(g,h);f=(i>>>16|0)+E(f,g)|0;e=(f&65535)+E(e,h)|0;W=(E(b,c)+j|0)+E(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function pb(a,b,c){var d=0,e=0;if(!c){return 0}d=z[a|0];if(d){a:{while(1){e=z[b|0];if((e|0)!=(d|0)|!e){break a}c=c-1|0;if(!c){break a}b=b+1|0;d=z[a+1|0];a=a+1|0;if(d){continue}break}d=0;}}else {d=0;}return d-z[b|0]|0}function gb(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=d;i=c+63|0;h=i>>>0<63?h+1|0:h;j=h>>>6|0;h=(h&63)<<26|i>>>6;i=0-h|0;if(!((j+((h|0)!=0)|0)==1&f>>>0>i>>>0|((d|0)==1|d>>>0>1))){return X[y[9965]](a,b,c,d,e,f,g)|0}na();s();}function Xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=T-800|0;T=d;e=-1;f=d+640|0;a:{if(ib(f,b)){break a}b=d+480|0;if(ib(b,c)){break a}qa(d,b);b=d+160|0;sa(b,f,d);c=d+320|0;Ib(c,b);xb(a,c);e=0;}T=d+800|0;return e|0}function Wh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=T-800|0;T=d;e=-1;f=d+640|0;a:{if(ib(f,b)){break a}b=d+480|0;if(ib(b,c)){break a}qa(d,b);b=d+160|0;Hb(b,f,d);c=d+320|0;Ib(c,b);xb(a,c);e=0;}T=d+800|0;return e|0}function td(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=T+-64|0;T=h;a:{if(Ea(h+32|0,g,f)){f=-1;break a}f=-1;if(Sa(h,39760,h+32|0,0));f=Ld(a,b,c,d,e,h);ja(h,32);}T=h- -64|0;return f|0}function sd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=T+-64|0;T=h;a:{if(Ea(h+32|0,g,f)){f=-1;break a}f=-1;if(Sa(h,39760,h+32|0,0));f=Kd(a,b,c,d,e,h);ja(h,32);}T=h- -64|0;return f|0}function $d(a,b,c,d,e,f,g){var h=0;h=T+-64|0;T=h;if(!d&c>>>0<4294967280){a:{if(Ea(h+32|0,g,f)){g=-1;break a}g=-1;if(Aa(h,39680,h+32|0,0));g=Bb(a+16|0,a,b,c,d,e,h);ja(h,32);}T=h- -64|0;return g}na();s();}function Ec(a,b){var c=0,d=0,e=0,f=0,g=0;while(1){d=a+e|0;c=z[d|0]-(z[b+e|0]+c|0)|0;w[d|0]=c;d=e|1;f=d+a|0;c=z[f|0]-(z[b+d|0]+(c>>>8&1)|0)|0;w[f|0]=c;c=c>>>8&1;e=e+2|0;g=g+2|0;if((g|0)!=64){continue}break}}function De(a,b){var c=0,d=0,e=0,f=0,g=0;while(1){d=a+e|0;c=z[b+e|0]+(z[d|0]+c|0)|0;w[d|0]=c;d=e|1;f=d+a|0;c=z[b+d|0]+(z[f|0]+(c>>>8|0)|0)|0;w[f|0]=c;c=c>>>8|0;e=e+2|0;g=g+2|0;if((g|0)!=32){continue}break}}function lb(a){var b=0,c=0,d=0;c=y[9948];a=a+7|0;b=a>>>0<7?1:b;d=a&-8;a=d+c|0;a:{if(!(a>>>0>>0?b+1|0:b)){if(a>>>0<=Y()<<16>>>0){break a}if(S(a|0)|0){break a}}y[10172]=48;return -1}y[9948]=a;return c}function mi(a){a=a|0;var b=0,c=0,d=0;b=T-16|0;T=b;if(a>>>0>=2){c=(0-a>>>0)%(a>>>0)|0;while(1){w[b+15|0]=0;d=P(39864,b+15|0,0)|0;if(c>>>0>d>>>0){continue}break}c=(d>>>0)%(a>>>0)|0;}T=b+16|0;return c|0}function Yf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;i=d;d=e;j=i|0;i=T-32|0;T=i;e=-1;if(!mb(i,g,h)){e=Qb(a,b,c,j,d,f,i);ja(i,32);}T=i+32|0;return e|0}function $f(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;i=d;d=e;j=i|0;i=T-32|0;T=i;e=-1;if(!mb(i,g,h)){e=Ab(a,b,c,j,d,f,i);ja(i,32);}T=i+32|0;return e|0}function za(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=T-16|0;T=c;if(b){while(1){w[c+15|0]=0;e=a+d|0,f=P(39864,c+15|0,0)|0,w[e|0]=f;d=d+1|0;if((d|0)!=(b|0)){continue}break}}T=c+16|0;}function qf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=T-32|0;T=i;Sa(i,e,h,0);h=a;a=0;a=sb(h,b,a|c,d,e+16|0,a|f,g,i);ja(i,32);T=i+32|0;return a|0}function dg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-240|0;T=f;Xa(f,e,32);La(f,b,c,d);b=f+208|0;Ua(f,b);c=f+104|0;La(c,b,32,0);Ua(c,a);ja(b,32);T=f+240|0;return 0}function bg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-480|0;T=f;Va(f,e,32);va(f,b,c,d);b=f+416|0;Ca(f,b);c=f+208|0;va(c,b,64,0);Ca(c,a);ja(b,64);T=f+480|0;return 0}function Ad(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=T-32|0;T=h;i=-1;j=c>>>0<16;a:{if(j&!d){break a}if(mb(h,f,g)){break a}i=Qb(a,b+16|0,b,c-16|0,d-j|0,e,h);ja(h,32);}T=h+32|0;return i}function We(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=T-32|0;T=i;Aa(i,e,h,0);h=a;a=0;a=hb(h,b,a|c,d,e+16|0,a|f,g,i);T=i+32|0;return a|0}function Wa(a,b){var c=0,d=0,e=0;c=T-176|0;T=c;d=c+96|0;bb(d,b+80|0);e=c+48|0;ga(e,b,d);ga(c,b+40|0,d);pa(a,c);pa(c+144|0,e);w[a+31|0]=z[a+31|0]^z[c+144|0]<<7;T=c+176|0;}function Fd(a,b,c,d,e,f,g,h,i,j){var k=0,l=0,m=0,n=0,o=0,p=0;k=T-16|0;T=k;m=-1;l=k+4|0;if(!mc(l)){m=(n=-1,o=Id(l,a,b,c,d,e,f,g,h,i,j),p=Ob(l),p?n:o);}T=k+16|0;return m}function Uc(a,b,c,d,e,f,g,h,i,j,k,l){if(c){y[c>>2]=32;y[c+4>>2]=0;}if(!(!i&h>>>0<4294967264&(!f&e>>>0<=4294967263))){na();s();}return X[y[l>>2]](a,b,32,d,e,g,h,j,k)|0}function bi(a){a=a|0;var b=0,c=0;b=T-160|0;T=b;a:{if(!dc(a)){break a}if(yb(a)){break a}if(ab(b,a)){break a}if(!zb(b)){break a}c=(ec(b)|0)!=0;}T=b+160|0;return c|0}function Pf(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;l=a;a=0;return le(l,a|b,c,d,a|e,f,g,a|h,i,j,k)|0}function Kf(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;l=a;a=0;return ce(l,a|b,c,d,a|e,f,g,a|h,i,j,k)|0}function Ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:{if(!pb(a,1564,10)){a=ae(a,b,c,d);break a}if(!pb(a,1554,9)){a=je(a,b,c,d);break a}y[10172]=28;a=-1;}return a|0}function Ef(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:{if(!pb(a,1564,10)){a=ge(a,b,c,d);break a}if(!pb(a,1554,9)){a=ie(a,b,c,d);break a}y[10172]=28;a=-1;}return a|0}function Bd(a,b,c,d,e,f,g){var h=0,i=0;h=T-32|0;T=h;if(!d&c>>>0<4294967280){i=-1;if(!mb(h,f,g)){i=Ab(a+16|0,a,b,c,d,e,h);ja(h,32);}T=h+32|0;return i}na();s();}function rg(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;j=a;a=0;return Sd(j,b,c,d,a|e,f,g,a|h,i,k,l)|0}function pg(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;j=a;a=0;return Qd(j,b,c,d,a|e,f,g,a|h,i,k,l)|0}function ig(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;j=a;a=0;return zd(j,b,c,d,a|e,f,g,a|h,i,k,l)|0}function yg(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;k=k|0;l=l|0;return Uc(a,b,c,d,e,f,g,h,i,k,l,39832)|0}function ug(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;k=k|0;l=l|0;return Uc(a,b,c,d,e,f,g,h,i,k,l,39840)|0}function mg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;b=a;a=0;return Pd(b,c,a|d,e,f,g,a|h,i,j,k)|0}function kg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;b=a;a=0;return Od(b,c,a|d,e,f,g,a|h,i,j,k)|0}function gg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;b=a;a=0;return yd(b,c,a|d,e,f,g,a|h,i,j,k)|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;if(!d&c>>>0>=16|d){a=Qb(a,b+16|0,b,c-16|0,d-(c>>>0<16)|0,e,f);}else {a=-1;}return a|0}function Yc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!d&c>>>0>=16|d){a=Rb(a,b+16|0,b,c-16|0,d-(c>>>0<16)|0,e,f);}else {a=-1;}return a|0}function Ve(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;g=T-32|0;T=g;Aa(g,e,f,0);a=hb(a,b,c,d,e+16|0,0,0,g);T=g+32|0;return a|0}function zg(a,b,c,d,e,f,g,h,i,j,k){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;k=k|0;return Vc(a,b,c,d,e,f,g,h,j,k,39832)|0}function xg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Tc(a,b,d,e,f,g,h,i,j,k,39836)|0}function wg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Sc(a,c,d,e,f,g,h,i,j,k,39836)|0}function vg(a,b,c,d,e,f,g,h,i,j,k){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;k=k|0;return Vc(a,b,c,d,e,f,g,h,j,k,39840)|0}function tg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Tc(a,b,d,e,f,g,h,i,j,k,39844)|0}function sg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Sc(a,c,d,e,f,g,h,i,j,k,39844)|0}function Sc(a,b,c,d,e,f,g,h,i,j,k){if(!d&c>>>0>4294967263|d|(!h&g>>>0>4294967263|h)){a=-1;}else {a=X[y[k>>2]](a,b,c,e,32,f,g,i,j)|0;}return a}function yh(a,b){a=a|0;b=b|0;var c=0;if((b&-7)!=1){na();s();}c=a;a=(a>>>0)/3|0;c=c+E(a,-3)|0;return ((c&3?b&2?c+1|0:4:0)+(a<<2)|0)+1|0}function fi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-416|0;T=f;Va(f,b,c);Na(f,d,e,0);Ya(f,a);ja(f,4);T=f+416|0;return 0}function Dh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-208|0;T=f;Xa(f,b,c);Ka(f,d,e,0);qb(f,a);ja(f,4);T=f+208|0;return 0}function nf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!d&c>>>0>=4294967280|d){na();s();}return Bb(a+16|0,a,b,c,d,e,f)|0}function bf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!d&c>>>0>=4294967280|d){na();s();}Bb(a+16|0,a,b,c,d,e,f);return 0}function _f(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!d&c>>>0>=4294967280|d){na();s();}return Ab(a+16|0,a,b,c,d,e,f)|0}function Df(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!d&c>>>0>=4294967280|d){na();s();}Ab(a+16|0,a,b,c,d,e,f);return 0}function Xe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-32|0;T=f;Aa(f,d,e,0);a=Fb(a,b,c,d+16|0,f);T=f+32|0;return a|0}function yf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=a;a=0;return hb(i,b,a|c,d,e,a|f,g,h)|0}function sf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=a;a=0;return sb(i,b,a|c,d,e,a|f,g,h)|0}function gf(a,b,c,d,e,f,g,h,i,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;i=i|0;j=j|0;return Fd(a,b,c,d,e,f,g,h,i,j)|0}function rh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T-32|0;T=d;e=-1;if(!Ea(d,c,b)){e=Aa(a,39680,d,0);}T=d+32|0;return e|0}function mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T-32|0;T=d;e=-1;if(!Ea(d,c,b)){e=Sa(a,39760,d,0);}T=d+32|0;return e|0}function Ya(a,b){a=a|0;b=b|0;var c=0;c=T+-64|0;T=c;Ca(a,c);a=a+208|0;va(a,c,64,0);Ca(a,b);ja(c,64);T=c- -64|0;return 0}function Ud(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=T+-64|0;T=e;Ca(a,e);a=qc(b,c,e,64,0,d,1);T=e- -64|0;return a|0}function Ib(a,b){var c=0,d=0,e=0;c=b+120|0;ga(a,b,c);d=b+40|0;e=b+80|0;ga(a+40|0,d,e);ga(a+80|0,e,c);ga(a+120|0,b,d);}function qb(a,b){a=a|0;b=b|0;var c=0;c=T-32|0;T=c;Ua(a,c);a=a+104|0;La(a,c,32,0);Ua(a,b);ja(c,32);T=c+32|0;return 0}function hd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=a;a=0;return be(h,b,a|c,d,a|e,f,g)|0}function Tf(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return qe(a,b,c,d,e,f,g,h,i)|0}function Of(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=a;a=0;return ke(h,b,a|c,d,a|e,f,g)|0}function rc(a,b,c,d,e,f){var g=0;g=T-32|0;T=g;Sa(g,e,f,0);a=sb(a,b,c,d,e+16|0,0,0,g);ja(g,32);T=g+32|0;return a}function ye(a){a=a|0;while(1){za(a,32);w[a+31|0]=z[a+31|0]&31;if(!Jc(a)){continue}if(ya(a,32)){continue}break}}function Td(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=T+-64|0;T=d;Ca(a,d);a=pc(b,d,64,0,c,1);T=d- -64|0;return a|0}function ki(){var a=0,b=0;a=y[10307];a:{if(!a){break a}a=y[a+20>>2];if(!a){break a}b=X[a|0]()|0;}return b|0}function Zd(a,b,c,d,e){var f=0;f=T-32|0;T=f;Sa(f,d,e,0);a=ac(a,b,c,d+16|0,f);ja(f,32);T=f+32|0;return a}function Ia(a,b,c){a=a|0;b=b|0;c=c|0;if(c>>>0>=256){Q(1366,1279,107,1123);s();}return Cc(a,b,c)|0}function vf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return gb(a,b,c,d,e,f,g)|0}function rd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ab(a,b,c,d,e,f,g)|0}function qd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Qb(a,b,c,d,e,f,g)|0}function od(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Wb(a,b,c,d,e,f,g)|0}function mf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return $d(a,b,c,d,e,f,g)|0}function kf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return _d(a,b,c,d,e,f,g)|0}function hb(a,b,c,d,e,f,g,h){if((d|0)==1|d>>>0>1){na();s();}return X[y[9964]](a,b,c,d,e,f,g,h)|0}function _c(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Rb(a,b,c,d,e,f,g)|0}function Zf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Bd(a,b,c,d,e,f,g)|0}function Xf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ad(a,b,c,d,e,f,g)|0}function $c(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Bb(a,b,c,d,e,f,g)|0}function ni(){var a=0,b=0;a=T-16|0;T=a;w[a+15|0]=0;b=P(39864,a+15|0,0)|0;T=a+16|0;return b|0}function Zb(a,b,c,d,e,f){if((d|0)==1|d>>>0>1){na();s();}return X[y[9964]](a,b,c,d,e,0,0,f)|0}function Di(a,b){var c=0,d=0;c=b&31;d=(-1<>>c|0;c=a;a=0-b&31;return d|(c&-1>>>a)<>>0>1){na();s();}return X[y[9965]](a,b,c,d,e,0,f)|0}function ti(){var a=0;if(y[10305]){a=1;}else {Ae();za(41200,16);y[10305]=1;a=0;}return a|0}function dd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;qc(a,b,c,d,e,f,0);return 0}function Ob(a){var b=0;b=y[a>>2];if(b){ta(b);}y[a>>2]=0;y[a+4>>2]=0;y[a+8>>2]=0;return 0}function Bi(a,b){var c=0,d=0;c=b&31;d=(-1>>>c&a)<>>a}function xf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Zb(a,b,c,d,e,f)|0}function uf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Yb(a,b,c,d,e,f)|0}function rf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Gb(a,b,c,d,e,f)|0}function ad(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rc(a,b,c,d,e,f)|0}function Lb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ld(a,b,c,d,e,f)|0}function Kb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Kd(a,b,c,d,e,f)|0}function _a(a,b,c,d,e){if((c|0)==1|c>>>0>1){na();s();}return X[y[9963]](a,b,c,d,e)|0}function Fb(a,b,c,d,e){if((c|0)==1|c>>>0>1){na();s();}return X[y[9962]](a,b,c,d,e)|0}function Be(a,b,c,d,e,f){if((d|0)==1|d>>>0>1){na();s();}X[y[9965]](a,b,c,d,e,1,f)|0;}function cd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return pc(a,b,c,d,e,0)|0}function zf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Fb(a,b,c,d,e)|0}function wf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return _a(a,b,c,d,e)|0}function tf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return ac(a,b,c,d,e)|0}function kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Zc(a,b,c,d,e)|0}function jd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Jb(a,b,c,d,e)|0}function bd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Zd(a,b,c,d,e)|0}function Ae(){var a=0;a=T-16|0;T=a;w[a+15|0]=0;P(39900,a+15|0,0)|0;T=a+16|0;}function Yh(a){a=a|0;var b=0;b=T-160|0;T=b;a=ib(b,a);T=b+160|0;return !a|0}function Gg(a,b,c){a=a|0;b=b|0;c=c|0;Wb(b,32,c,32,0,0,0);return wb(a,b)|0}function Uh(a){a=a|0;var b=0;b=T+-64|0;T=b;za(b,64);Gc(a,b);T=b- -64|0;}function vb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;bc(a,b,c,d,20);return 0}function ub(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;bc(a,b,c,d,12);return 0}function tb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;bc(a,b,c,d,8);return 0}function Zh(a){a=a|0;var b=0;b=T-32|0;T=b;za(b,32);Hc(a,b);T=b+32|0;}function ud(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Na(a,b,c,d)|0}function sb(a,b,c,d,e,f,g,h){return X[y[9957]](a,b,c,d,e,f,g,h)|0}function nd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return oa(a,b,c,d)|0}function md(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return rb(a,b,c,d)|0}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return la(a,b,c,d)|0}function ic(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return va(a,b,c,d)|0}function hh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ud(a,b,c,d)|0}function fh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ja(a,b,c,d)|0}function eg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ka(a,b,c,d)|0}function Sf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return La(a,b,c,d)|0}function Nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return je(a,b,c,d)|0}function Mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ie(a,b,c,d)|0}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ge(a,b,c,d)|0}function Jf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ae(a,b,c,d)|0}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;kc(a,b,c,d);return 0}function Gb(a,b,c,d,e,f){return X[y[9957]](a,b,c,d,e,0,0,f)|0}function mc(a){y[a>>2]=0;y[a+4>>2]=0;y[a+8>>2]=0;return 0}function hi(a,b,c){a=a|0;b=b|0;c=c|0;return Na(a,b,c,0)|0}function Xg(a,b,c){a=a|0;b=b|0;c=c|0;return Dd(a,b,c,1)|0}function Wg(a,b,c){a=a|0;b=b|0;c=c|0;return Dd(a,b,c,0)|0}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;return Ka(a,b,c,0)|0}function na(){var a=0;a=y[10306];if(a){X[a|0]();}Ic();s();}function ze(a,b,c){a=a|0;b=b|0;c=c|0;return Va(a,b,c)|0}function kh(a,b,c){a=a|0;b=b|0;c=c|0;return Yd(a,b,c)|0}function gh(a,b,c){a=a|0;b=b|0;c=c|0;return Td(a,b,c)|0}function eh(a,b,c){a=a|0;b=b|0;c=c|0;return Ia(a,b,c)|0}function ch(a,b,c){a=a|0;b=b|0;c=c|0;return tc(a,b,c)|0}function ah(a,b,c){a=a|0;b=b|0;c=c|0;return mb(a,b,c)|0}function Hg(a,b,c){a=a|0;b=b|0;c=c|0;return Ea(a,b,c)|0}function Gh(a,b,c){a=a|0;b=b|0;c=c|0;return Xa(a,b,c)|0}function nb(a,b){a=a|0;b=b|0;za(b,32);return wb(a,b)|0}function li(a,b,c){a=a|0;b=b|0;c=c|0;_a(a,b,0,38432,c);}function wb(a,b){a=a|0;b=b|0;return X[y[9955]](a,b)|0}function gi(a,b){a=a|0;b=b|0;Ya(a,b);ja(a,4);return 0}function ac(a,b,c,d,e){return X[y[9956]](a,b,c,d,e)|0}function Zc(a,b,c,d,e){return X[y[9949]](a,b,c,d,e)|0}function Jb(a,b,c,d,e){return X[y[9950]](a,b,c,d,e)|0}function Ga(a,b){a=a|0;b=b|0;return X[y[9951]](a,b)|0}function Fa(a,b){a=a|0;b=b|0;return X[y[9953]](a,b)|0}function Eh(a,b){a=a|0;b=b|0;qb(a,b);ja(a,4);return 0}function zi(a){if(a){return 31-H(a-1^a)|0}return 32}function la(a,b,c,d){return X[y[9952]](a,b,c,d)|0}function xd(a,b){a=a|0;b=b|0;return Wc(a,b,64)|0}function kb(a,b){a=a|0;b=b|0;return Wc(a,b,32)|0}function Vg(a,b){a=a|0;b=b|0;return Cd(a,b,1)|0}function Ug(a,b){a=a|0;b=b|0;return Cd(a,b,0)|0}function re(a,b,c){a=a|0;b=b|0;c=c|0;ha(a,b,c);}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;ue(a,b,c);}function Oh(a,b,c){a=a|0;b=b|0;c=c|0;se(a,b,c);}function jh(a,b){a=a|0;b=b|0;return Xd(a,b)|0}function bh(a,b){a=a|0;b=b|0;return nb(a,b)|0}function _h(a,b){a=a|0;b=b|0;Hc(a,b);return 0}function Vh(a,b){a=a|0;b=b|0;Gc(a,b);return 0}function Sh(a,b){a=a|0;b=b|0;return xe(a,b)|0}function Sg(a,b){a=a|0;b=b|0;return Ga(a,b)|0}function Rg(a,b){a=a|0;b=b|0;return Fa(a,b)|0}function Ig(a,b){a=a|0;b=b|0;return wb(a,b)|0}function Af(a,b){a=a|0;b=b|0;jc(a,b);return 0}function je(a,b,c,d){return Xc(a,b,c,d,1)}function ie(a,b,c,d){return he(a,b,c,d,1)}function ge(a,b,c,d){return he(a,b,c,d,2)}function ae(a,b,c,d){return Xc(a,b,c,d,2)}function Na(a,b,c,d){va(a,b,c,d);return 0}function Ka(a,b,c,d){La(a,b,c,d);return 0}function Rh(a,b){a=a|0;b=b|0;we(a,b);}function Qh(a,b){a=a|0;b=b|0;ve(a,b);}function Nh(a,b){a=a|0;b=b|0;te(a,b);}function ih(a){a=a|0;return Vd(a)|0}function Vd(a){a=a|0;Za(a);return 0}function ja(a,b){if(b){o(a,0,b);}}function wc(){return -2147483648}function uc(){return 1073741824}function uh(){return 134217728}function th(){return 536870912}function de(){return 268435456}function ra(a){a=a|0;za(a,32);}function me(){return 33554432}function ei(a){a=a|0;za(a,64);}function ee(){return 67108864}function Je(a){a=a|0;za(a,16);}function Ed(){return 16777216}function Yg(){return 524288}function ci(){return 16320}function Zg(){return 32768}function Th(a){a=a|0;ye(a);}function xc(){return 8192}function wh(){return 1554}function sh(){return 1156}function qh(){return 1538}function oi(){return 1089}function lh(){return 1454}function fe(){return 1564}function dh(){return 1476}function _g(){return 1575}function Tg(){return 1521}function Qg(){return 1494}function Nd(){return 1338}function Mg(){return 1486}function Lg(){return 1531}function Kg(){return 1462}function Jg(){return 1443}function Dg(){return 1332}function Cg(){return 1547}function Bh(){return 8160}function yc(){return 128}function pe(){return 384}function Rc(){return 256}function Dc(){return 416}function Cb(){return 208}function Ag(){return 104}function $g(){return 102}function ua(){return 64}function ma(){return 16}function ka(){return 32}function Wd(){return -65}function Ta(){return -17}function Md(){return 48}function Ma(){return 24}function Le(){return -33}function Jh(){return 52}function Ih(){return 17}function Hh(){return -18}function Ce(){return 12}function Bg(){return 26}function wa(){return -1}function vh(){return 6}function vc(){return 4}function fb(){return 2}function Vb(){return 3}function Oa(){return 8}function Db(){return 1}function Ba(){return 0}function Ic(){R();s();}function yi(){} +// EMSCRIPTEN_END_FUNCS +a=z;m();var X=[null,og,Vf,Qf,If,Af,Ue,Te,Se,Re,xi,wi,vi,ui,si,ri,qi,pi];function Y(){return v.byteLength/65536|0}function ba(ca){ca=ca|0;var Z=Y()|0;var _=Z+ca|0;if(Z<_&&_<65536){var $=new ArrayBuffer(E(_,65536));var aa=new Int8Array($);aa.set(w);w=new Int8Array($);x=new Int16Array($);y=new Int32Array($);z=new Uint8Array($);A=new Uint16Array($);B=new Uint32Array($);v=$;a=z;}return Z}return {e:Object.create(Object.prototype,{grow:{value:ba},buffer:{get:function(){return v}}}),f:yi,g:ma,h:Ba,i:ma,j:ka,k:Le,l:Je,m:zg,n:yg,o:xg,p:wg,q:ka,r:Ba,s:ka,t:ka,u:Le,v:ra,w:vg,x:ug,y:tg,z:sg,A:Ba,B:rg,C:qg,D:pg,E:ng,F:mg,G:lg,H:kg,I:jg,J:ka,K:Ce,L:Ba,M:ma,N:Ta,O:ra,P:ka,Q:Oa,R:Ba,S:ma,T:Ta,U:ra,V:ig,W:hg,X:gg,Y:fg,Z:ka,_:Ma,$:Ba,aa:ma,ba:Ta,ca:ra,da:ka,ea:ka,fa:Kg,ga:wd,ha:vd,ia:ra,ja:ka,ka,la:Cb,ma:ra,na:Xa,oa:eg,pa:qb,qa:dg,ra:cg,sa:ua,ta:ka,ua:Dc,va:ra,wa:Va,xa:ud,ya:Ya,za:bg,Aa:ag,Ba:ka,Ca:ka,Da:Dc,Ea:ra,Fa:ze,Ga:ud,Ha:Ng,Ia:wd,Ja:vd,Ka:ka,La:ka,Ma:ka,Na:ka,Oa:Ma,Pa:ka,Qa:ma,Ra:ma,Sa:Ta,Ta:dh,Ua:ch,Va:bh,Wa:ah,Xa:Lb,Ya:Kb,Za:td,_a:sd,$a:rd,ab:$f,bb:_f,cb:Zf,db:qd,eb:Yf,fb:pd,gb:Xf,hb:Wf,ib:Uf,jb:Md,kb:tc,lb:nb,mb,nb:Lb,ob:Kb,pb:td,qb:sd,rb:ka,sb:ka,tb:ka,ub:ka,vb:Ma,wb:ka,xb:ma,yb:ma,zb:Ta,Ab:Aa,Bb:ka,Cb:ma,Db:ka,Eb:ma,Fb:Sa,Gb:ka,Hb:ma,Ib:ka,Jb:ma,Kb:vb,Lb:ua,Mb:ma,Nb:ka,Ob:ma,Pb:ub,Qb:ua,Rb:ma,Sb:ka,Tb:ma,Ub:tb,Vb:ua,Wb:ma,Xb:ka,Yb:ma,Zb:ma,_b:ua,$b:ka,ac:ma,bc:ua,cc:ka,dc:Nd,ec:pe,fc:od,gc:fh,hc:nd,ic:eh,jc:ra,kc:ma,lc:ua,mc:ka,nc:ma,oc:ua,pc:ka,qc:ma,rc:ma,sc:pe,tc:ra,uc:od,vc:Tf,wc:Ja,xc:xh,yc:nd,zc:Ia,Ac:ua,Bc:md,Cc:Lg,Dc:ka,Ec:Ag,Fc:Ub,Gc:Sf,Hc:Ua,Ic:Rf,Jc:ua,Kc:Cb,Lc:Za,Mc:ic,Nc:Ca,Oc:md,Pc:ma,Qc:ua,Rc:Oa,Sc:ka,Tc:ld,Uc:Nd,Vc:ma,Wc:ua,Xc:Oa,Yc:ka,Zc:ld,_c:ra,$c:Gh,ad:Fh,bd:Eh,cd:Dh,dd:ra,ed:Ch,fd:ka,gd:Ba,hd:Bh,id:Cb,jd:ze,kd:hi,ld:gi,md:fi,nd:ei,od:di,pd:ua,qd:Ba,rd:ci,sd:Dc,td:Gg,ud:nb,vd:Fg,wd:Eg,xd:ka,yd:ka,zd:ka,Ad:ka,Bd:Dg,Cd:Rc,Dd:ma,Ed:ka,Fd:kd,Gd:jd,Hd:Sg,Id:id,Jd:Rg,Kd:Qg,Ld:ra,Md:kd,Nd:jd,Od:Ga,Pd:id,Qd:Fa,Rd:ma,Sd:ka,Td:Rc,Ud:ra,Vd:Db,Wd:ma,Xd:wa,Yd:Ba,Zd:wa,_d:ma,$d:yc,ae:wh,be:Vb,ce:wa,de:xc,ee:wc,fe:vc,ge:me,he:vh,ie:uh,je:Oa,ke:th,le:Pf,me:Of,ne:Nf,oe:Mf,pe:Lf,qe:fb,re:ma,se:wa,te:Ba,ue:wa,ve:ma,we:yc,xe:fe,ye:Db,ze:wa,Ae:xc,Be:wc,Ce:fb,De:ee,Ee:Vb,Fe:de,Ge:vc,He:uc,Ie:Kf,Je:hd,Ke:Jf,Le:Db,Me:fb,Ne:fb,Oe:ma,Pe:wa,Qe:Ba,Re:wa,Se:ma,Te:yc,Ue:fe,Ve:Db,We:wa,Xe:xc,Ye:wc,Ze:fb,_e:ee,$e:Vb,af:de,bf:vc,cf:uc,df:Hf,ef:hd,ff:Gf,gf:Ff,hf:Ef,jf:sh,kf:Jg,lf:Ig,mf:Hg,nf:ka,of:ka,pf:Ea,qf:wb,rf:ka,sf:ka,tf:ka,uf:Ma,vf:ka,wf:ma,xf:ma,yf:Ta,zf:Mg,Af:Lb,Bf:Kb,Cf:ra,Df:rd,Ef:Df,Ff:qd,Gf:pd,Hf:Lb,If:Kb,Jf:ka,Kf:Ma,Lf:ka,Mf:ma,Nf:ma,Of:Ta,Pf:ra,Qf:ra,Rf:Mh,Sf:Lh,Tf:Kh,Uf:Cf,Vf:Bf,Wf:Jh,Xf:Ih,Yf:Ma,Zf:ka,_f:Hh,$f:Ba,ag:Db,bg:fb,cg:Vb,dg:Oa,eg:ma,fg:Tg,gg:gd,hg:Je,ig:Oa,jg:ma,kg:gd,lg:Cb,mg:ua,ng:ka,og:ka,pg:ua,qg:Wd,rg:lh,sg:kh,tg:jh,ug:fd,vg:ed,wg:dd,xg:cd,yg:ih,zg:ic,Ag:hh,Bg:gh,Cg:Cb,Dg:ua,Eg:ka,Fg:ka,Gg:ua,Hg:Wd,Ig:nh,Jg:mh,Kg:Vd,Lg:ic,Mg:Ud,Ng:Td,Og:Yd,Pg:Xd,Qg:ph,Rg:oh,Sg:cd,Tg:ed,Ug:dd,Vg:fd,Wg:ka,Xg:Oa,Yg:wa,Zg:ka,_g:Ce,$g:wa,ah:zf,bh:yf,ch:xf,dh:wf,eh:vf,fh:uf,gh:ra,hh:ra,ih:ka,jh:Ma,kh:wa,lh:qh,mh:bd,nh:ad,oh:ra,ph:ka,qh:Oa,rh:wa,sh:tf,th:sf,uh:rf,vh:ra,wh:bd,xh:qf,yh:ad,zh:ka,Ah:Ma,Bh:wa,Ch:ra,Dh:ma,Eh:ka,Fh:ua,Gh:db,Hh:kb,Ih:xd,Jh:oi,Kh:ni,Lh:Ae,Mh:mi,Nh:za,Oh:li,Ph:ka,Qh:ki,Rh:pf,Sh:Ah,Th:zh,Uh:yh,Vh:Bc,Wh:Ac,Xh:ti,Yh:ji,Zh:ii,_h:Cg,$h:Bg,ai:fb,bi:Ba,ci:tc,di:nb,ei:rh,fi:$c,gi:of,hi:nf,ii:mf,ji:_c,ki:lf,li:Yc,mi:kf,ni:ka,oi:ka,pi:ka,qi:ka,ri:Ma,si:ma,ti:Ta,ui:jf,vi:hf,wi:Md,xi:bi,yi:ai,zi:$h,Ai:_h,Bi:Zh,Ci:ye,Di:xe,Ei:we,Fi:ve,Gi:ue,Hi:te,Ii:se,Ji:re,Ki:ka,Li:ua,Mi:ka,Ni:ua,Oi:ka,Pi:Yh,Qi:Xh,Ri:Wh,Si:Vh,Ti:Uh,Ui:Th,Vi:Sh,Wi:Rh,Xi:Qh,Yi:Ph,Zi:Oh,_i:re,$i:Nh,aj:ka,bj:ua,cj:ua,dj:ka,ej:gf,fj:ma,gj:wa,hj:Ba,ij:wa,jj:ka,kj:$g,lj:_g,mj:Zg,nj:wa,oj:Ed,pj:wa,qj:Yg,rj:Ed,sj:me,tj:uc,uj:ff,vj:ef,wj:df,xj:cf,yj:Xg,zj:Wg,Aj:Vg,Bj:Ug,Cj:ka,Dj:ka,Ej:Pg,Fj:Og,Gj:ka,Hj:ka,Ij:$c,Jj:bf,Kj:_c,Lj:Yc,Mj:ka,Nj:Ma,Oj:ma,Pj:Ta,Qj:ma,Rj:ma,Sj:af,Tj:$e,Uj:_e,Vj:ka,Wj:Oa,Xj:wa,Yj:ra,Zj:Ze,_j:Ye,$j:ka,ak:Oa,bk:wa,ck:ra,dk:ka,ek:Ma,fk:wa,gk:Xe,hk:We,ik:Ve,jk:ra,kk:Da,lk:ta}}return da(ea)} +// EMSCRIPTEN_END_ASM + + +)(info);},instantiate:function(binary,info){return {then:function(ok){var module=new WebAssembly.Module(binary);ok({instance:new WebAssembly.Instance(module,info)});}}},RuntimeError:Error,isWasm2js:true};{wasmBinary=[];}var ABORT=false;var HEAP8,HEAPU8,HEAP16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift());}}callRuntimeCallbacks(onPreRuns);}function initRuntime(){wasmExports["f"]();}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift());}}callRuntimeCallbacks(onPostRuns);}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(file){}function getWasmBinary(file){}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason);}}async function instantiateAsync(binary,binaryFile,imports){return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();removeRunDependency();return wasmExports}addRunDependency();function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst));});})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports$1=receiveInstantiationResult(result);return exports$1}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module);}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies);};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case "i1":return HEAP8[ptr];case "i8":return HEAP8[ptr];case "i16":return HEAP16[ptr>>1];case "i32":return HEAP32[ptr>>2];case "i64":abort("to do getValue(i64) use WASM_BIGINT");case "float":return HEAPF32[ptr>>2];case "double":return HEAPF64[ptr>>3];case "*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`);}}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case "i1":HEAP8[ptr]=value;break;case "i8":HEAP8[ptr]=value;break;case "i16":HEAP16[ptr>>1]=value;break;case "i32":HEAP32[ptr>>2]=value;break;case "i64":abort("to do setValue(i64) use WASM_BIGINT");case "float":HEAPF32[ptr>>2]=value;break;case "double":HEAPF64[ptr>>3]=value;break;case "*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`);}}var UTF8Decoder=new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{if(!ptr)return "";var end=findStringEnd(HEAPU8,ptr,maxBytesToRead,ignoreNul);return UTF8Decoder.decode(HEAPU8.subarray(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);var __abort_js=()=>abort("");var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4;}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};{if(Module["noExitRuntime"])Module["noExitRuntime"];if(Module["print"])Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])Module["arguments"];if(Module["thisProgram"])Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()();}}}Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;var ASM_CONSTS={39864:()=>Module.getRandomValue(),39900:()=>{if(Module.getRandomValue===undefined){try{var window_="object"===typeof window?window:self;var crypto_=typeof window_.crypto!=="undefined"?window_.crypto:window_.msCrypto;crypto_=crypto_===undefined?crypto:crypto_;var randomValuesStandard=function(){var buf=new Uint32Array(1);crypto_.getRandomValues(buf);return buf[0]>>>0};randomValuesStandard();Module.getRandomValue=randomValuesStandard;}catch(e){try{var crypto=null;var randomValueNodeJS=function(){var buf=crypto["randomBytes"](4);return (buf[0]<<24|buf[1]<<16|buf[2]<<8|buf[3])>>>0};randomValueNodeJS();Module.getRandomValue=randomValueNodeJS;}catch(e){throw "No secure random number generator found"}}}}};var wasmMemory;function assignWasmExports(wasmExports){Module["_crypto_aead_aegis128l_keybytes"]=wasmExports["g"];Module["_crypto_aead_aegis128l_nsecbytes"]=wasmExports["h"];Module["_crypto_aead_aegis128l_npubbytes"]=wasmExports["i"];Module["_crypto_aead_aegis128l_abytes"]=wasmExports["j"];Module["_crypto_aead_aegis128l_messagebytes_max"]=wasmExports["k"];Module["_crypto_aead_aegis128l_keygen"]=wasmExports["l"];Module["_crypto_aead_aegis128l_encrypt"]=wasmExports["m"];Module["_crypto_aead_aegis128l_encrypt_detached"]=wasmExports["n"];Module["_crypto_aead_aegis128l_decrypt"]=wasmExports["o"];Module["_crypto_aead_aegis128l_decrypt_detached"]=wasmExports["p"];Module["_crypto_aead_aegis256_keybytes"]=wasmExports["q"];Module["_crypto_aead_aegis256_nsecbytes"]=wasmExports["r"];Module["_crypto_aead_aegis256_npubbytes"]=wasmExports["s"];Module["_crypto_aead_aegis256_abytes"]=wasmExports["t"];Module["_crypto_aead_aegis256_messagebytes_max"]=wasmExports["u"];Module["_crypto_aead_aegis256_keygen"]=wasmExports["v"];Module["_crypto_aead_aegis256_encrypt"]=wasmExports["w"];Module["_crypto_aead_aegis256_encrypt_detached"]=wasmExports["x"];Module["_crypto_aead_aegis256_decrypt"]=wasmExports["y"];Module["_crypto_aead_aegis256_decrypt_detached"]=wasmExports["z"];Module["_crypto_aead_aes256gcm_is_available"]=wasmExports["A"];Module["_crypto_aead_chacha20poly1305_encrypt_detached"]=wasmExports["B"];Module["_crypto_aead_chacha20poly1305_encrypt"]=wasmExports["C"];Module["_crypto_aead_chacha20poly1305_ietf_encrypt_detached"]=wasmExports["D"];Module["_crypto_aead_chacha20poly1305_ietf_encrypt"]=wasmExports["E"];Module["_crypto_aead_chacha20poly1305_decrypt_detached"]=wasmExports["F"];Module["_crypto_aead_chacha20poly1305_decrypt"]=wasmExports["G"];Module["_crypto_aead_chacha20poly1305_ietf_decrypt_detached"]=wasmExports["H"];Module["_crypto_aead_chacha20poly1305_ietf_decrypt"]=wasmExports["I"];Module["_crypto_aead_chacha20poly1305_ietf_keybytes"]=wasmExports["J"];Module["_crypto_aead_chacha20poly1305_ietf_npubbytes"]=wasmExports["K"];Module["_crypto_aead_chacha20poly1305_ietf_nsecbytes"]=wasmExports["L"];Module["_crypto_aead_chacha20poly1305_ietf_abytes"]=wasmExports["M"];Module["_crypto_aead_chacha20poly1305_ietf_messagebytes_max"]=wasmExports["N"];Module["_crypto_aead_chacha20poly1305_ietf_keygen"]=wasmExports["O"];Module["_crypto_aead_chacha20poly1305_keybytes"]=wasmExports["P"];Module["_crypto_aead_chacha20poly1305_npubbytes"]=wasmExports["Q"];Module["_crypto_aead_chacha20poly1305_nsecbytes"]=wasmExports["R"];Module["_crypto_aead_chacha20poly1305_abytes"]=wasmExports["S"];Module["_crypto_aead_chacha20poly1305_messagebytes_max"]=wasmExports["T"];Module["_crypto_aead_chacha20poly1305_keygen"]=wasmExports["U"];Module["_crypto_aead_xchacha20poly1305_ietf_encrypt_detached"]=wasmExports["V"];Module["_crypto_aead_xchacha20poly1305_ietf_encrypt"]=wasmExports["W"];Module["_crypto_aead_xchacha20poly1305_ietf_decrypt_detached"]=wasmExports["X"];Module["_crypto_aead_xchacha20poly1305_ietf_decrypt"]=wasmExports["Y"];Module["_crypto_aead_xchacha20poly1305_ietf_keybytes"]=wasmExports["Z"];Module["_crypto_aead_xchacha20poly1305_ietf_npubbytes"]=wasmExports["_"];Module["_crypto_aead_xchacha20poly1305_ietf_nsecbytes"]=wasmExports["$"];Module["_crypto_aead_xchacha20poly1305_ietf_abytes"]=wasmExports["aa"];Module["_crypto_aead_xchacha20poly1305_ietf_messagebytes_max"]=wasmExports["ba"];Module["_crypto_aead_xchacha20poly1305_ietf_keygen"]=wasmExports["ca"];Module["_crypto_auth_bytes"]=wasmExports["da"];Module["_crypto_auth_keybytes"]=wasmExports["ea"];Module["_crypto_auth_primitive"]=wasmExports["fa"];Module["_crypto_auth"]=wasmExports["ga"];Module["_crypto_auth_verify"]=wasmExports["ha"];Module["_crypto_auth_keygen"]=wasmExports["ia"];Module["_crypto_auth_hmacsha256_bytes"]=wasmExports["ja"];Module["_crypto_auth_hmacsha256_keybytes"]=wasmExports["ka"];Module["_crypto_auth_hmacsha256_statebytes"]=wasmExports["la"];Module["_crypto_auth_hmacsha256_keygen"]=wasmExports["ma"];Module["_crypto_auth_hmacsha256_init"]=wasmExports["na"];Module["_crypto_auth_hmacsha256_update"]=wasmExports["oa"];Module["_crypto_auth_hmacsha256_final"]=wasmExports["pa"];Module["_crypto_auth_hmacsha256"]=wasmExports["qa"];Module["_crypto_auth_hmacsha256_verify"]=wasmExports["ra"];Module["_crypto_auth_hmacsha512_bytes"]=wasmExports["sa"];Module["_crypto_auth_hmacsha512_keybytes"]=wasmExports["ta"];Module["_crypto_auth_hmacsha512_statebytes"]=wasmExports["ua"];Module["_crypto_auth_hmacsha512_keygen"]=wasmExports["va"];Module["_crypto_auth_hmacsha512_init"]=wasmExports["wa"];Module["_crypto_auth_hmacsha512_update"]=wasmExports["xa"];Module["_crypto_auth_hmacsha512_final"]=wasmExports["ya"];Module["_crypto_auth_hmacsha512"]=wasmExports["za"];Module["_crypto_auth_hmacsha512_verify"]=wasmExports["Aa"];Module["_crypto_auth_hmacsha512256_bytes"]=wasmExports["Ba"];Module["_crypto_auth_hmacsha512256_keybytes"]=wasmExports["Ca"];Module["_crypto_auth_hmacsha512256_statebytes"]=wasmExports["Da"];Module["_crypto_auth_hmacsha512256_keygen"]=wasmExports["Ea"];Module["_crypto_auth_hmacsha512256_init"]=wasmExports["Fa"];Module["_crypto_auth_hmacsha512256_update"]=wasmExports["Ga"];Module["_crypto_auth_hmacsha512256_final"]=wasmExports["Ha"];Module["_crypto_auth_hmacsha512256"]=wasmExports["Ia"];Module["_crypto_auth_hmacsha512256_verify"]=wasmExports["Ja"];Module["_crypto_box_seedbytes"]=wasmExports["Ka"];Module["_crypto_box_publickeybytes"]=wasmExports["La"];Module["_crypto_box_secretkeybytes"]=wasmExports["Ma"];Module["_crypto_box_beforenmbytes"]=wasmExports["Na"];Module["_crypto_box_noncebytes"]=wasmExports["Oa"];Module["_crypto_box_zerobytes"]=wasmExports["Pa"];Module["_crypto_box_boxzerobytes"]=wasmExports["Qa"];Module["_crypto_box_macbytes"]=wasmExports["Ra"];Module["_crypto_box_messagebytes_max"]=wasmExports["Sa"];Module["_crypto_box_primitive"]=wasmExports["Ta"];Module["_crypto_box_seed_keypair"]=wasmExports["Ua"];Module["_crypto_box_keypair"]=wasmExports["Va"];Module["_crypto_box_beforenm"]=wasmExports["Wa"];Module["_crypto_box_afternm"]=wasmExports["Xa"];Module["_crypto_box_open_afternm"]=wasmExports["Ya"];Module["_crypto_box"]=wasmExports["Za"];Module["_crypto_box_open"]=wasmExports["_a"];Module["_crypto_box_detached_afternm"]=wasmExports["$a"];Module["_crypto_box_detached"]=wasmExports["ab"];Module["_crypto_box_easy_afternm"]=wasmExports["bb"];Module["_crypto_box_easy"]=wasmExports["cb"];Module["_crypto_box_open_detached_afternm"]=wasmExports["db"];Module["_crypto_box_open_detached"]=wasmExports["eb"];Module["_crypto_box_open_easy_afternm"]=wasmExports["fb"];Module["_crypto_box_open_easy"]=wasmExports["gb"];Module["_crypto_box_seal"]=wasmExports["hb"];Module["_crypto_box_seal_open"]=wasmExports["ib"];Module["_crypto_box_sealbytes"]=wasmExports["jb"];Module["_crypto_box_curve25519xsalsa20poly1305_seed_keypair"]=wasmExports["kb"];Module["_crypto_box_curve25519xsalsa20poly1305_keypair"]=wasmExports["lb"];Module["_crypto_box_curve25519xsalsa20poly1305_beforenm"]=wasmExports["mb"];Module["_crypto_box_curve25519xsalsa20poly1305_afternm"]=wasmExports["nb"];Module["_crypto_box_curve25519xsalsa20poly1305_open_afternm"]=wasmExports["ob"];Module["_crypto_box_curve25519xsalsa20poly1305"]=wasmExports["pb"];Module["_crypto_box_curve25519xsalsa20poly1305_open"]=wasmExports["qb"];Module["_crypto_box_curve25519xsalsa20poly1305_seedbytes"]=wasmExports["rb"];Module["_crypto_box_curve25519xsalsa20poly1305_publickeybytes"]=wasmExports["sb"];Module["_crypto_box_curve25519xsalsa20poly1305_secretkeybytes"]=wasmExports["tb"];Module["_crypto_box_curve25519xsalsa20poly1305_beforenmbytes"]=wasmExports["ub"];Module["_crypto_box_curve25519xsalsa20poly1305_noncebytes"]=wasmExports["vb"];Module["_crypto_box_curve25519xsalsa20poly1305_zerobytes"]=wasmExports["wb"];Module["_crypto_box_curve25519xsalsa20poly1305_boxzerobytes"]=wasmExports["xb"];Module["_crypto_box_curve25519xsalsa20poly1305_macbytes"]=wasmExports["yb"];Module["_crypto_box_curve25519xsalsa20poly1305_messagebytes_max"]=wasmExports["zb"];Module["_crypto_core_hchacha20"]=wasmExports["Ab"];Module["_crypto_core_hchacha20_outputbytes"]=wasmExports["Bb"];Module["_crypto_core_hchacha20_inputbytes"]=wasmExports["Cb"];Module["_crypto_core_hchacha20_keybytes"]=wasmExports["Db"];Module["_crypto_core_hchacha20_constbytes"]=wasmExports["Eb"];Module["_crypto_core_hsalsa20"]=wasmExports["Fb"];Module["_crypto_core_hsalsa20_outputbytes"]=wasmExports["Gb"];Module["_crypto_core_hsalsa20_inputbytes"]=wasmExports["Hb"];Module["_crypto_core_hsalsa20_keybytes"]=wasmExports["Ib"];Module["_crypto_core_hsalsa20_constbytes"]=wasmExports["Jb"];Module["_crypto_core_salsa20"]=wasmExports["Kb"];Module["_crypto_core_salsa20_outputbytes"]=wasmExports["Lb"];Module["_crypto_core_salsa20_inputbytes"]=wasmExports["Mb"];Module["_crypto_core_salsa20_keybytes"]=wasmExports["Nb"];Module["_crypto_core_salsa20_constbytes"]=wasmExports["Ob"];Module["_crypto_core_salsa2012"]=wasmExports["Pb"];Module["_crypto_core_salsa2012_outputbytes"]=wasmExports["Qb"];Module["_crypto_core_salsa2012_inputbytes"]=wasmExports["Rb"];Module["_crypto_core_salsa2012_keybytes"]=wasmExports["Sb"];Module["_crypto_core_salsa2012_constbytes"]=wasmExports["Tb"];Module["_crypto_core_salsa208"]=wasmExports["Ub"];Module["_crypto_core_salsa208_outputbytes"]=wasmExports["Vb"];Module["_crypto_core_salsa208_inputbytes"]=wasmExports["Wb"];Module["_crypto_core_salsa208_keybytes"]=wasmExports["Xb"];Module["_crypto_core_salsa208_constbytes"]=wasmExports["Yb"];Module["_crypto_generichash_bytes_min"]=wasmExports["Zb"];Module["_crypto_generichash_bytes_max"]=wasmExports["_b"];Module["_crypto_generichash_bytes"]=wasmExports["$b"];Module["_crypto_generichash_keybytes_min"]=wasmExports["ac"];Module["_crypto_generichash_keybytes_max"]=wasmExports["bc"];Module["_crypto_generichash_keybytes"]=wasmExports["cc"];Module["_crypto_generichash_primitive"]=wasmExports["dc"];Module["_crypto_generichash_statebytes"]=wasmExports["ec"];Module["_crypto_generichash"]=wasmExports["fc"];Module["_crypto_generichash_init"]=wasmExports["gc"];Module["_crypto_generichash_update"]=wasmExports["hc"];Module["_crypto_generichash_final"]=wasmExports["ic"];Module["_crypto_generichash_keygen"]=wasmExports["jc"];Module["_crypto_generichash_blake2b_bytes_min"]=wasmExports["kc"];Module["_crypto_generichash_blake2b_bytes_max"]=wasmExports["lc"];Module["_crypto_generichash_blake2b_bytes"]=wasmExports["mc"];Module["_crypto_generichash_blake2b_keybytes_min"]=wasmExports["nc"];Module["_crypto_generichash_blake2b_keybytes_max"]=wasmExports["oc"];Module["_crypto_generichash_blake2b_keybytes"]=wasmExports["pc"];Module["_crypto_generichash_blake2b_saltbytes"]=wasmExports["qc"];Module["_crypto_generichash_blake2b_personalbytes"]=wasmExports["rc"];Module["_crypto_generichash_blake2b_statebytes"]=wasmExports["sc"];Module["_crypto_generichash_blake2b_keygen"]=wasmExports["tc"];Module["_crypto_generichash_blake2b"]=wasmExports["uc"];Module["_crypto_generichash_blake2b_salt_personal"]=wasmExports["vc"];Module["_crypto_generichash_blake2b_init"]=wasmExports["wc"];Module["_crypto_generichash_blake2b_init_salt_personal"]=wasmExports["xc"];Module["_crypto_generichash_blake2b_update"]=wasmExports["yc"];Module["_crypto_generichash_blake2b_final"]=wasmExports["zc"];Module["_crypto_hash_bytes"]=wasmExports["Ac"];Module["_crypto_hash"]=wasmExports["Bc"];Module["_crypto_hash_primitive"]=wasmExports["Cc"];Module["_crypto_hash_sha256_bytes"]=wasmExports["Dc"];Module["_crypto_hash_sha256_statebytes"]=wasmExports["Ec"];Module["_crypto_hash_sha256_init"]=wasmExports["Fc"];Module["_crypto_hash_sha256_update"]=wasmExports["Gc"];Module["_crypto_hash_sha256_final"]=wasmExports["Hc"];Module["_crypto_hash_sha256"]=wasmExports["Ic"];Module["_crypto_hash_sha512_bytes"]=wasmExports["Jc"];Module["_crypto_hash_sha512_statebytes"]=wasmExports["Kc"];Module["_crypto_hash_sha512_init"]=wasmExports["Lc"];Module["_crypto_hash_sha512_update"]=wasmExports["Mc"];Module["_crypto_hash_sha512_final"]=wasmExports["Nc"];Module["_crypto_hash_sha512"]=wasmExports["Oc"];Module["_crypto_kdf_blake2b_bytes_min"]=wasmExports["Pc"];Module["_crypto_kdf_blake2b_bytes_max"]=wasmExports["Qc"];Module["_crypto_kdf_blake2b_contextbytes"]=wasmExports["Rc"];Module["_crypto_kdf_blake2b_keybytes"]=wasmExports["Sc"];Module["_crypto_kdf_blake2b_derive_from_key"]=wasmExports["Tc"];Module["_crypto_kdf_primitive"]=wasmExports["Uc"];Module["_crypto_kdf_bytes_min"]=wasmExports["Vc"];Module["_crypto_kdf_bytes_max"]=wasmExports["Wc"];Module["_crypto_kdf_contextbytes"]=wasmExports["Xc"];Module["_crypto_kdf_keybytes"]=wasmExports["Yc"];Module["_crypto_kdf_derive_from_key"]=wasmExports["Zc"];Module["_crypto_kdf_keygen"]=wasmExports["_c"];Module["_crypto_kdf_hkdf_sha256_extract_init"]=wasmExports["$c"];Module["_crypto_kdf_hkdf_sha256_extract_update"]=wasmExports["ad"];Module["_crypto_kdf_hkdf_sha256_extract_final"]=wasmExports["bd"];Module["_crypto_kdf_hkdf_sha256_extract"]=wasmExports["cd"];Module["_crypto_kdf_hkdf_sha256_keygen"]=wasmExports["dd"];Module["_crypto_kdf_hkdf_sha256_expand"]=wasmExports["ed"];Module["_crypto_kdf_hkdf_sha256_keybytes"]=wasmExports["fd"];Module["_crypto_kdf_hkdf_sha256_bytes_min"]=wasmExports["gd"];Module["_crypto_kdf_hkdf_sha256_bytes_max"]=wasmExports["hd"];Module["_crypto_kdf_hkdf_sha256_statebytes"]=wasmExports["id"];Module["_crypto_kdf_hkdf_sha512_extract_init"]=wasmExports["jd"];Module["_crypto_kdf_hkdf_sha512_extract_update"]=wasmExports["kd"];Module["_crypto_kdf_hkdf_sha512_extract_final"]=wasmExports["ld"];Module["_crypto_kdf_hkdf_sha512_extract"]=wasmExports["md"];Module["_crypto_kdf_hkdf_sha512_keygen"]=wasmExports["nd"];Module["_crypto_kdf_hkdf_sha512_expand"]=wasmExports["od"];Module["_crypto_kdf_hkdf_sha512_keybytes"]=wasmExports["pd"];Module["_crypto_kdf_hkdf_sha512_bytes_min"]=wasmExports["qd"];Module["_crypto_kdf_hkdf_sha512_bytes_max"]=wasmExports["rd"];Module["_crypto_kdf_hkdf_sha512_statebytes"]=wasmExports["sd"];Module["_crypto_kx_seed_keypair"]=wasmExports["td"];Module["_crypto_kx_keypair"]=wasmExports["ud"];Module["_crypto_kx_client_session_keys"]=wasmExports["vd"];Module["_crypto_kx_server_session_keys"]=wasmExports["wd"];Module["_crypto_kx_publickeybytes"]=wasmExports["xd"];Module["_crypto_kx_secretkeybytes"]=wasmExports["yd"];Module["_crypto_kx_seedbytes"]=wasmExports["zd"];Module["_crypto_kx_sessionkeybytes"]=wasmExports["Ad"];Module["_crypto_kx_primitive"]=wasmExports["Bd"];Module["_crypto_onetimeauth_statebytes"]=wasmExports["Cd"];Module["_crypto_onetimeauth_bytes"]=wasmExports["Dd"];Module["_crypto_onetimeauth_keybytes"]=wasmExports["Ed"];Module["_crypto_onetimeauth"]=wasmExports["Fd"];Module["_crypto_onetimeauth_verify"]=wasmExports["Gd"];Module["_crypto_onetimeauth_init"]=wasmExports["Hd"];Module["_crypto_onetimeauth_update"]=wasmExports["Id"];Module["_crypto_onetimeauth_final"]=wasmExports["Jd"];Module["_crypto_onetimeauth_primitive"]=wasmExports["Kd"];Module["_crypto_onetimeauth_keygen"]=wasmExports["Ld"];Module["_crypto_onetimeauth_poly1305"]=wasmExports["Md"];Module["_crypto_onetimeauth_poly1305_verify"]=wasmExports["Nd"];Module["_crypto_onetimeauth_poly1305_init"]=wasmExports["Od"];Module["_crypto_onetimeauth_poly1305_update"]=wasmExports["Pd"];Module["_crypto_onetimeauth_poly1305_final"]=wasmExports["Qd"];Module["_crypto_onetimeauth_poly1305_bytes"]=wasmExports["Rd"];Module["_crypto_onetimeauth_poly1305_keybytes"]=wasmExports["Sd"];Module["_crypto_onetimeauth_poly1305_statebytes"]=wasmExports["Td"];Module["_crypto_onetimeauth_poly1305_keygen"]=wasmExports["Ud"];Module["_crypto_pwhash_argon2i_alg_argon2i13"]=wasmExports["Vd"];Module["_crypto_pwhash_argon2i_bytes_min"]=wasmExports["Wd"];Module["_crypto_pwhash_argon2i_bytes_max"]=wasmExports["Xd"];Module["_crypto_pwhash_argon2i_passwd_min"]=wasmExports["Yd"];Module["_crypto_pwhash_argon2i_passwd_max"]=wasmExports["Zd"];Module["_crypto_pwhash_argon2i_saltbytes"]=wasmExports["_d"];Module["_crypto_pwhash_argon2i_strbytes"]=wasmExports["$d"];Module["_crypto_pwhash_argon2i_strprefix"]=wasmExports["ae"];Module["_crypto_pwhash_argon2i_opslimit_min"]=wasmExports["be"];Module["_crypto_pwhash_argon2i_opslimit_max"]=wasmExports["ce"];Module["_crypto_pwhash_argon2i_memlimit_min"]=wasmExports["de"];Module["_crypto_pwhash_argon2i_memlimit_max"]=wasmExports["ee"];Module["_crypto_pwhash_argon2i_opslimit_interactive"]=wasmExports["fe"];Module["_crypto_pwhash_argon2i_memlimit_interactive"]=wasmExports["ge"];Module["_crypto_pwhash_argon2i_opslimit_moderate"]=wasmExports["he"];Module["_crypto_pwhash_argon2i_memlimit_moderate"]=wasmExports["ie"];Module["_crypto_pwhash_argon2i_opslimit_sensitive"]=wasmExports["je"];Module["_crypto_pwhash_argon2i_memlimit_sensitive"]=wasmExports["ke"];Module["_crypto_pwhash_argon2i"]=wasmExports["le"];Module["_crypto_pwhash_argon2i_str"]=wasmExports["me"];Module["_crypto_pwhash_argon2i_str_verify"]=wasmExports["ne"];Module["_crypto_pwhash_argon2i_str_needs_rehash"]=wasmExports["oe"];Module["_crypto_pwhash_argon2id_str_needs_rehash"]=wasmExports["pe"];Module["_crypto_pwhash_argon2id_alg_argon2id13"]=wasmExports["qe"];Module["_crypto_pwhash_argon2id_bytes_min"]=wasmExports["re"];Module["_crypto_pwhash_argon2id_bytes_max"]=wasmExports["se"];Module["_crypto_pwhash_argon2id_passwd_min"]=wasmExports["te"];Module["_crypto_pwhash_argon2id_passwd_max"]=wasmExports["ue"];Module["_crypto_pwhash_argon2id_saltbytes"]=wasmExports["ve"];Module["_crypto_pwhash_argon2id_strbytes"]=wasmExports["we"];Module["_crypto_pwhash_argon2id_strprefix"]=wasmExports["xe"];Module["_crypto_pwhash_argon2id_opslimit_min"]=wasmExports["ye"];Module["_crypto_pwhash_argon2id_opslimit_max"]=wasmExports["ze"];Module["_crypto_pwhash_argon2id_memlimit_min"]=wasmExports["Ae"];Module["_crypto_pwhash_argon2id_memlimit_max"]=wasmExports["Be"];Module["_crypto_pwhash_argon2id_opslimit_interactive"]=wasmExports["Ce"];Module["_crypto_pwhash_argon2id_memlimit_interactive"]=wasmExports["De"];Module["_crypto_pwhash_argon2id_opslimit_moderate"]=wasmExports["Ee"];Module["_crypto_pwhash_argon2id_memlimit_moderate"]=wasmExports["Fe"];Module["_crypto_pwhash_argon2id_opslimit_sensitive"]=wasmExports["Ge"];Module["_crypto_pwhash_argon2id_memlimit_sensitive"]=wasmExports["He"];Module["_crypto_pwhash_argon2id"]=wasmExports["Ie"];Module["_crypto_pwhash_argon2id_str"]=wasmExports["Je"];Module["_crypto_pwhash_argon2id_str_verify"]=wasmExports["Ke"];Module["_crypto_pwhash_alg_argon2i13"]=wasmExports["Le"];Module["_crypto_pwhash_alg_argon2id13"]=wasmExports["Me"];Module["_crypto_pwhash_alg_default"]=wasmExports["Ne"];Module["_crypto_pwhash_bytes_min"]=wasmExports["Oe"];Module["_crypto_pwhash_bytes_max"]=wasmExports["Pe"];Module["_crypto_pwhash_passwd_min"]=wasmExports["Qe"];Module["_crypto_pwhash_passwd_max"]=wasmExports["Re"];Module["_crypto_pwhash_saltbytes"]=wasmExports["Se"];Module["_crypto_pwhash_strbytes"]=wasmExports["Te"];Module["_crypto_pwhash_strprefix"]=wasmExports["Ue"];Module["_crypto_pwhash_opslimit_min"]=wasmExports["Ve"];Module["_crypto_pwhash_opslimit_max"]=wasmExports["We"];Module["_crypto_pwhash_memlimit_min"]=wasmExports["Xe"];Module["_crypto_pwhash_memlimit_max"]=wasmExports["Ye"];Module["_crypto_pwhash_opslimit_interactive"]=wasmExports["Ze"];Module["_crypto_pwhash_memlimit_interactive"]=wasmExports["_e"];Module["_crypto_pwhash_opslimit_moderate"]=wasmExports["$e"];Module["_crypto_pwhash_memlimit_moderate"]=wasmExports["af"];Module["_crypto_pwhash_opslimit_sensitive"]=wasmExports["bf"];Module["_crypto_pwhash_memlimit_sensitive"]=wasmExports["cf"];Module["_crypto_pwhash"]=wasmExports["df"];Module["_crypto_pwhash_str"]=wasmExports["ef"];Module["_crypto_pwhash_str_alg"]=wasmExports["ff"];Module["_crypto_pwhash_str_verify"]=wasmExports["gf"];Module["_crypto_pwhash_str_needs_rehash"]=wasmExports["hf"];Module["_crypto_pwhash_primitive"]=wasmExports["jf"];Module["_crypto_scalarmult_primitive"]=wasmExports["kf"];Module["_crypto_scalarmult_base"]=wasmExports["lf"];Module["_crypto_scalarmult"]=wasmExports["mf"];Module["_crypto_scalarmult_bytes"]=wasmExports["nf"];Module["_crypto_scalarmult_scalarbytes"]=wasmExports["of"];Module["_crypto_scalarmult_curve25519"]=wasmExports["pf"];Module["_crypto_scalarmult_curve25519_base"]=wasmExports["qf"];Module["_crypto_scalarmult_curve25519_bytes"]=wasmExports["rf"];Module["_crypto_scalarmult_curve25519_scalarbytes"]=wasmExports["sf"];Module["_crypto_secretbox_keybytes"]=wasmExports["tf"];Module["_crypto_secretbox_noncebytes"]=wasmExports["uf"];Module["_crypto_secretbox_zerobytes"]=wasmExports["vf"];Module["_crypto_secretbox_boxzerobytes"]=wasmExports["wf"];Module["_crypto_secretbox_macbytes"]=wasmExports["xf"];Module["_crypto_secretbox_messagebytes_max"]=wasmExports["yf"];Module["_crypto_secretbox_primitive"]=wasmExports["zf"];Module["_crypto_secretbox"]=wasmExports["Af"];Module["_crypto_secretbox_open"]=wasmExports["Bf"];Module["_crypto_secretbox_keygen"]=wasmExports["Cf"];Module["_crypto_secretbox_detached"]=wasmExports["Df"];Module["_crypto_secretbox_easy"]=wasmExports["Ef"];Module["_crypto_secretbox_open_detached"]=wasmExports["Ff"];Module["_crypto_secretbox_open_easy"]=wasmExports["Gf"];Module["_crypto_secretbox_xsalsa20poly1305"]=wasmExports["Hf"];Module["_crypto_secretbox_xsalsa20poly1305_open"]=wasmExports["If"];Module["_crypto_secretbox_xsalsa20poly1305_keybytes"]=wasmExports["Jf"];Module["_crypto_secretbox_xsalsa20poly1305_noncebytes"]=wasmExports["Kf"];Module["_crypto_secretbox_xsalsa20poly1305_zerobytes"]=wasmExports["Lf"];Module["_crypto_secretbox_xsalsa20poly1305_boxzerobytes"]=wasmExports["Mf"];Module["_crypto_secretbox_xsalsa20poly1305_macbytes"]=wasmExports["Nf"];Module["_crypto_secretbox_xsalsa20poly1305_messagebytes_max"]=wasmExports["Of"];Module["_crypto_secretbox_xsalsa20poly1305_keygen"]=wasmExports["Pf"];Module["_crypto_secretstream_xchacha20poly1305_keygen"]=wasmExports["Qf"];Module["_crypto_secretstream_xchacha20poly1305_init_push"]=wasmExports["Rf"];Module["_crypto_secretstream_xchacha20poly1305_init_pull"]=wasmExports["Sf"];Module["_crypto_secretstream_xchacha20poly1305_rekey"]=wasmExports["Tf"];Module["_crypto_secretstream_xchacha20poly1305_push"]=wasmExports["Uf"];Module["_crypto_secretstream_xchacha20poly1305_pull"]=wasmExports["Vf"];Module["_crypto_secretstream_xchacha20poly1305_statebytes"]=wasmExports["Wf"];Module["_crypto_secretstream_xchacha20poly1305_abytes"]=wasmExports["Xf"];Module["_crypto_secretstream_xchacha20poly1305_headerbytes"]=wasmExports["Yf"];Module["_crypto_secretstream_xchacha20poly1305_keybytes"]=wasmExports["Zf"];Module["_crypto_secretstream_xchacha20poly1305_messagebytes_max"]=wasmExports["_f"];Module["_crypto_secretstream_xchacha20poly1305_tag_message"]=wasmExports["$f"];Module["_crypto_secretstream_xchacha20poly1305_tag_push"]=wasmExports["ag"];Module["_crypto_secretstream_xchacha20poly1305_tag_rekey"]=wasmExports["bg"];Module["_crypto_secretstream_xchacha20poly1305_tag_final"]=wasmExports["cg"];Module["_crypto_shorthash_bytes"]=wasmExports["dg"];Module["_crypto_shorthash_keybytes"]=wasmExports["eg"];Module["_crypto_shorthash_primitive"]=wasmExports["fg"];Module["_crypto_shorthash"]=wasmExports["gg"];Module["_crypto_shorthash_keygen"]=wasmExports["hg"];Module["_crypto_shorthash_siphash24_bytes"]=wasmExports["ig"];Module["_crypto_shorthash_siphash24_keybytes"]=wasmExports["jg"];Module["_crypto_shorthash_siphash24"]=wasmExports["kg"];Module["_crypto_sign_statebytes"]=wasmExports["lg"];Module["_crypto_sign_bytes"]=wasmExports["mg"];Module["_crypto_sign_seedbytes"]=wasmExports["ng"];Module["_crypto_sign_publickeybytes"]=wasmExports["og"];Module["_crypto_sign_secretkeybytes"]=wasmExports["pg"];Module["_crypto_sign_messagebytes_max"]=wasmExports["qg"];Module["_crypto_sign_primitive"]=wasmExports["rg"];Module["_crypto_sign_seed_keypair"]=wasmExports["sg"];Module["_crypto_sign_keypair"]=wasmExports["tg"];Module["_crypto_sign"]=wasmExports["ug"];Module["_crypto_sign_open"]=wasmExports["vg"];Module["_crypto_sign_detached"]=wasmExports["wg"];Module["_crypto_sign_verify_detached"]=wasmExports["xg"];Module["_crypto_sign_init"]=wasmExports["yg"];Module["_crypto_sign_update"]=wasmExports["zg"];Module["_crypto_sign_final_create"]=wasmExports["Ag"];Module["_crypto_sign_final_verify"]=wasmExports["Bg"];Module["_crypto_sign_ed25519ph_statebytes"]=wasmExports["Cg"];Module["_crypto_sign_ed25519_bytes"]=wasmExports["Dg"];Module["_crypto_sign_ed25519_seedbytes"]=wasmExports["Eg"];Module["_crypto_sign_ed25519_publickeybytes"]=wasmExports["Fg"];Module["_crypto_sign_ed25519_secretkeybytes"]=wasmExports["Gg"];Module["_crypto_sign_ed25519_messagebytes_max"]=wasmExports["Hg"];Module["_crypto_sign_ed25519_sk_to_seed"]=wasmExports["Ig"];Module["_crypto_sign_ed25519_sk_to_pk"]=wasmExports["Jg"];Module["_crypto_sign_ed25519ph_init"]=wasmExports["Kg"];Module["_crypto_sign_ed25519ph_update"]=wasmExports["Lg"];Module["_crypto_sign_ed25519ph_final_create"]=wasmExports["Mg"];Module["_crypto_sign_ed25519ph_final_verify"]=wasmExports["Ng"];Module["_crypto_sign_ed25519_seed_keypair"]=wasmExports["Og"];Module["_crypto_sign_ed25519_keypair"]=wasmExports["Pg"];Module["_crypto_sign_ed25519_pk_to_curve25519"]=wasmExports["Qg"];Module["_crypto_sign_ed25519_sk_to_curve25519"]=wasmExports["Rg"];Module["_crypto_sign_ed25519_verify_detached"]=wasmExports["Sg"];Module["_crypto_sign_ed25519_open"]=wasmExports["Tg"];Module["_crypto_sign_ed25519_detached"]=wasmExports["Ug"];Module["_crypto_sign_ed25519"]=wasmExports["Vg"];Module["_crypto_stream_chacha20_keybytes"]=wasmExports["Wg"];Module["_crypto_stream_chacha20_noncebytes"]=wasmExports["Xg"];Module["_crypto_stream_chacha20_messagebytes_max"]=wasmExports["Yg"];Module["_crypto_stream_chacha20_ietf_keybytes"]=wasmExports["Zg"];Module["_crypto_stream_chacha20_ietf_noncebytes"]=wasmExports["_g"];Module["_crypto_stream_chacha20_ietf_messagebytes_max"]=wasmExports["$g"];Module["_crypto_stream_chacha20"]=wasmExports["ah"];Module["_crypto_stream_chacha20_xor_ic"]=wasmExports["bh"];Module["_crypto_stream_chacha20_xor"]=wasmExports["ch"];Module["_crypto_stream_chacha20_ietf"]=wasmExports["dh"];Module["_crypto_stream_chacha20_ietf_xor_ic"]=wasmExports["eh"];Module["_crypto_stream_chacha20_ietf_xor"]=wasmExports["fh"];Module["_crypto_stream_chacha20_ietf_keygen"]=wasmExports["gh"];Module["_crypto_stream_chacha20_keygen"]=wasmExports["hh"];Module["_crypto_stream_keybytes"]=wasmExports["ih"];Module["_crypto_stream_noncebytes"]=wasmExports["jh"];Module["_crypto_stream_messagebytes_max"]=wasmExports["kh"];Module["_crypto_stream_primitive"]=wasmExports["lh"];Module["_crypto_stream"]=wasmExports["mh"];Module["_crypto_stream_xor"]=wasmExports["nh"];Module["_crypto_stream_keygen"]=wasmExports["oh"];Module["_crypto_stream_salsa20_keybytes"]=wasmExports["ph"];Module["_crypto_stream_salsa20_noncebytes"]=wasmExports["qh"];Module["_crypto_stream_salsa20_messagebytes_max"]=wasmExports["rh"];Module["_crypto_stream_salsa20"]=wasmExports["sh"];Module["_crypto_stream_salsa20_xor_ic"]=wasmExports["th"];Module["_crypto_stream_salsa20_xor"]=wasmExports["uh"];Module["_crypto_stream_salsa20_keygen"]=wasmExports["vh"];Module["_crypto_stream_xsalsa20"]=wasmExports["wh"];Module["_crypto_stream_xsalsa20_xor_ic"]=wasmExports["xh"];Module["_crypto_stream_xsalsa20_xor"]=wasmExports["yh"];Module["_crypto_stream_xsalsa20_keybytes"]=wasmExports["zh"];Module["_crypto_stream_xsalsa20_noncebytes"]=wasmExports["Ah"];Module["_crypto_stream_xsalsa20_messagebytes_max"]=wasmExports["Bh"];Module["_crypto_stream_xsalsa20_keygen"]=wasmExports["Ch"];Module["_crypto_verify_16_bytes"]=wasmExports["Dh"];Module["_crypto_verify_32_bytes"]=wasmExports["Eh"];Module["_crypto_verify_64_bytes"]=wasmExports["Fh"];Module["_crypto_verify_16"]=wasmExports["Gh"];Module["_crypto_verify_32"]=wasmExports["Hh"];Module["_crypto_verify_64"]=wasmExports["Ih"];Module["_randombytes_implementation_name"]=wasmExports["Jh"];Module["_randombytes_random"]=wasmExports["Kh"];Module["_randombytes_stir"]=wasmExports["Lh"];Module["_randombytes_uniform"]=wasmExports["Mh"];Module["_randombytes_buf"]=wasmExports["Nh"];Module["_randombytes_buf_deterministic"]=wasmExports["Oh"];Module["_randombytes_seedbytes"]=wasmExports["Ph"];Module["_randombytes_close"]=wasmExports["Qh"];Module["_randombytes"]=wasmExports["Rh"];Module["_sodium_bin2hex"]=wasmExports["Sh"];Module["_sodium_hex2bin"]=wasmExports["Th"];Module["_sodium_base64_encoded_len"]=wasmExports["Uh"];Module["_sodium_bin2base64"]=wasmExports["Vh"];Module["_sodium_base642bin"]=wasmExports["Wh"];Module["_sodium_init"]=wasmExports["Xh"];Module["_sodium_pad"]=wasmExports["Yh"];Module["_sodium_unpad"]=wasmExports["Zh"];Module["_sodium_version_string"]=wasmExports["_h"];Module["_sodium_library_version_major"]=wasmExports["$h"];Module["_sodium_library_version_minor"]=wasmExports["ai"];Module["_sodium_library_minimal"]=wasmExports["bi"];Module["_crypto_box_curve25519xchacha20poly1305_seed_keypair"]=wasmExports["ci"];Module["_crypto_box_curve25519xchacha20poly1305_keypair"]=wasmExports["di"];Module["_crypto_box_curve25519xchacha20poly1305_beforenm"]=wasmExports["ei"];Module["_crypto_box_curve25519xchacha20poly1305_detached_afternm"]=wasmExports["fi"];Module["_crypto_box_curve25519xchacha20poly1305_detached"]=wasmExports["gi"];Module["_crypto_box_curve25519xchacha20poly1305_easy_afternm"]=wasmExports["hi"];Module["_crypto_box_curve25519xchacha20poly1305_easy"]=wasmExports["ii"];Module["_crypto_box_curve25519xchacha20poly1305_open_detached_afternm"]=wasmExports["ji"];Module["_crypto_box_curve25519xchacha20poly1305_open_detached"]=wasmExports["ki"];Module["_crypto_box_curve25519xchacha20poly1305_open_easy_afternm"]=wasmExports["li"];Module["_crypto_box_curve25519xchacha20poly1305_open_easy"]=wasmExports["mi"];Module["_crypto_box_curve25519xchacha20poly1305_seedbytes"]=wasmExports["ni"];Module["_crypto_box_curve25519xchacha20poly1305_publickeybytes"]=wasmExports["oi"];Module["_crypto_box_curve25519xchacha20poly1305_secretkeybytes"]=wasmExports["pi"];Module["_crypto_box_curve25519xchacha20poly1305_beforenmbytes"]=wasmExports["qi"];Module["_crypto_box_curve25519xchacha20poly1305_noncebytes"]=wasmExports["ri"];Module["_crypto_box_curve25519xchacha20poly1305_macbytes"]=wasmExports["si"];Module["_crypto_box_curve25519xchacha20poly1305_messagebytes_max"]=wasmExports["ti"];Module["_crypto_box_curve25519xchacha20poly1305_seal"]=wasmExports["ui"];Module["_crypto_box_curve25519xchacha20poly1305_seal_open"]=wasmExports["vi"];Module["_crypto_box_curve25519xchacha20poly1305_sealbytes"]=wasmExports["wi"];Module["_crypto_core_ed25519_is_valid_point"]=wasmExports["xi"];Module["_crypto_core_ed25519_add"]=wasmExports["yi"];Module["_crypto_core_ed25519_sub"]=wasmExports["zi"];Module["_crypto_core_ed25519_from_uniform"]=wasmExports["Ai"];Module["_crypto_core_ed25519_random"]=wasmExports["Bi"];Module["_crypto_core_ed25519_scalar_random"]=wasmExports["Ci"];Module["_crypto_core_ed25519_scalar_invert"]=wasmExports["Di"];Module["_crypto_core_ed25519_scalar_negate"]=wasmExports["Ei"];Module["_crypto_core_ed25519_scalar_complement"]=wasmExports["Fi"];Module["_crypto_core_ed25519_scalar_add"]=wasmExports["Gi"];Module["_crypto_core_ed25519_scalar_reduce"]=wasmExports["Hi"];Module["_crypto_core_ed25519_scalar_sub"]=wasmExports["Ii"];Module["_crypto_core_ed25519_scalar_mul"]=wasmExports["Ji"];Module["_crypto_core_ed25519_bytes"]=wasmExports["Ki"];Module["_crypto_core_ed25519_nonreducedscalarbytes"]=wasmExports["Li"];Module["_crypto_core_ed25519_uniformbytes"]=wasmExports["Mi"];Module["_crypto_core_ed25519_hashbytes"]=wasmExports["Ni"];Module["_crypto_core_ed25519_scalarbytes"]=wasmExports["Oi"];Module["_crypto_core_ristretto255_is_valid_point"]=wasmExports["Pi"];Module["_crypto_core_ristretto255_add"]=wasmExports["Qi"];Module["_crypto_core_ristretto255_sub"]=wasmExports["Ri"];Module["_crypto_core_ristretto255_from_hash"]=wasmExports["Si"];Module["_crypto_core_ristretto255_random"]=wasmExports["Ti"];Module["_crypto_core_ristretto255_scalar_random"]=wasmExports["Ui"];Module["_crypto_core_ristretto255_scalar_invert"]=wasmExports["Vi"];Module["_crypto_core_ristretto255_scalar_negate"]=wasmExports["Wi"];Module["_crypto_core_ristretto255_scalar_complement"]=wasmExports["Xi"];Module["_crypto_core_ristretto255_scalar_add"]=wasmExports["Yi"];Module["_crypto_core_ristretto255_scalar_sub"]=wasmExports["Zi"];Module["_crypto_core_ristretto255_scalar_mul"]=wasmExports["_i"];Module["_crypto_core_ristretto255_scalar_reduce"]=wasmExports["$i"];Module["_crypto_core_ristretto255_bytes"]=wasmExports["aj"];Module["_crypto_core_ristretto255_nonreducedscalarbytes"]=wasmExports["bj"];Module["_crypto_core_ristretto255_hashbytes"]=wasmExports["cj"];Module["_crypto_core_ristretto255_scalarbytes"]=wasmExports["dj"];Module["_crypto_pwhash_scryptsalsa208sha256_ll"]=wasmExports["ej"];Module["_crypto_pwhash_scryptsalsa208sha256_bytes_min"]=wasmExports["fj"];Module["_crypto_pwhash_scryptsalsa208sha256_bytes_max"]=wasmExports["gj"];Module["_crypto_pwhash_scryptsalsa208sha256_passwd_min"]=wasmExports["hj"];Module["_crypto_pwhash_scryptsalsa208sha256_passwd_max"]=wasmExports["ij"];Module["_crypto_pwhash_scryptsalsa208sha256_saltbytes"]=wasmExports["jj"];Module["_crypto_pwhash_scryptsalsa208sha256_strbytes"]=wasmExports["kj"];Module["_crypto_pwhash_scryptsalsa208sha256_strprefix"]=wasmExports["lj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_min"]=wasmExports["mj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_max"]=wasmExports["nj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_min"]=wasmExports["oj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_max"]=wasmExports["pj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive"]=wasmExports["qj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive"]=wasmExports["rj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive"]=wasmExports["sj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive"]=wasmExports["tj"];Module["_crypto_pwhash_scryptsalsa208sha256"]=wasmExports["uj"];Module["_crypto_pwhash_scryptsalsa208sha256_str"]=wasmExports["vj"];Module["_crypto_pwhash_scryptsalsa208sha256_str_verify"]=wasmExports["wj"];Module["_crypto_pwhash_scryptsalsa208sha256_str_needs_rehash"]=wasmExports["xj"];Module["_crypto_scalarmult_ed25519"]=wasmExports["yj"];Module["_crypto_scalarmult_ed25519_noclamp"]=wasmExports["zj"];Module["_crypto_scalarmult_ed25519_base"]=wasmExports["Aj"];Module["_crypto_scalarmult_ed25519_base_noclamp"]=wasmExports["Bj"];Module["_crypto_scalarmult_ed25519_bytes"]=wasmExports["Cj"];Module["_crypto_scalarmult_ed25519_scalarbytes"]=wasmExports["Dj"];Module["_crypto_scalarmult_ristretto255"]=wasmExports["Ej"];Module["_crypto_scalarmult_ristretto255_base"]=wasmExports["Fj"];Module["_crypto_scalarmult_ristretto255_bytes"]=wasmExports["Gj"];Module["_crypto_scalarmult_ristretto255_scalarbytes"]=wasmExports["Hj"];Module["_crypto_secretbox_xchacha20poly1305_detached"]=wasmExports["Ij"];Module["_crypto_secretbox_xchacha20poly1305_easy"]=wasmExports["Jj"];Module["_crypto_secretbox_xchacha20poly1305_open_detached"]=wasmExports["Kj"];Module["_crypto_secretbox_xchacha20poly1305_open_easy"]=wasmExports["Lj"];Module["_crypto_secretbox_xchacha20poly1305_keybytes"]=wasmExports["Mj"];Module["_crypto_secretbox_xchacha20poly1305_noncebytes"]=wasmExports["Nj"];Module["_crypto_secretbox_xchacha20poly1305_macbytes"]=wasmExports["Oj"];Module["_crypto_secretbox_xchacha20poly1305_messagebytes_max"]=wasmExports["Pj"];Module["_crypto_shorthash_siphashx24_bytes"]=wasmExports["Qj"];Module["_crypto_shorthash_siphashx24_keybytes"]=wasmExports["Rj"];Module["_crypto_shorthash_siphashx24"]=wasmExports["Sj"];Module["_crypto_stream_salsa2012"]=wasmExports["Tj"];Module["_crypto_stream_salsa2012_xor"]=wasmExports["Uj"];Module["_crypto_stream_salsa2012_keybytes"]=wasmExports["Vj"];Module["_crypto_stream_salsa2012_noncebytes"]=wasmExports["Wj"];Module["_crypto_stream_salsa2012_messagebytes_max"]=wasmExports["Xj"];Module["_crypto_stream_salsa2012_keygen"]=wasmExports["Yj"];Module["_crypto_stream_salsa208"]=wasmExports["Zj"];Module["_crypto_stream_salsa208_xor"]=wasmExports["_j"];Module["_crypto_stream_salsa208_keybytes"]=wasmExports["$j"];Module["_crypto_stream_salsa208_noncebytes"]=wasmExports["ak"];Module["_crypto_stream_salsa208_messagebytes_max"]=wasmExports["bk"];Module["_crypto_stream_salsa208_keygen"]=wasmExports["ck"];Module["_crypto_stream_xchacha20_keybytes"]=wasmExports["dk"];Module["_crypto_stream_xchacha20_noncebytes"]=wasmExports["ek"];Module["_crypto_stream_xchacha20_messagebytes_max"]=wasmExports["fk"];Module["_crypto_stream_xchacha20"]=wasmExports["gk"];Module["_crypto_stream_xchacha20_xor_ic"]=wasmExports["hk"];Module["_crypto_stream_xchacha20_xor"]=wasmExports["ik"];Module["_crypto_stream_xchacha20_keygen"]=wasmExports["jk"];Module["_malloc"]=wasmExports["kk"];Module["_free"]=wasmExports["lk"];wasmExports["dynCall_iiiji"];wasmExports["dynCall_iiij"];wasmExports["dynCall_iijii"];wasmExports["dynCall_iiijiji"];wasmExports["dynCall_iiijiii"];wasmMemory=wasmExports["e"];wasmExports["__indirect_function_table"];}var wasmImports={b:___assert_fail,c:__abort_js,a:_emscripten_asm_const_int,d:_emscripten_resize_heap};function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();Module["onRuntimeInitialized"]?.();postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun();},1);}else {doRun();}}var wasmExports;createWasm();run(); + }); + }; +var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename$1!="undefined"){_scriptName=__filename$1;}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href;}var scriptDirectory="";if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname$1+"/";if(process.argv.length>1){process.argv[1].replace(/\\/g,"/");}process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module;}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href;}catch{}}else;console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;function binaryDecode(bin){for(var i=0,l=bin.length,o=new Uint8Array(l),c;i>8&c;}return o}var HEAP8,HEAPU8,HEAP16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift());}}callRuntimeCallbacks(onPreRuns);}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift());}}callRuntimeCallbacks(onPostRuns);}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return binaryDecode('asmî(```~```````` ``~~` ``~`~`~``~`~``` `\n`~~` ~~`~`~`~~`~~`~~~`~``~` ~`\n~``~`~aaabacad ¼º          ! "      #$%  &\'\r     \n\n \n\r  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n      \r\r\rp@€€AÂ ¡Øef\ngh\ni jñkðlÎmÍnÌoËp qr s tñuvÊwÉxÈyÇzAÆBÅCÄDÃEÂFÁGÀH¾I JéKL\nM)NO P$QR\nS)TU½V¼W»XºY Z"_$\naa)baca da eaØfa¯ga®haia ja kaLlama-na¹oaBpa¸qa·rasa ta€uava+wa­xa.ya¶zaµAa Ba Ca€DaEaæFa­GaÝHa¯Ia®Ja Ka La Ma Na"Oa Pa\nQa\nRa)SaïTaîUaíVaìWaTXaSYa¬Za«_aª$a´ab³bb²cb©db±eb¨fb°gb¯hb®ib¿jbukb>lb=mbTnbSob¬pb«qb rb sb tb ub"vb wb\nxb\nyb)zbAb Bb\nCb Db\nEb(Fb Gb\nHb Ib\nJbFKbLb\nMb Nb\nObEPbQb\nRb Sb\nTbDUbVb\nWb Xb\nYb\nZb_b $b\nacbc ccÀdcÜec§fcógc¦hcòicjc\nkclc mc\nncoc pc\nqc\nrcÜsctc§uc­vcwcˆxc¦yczcAc¥BcÙCc DcÏEc^Fc«Gc*HcªIcJcLKc/LclMcNc¥Oc\nPcQc$Rc Sc¤TcÀUc\nVcWc$Xc Yc¤Zc_c‘$cadbdŽcddded fdgdŒhdLidæjd®kd­ld¬md«ndªodpdqd©rd€sdÕtd>udÔvdÓwd xd yd zd AdÒBd“Cd\nDd Ed£Fd¢Gd•Hd¡Id”JdàKdLd£Md¢Nd•Od¡Pd”Qd\nRd Sd“TdUdMVd\nWdXdYdZd\n_d{$d‡ae_becezdeyeexfeØge†he…ie$je„ke©le¨me¦ne¥oe¤pe7qe\nreseteue\nve{weÔxeMyezezAeyBe7CeÓDe_EeÒFexGewHe£Ie Je¢KeMLe7Me7Ne\nOePeQeRe\nSe{TeÔUeMVeWezXeyYe7ZeÓ_e_$eÒafxbfwcf¡df ef ffŸgfžhfƒjf×kf†lfÖmf nf ofpf†qf rf sf tf"uf vf\nwf\nxf)yfÚzfTAfSBfCfªDfœEf©Ff¨GfTHfSIf Jf"Kf Lf\nMf\nNf)OfPfQf—Rf–Sf•Tf›UfšVf”Wf“Xf"Yf Zf’_f$fMag7bg_cg$dg\negáfgŸggðhg$ig\njgŸkgLlgmg ng ogpgÉqgùrgøsg÷tgžugvgœwg›xgöyglzgõAgôBgLCgDg Eg FgGgÉHgûIgúJgÈKglLgÇMgÆNgËOgÊPg€QgÿRg›SgTgœUgžVg Wg$XgYg Zgé_g$g™ah˜bh–ch•dh”eh“fhghhh ih"jhkhlhšmh™nhoh ph$qhrh’sh‘thuhvhšwhxh™yh zh"AhBhCh\nDh EhFh5Gh<Hh°IhµJh´KhçLh³MhNh±Oh Ph°QhŽRh‹ShŠTh‰Uh~Vh}WhºXh²Yh¯ZhÑ_hÐ$h7aibiuci>di‚ei˜figiŒhi‹ii—jiŠki–li‰mi ni oi pi qi"ri\nsi)tiˆui‡vi¿wi¨xi§yi¦zi¥Ai¤BiåCiäDiãEiâFiáGiàHißIiÞJi KiLi MiNi Oi£Pi¢Qi¡Ri SiŸTižUiViœWi›XišYi™ZiÞ_i˜$i ajbjcj dj†ej\nfjgjhjij jjëkjêljémjnj·ojpjèqj·rjØsjwtj…uj„vjƒwj‚xjçyjæzjåAjäBj Cj DjßEjÞFj Gj Hj˜IjJj—Kj–Lj Mj"Nj\nOj)Pj\nQj\nRj€SjÿTjþUj Vj$WjXjYjýZjü_j $j$akbkck dk"ekfkûgkúhkùikjkkk (A ¿¬§—ø÷öõô½¼»¹¸·¶ \nݔ\nºË~ ( "At¬" ¬"~ (" ¬" ("!At¬" ~| ("At¬" (""At¬"~| ("¬" ("#At¬"~| ( "Al¬" ¬"~| ($"A&l¬" ("At¬"~|  ~ ~| ¬" ~|  ~|  ~|  ~ !¬" ~|  ~| A&l¬" ¬"~|  At¬~|  ~|"B€€€|"B‡|"B€€€|"B‡|"\n \nB€€€|" B€€€àƒ}>  ~  "¬"\r~| Al¬"\n ~|  ~|  At¬"~|  ~|  \n~  \r~|  ~|  ~|  ~| A&l¬ ~ #¬"\r \r~| \n ~|  ~|  ~|  ~|"\nB€€€|"\rB‡|"B€€€|"B‡|" B€€€|"B€€€àƒ}> ~  ~|  ~|  ~|  ~| B‡|" B€€€|" B€€€ðƒ}>  ~  ~| ~|  ~|  ~| B‡|" B€€€|"B€€€ðƒ}> ~  ~|  ~|  ~|  ~|  ¬"~| B‡|" B€€€|"B€€€àƒ}>  B€€€ðƒ}  B€€€`ƒ} B‡|"B€€€|"Bˆ|>  B€€€àƒ}>  ~  ~| ~|  ~|  ~| B‡|" B€€€|"B€€€ðƒ}>$  B€€€ðƒ} \n \rB€€€`ƒ} B‡B~|"B€€€|"Bˆ|>  B€€€àƒ}>  \'~  ("*¬" ("+At¬"~ 4" 4"~| (",¬"\r 4"~| ( "-¬" ( ".At¬"~| ("/¬" 4"~| ("0¬" ("1At¬"~| ("2¬" 4" ~| ("3Al¬" ($"4At¬"~| ( "5Al¬" 4 "\n~| ($"Al¬" ("At¬"~|  ~  +¬"~| \r .¬"~|  ~|  1¬"~| ~| 2Al¬" 4¬"~| \n ~|  ¬"~|  ~| ~  ~|  \r~|  ~| ~| 0Al¬" ~| \n ~| ~|  ~|  ~|""B€€€|"#B‡|"$B€€€|"%B‡|" B€€€|"B€€€àƒ}> ~  ~| \r~| -Al¬" ~| \n /Al¬"~|  ~|  ~| ~|  ~|  ~| ~  ~| ,Al¬"! ~| \n ~|  ~|  ~|  ~|  ~|  ~|  ~| *Al¬ ~  ~| \n !~|  ~|  ~|  ~|  ~| ~|  ~|  ~|"!B€€€|"&B‡|"\'B€€€|"(B‡|" B€€€|")B€€€àƒ}>  ~  ~| \r ~|  ~|  ~|  ~|  ~| 3¬"~|  ~|  \n~| B‡|" B€€€|"B€€€ðƒ}>  ~  ~| \r ~| ~|  ~| \n ~|  ~|  ~|  ~|  ~| )B‡|" B€€€|"B€€€ðƒ}> ~  \n~|  \r~|  ~|  ~|  ~|  ~|  ~| 5¬" ~|  ~| B‡|" B€€€|"B€€€àƒ}> $ %B€€€ðƒ} " #B€€€`ƒ} B‡|"B€€€|"Bˆ|>  B€€€àƒ}> \n ~  ~| \r ~|  ~|  ~|  ~|  ~|  ~| ~| ¬~| B‡|" B€€€|"B€€€ðƒ}>$ \' (B€€€ðƒ} ! &B€€€`ƒ} B‡B~|"B€€€|"Bˆ|>  B€€€àƒ}> ñ6~ 3 1B†B€€üƒ„" (":AvAÿÿÿq­"~ 3 1B†B€€üƒ„" ("9AvAÿÿÿq­" ~| 5BˆBÿÿÿƒ" (";AvAÿÿÿq­"~| (\n"s!  6 B7 AtA¤Àj!@Aø½("A t"qE@Aø½  r6  6A!A  A AvkA AGt! (!@ "(Axq F\r Av! At!  Aqj"("\r  6A! !A ! "  (" 6  6A!A!A !  j 6  6 j 6A”¾A”¾(Ak"A 6 AÀ ’~#AÀk" $@ P\r )H" B†|"7H A@k" )  V­| B=ˆ|7 AÐj! B€ BˆBÿƒ"}" X@ Bƒ!B!@ Bÿ…BZ@ Büƒ!\n@  |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B|! B|" \nR\r P\r @  |§j  §j-: B|! B|" R\r A€j"\ra  §j!  }"BÿV@@  \ra A€j! B€}"BÿV\r @ P\r Bƒ!B!B! BZ@ Büƒ!B!@ §"j j-: Ar"\rj  \rj-: Ar"\rj  \rj-: Ar"j j-: B|! B|" R\r P\r @ §"j j-: B|! B|" R\r AÀ  Bƒ!B! BZ@ B|ƒ!@  |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B|! B|" R\r P\r @  |§j  §j-: B|! B|" R\r AÀj$A A Æ#Ak"A:@ E\r Aq! AO@ A|q!@  j"- -r:  - -r:  - -r:  - -r: Aj! Aj" G\r E\r A!@  j- -r: Aj! Aj" G\r -AkAv … #A0k"$  AÐj A(j Aøj AÐj ((! (,! (! (0! (! (4! ( ! (8!\n (! (j! @@@ At(¤À"E@A!  A! A AvkA AGt!@@ (Axq k" O\r ! "\rA! !  ("   AvAqj("F ! At! \r rE@A!A t"A kr q"E\r hAt(¤À! E\r @ (Axq k" I!   !  ! ("  ( "\r E\r Aü½( kO\r (!  ( "G@ (" 6 6  (" Aj ("E\r Aj !@ ! "Aj! ("\r Aj! ("\r A6  Aü½("M@Aˆ¾(!@  k"AO@ j" Ar6 j 6 Ar6  Ar6 j" (Ar6A!A! Aü½ 6Aˆ¾ 6 Aj! A€¾("I@A€¾  k"6AŒ¾AŒ¾(" j"6  Ar6 Ar6 Aj! A! A/j"AÌÁ(@AÔÁ(  AØÁB7AÐÁB€ €€€€7AÌÁ \nA jApqAتժs6AàÁA6A°ÁA6A€ "j"A k"q" M\rA¬Á("@A¤Á(" j" M\r  I\r @A°Á-AqE@@@@@AŒ¾("@A´Á!@ (" M@   (jI\r ("\r AA"AF\r !AÐÁ("Ak" q@  k  jA kqj!  M\rA¬Á("@A¤Á(" j" M\r I\r A" G\r   k q"A" ( (jF\r ! AF\r A0j M@ !  AÔÁ("  kjA kq"AAF\r  j! !  AG\r A°ÁA°Á(Ar6 A!AA! AF\r AF\r M\r k" A(jM\r A¤ÁA¤Á( j"6A¨Á( I@A¨Á 6 @AŒ¾("@A´Á!@  (" ("jF\r ("\r  A„¾("A ME@A„¾ 6 A!A¸Á 6A´Á 6A”¾A6A˜¾AÌÁ(6AÀÁA6@ At" Aœ¾j"6¤¾  6¨¾ Aj"A G\r A€¾ A(k"Ax kAq"k"6AŒ¾  j"6  Ar6 jA(6A¾AÜÁ(6   M\r  K\r ( Aq\r  j6AŒ¾ Ax kAq"j"6A€¾A€¾( j" k"6  Ar6  jA(6A¾AÜÁ(6  A!  A!  A„¾( K@A„¾ 6  j!A´Á!@@  ("G@ ("\r  - AqE\r A´Á!@@ (" M@   (j"I\r (!  A€¾ A(k"Ax kAq"k"6AŒ¾  j"6  Ar6 jA(6A¾AÜÁ(6  A\' kAqjA/k" AjI"A6 A¼Á)7 A´Á)7A¼Á Aj6A¸Á 6A´Á 6AÀÁA6 Aj!@ A6 Aj Aj! I\r  F\r  (A~q6   k"Ar6  6 AÿM@ AøqAœ¾j!Aô½("A Avt"qE@Aô½  r6  ( ! 6  6 A !A  A! AÿÿÿM@ A& Avg"kvAq AtrA>s!  6 B7 AtA¤Àj!@@Aø½("A t"qE@Aø½  r6  6  A AvkA AGt! (!@ "(Axq F\r Av! At!  Aqj"("\r  6  6A! "!A  (" 6  6  6A!A!A j 6  j 6 A€¾(" M\rA€¾ k"6AŒ¾AŒ¾(" j"6  Ar6 Ar6 Aj!  Að½A06A!  6 ( j6 Ax kAqj" Ar6 Ax kAqj"  j"k!@AŒ¾( F@AŒ¾ 6A€¾A€¾( j"6  Ar6  Aˆ¾( F@Aˆ¾ 6Aü½Aü½( j"6  Ar6 j 6  ("AqAF@ Axq! ( !@ AÿM@ (" F@Aô½Aô½(A~ Avwq6   6  6  (!@  G@ (" 6  6  @ (" Aj ("E\r Aj !@ ! "Aj! ("\r Aj! ("\r A6  A! E\r@ ("At"(¤À F@ A¤Àj 6 \rAø½Aø½(A~ wq6  @  (F@  6   6 E\r  6 ("@  6 6 ("E\r  6 6  j!  j"(!  A~q6  Ar6  j 6 AÿM@ AøqAœ¾j!Aô½("A Avt"qE@Aô½  r6  ( ! 6  6  6  6  A! AÿÿÿM@ A& Avg"kvAq AtrA>s!  6 B7 AtA¤Àj!@@Aø½("A t"qE@Aø½  r6 6  A AvkA AGt! (!@ "(Axq F\r Av! At! Aqj"("\r  6  6  6  6  (" 6 6 A6  6  6 Aj!  @ E\r@ ("At"(¤À F@ A¤Àj 6 \rAø½ A~ wq"6  @  (F@  6   6 E\r 6 ("@ 6  6 ("E\r 6  6 @ AM@   j"Ar6 j" (Ar6   Ar6  j" Ar6  j 6 AÿM@ AøqAœ¾j!Aô½("A Avt"qE@Aô½  r6  ( ! 6  6  6  6  A! AÿÿÿM@ A& Avg"kvAq AtrA>s!  6 B7 AtA¤Àj!@@ A t"qE@Aø½  r6  6  6  A AvkA AGt! (!@ "(Axq F\r Av! At!  Aqj"("\r  6  6  6  6  (" 6  6 A6  6  6 Aj!  @ E\r@ ("At"(¤À F@ A¤Àj 6 \rAø½ A~ wq6  @  (F@ 6  6 E\r 6 ("@ 6  6 ("E\r 6  6 @ AM@   j"Ar6 j" (Ar6   Ar6  j" Ar6  j 6 @ AxqAœ¾j!Aˆ¾(!A Avt" qE@Aô½  r6  ( ! 6  6  6  6 Aˆ¾ 6Aü½ 6 Aj! \nAj$ È#Ak"$ A:A!  Aˆ·(E@  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  -\n -r:  - -r:  - -r:  -\r -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r: -AtA€€€kAu! Aj$  }@@ "AqE\r -E@A @ Aj"AqE\r -\r  @ "Aj!A€‚„ ("k rA€‚„xqA€‚„xF\r @ "Aj! -\r  k " A€O@AÖ\nAÿ AëAã   éA!@ AÀK\r AÁk"A@I\r@ A E@ AÿqA¿M@ A@kAA¥ü BùÂø›‘£³ðÛ78 Bëú†Ú¿µöÁ70 BŸØùÙ‘ڂ›7( Bхšïúϔ‡Ñ7 Bñíôø¥§ý§¥7 B«ðÓô¯î¼·<7 B»Îª¦ØÐë³»7 ­Bˆ’÷•ÿÌù„ê…7  #A€k"$@ AÁkAÿqA¿M\r E\r AÁkAÿqA¿M\r A@kAA¥ü BùÂø›‘£³ðÛ78 Bëú†Ú¿µöÁ70 BŸØùÙ‘ڂ›7( Bхšïúϔ‡Ñ7 Bñíôø¥§ý§¥7 B«ðÓô¯î¼·<7 B»Îª¦ØÐë³»7 ­ ­B†„Bˆ’÷•ÿÌù„ê…7 AA€ü @   ü\n Aàj A€ü\n A€6à A€ A€j$A   \r A!  \r  !A ì~#A k" $@ P\r ) " B†|7 A(j! BÀ BˆB?ƒ"}" X@ Bƒ!B!@ B?…BZ@ Büƒ!\n@  |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B|! B|" \nR\r P\r @  |§j  §j-: B|! B|" R\r A€j"\r]  §j!  }"B?V@@  \r] A@k! B@|"B?V\r @ P\r Bƒ!B!B! BZ@ B<ƒ!B!@ §"j j-: Ar"\rj  \rj-: Ar"\rj  \rj-: Ar"j j-: B|! B|" R\r P\r @ §"j j-: B|! B|" R\r A   Bƒ!B! BZ@ B|ƒ!@  |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B|! B|" R\r P\r @  |§j  §j-: B|! B|" R\r A j$A A \r  A A ÷~ (,"AvAÿÿÿq­ ( B\r† B†„ B†„" \rBˆ| B€€€|"B€€€ðƒ}> B † B†„ B†„ Bˆ|" B€€€|"B€€€àƒ}>  B€€€ðƒ} B\n† B†„ B†„ \nB † B†„ B†„" B€€€|"\nBˆ|" B€€€|" Bˆ|> B€€€àƒ}> B\r† B†„ B†„ B† B†„ B†„"B€€€|"Bˆ|" B€€€|"B€€€àƒ}> B†B€€ðƒ B\n† B†„„" Bˆ| B€€€|"B€€€ƒ}>$ Bˆ | \nB€€€ðƒ}>  B€€€ðƒ}  BˆB~|"B€€€|"Bˆ|>  B€€€àƒ}> •#Ak" 6  6 A;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (- sr;  / ( -\n (-\nsr;  / ( - (- sr;  / ( - (- sr;  / ( -\r (-\rsr;  / ( - (-sr;  / ( - (-sr;  /;  /Ak; A€Â/Av /Avs; /Ak ™AÁ!A€!@@ Aÿq"A€-G@ A‚„l!@A€‚„ ( s"k rA€‚„xqA€‚„xG\r Aj! Ak"AK\r E\r Aÿq!@ -F@  Aj! Ak"\r A A ?@ ­B€€€€ B?|Bˆ}V\r B€€€€Z\r     A´·(  \' B€€€€Z@     A°·( § #A€k"$A! -"AsAÿq - - - - - - - - - -\n - - -\r - - - - - - - - - - - - - - - - -qqqqqqqqqqqqqqqqqqqqqqqqqqqqqAsrAÿqAkAì -"kqAv A‚Â-Av AvsrrAqE@ AÐj"\r 4 A j \r A (Ä"k6” A (À"k6 A (¼"k6Œ A (¸"k6ˆ A (´"k6„ A (°"k6€ A (¬"k6ü A (¨" k6ø A (¤"\nk6ô A ( " k6ð Aj" Aðj"  6ä  6à  6Ü  6Ø  6Ô  6Ð  6Ì  6È  \n6Ä  Aj6À Aàj" AÀj" A0j"A°  (`! (0! (d! (4! (h! (8! (l! (I Aj!\r  ) 7ˆ  )7€  )7ø  )7ð  )7è  )7  )7˜  )7   )7¨  ) 7°  )7¸  )7À  )7È  )7Ð  ) 7Ø  Aèj"\n \n   Aj"   A¸j"    \n \n          \n \n          \n         A!@ Aj" Av A j j,Œ A€j" i          A>I Aj!\r Aàj$ ±#Ak" 6  6A! A;@  / ( j- ( j-sr;  / Ar" ( j- ( j-sr; Aj"A G\r  /;  /Ak; A€Â/Av /Avs; /Ak 4#A k"$A!   E@ Aж A(! A j$   A  AŒ·( €@@@ "Aÿq"@ Aq@@ -"E\r  F\r Aj"Aq\r A€‚„ ("k rA€‚„xqA€‚„xG\r A‚„l!@A€‚„  s"k rA€‚„xqA€‚„xG\r (! Aj"! A€‚„ krA€‚„xqA€‚„xF\r   j  ! @ "-"E\r Aj!  AÿqG\r "A - AÿqF ` E@A -"@@  -"G\r E\r Ak"E\r Aj! -! Aj! \r A! A -k W~@Að¶("­ ­B|Bøÿÿÿƒ|"BÿÿÿÿX@ §"?AtM\r \r Að½A06A Að¶ 6  9#A k"$ * Aèj" B ! * A  A j$A –#AÐk"$ B7H B7@ A°¬)7 A¸¬)7 AÀ¬)7 AȬ)7 AЬ)7 Aج)7( Aà¬)70 Aè¬)78      AÐj$A    AeA    A eA    AeA ¡,~#A k"$ A(j"(! (P! (,!\r (T! (0! (X! (4! (\\! (8! (`! (    q  qr"At A vr­| B ˆ|">    \rq  qrAt Avr­| B ˆ|> AØ Ý~@ )8"BR@ B }"   V"BR~ Bƒ! A@k!\nB!@ BZ@ B|ƒ!@ \n )8 |§j  §j-: \n B„" )8|§j  §j-: \n B„" )8|§j  §j-: \n B„" )8|§j  §j-: B|! B|" R\r P\r @ \n )8 |§j  §j-: B|! B|" R\r )8  |"78 BT\r A@kBk B78  }!  §j! BZ@  Bpƒ"k Bƒ!  §j! P\r Bƒ! A@k!\nB!B!@ BZ@ B ƒ! B!@ \n )8 |§j  §j-: \n B„" )8|§j  §j-: \n B„" )8|§j  §j-: \n B„" )8|§j  §j-: B|! B|" R\r P\r @ \n )8 |§j  §j-: B|! B|" R\r )8 |78 š A6 @ @B€€ B€€X" Av­Z@ A€ O\rA  A6A § (Atn"AI\rA AI\r AI@ A6 A I@ A6 AÀI@ A6 A€I@ A6 A€I@ A6 A€I@ A6 A€I@ A 6 A€I@ A\n6 A€ I@ A 6 A€ÀI@ A 6 A€€I@ A\r6 A€€I@ A6 A€€I@ A6 A€€I@ A6 A€€I@ A6 A€€ I@ A6 A€€ÀI@ A6 A€€€I@ A6 A€€€I@ A6 A€€€I@ A6 A€€€I@ A6 A€€€O\r A6 A A€ÀI\rA A€€I\rA A€€I\rA A€€I\rA A€€I\rA A€€I\rA A€€ I\rA A€€ÀI\rA\n A€€€I\rA A€€€I\rA A€€€I\rA\r A€€€I\rA A€€€I\rA A€€€ I\rA A€€€ÀI\rA A€€€€I\rA A€€€€I\rA A€€€€I\rAA AN "6 Bÿÿÿÿ Bˆ ­ˆ" BÿÿÿÿZ§ (n6 AA A€€€ I 6 û E@Ag (E@A (AI@A~ @ (\r ( E\rAn (! (E@AmAz  AI@Az @ (\r (E\rAl @ ( \r ($E\rAk (0"E@Ap AÿÿÿK@Ao Ar!@ (,"AI\r A€€€K@Aq  AtI\r ((E@At (4"E@Ad AcA AÿÿÿK!  ¨~#A€k"$ A€j A€ü\nA!@ At" A€j"j" ) j)…7  Ar"j" ) j)…7  Ar"j" ) j)…7  Ar"j" ) j)…7 Aj"A€G\r  A€ü\nA!A!@  At"j" )  j)…7  Ar"j" )  j)…7  Ar"j" )  j)…7  Ar"j" )  j)…7 Aj"A€G\r @ A€j Atj" )8" )"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" )x…B ‰" )X"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰" )(" )"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" )h…B ‰" )H" | B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B‰" ) " )"\n| \nB†Bþÿÿÿƒ Bÿÿÿÿƒ~|"\n )`…B ‰" A@k")"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" \n| Bÿÿÿÿƒ \nB†Bþÿÿÿƒ~|"\n| Bÿÿÿÿƒ \nB†Bþÿÿÿƒ~|" …B ‰" )0" )"\r| \rB†Bþÿÿÿƒ Bÿÿÿÿƒ~|"\r )p…B ‰" )P"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" \r| Bÿÿÿÿƒ \rB†Bþÿÿÿƒ~|"\r …B0‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"| Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" 7  …B0‰" 7x  | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" 7P   …B‰7(   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"  …B‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" \n …B0‰"…B ‰"\n| B†Bþÿÿÿƒ \nBÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" \n…B0‰"7`  7   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7X   …B‰70   …B‰" \r| Bÿÿÿÿƒ \rB†Bþÿÿÿƒ~|" …B ‰"  | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"| Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰"7h  7   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7   …B‰78    …B‰"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B ‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰"7p  7   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7H   …B‰7 Aj"AG\r A!@ A€j Atj" )ˆ" )ˆ"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" )ˆ…B ‰" )ˆ"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰" )ˆ" )"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" )ˆ…B ‰" )ˆ" | B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B‰" )€" )"\n| \nB†Bþÿÿÿƒ Bÿÿÿÿƒ~|"\n )€…B ‰" )€"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" \n| Bÿÿÿÿƒ \nB†Bþÿÿÿƒ~|"\n| Bÿÿÿÿƒ \nB†Bþÿÿÿƒ~|" …B ‰" )€" )€"\r| \rB†Bþÿÿÿƒ Bÿÿÿÿƒ~|"\r )€…B ‰" )€"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" \r| Bÿÿÿÿƒ \rB†Bþÿÿÿƒ~|"\r …B0‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"| Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" 7  …B0‰" 7ˆ  | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" 7€   …B‰7ˆ   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"  …B‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" \n …B0‰"…B ‰"\n| B†Bþÿÿÿƒ \nBÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" \n…B0‰"7€  7   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7ˆ   …B‰7€   …B‰" \r| Bÿÿÿÿƒ \rB†Bþÿÿÿƒ~|" …B ‰"  | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"| Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰"7ˆ  7€   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7€   …B‰7ˆ    …B‰"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B ‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰"7€  7ˆ   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7ˆ   …B‰7€ Aj"AG\r  A€ü\nA!@  At"j" ) A€j" j)…7  Ar"j" )  j)…7  Ar"j" ) A€j j)…7  Ar"j" ) A€j j)…7 Aj"A€G\r A€j$ ¨$\'#AÐk"$A!\n@ A j"ŠE\r H\r gE\r H\r A€j" ‘\r A€j"\n/ @ \nA¶B" \n B  \n B  \n   \n AÀj" % Aj! ! !\nA!A!#Aàk"$@ Aàj" j  Avj-" AqvAq:  Ar"j AqvAq: Aj"A€G\r Aþ!@ "Aj!@  Aàj"j" -E\r AþK\r@  j","E\r At" ,"j" AL@ : A:   k"AqH\r : !@ Aàj j"-E@ A:  A: Aj"A€G\r E\r@ Aj" Aàjj","E\r At" ," j"\rAN@ k"AqH\r :@ Aàj j"-@ A: Aj"A€G\r  A:  \r: A: A  AOAj"AF\r@ Aj" Aàjj"," E\r At" ,"\rj"AN@ \r k"AqH\r :@ Aàj j"-@ A: Aj"A€G\r  A:  : A: AF\r@ Aj" Aàjj"," E\r At" ,"\rj"AN@ \r k"AqH\r :@ Aàj j"-@ A: Aj"A€G\r  A:  : A: AF\r@ Aj" Aàjj"," E\r At" ,"\rj"AN@ \r k"AqH\r :@ Aàj j"-@ A: Aj"A€G\r  A:  : A: AF\r Aj" Aàjj","E\r At" ,"j" AN@  k"AqH\r :@ Aàj j"-@ A: Aj"A€G\r  A:  : A: Ak! A€G\r A!@ Aà\rj" j \n Avj-" AqvAq:  Ar"j  AqvAq: Aj"A€G\r A!Aþ!@ "Aj!@  Aà\rj"j"\n-E\r AþK\r@  j"," E\r At" \n,"j"AL@ \n : A:   k"AqH\r \n : !@ Aà\rj j" -E@ A:  A: Aj"A€G\r E\r@ Aj" Aà\rjj" ,"E\r At" \n,"j" AN@  k" AqH\r \n :@ Aà\rj j" -@ A: Aj"A€G\r  A:  \n : A: A  AOAj" AF\r@ Aj" Aà\rjj","E\r At" \n," j"\rAN@ k"AqH\r \n :@ Aà\rj j"-@ A: Aj"A€G\r  A:  \n \r: A: AF\r@ Aj" Aà\rjj","E\r At" \n," j"\rAN@ k"AqH\r \n :@ Aà\rj j"-@ A: Aj"A€G\r  A:  \n \r: A: AF\r@ Aj" Aà\rjj","E\r At" \n," j"\rAN@ k"AqH\r \n :@ Aà\rj j"-@ A: Aj"A€G\r  A:  \n \r: A: AF\r Aj" Aà\rjj"," E\r At" \n,"j"AN@  k"AqH\r \n :@ Aà\rj j"-@ A: Aj"A€G\r  A:  \n : A: Ak! A€G\r Aàj"\n   ) 7À  )7¸  )7°  )7¨  )7   )(7È  )07Ð  )87Ø  A@k)7à  )H7è  )P7ð  )X7ø  )`7€  )h7ˆ  )p7 AÀj" A j"   A¸j" A(j Aèj" Aj" AÐj   Aøj     \n    AÈj"  Aðj"   A˜j"\n   A€j"            \n   A j"            \n   AÀj"            \n   Aàj"            \n   A€\nj"            \n   A  j"            \n   AÀ j  B7 B7 B7 B7 B7 B7, A(j""A6 B74 B7< B7D B7T B€€€€7L B7\\ B7d B7l A6t AÐj!#Aÿ!@@@@ Aàj" j-\r Aà\rj" j-\r  Ak"j-E@  j-E\r ! AH\r@ AÀj" @ " Aàjj,"AJ@ A j"       \n    Aàj AþqAvA lj  AN\r A j" AÀj"      \n    AàjA kAþqAvA ljQ @ Aà\rj j,"AJ@ A j" AÀj"      \n    AþqAvAølAÀ\rji  AN\r A j AÀj"      \n   ( ! (È!\r (¤! (Ì! (¨! (Ð! (¬! (Ô! (°! (Ø! (´! (Ü! (¸! (à! (¼! (ä! (À! (è!  (ì" (Ä"!k6Œ   k6ˆ   k6„   k6€   k6ü   k6ø   k6ô   k6ð   k6ì  \r k6è  !j6ä   j6à   j6Ü   j6Ø   j6Ô   j6Ð   j6Ì   j6È   j6Ä  \rj6À  A kAþqAvAølAÀ\rj"A(j   AÐj \n (”! (! (Œ! (ˆ!! („!$ (€!% (ü!& (ø!\' (ô!( (ð!) (è! (! (ì! (”!\r (ð! (˜! (ô! (œ! (ø! ( ! (ü! (¤! (€! (¨! („! (¬! (ˆ! (°!  (Œ"* (´"+j6Œ   j6ˆ   j6„   j6€   j6ü   j6ø   j6ô   j6ð  \rj6ì   j6è  + *k6ä   k6à   k6Ü   k6Ø   k6Ô   k6Ð   k6Ì   k6È  \r k6Ä   k6À  )At" (¸"k6  (At" (¼"\rk6”  \'At" (À"k6˜  &At" (Ä"k6œ  %At" (È"k6   $At" (Ì"k6¤  !At" (Ð"k6¨  At" (Ô"k6¬  At" (Ø"k6°  At" (Ü"k6´   j6¸  \rj6¼   j6À   j6Ä   j6È   j6Ì   j6Ð   j6Ô   j6Ø   j6Ü  AÀj  "  #   Ak! AJ\r  Ak! \r Aàj$ A j" ,A  < F A 1r!\n AÐj$ \n ª"5~#A°k";$ ;Aàj"</ @ AvAÿÿÿq­ 3 1B†B€€üƒ„" ~  ("?AvAÿÿÿq­"~| 5BˆBÿÿÿƒ" ~|  Av­ 1B†„ 1B†„BˆBÿÿÿƒ|") #B˜Ú~  0B€€€ÿÿÿÿƒ} Bˆ|"B“Ø(~| "Bçö\'~| $BӌC~| %BÑ«~| (Bˆ|| )B€€@}"(B€€€ƒ}"| B€€@}"0B€€€ƒ}") . 4 5B€€€ƒ} Bƒ¡V~ !BÑ«~| 2| 3B€€€ƒ}  !BӌC~| BÑ«~| #Bƒ¡V~| 1B€€€ƒ} ~  ~|  ~| \r ~|  ~| ~|  ~|  ~| ~| \n ~| ~  ~|  ~|  ~|  ~| \r ~| ~|  ~|  ~| ~| \n ~|"1B€€@}"2Bˆ|"3B€€@}"4Bˆ|"5B€€@}"7B‡|"B€€@}"6B‡|"Bƒ¡V~ BÑ«~|| /B€€€ƒ} & BÑ«~ BӌC~|  6B€€€ƒ}"Bƒ¡V~| %B˜Ú~ $B“Ø(~| ,| * %B“Ø(~| +B€€€ƒ}  ~  ~|  ~|  ~|  ~|  ~| (\n"Av­ 1B†„ 1B†„BˆBÿÿÿƒ| AvAÿÿÿq­  ~  ~|  ~|  ~|  ~||"*B€€@}"+Bˆ|",B€€@}".Bˆ|"/B€€@}"6B‡| -B€€€ƒ}"-B€€@}"8B‡|| \'B€€€ƒ}"&B€€@}"\'B‡|"9B€€@}":B‡| )B€€@}")B€€€ƒ} 9 :B€€€ƒ} & \'B€€€ƒ} BӌC~ Bçö\'~| BÑ«~| -| 8B€€€ƒ} 5 7B€€€ƒ} BӌC~ !Bçö\'~| #BÑ«~| "Bƒ¡V~| 3| 4B€€€ƒ} Bçö\'~ !B˜Ú~| #BӌC~| 1| "BÑ«~| $Bƒ¡V~| 2B€€€ƒ} (Av­  ~  ~|  ~| \r ~| ~|  ~|  ~| ~|  ~|  ~| ~| \n ~|| (Bˆ|"B€€@}"Bˆ|"B€€@}" B‡|"B€€@}"\nB‡|"Bƒ¡V~| / B˜Ú~| 6B€€€ƒ} Bçö\'~| BӌC~| BÑ«~|  \nB€€€ƒ}"Bƒ¡V~|"\nB€€@}" B‡|" B€€@}"\rB‡| \rB€€€ƒ} \n B€€€ƒ} B“Ø(~ ,| .B€€€ƒ} B˜Ú~| Bçö\'~|  B€€€ƒ} B˜Ú~ !B“Ø(~| #Bçö\'~| "BӌC~| $BÑ«~| %Bƒ¡V~| | B€€€ƒ} 0B‡|"B€€@}"B‡|"Bƒ¡V~| BӌC~| BÑ«~| * +B€€€ƒ}  ~  ~|  ~|  ~| 5BˆBÿÿÿƒ|  ~  ~|  ~| ("Av­ 1B†„ 1B†„BˆBÿÿÿƒ|" B€€@}"\nBˆ|" B€€@}" Bˆ| B“Ø(~| B˜Ú~| BÑ«~| Bçö\'~| BӌC~|"\rB€€@}"B‡|"B€€@}"B‡|   B€€€ƒ} )B‡|"B€€@}"B‡"Bƒ¡V~| B€€€ƒ} \r BÑ«~| B€€€ƒ} B€€€ƒ} B“Ø(~| BӌC~| B˜Ú~| Bçö\'~| AvAÿÿÿq­  ~  ~||  ~ 3 1B†B€€üƒ„|" B€€@}" Bˆ|"\rB€€@}"Bˆ| \nB€€€ƒ} Bçö\'~| B“Ø(~| B˜Ú~|"B€€@}" B‡|"\nB€€@}"B‡| \n BӌC~| B€€€ƒ}  Bçö\'~| B€€€ƒ} \r B€€€ƒ} B˜Ú~| B“Ø(~| B€€€ÿÿÿƒ} B“Ø(~|"B€€@}"B‡|"B€€@}" B‡|  B˜Ú~| B€€€ƒ}  B€€€ƒ} B“Ø(~|"B‡|" B‡|"\nB‡|" B‡|" B‡|"\rB‡|"B‡|"B‡|"B‡|"B‡|"B‡  B€€€ƒ}|"B‡"B“Ø(~ Bÿÿÿƒ|"< Bˆ<! B˜Ú~ Bÿÿÿƒ| B‡|"B ˆ<$ Bˆ<# BˆBƒ B†„<" Bçö\'~ \nBÿÿÿƒ| B‡|"Bˆ<& B† B€€àƒBˆ„<% BӌC~ Bÿÿÿƒ| B‡|"B ˆ<) Bˆ<( B† B€€ÿƒBˆ„<\' BÑ«~ Bÿÿÿƒ| B‡|"B ˆ<, Bˆ<+ B† B€€øƒBˆ„<* Bƒ¡V~ \rBÿÿÿƒ| B‡|"Bˆ<. B† B€€ÀƒBˆ„<- Bÿÿÿƒ B‡|"B\nˆ<1 Bˆ<0 B† B€€þƒBˆ„</ Bÿÿÿƒ B‡|"B\rˆ<4 Bˆ<3 Bÿÿÿƒ B‡|"<5 B† B€€ðƒBˆ„<2 Bˆ<6 Bÿÿÿƒ B‡|"B ˆ<9 Bˆ<8 BˆBƒ B†„<7 Bÿÿÿƒ B‡|"Bˆ<; B† B€€àƒBˆ„<: B‡" Bÿÿÿƒ|"Bˆ<? B ˆ<> B† B€€ÿƒBˆ„<< § §jAv­<= AÀ AÀ @ BÀ7 ;A°j$A >#A k"$   A(   AjB A”·( A  A j$ Z#A@j"$  B C  )7  )7  )7  )7 AÀ AŒ·( A@k$ °#" AÀkA@q"$  6¼@ AÀM@ AÀj"AA AH\r  A¼jB AH\r   ­ AH\r    AÀj"AAAÀAH\r  A¼jB AH\r   ­ AH\r  AðjAÀAH\r )ˆ7 )€7 )x7 )p7 A j! A k"AÁO@@  )¨7h  ) 7`  )˜7X  )7P  )ˆ7H  )€7@  )x78  )p70 AðjAÀ A0jBÀAA`AH\r )ˆ7 )€7 )x7 )p7 A j! A k"AÀK\r  )¨7h  ) 7`  )˜7X  )7P  )ˆ7H  )€7@  )x78  )p70 Aðj"  A0jBÀAA`AH\r E\r  ü\n AÀjA€$ A€€€€ A A€€€€x A€À A€ Ž@ -"A:kAÿqAöI\r ! !@ ! A™³æÌK\r AÿqA0k" A\nl"AsK\r  j! Aj"-"A:kAÿqAõK\r F\r A0F Gq\r  6 !  ñ AyqAF@@@@@@@@ @@ AM@@ ! @@@@@  j," AÐÿsAjAsAvA?q AÔÿsAjAsAvA>qr A¹j Aûk AŸÿjAsqAvqAÿqr Aj A:k AÐÿjAsqAvqAÿqr AÛk AÁk"\nAsqAv \nqAÿqr"\nAk A¾ÿsAjqAvAÿq \nr"\nAÿG\rA!\n E\r  ?@ Aj" O\r  !  \n Atj! AK\r Aj!   Aj" I!  Ak!  \rM\r \rj  v: \rAj!\r A!\n Aj" I\r  @@  j," A ÿsAjAsAvA?q AÒÿsAjAsAvA>qr A¹j Aûk AŸÿjAsqAvqAÿqr Aj A:k AÐÿjAsqAvqAÿqr AÛk AÁk"\nAsqAv \nqAÿqr"\nAk A¾ÿsAjqAvAÿq \nr"\nAÿF@A!\n E\r  ?@ Aj" O\r  !  \n Atj!@ AI@ Aj!  Ak!  \rM\r \rj  v: \rAj!\r A!\n Aj" O\r !   Aj" I!  !Að½AÄ6A!\n AK\r A !A! \n@ !  A tAsq@ !  @ Aq\r Av"\nE\r E\r  K!@ F@AÄ!  @ j,"A=F@ \nAk!\n   ?\rA! !  Aj! \n\r A! E\r O\r@  j,?E\r Aj" G\r !  A!  !  AÄ! O@ !  A! j-A=G@ !  Aj! \nAF@A!   F@  K!AÄ!   j-A=F\r Að½ 6  Aj!A! \r! @ @   j6   F\rAð½A6A! @  6   •@@@@@ AyqAG\r An"At!@ A}l j"E\r AqE@ Aj!  Av jAj!  M\r@ AO@ E@A!  A!A!  E@A!  A!A!  @  j- Atr! Ar!@ j  Ak"vA?q"AÇj AæÿjAv"\nAsq AÌÿjAv" q \n AÁjqr AÁÿjAsAvAßqr Aüj AÂÿjAvq Asqr AÁÿsAjAsAvA-qr: Aj! AK\r Aj" G\r E\rAÁÿ!A-! Aß   @  j- Atr! Ar!@ j  Ak"vA?q"AÇj AæÿjAv"\nAsq AÌÿjAv" q \n AÁjqr AÁÿjAsAvA/qr Aüj AÂÿjAvq Asqr AÁÿsAjAsAvA+qr: Aj! AK\r Aj" G\r E\rAÁÿ!A+! A/ ! j A ktA?q"AÇj AæÿjAv"Asq AÌÿjAv"q  AÁjqr   jAsAvqr Aüj AÂÿjAvq Asqr AÁÿsAjAsAvqr: Aj!  K\r @  O@ !   k"E\r jA= ü  Aj"  K k"@ jA ü  AÐA AçAß  ˜~#A@j"$@ AÁkAÿqA¿K@A! )PP@ (à"AO@ A@k" )"B€|7 )H Bÿ~V­|7H Aàj"N (àA€k"6à AO\r @  Aàj ü\n (à! A@k" )" ­|" 7 )H  V­|7H -ä@ B7X B7P Aàj!A!A€ k"@  jA ü N  )7  )7  )7  )7  ) 7  )(7(  )070  )878 @   ü\n AÀ A€ A@k$   Aê\nAÒ A²Aö A  j@ j" -   j-jk": Ar"j" -  j- AvAqjk": AvAq! Aj! Aj"AÀG\r ° #A k"$ (, Bˆ§s! (( §Ats! ($ Bˆ§s!\n ( §Ats! A@k!@  )x7˜  )p7  )`7ð  )h7ø  )p7à  )x7è A€j" Aðj Aàj  )ˆ7x  )€7p  )P7Ð  )X7Ø  )`7À  )h7È  AÐj AÀj  )ˆ7h  )€7`  )7°  )7¸  )P7   )X7¨  A°j A j  )ˆ7X  )€7P  )07  )87˜  )7€  )7ˆ  Aj A€j  )ˆ7  )€7  ) 7p  )(7x  )07`  )87h  Aðj Aàj  )ˆ78  )€70  )7P  )7X  ) 7@  )(7H  AÐj A@k  )ˆ7(  )€7  )70  )78  )7  )7(  A0j A j  )ˆ7  )€7  )7  )˜7  )7  )7  Aj   )ˆ7  )€7  ( s"\r6  ( s"6  ( \ns"6  ( s"6  ( s"6  (D \ns"6D  (H s"6H  (L s"6L Aj" AG\r @@@@ Ak (! (0! ( ! (`! (P!\n (! (4! ($! (d! (T! (! (8! ((! (h! (X! ( (< (, (\\ (lssss s \rs6     ssss s s6   ssss s s6    \nssss s s6  (! (0! ( ! (! (4!\n ($! (! (8! ((! ( (< (,ss \rs6  ss s6 \n ss s6   ss s6 (P! A@k(! (p! (`! (T!\n (D! (t! (d!\r (X! (H! (x! (h! (\\ (L (| (lsss6    sss6 \n \rsss6    sss6  E\r A ü A j$ ƒ #A k"$ (! (0! (! (! (4! (! (! (8! ( ! (! ( A&l¬ ~ $¬" ~| Al¬" #At¬"~|  ~|  ~|  ~|B†"B€€€|"B‡  ~  !¬"~|  ~|  ~|  \r~|B†|"B€€€|"B‡  \r~  ~|  \n~| ~|  ~|  ~|B†|" B€€€|"B€€€àƒ}> ~  ~|  \n~|  ~|  ~|B† B‡|" B€€€|" B€€€ðƒ}>  ~  \r~| \n ~|  ~|  ~|B† B‡|" B€€€|"B€€€ðƒ}> \n ~  ~|  ~|  ~|  ~|  &¬"~|B† B‡|" B€€€|"B€€€àƒ}>  B€€€ðƒ}  B€€€`ƒ} B‡|"B€€€|" Bˆ|>  B€€€àƒ}>  \n~  ~| ~|  ~|  ~|B† B‡|" B€€€|"B€€€ðƒ}>$  B€€€ðƒ}  B€€€`ƒ} B‡B~|"B€€€|"Bˆ|>  B€€€àƒ}> ­  j!@@ ("Aq\r AqE\r (" j!@@@ k"Aˆ¾(G@ ( ! AÿM@  ("G\rAô½Aô½(A~ Avwq6  (! G@ (" 6  6  (" Aj ("E\r Aj !@ ! "Aj! ("\r Aj! ("\r A6  ("AqAG\rAü½ 6  A~q6 Ar6  6  6  6  A! E\r@ ("At"(¤À F@ A¤Àj 6 \rAø½Aø½(A~ wq6  @ (F@  6   6 E\r  6 ("@  6  6 ("E\r  6  6 @@@@ ("AqE@AŒ¾( F@AŒ¾ 6A€¾A€¾( j"6 Ar6 Aˆ¾(G\rAü½A6Aˆ¾A6 Aˆ¾(" F@Aˆ¾ 6Aü½Aü½( j"6 Ar6 j 6 Axq j! ( ! AÿM@ (" F@Aô½Aô½(A~ Avwq6   6  6  (!  G@ (" 6  6  (" Aj ("E\r Aj !@ ! "Aj! ("\r Aj! ("\r A6   A~q6 Ar6 j 6  A! E\r@ ("At"(¤À F@ A¤Àj 6 \rAø½Aø½(A~ wq6  @  (F@  6   6 E\r  6 ("@  6  6 ("E\r  6  6 Ar6 j 6 G\rAü½ 6 AÿM@ AøqAœ¾j!Aô½("A Avt"qE@Aô½  r6   ( !  6  6 6 6 A! AÿÿÿM@ A& Avg"kvAq AtrA>s! 6 B7 AtA¤Àj!@@Aø½("A t"qE@Aø½  r6  6 6  A AvkA AGt! (!@ "(Axq F\r Av! At!  Aqj"("\r  6 6 6 6 (" 6  6 A6 6 6 ‰#AÀk"$ A(j" 4 B7T A6P B7\\ B7d B7l A6t Aðj"  AÀj" A° A!  (ðAk"6ð  (ÀAj6À (ô! (ø!\n (ü! (€! („!\r (ˆ! (Œ! (! (”! Aj"        j   Aàj"      („" k6T  (€" k6P  (|" k6L  (x" k6H  (t" \rk6D  (p" k6@  (l" k6<  (h" \nk68  (d" k64  (`" k60  A0j\r@ A E@   j6$   j6   j6   j6  \r j6  j6  j6  \n j6  j6   j6 A j" \r A E\r Aà  A j \r - Aq -AvF@ A (k6 A ($k6$ A ( k6 A (k6 A (k6 A (k6 A (k6 A ( k6 A (k6 A (k6 Aøj A! AÀj$  þ A€K@A0  A€O@Að½A06A  AA A jAxq A I"AÌj"E\r Ak!@ A?qE@ !  Ak"("Axq A?jA@qAk"AÀA  kAMj" k"k! AqE@ (!  6   j6    (AqrAr6  j" (Ar6   (AqrAr6  j" (Ar6   @ ("AqE\r Axq" AjM\r   AqrAr6  j"  k"Ar6  j" (Ar6   Aj "E@A0 6A A€  A„·(  Aü¶( -~ ­ ­B †„"BZ Aj  B}  ZA    ­ ­B †„  Z    ­ ­B †„  K   ­ ­B †„  t  ­ ­B †„  Ì   ­ ­B †„ Ar    ­ ­B †„ þ    ­ ­B †„ ü    ­ ­B †„ ý   ­ ­B †„ â   ­ ­B †„ ­ ­B †„ Ð   ­ ­B †„A€·(   ­ ­B †„ Aø¶(   ­ ­B †„ Aô¶(   ­ ­B †„  ã   ­ ­B †„C   ­ ­B †„    ­ ­B †„  ` -~ ­ ­B †„"BZ Aj  B}  YA    ­ ­B †„  Y    ­ ­B †„  J   ­ ­B †„   ð   ­ ­B †„   ñ   ­ ­B †„#   ­ ­B †„ Û   ­ ­B †„ Ü ²#Ak" 6  6A! A;@  / ( j- ( j-sr;  / Ar" ( j- ( j-sr; Aj"AÀG\r  /;  /Ak; A€Â/Av /Avs; /Ak á#Ak"$ A6 Aj"  A  )7 AÐj"BÀ Aj 0 Aj" Aü¶( AÀ   A€·( Aà¶B }BƒA€·(   A€·( Aà¶B }BƒA€·(  7H  AÈj"BA€·(  7H  BA€·(  A0j"A„·( A€  5! A@ E\r @ §"@ A ü A!    Aj AjèA! AjA  Aj$  ¬#A€k" $ A6 Aj"\n  A )7 A@k"BÀ Aj" \n0 A€j" Aü¶( AÀ   A€·( Aà¶B }BƒA€·(   \nè  A€·( Aà¶B }BƒA€·( 78  A8j"BA€·( 78  BA€·(  A„·( A€ @ B7 AjA  A€j$A J#A k"$A!@ BT\r   =\r Aj  B}  Y! A  A j$  O#A k"$ BðÿÿÿT@A!   =E@ Aj    J! A  A j$   è#A k"$ -: -: -: -: -: -: -: -: -: - : -\n:\n - : - : -\r:\r -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -!  -Aøq: AÀr  Aÿq:  ; ,A! -Aÿq - - - - - - - - - - - - - - - - - -\r - - -\n - - - - - - - - - -AsrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrAkA€qE@AA A ! A j$  Ž#AÀk"$A!@ gE\r H\r  2\r hE\r -: -: -: -: -: -: -: -: -: - : -\n:\n - : - : -\r:\r -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -!  -Aøq: AÀr  Aÿq: A j" Ž , -Aÿq - - - - - - - - - - - - - - - - - -\r - - -\n - - - - - - - - - -AsrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrAkA€q\rAA A ! AÀj$  A€€€ I#Ak" $A! Aj"\nB7 \nA6A \n        » \nW Aj$ å#A0k"$ @ Aæ @ -A$G\r -A7G\r -A$G\r -6"\nE\r A j AjU"E\r Aj U"E\r  k Aj!@A E\r  Ak"j" -A$G\r "@  k   " j"A-j" AæK\r K\r    B \nA€k­† ( ( AjA »\r @   ü\n  j"A$: AsAæj! Aj!A!@@ ! "AK@ !  Aj"AA k" AO" j! Aj"\n j-!A!A E\r  \nj-At r!A Aj"F\r  \nj-At r!A ! E\r  A?qA€j-: AF\r  AvA?qA€j-:  j Aj F\r AF\r  A vA?qA€j-: Aj E\r AF\r  AvA€j-: Aj "k! \r AjA A! E\r  AæjO\r A: ! A0j$  ½ (q! A!@ j A j"\n j-  j-s: Ar"j  \nj-  j-s: Aj! Aj" G\r E\r j A j j-  j-s: A jAÀ A  Aðj$A „~#Aðk"$ BR@  )7  )7  )7  )7 )! B7h  7`@ BÀZ@@ Aàj AF  -hAj":h  -i Avj":i  -j Avj":j  -k Avj":k  -l Avj":l  -m Avj":m  -n Avj":n  -o Avj:o A@k! B@|"B?V\r P\r A! A j Aàj AF §"Aq!A! BZ@ As"?k6  - 2s"6x   ,s" k6H   /s"6t   .s" k6D   1s"6p   0s" k6@   5s"6l   4s" k6<   7s" 6h  6s" k68   :s"6d  \n 8s"\n k64  >s" 6`   q!A!@ j A j" j-  j-s: Ar"j  j-  j-s: Aj! Aj" G\r E\r j A j j-  j-s: A jAÀ A  Aðj$A ‹~#Aðk"$ ­ ­B †„"\nBR@  )7  )7  )7  )7 )! B7h  7`@ \nBÀZ@@ Aàj AD  -hAj":h  -i Avj":i  -j Avj":j  -k Avj":k  -l Avj":l  -m Avj":m  -n Avj":n  -o Avj:o A@k! \nB@|"\nB?V\r \nP\r A! A j Aàj AD \n§"Aq!A! \nBZ@ Aq!A!@ j A j" j-  j-s: Ar"j  j-  j-s: Aj! Aj" G\r E\r j A j j-  j-s: A jAÀ A  Aðj$A ‹~#Aðk"$ ­ ­B †„"\nBR@  )7  )7  )7  )7 )! B7h  7`@ \nBÀZ@@ Aàj AE  -hAj":h  -i Avj":i  -j Avj":j  -k Avj":k  -l Avj":l  -m Avj":m  -n Avj":n  -o Avj:o A@k! \nB@|"\nB?V\r \nP\r A! A j Aàj AE \n§"Aq!A! \nBZ@ AE@ A€j"AAA  B    B    Aàj"A A j    Î! )X7 )P7 )H7 )@7 A  A  A $    ­ ­B †„   Í d~ ­ ­B †„!#A@j"$@ A j  @A!  A! A€¶ A jA\r     Z! A  A@k$    ­ ­B †„   Î .~ ­ ­B †„"BðÿÿÿZ@ Aj    K d~ ­ ­B †„!#A@j"$@ A j  @A!  A! A€¶ A jA\r     K! A  A@k$  x~@#Ak"$ ­ ­B †„"B€€€€T@ BR@ §!@ A: jA¸· AjA: Aj" G\r Aj$  AÂ\nA¨ AÆAÄ N#A k"$   A(  ­ ­B †„ Aj ­ ­B †„ A”·( A  A j$  ­ ­B †„ B A”·( (  ­ ­B †„  ­ ­B †„ A”·(  ­ ­B †„  A·(   ­ ­B †„  b   ­ ­B †„   8  ­ ­B †„  0   ­ ­B †„  c \n mA  ­ ­B †„  ­ ­B †„ 9  ­ ­B †„  O ª~ ­ ­B †„!\n ­ ­B †„! #Ak"$ @ B7 @ Aÿ: A!\r@@ \nBT\r \nB}" BïÿÿÿZ\r A j"BÀ A j" 0 Aàj" Aü¶( AÀ   A€·( A³B }BƒA€·( B7X B7P B7H B7@ B78 B70 B7( B7  -:  BÀ A 8 - !  -:  BÀA€·(  Aj" A€·( A³ \nB}BƒA€·(  7  Aj"BA€·(  \nB/|7  BA€·(  A„·( A€   §jA1@ A    A 8 -$ -s:$ -% -s:% -& -s:& -\' -s:\' -( -s:( -) -s:) -* -s:* -+ -s:+ ó@ AqE@ AE\r  )7ø  )7ð  )7è  )7à  )$7€ Aàj" B( b )ø7 )ð7 )è7 )à7 )€!\n A6 \n7$ @  7 A!\r E\r  : Aj$ \r   Û~ ­ ­B †„!\n ­ ­B †„! #A€k"$ @ B7 \nBïÿÿÿT@ Aj"BÀ A j" 0 AÐj" Aü¶( AÀ   A€·( A³B }BƒA€·( B7 B7H B7@ B78 B70 B7( B7 B7  :  BÀ A 8  BÀA€·(  -: Aj"  \n A 8   \nA€·( A³ \nBƒA€·(  7  Aj"BA€·(  \nB@}7  BA€·(   \n§j"A„·( A€ -$ -s:$ -% -s:% -& -s:& -\' -s:\' -( -s:( -) -s:) -* -s:* -+ -s:+ ó@ AqE@ AE\r  )7è  )7à  )7Ø  )7Ð  )$7ð AÐj" B(  b )è7 )à7 )Ø7 )Ð7 )ð! A6 7$ @  \nB|7 A€j$A   1~ ­ ­B †„"BðÿÿÿZ@ Aj    JA  nA P~ ­ ­B †„! Aœ A\n@E@  A[  A’ A @E@  A[  Að½A6A N~ ­ ­B †„! Aœ A\n@E@  Ï  A’ A @E@  Õ  Að½A6A Q~ ­ ­B †„! ­ ­B †„! @@@ Ak   Ð     Ö s~ ­ ­B †„! ­ ­B †„! ­ ­B †„!\r@@@ \nAk   \r A×    \r AÑ  Að½A6A   ­ ­B †„Ï - ­ ­B †„  ­ ­B †„  ­ ­B †„ \nÑ  ­ ­B †„ A[  ­ ­B †„ A[   ­ ­B †„Õ ´ (Aÿÿÿq6 (AvAƒþÿq6 (AvAÿÿq6 ( AvAÿÿÀq6 ( ! B7 B7 A6$ AvAÿÿ?q6 (6( (6, (60 (! A:P B78 64A   ­ ­B †„ ­ ­B †„ Ö - ­ ­B †„  ­ ­B †„  ­ ­B †„ \n× l#Aðk"$ B7( A ³)7 A¨³)7 A°³)7 A¸³)7 Aj"  ­ ­B †„!  * Aðj$A   ­ ­B †„! ä#"AÀkA@q"$  (Aÿÿÿq6@  (AvAƒþÿq6D  (AvAÿÿq6H  ( AvAÿÿÀq6L ( ! B7T B7\\ A6d  AvAÿÿ?q6P  (6h  (6l  (6p (! A: B7x  6t A@k"  n  A0j"m 5 $    ­ ­B †„    Ý x~#" AÀkA@q"$A! ­ ­B †„" B0Z@ A@k"AAA  B    B    A j"A A j B }   ³! $  ¿~ ­ ­B †„! #" A€kA@q"$A! A@k" A j">E@ A€j"AAA  B    B    Aàj"A A j    ´! )X7 )P7 )H7 )@7 A  A  A $    ­ ­B †„   ³ H~ ­ ­B †„!#A k"$A!   =E@     Y! A  A j$    ­ ­B †„   ´ .~ ­ ­B †„"BðÿÿÿZ@ Aj    J H~ ­ ­B †„!#A k"$A!   =E@     J! A  A j$  }#A k"$ A@k" A +   ­ ­B †„  Aàj" Aj" BÀ   AÀ °!  AÀ1 A j$A  Fr ]#Aàk"$  A +   ­ ­B †„  A j" AÐj" BÀ   AÀ Aàj$A y#Ak"$ A j" A -   ­ ­B †„!  Aðj"* Aˆj" B !  * A  :  -^: -?:  -_: AÀA! $   ž#"! A€kA@q"$  "@A! Aàj"  E@ A€j"AAAÀ  B   A   B    B    A j"AÀ A€  - :  " -@:  -!: -A:  -": -B:  -#: -C:  -$: -D:  -%: -E:  -&: -F:  -\': -G:  -(: -H:  -): -I:  -*:\n -J:\n  -+: -K:  -,: -L:  --:\r -M:\r  -.: -N:  -/: -O:  -0: -P:  -1: -Q:  -2: -R:  -3: -S:  -4: -T:  -5: -U:  -6: -V:  -7: -W:  -8: -X:  -9: -Y:  -:: -Z:  -;: -[:  -<: -\\:  -=: -]:  ->: -^:  -?: -_: AÀA! $    A B AA` AŒ·( \n   A£ A¶ Aû AÎ #A€k"$ A j" A +   #  AÀj.  )Ø7  )Ð7  )È7  )À7  \n  u AÄ W#A@j"$@ A j  @A!  A! Aж A jA(\r    ½! A  A@k$  W#A@j"$@ A j  @A!  A! Aж A jA(\r    ¾! A  A@k$  \n       Æ \r   Ç  È Ê  Ë A® :~ ) ! )(! )0! )87 7 7 7A :~ )! )! )! )7 7 7 7A ‹@@@ BÀT\r B@|"B¿ÿÿÿV\r  A@k"  ArE\r E\r §"E\r A ü A! E\r B7A @  7 A! E\r §"E\r  ü\n  ˆ#Ak"$ A@k! §"@   ü\n A! Aj   As@ )BÀR@ @ B7 A@k"@ A ü A!  E\r  B@}7 Aj$      AsA m#A@j"$  B C  -Aøq:  -A?qAÀr: )7 )7 )7 )7 AÀ A@k$A ç\n\'~#A€k"$A!@ H\r Aàj" ‘\r hE\rA! A (¬"k6$ A (¨"k6 A (¤" k6 A ( "k6 A (œ"\nk6 A (˜"k6 A (”" k6 A ("k6 A (Œ" k6 A (ˆ"k6  3  ("\r¬" \nAt¬""~ 4" ¬"~| ("¬" ¬"~| ( "¬" At¬"#~| ("¬" ¬"~| ("¬"$ At¬"%~| ("¬". Aj¬"~| ("Al¬" At¬"&~| ( "Al¬" ¬"~| ($"Al¬" At¬"\'~|  ~  \n¬"(~|  ¬")~|  ~|  ¬"*~|  $~| Al¬" ¬"+~|  ~|  ¬",~|  ~|  #~  ~|  ~|  %~|  ~| Al¬"- &~|  ~|  \'~|  ~|  "~|"0B€€€|"1B‡|"2B€€€|"3B‡|" B€€€|"!B€€€àƒ}>H   %~  ~|  ~| Al¬" &~| Al¬" ~| \' -~|  ~|  "~|  ~|  #~|  ~  *~| Al¬"/ +~|  ~| ,~|  -~|  (~|  ~|  )~|  ~| \rAl¬ &~  ~|  /~|  \'~|  ~| " -~|  ~|  #~|  ~|  %~|"/B€€€|"4B‡|"5B€€€|"6B‡|" B€€€|"7B€€€àƒ}>8   ~  ,~|  (~|  ~|  )~|  $~| * .~| ¬" ~|  +~|  ~| !B‡|"! !B€€€|"!B€€€ðƒ}>L   ~  )~|  *~|  ~| +~|  -~|  ,~|  ~|  (~|  ~| 7B‡|" B€€€|"B€€€ðƒ}><   \'~  ~|  ~|  "~|  ~| # $~|  .~|  %~| ¬" ~|  &~| !B‡|" B€€€|"B€€€àƒ}>P  2 3B€€€ðƒ} 0 1B€€€`ƒ} B‡|"B€€€|"Bˆ|>D   B€€€àƒ}>@   ~  +~|  ,~|  ~|  (~|  $~| ) .~|  ~|  *~| ¬ ~| B‡|" B€€€|"B€€€ðƒ}>T  5 6B€€€ðƒ} / 4B€€€`ƒ} B‡B~|"B€€€|"Bˆ|>4   B€€€àƒ}>0 A0j\r A€j$  A‚ 4#A k"$A!   E@ A€¶ A! A j$  A„ A€€€€ A€€€À A A’ Ï~A!@ AÀK\r AÁk"A@I\r@ A E@ AÿqA¿K@~ E@BŸØùÙ‘ڂ›!Bхšïúϔ‡Ñ  )BŸØùÙ‘ڂ›…! )Bхšïúϔ‡Ñ… !\n~ E@BùÂø›‘£³ðÛ! Bëú†Ú¿µöÁ  )BùÂø›‘£³ðۅ! )Bëú†Ú¿µöÁ… ! A@kAA¥ü 78 70 7( \n7 Bñíôø¥§ý§¥7 B«ðÓô¯î¼·<7 B»Îª¦ØÐë³»7 ­Bˆ’÷•ÿÌù„ê…7A   E\r  #A€k"$@ AÁkAÿqA¿M\r E\r AÁkAÿqA¿M\r~ E@BŸØùÙ‘ڂ›!Bхšïúϔ‡Ñ  )BŸØùÙ‘ڂ›…! )Bхšïúϔ‡Ñ… !\n~ E@BùÂø›‘£³ðÛ! Bëú†Ú¿µöÁ  )BùÂø›‘£³ðۅ! )Bëú†Ú¿µöÁ… ! A@kAA¥ü 78 70 7( \n7 Bñíôø¥§ý§¥7 B«ðÓô¯î¼·<7 B»Îª¦ØÐë³»7 ­ ­B†„Bˆ’÷•ÿÌù„ê…7 AA€ü @   ü\n Aàj A€ü\n A€6à A€ A€j$A   \r A!  = AyqAG@ An"A}lj"AjA AqA Aq AtjAj £ @@@@@@@@ @ \rA!A!@  j-" AßqA7kAÿq" Aöÿj AðÿjsAv"\r A0s" AöÿjAv"rAÿqE\r  \nM\r \rq qr! @ AÿqE@ At!  \nj  r: \nAj!\n As! Aj" G\r !  A E\r  @@@@@  j-" AßqA7kAÿq"Aöÿj AðÿjsAv" A0s"\rAöÿjAv"rAÿqE@ Aÿq\r A!  ?E\r Aj" !  K\r  \nM\r  q \r qr" AÿqE\r \nj  r: As! \nAj!\n  @  j-" AßqA7kAÿq" Aöÿj AðÿjsAv"\r A0s"AöÿjAv"rAÿqE@  ?E\r  Aj"K\r   \nM\r \rq  qr At!Aÿ!    K!  A!  A! Aj" I\r  Að½AÄ6A! AÿqE\r Að½A6A! Ak!A!\n  \nA !\n Ak! \r  G\r     j6   Að½A6A @  \n6 @ AþÿÿÿK\r  AtM\rA! @ Atj"  j-"Aq"At AöÿjA€²qjA€®jAv:  Av" AöÿjAvAÙqjA×j: Aj" G\r AtA jA:   Aà? ­~#A€k"$ A: Aà?M@ A O@ ­! A !@ ! A0j" A - @  jA kB   A0j"     AjB   jB  -Aj: ! A j" M\r Aq"@ A0j" A - @  jA kB   A0j"  ­   AjB   Aj"B @ j  ü\n AjA  A0jAÐA  Að½A6A A€j$ 8#AÐk"$   -   ­   B A AÐj$A  B AA  ­ \n  - An A A4 •~#A0k"$  )7  )7  )7  )7  )$7  B( A j b )7 )7 )7 )7 ) ! A6 7$ A0j$ -~  A A6 )! B7, 7$A 3~ A  A A6 )! B7, 7$A à  ß  á â ã ä  å "#A@j"$ AÀ ˆ A@k$ ˆA e#A k"$A!@ A€j" :\r Aàj" :\r   A j"  Q AÀj" R GA! A j$  e#A k"$A!@ A€j" :\r Aàj" :\r   A j"   AÀj" R GA! A j$  #A k"$  : A j$E !#A k"$ A  ‰ A j$ ‰A s#A k"$A!@ A€j" 2\r IE\r Aàj" 2\r IE\r   A j"  Q AÀj" R ,A! A j$  s#A k"$A!@ A€j" 2\r IE\r Aàj" 2\r IE\r   A j"   AÀj" R ,A! A j$  @#A k"$@ gE\r H\r  2\r IE\r hAG! A j$  AÀÿ º~#Aðk"$ A: AÀÿM@ AÀO@ ­! AÀ!@ ! AÐj" AÀ+ @  jA@jBÀ# AÐj"  #  AjB#  j.  -Aj: ! A@k" M\r A?q"@ AÐj" AÀ+ @  jA@jBÀ# AÐj"  ­#  AjB#  Aj". @ j  ü\n AjAÀ AÐjA A  Að½A6A Aðj$ AÀ 8#A k"$   +   ­#  . A A j$A  . AA  ­# ¥#Ak"A6 A!  AkK  Ak"j!A!A!A!@  ( "A  k-" A€sAk Ak AkqqAvAq"k qr6  r!  r! Aj" G\r  ( k6 AÿqAkA &@AŒÂ("E\r ("E\r !   ­A ¬ 0 Ú#Ak"$@@ E@A!    Ak"qE@  As"q  As!   pk " O\r   j"M@A!  @ Aj6  j!A! A:A!@ k" - -q  sAkAv"A€qr:  - r: Aj" G\r Aj$   M#Ak"$ AO@A k p!@ A:A¸· AjA" I\r  p! Aj$  (#Ak"$ A:A¸· AjA Aj$ AÁ Ç#A@j"$ BR@ B²ÚˆËÇ®™ë7 BåðÁ‹æ™37  (6  (6  (6  ( 6  (6  (6$  (6( (!  60  6,  (64  (68  (6<   d AÀ A@k$A ½#A@j"$ BR@ B²ÚˆËÇ®™ë7 BåðÁ‹æ™37  (6  (6  (6  ( 6  (6  (6$  (6( (!  70  6,  (68  (6<   d AÀ A@k$A Ø#A@j"$ BR@ B²ÚˆËÇ®™ë7 BåðÁ‹æ™37  (6  (6  (6  ( 6  (6  (6$  (6( (! A60  6,  (64  (68  (6< §"@ A ü  d AÀ A@k$A Î#A@j"$ BR@ B²ÚˆËÇ®™ë7 BåðÁ‹æ™37  (6  (6  (6  ( 6  (6  (6$  (6( (! B70  6,  (68  (6< §"@ A ü  d AÀ A@k$A %A„Â(AçAðÁAA„ÂA6A §~#A k" $   A°jïA! AK@A !@  j A°jî "A j" M\r  Ar"O@@  j"(! (!\r (! ( ! )ˆ7ˆ )€7€ )ð7ð )ø7ø )€7à )ˆ7è Aj" Aðj Aàj )˜7ˆ )7€ )à7Ð )è7Ø )ð7À )ø7È  AÐj AÀj )˜7ø )7ð )Ð7° )Ø7¸ )à7  )è7¨  A°j A j )˜7è )7à )À7 )È7˜ )Ð7€ )Ø7ˆ  Aj A€j )˜7Ø )7Ð )°7ð )¸7ø )À7à )È7è  Aðj Aàj )˜7È )7À )€7Ð )ˆ7Ø )°7À )¸7È  AÐj AÀj  (œs6¼ (˜s6¸ \r (”s6´  (s6° "Aj" M\r Aq" @A k"@ A j rA ü @ A j  j ü\n ( ! (¤! (¨! (¬! )ˆ"!7ˆ )€""7€ )ð7° )ø7¸ "7  !7¨ Aj"\r A°j A j )˜7ˆ )7€ )à7 )è7˜ )ð7€ )ø7ˆ \r Aj A€j )˜7ø )7ð )Ð7p )Ø7x )à7` )è7h \r Aðj Aàj )˜7è )7à )À7P )È7X )Ð7@ )Ø7H \r AÐj A@k )˜7Ø )7Ð )°70 )¸78 )À7 )È7( \r A0j A j )˜7È )7À )€7 )ˆ7 )°7 )¸7 \r Aj   (œs6¼  (˜s6¸  (”s6´ (s6° @ E@A!A! AI\r@ Aj  j A°jê "Aj" M\r  A!A! AI\r@ j  j A°jê "Aj" M\r Aq"@ j Aj !  j! A°j! #Aðk"\n$ \nAÀj j!A k"E"E@ A ü E"E@ \nAÀj  ü\n (! A@k"(! (P! ( ! (0! (! (D! (T! ($! (4! (! (H! (X! ((!\r (8! \n(À! \n(Ä! \n(È! \n (, (buflen <= BLAKE2B_BLOCKBYTES$argon2i$v=$argon2id$v=curve25519ed25519hmacsha512256curve25519xsalsa20poly1305sodium_bin2base64siphash24sha512xsalsa201.0.20$argon2i$$argon2id$$7$¶xYÿ…rÓ½nÿ\nj)À˜èyÿ¼< ÿ™qÎÿ·âþ´\rHÿ° þÓɆÿži5` ½§×ûÿŸL€þjeáÿü’ ®A\r \'Yñ²þ\nå¦ÿ{Ý*þÔR€0Ñówy@ÿ2ãœÿnÅgAÀ\r À…;Œ½ñ$ÿø%Ã`Ü7·L>ÿÃB=2L¤á¤LÿL=£ÿu>Q‘@ÿvA¢sÖÿŠ.|æôÿ\nŠ4¸ôL)¾ôÿ{ªzÿbDyՓVeÿ¡g›ŒYCÿïå¾C µÆð‰þîE¼ÿC—î*lÿåUq2D‡ÿj 2gÿP¨#˜ÿ¨¹8YèÿeÒü)úG̪Oÿ.ïÿPMï½ÖKÿù&PLÿ¾UuV䪜ØÐÃϤÿ–BLÿ¯áÿPbLÛòÆ¢r.ژ›+ñþ› hÿ3»¥¯BT ÷:#A5þEì¿-†õ£{Ý nÿ4¥ºÖGé°`òï69YŠSTÿˆ d\\Žxþh|¾µ±>ÿú)U˜‚*`üö——?þï…> 8œ-§½ÿŽ…³ƒVÓ»³–þúªÿÒ£N%4—cMîœÕÿÕÀÑI.TA)6ÎOɃ’þªoÿ±!2þ«&ËÿN÷tÑݙ…€²:,É\';½ü1åÒu»uµ³¸rÛ0^“õ)8}\rÌþô­w,Ý þTêù Æì~êÿ/c¨þªâ™ÿf³ØâzÿzB™þ¶õ†ãäÖ9ëÿØ­8ÿµçÒw€ÿ_ˆÿn~3©·ÿ‚bþE°^ÿtãÙò‘ÿÊ­i\'ÿ.¯Eä/:ÿ×àEþÏ8Eÿþ‹ÿÏÔÿÊ~ÿ_Õ`ÿ °!ÈÏÿñ*€þ#!Àÿøåāxûg—ÿ4pÿŒ8Bÿ(âõÿÙF%þ¬Ö ÿHC†’ÀÖÿ,&pD¸KÿÎZû•덵ª:tôï\\f­bé‰`1Ë›”” ÿÓz "†ÿÛ̈†)ÿàS+þU÷mþ©ˆ0îwÛÿç­ÕÎþþºÿ~ o*Ho4ìþ`?“¿þÍNÀÿjí»ÛL¯ó»þiY­UY¢ó”vÑþ!ž ‹£.ÿ]F(l*ŽþoüŽÿ›ß3å§ÿIü›ÿ^t ÿ˜ Úÿœî%ÿ³êÏÿųÿš¤áÄh\n#þÑÔòÿaýÞþ¸eåÞ¤ˆ‡ÿόþ’aóÀþÉT!ÿo\nNÿ“Q²ÿ¡î×ÿ!5×ÿ)µÐÿ狝³ËÝÿÿ¹q½â¬ÿqBÖÿÊ>-ÿf@ÿN®þ…uDÿA  AÀ °&蕏²\'°EÃô‰òï˜ðÕ߬ÓÆ39±8ˆmSüÇjp=MØOº< v\rg* Sú,9ÌÆNÇýw’¬zìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÓõ\\cX֜÷¢ÞùÞAÿ ¬ñý@] j?9ÓWþ ÒºX¼tþAØÿÈ=ØB”ÿû\\$²áÿ…;Œ½ñ$ÿø%Ã`Ü7·L>ÿÃB=2L¤á¤LÿL=£ÿu>Q‘@ÿvA¢sÖÿŠ.|æôÿ\nŠ4¸ôL)¾ôÿ{ªzÿbDyՓVeÿ¡g›ŒYCÿïå¾C µÆð‰þîE¼ÿêq<ÿ%ÿ9ÿE²¶þ€Ð³v}þÖÿñ2MÿUËÅÿӇúÿ0dÿ»Õ´þXiSўsb®<þ«7nÿÙµÿ¼ª’œfþWÖ®ÿrz›é,ªïÖìê¯Û1j=ÿBÐÿjnÿQêÿ×kÀÿC—î*lÿåUq2D‡ÿj 2gÿP¨#˜ÿ¨¹8YèÿeÒü)úG̪Oÿ.ïÿPMï½ÖKÿù&PLÿ¾UuV䪜ØÐÃϤÿ–BLÿ¯áÿPbLÛòÆ¢r.ژ›+ñþ› hÿ² üþdnÔ§éï£ÿ—e’\nÿþžFþGùäX2D: ÿ¿hBÿÀ2Uÿ³Šÿ&úÉsP ƒæq}X“ZDÇýLžÿvqúþBK.æÚ+åxº”D+ˆ|î»kÅÿT5öÿ3tþÿ3»¥¯BT ÷:#A5þEì¿-†õ£{Ý nÿ4¥ºÖGé°`òï69YŠSTÿˆ d\\Žxþh|¾µ±>ÿú)U˜‚*`üö——?þï…> 8œ-§½ÿŽ…³ƒVÓ»³–þúªÿDqÿÞº;ÿBñEHVœlþ7§Ym4Ûþ\r°ÿÄ,jÿï•Gÿ¤Œ}ÿŸ­3)ç‘>!Šo]¹SEs.a—ÿä1ÙâqKêþÁ™ ÿ¶0`ÿ\r€ÃùþEÁ;„%Qþ}j<Öð©¤ãBÒ£N%4—cMîœÕÿÕÀÑI.TA)6ÎOɃ’þªoÿ±!2þ«&ËÿN÷tÑݙ…€²:,É\';½ü1åÒu»uµ³¸rÛ0^“õ)8}\rÌþô­w,Ý þTêù Æì~êÿ>݁YÖÿ7‹þD¿ÿ̲#ÃÙ/3Î&ö¥ÎþžW$Ù4’ÿ}{×ÿU<ÿ«\rÚõXþü#<7Ö ÿ…e8à þ“@ê‘¢rv}øüúe^Äÿƍâþ3*¶‡ þm¬ÒÿÅìÂñAš0œ/ÿ™C7ÿÚ¥"þJ´³ÚBGXzcÔµÛÿ\\*çÿïšõM·ÿ^QªÕØ«]G4^ø—¡þÅÑBÿ®ôþ¢0·1=ðþ¶]ÃÇäÈÿ‰-íÿl”ZOíÿ\'?Mÿ5RÏŽvÿeè\\CÈXÿ!¨Šÿ•áHÑÿ,õ¨ÜíÿÓiþî݀PõþoþÞ_¾ß ñ’LÔÿlÍhÿ?u™E0#äoÀ!ÁÿpÖ¾þs˜—fX3JøâǏþÌ¢eÿÐa½õhæöÿ”EnX4þâµYÿÐ/Zþr¡Pÿ!tø³˜WÿE±Xîÿ: qME;y4ÿ˜îS4Áç\'éÿÇ"ŠÞD­[9òþÜÒÿÀöþ—#»Ãì¥o]ÎÔ÷…š…Ñÿ›ç\n@N&zùdaÿ>[ùø…MÅ?¨þt\nR¸ìqþÔËÂÿ=düþ$Êÿw[™ÿOgg«þí×oÿØ5Eïð•Ýÿ&áÞèÿ´þvR…ÿ9ѱ‹è…ž°.þÂs.X÷åg¿ÝÞ¯þ•ë,—äþÚigŽUҕ¾ÿÕA^þu†àÿRÆuÝÜ£e$År%h¬¦þ ¶QH¼ÿa¼ÿE\nǓ‘ÿ sAÖ¯ÿÙ­ÑP¦÷åþ§·|ÿZÌþ¯;ðÿ )øl(3ÿ±Ãþ–ú~Š[Ax<ÞÿõÁïÖ½ÿ€Pš¢MÜkêÍJÿ6¦gÿtH ä^/ÿÈÿ#ÖYÿ=°ŒÿSâ£ÿK‚¬€&_‰˜ÿ×|ŸO]”RþÂûÿ(ÊLÿû~àc>þÏáÿ`D̺ÿƒçÿ*€þ4Û=þfËH ÿº¤Õzw…ò‘Ðüèÿ[Õ¶ÿúþù×J¥o« ßå{"\\‚ÿM›-Ëÿ;àNˆ÷ly Oú½ÿ`ãüþ&ñ>>®}ÿ›o]ÿ\næÎaÅ(ÿ19þAú\rû–ÿÜmÒÿ®¦þ,½ë#“ÿ%÷ÿHÿgkÿ÷Z5,*ð;?XN$q§´¾GÁÿǞ¤ÿ:¬M! A?™M!ÿ¬þfäÝÿWþ’)VÿŠÌïþlÿ»ò‡ÒÐD-þI`>Q<ÿª$ÿù#Õm6ÿ#áÿê=8ÿ:ُ|Xì~BÑ&·ÿ"îÿ®‘f_ÓÄ™þ.Tèÿu"’çúJÿ†d\\»ÃÿªÆpx*ÑFCQ¨d©­ k#u>`;ÿQ E‡ï¾ÿÜü£Ü:ÿ‰‰¼ÿSfm`LêÞÒÿ¹®Í<žÕÿ\rñÖ¬Œ]hòÀœû+uáQžèÚâËé—ÿu+ÿò/ÿ!‰û,þõÿ·Ö}þ(y•ºžÕÿYãEXþˇáɮ˓G¸y)þ^NàÖðþ$´û‡ç£ŠÔÒùtþX»1þ>ÿŸLÓÖ3RmuäþgßËÿKüšGÜÿ\r[¨`ÿµ¶…ú37êêÔþ¯?ž\'ð4ž½$ÿÕ(U ´÷ÿfTaÿEޔ‹zÿÜÕëèËÿy9“ãš5“HáR†0þS<ÿ‘H©"gïÆé/tÿ¸j ÿ·S$°æ"gHÛ¢†õ*ž •`þ¥,ÊïHþז*B$„ׯV®VÿŜÿ1è‡þg¶Rý€°™²zõú\n첉j„()2˜ÿ|i&æ¿K+ª,ƒÿ,\rÿíÿ›ŸmdÿpµÿhÜl7Ӄc Õÿ˜—‘ÿîŸa›!lQg>m"ÿú›´ GÃÿ&F‘Ÿ_õEåeˆðOàNnyÿø¨|»€÷“ëþO „F: µ£ÿO‰…ÿ%ª ÿóUÿ°ç×ÿ̖¤ÿï×\'ÿ.Wœþ£Xÿ¬"èB,fÿ6)þìcWÿ){©4r+u†(›†çÏ[þ#„&ÿf}þ$ã…ÿvqÿ\r|˜`JX’Îÿ§¿Üþ¢Xÿ¶du4Q.j EPÉÑö¬ 0àÓXtâŸzb‚Aìêáâ ÿÏâ{YÖ;p‡XZôËÿ1 &lºYpe.ÌÿÌ-þOÿÝÿ3Iÿ*eÿñÊ ãi2ìO4ÅÿhÊдeÅNÿbMË)¹ñ#Á|#›ÿÏ5À }£ùž¹ÿƒ0]oÿ=yçEÈ$ÿ¹0¹ÿoîÿ\'2ÿc×£ÿWÔÿ¤“ÿ€#lßnÿÂL²Je´ó/0®+ÿR­ý6rÀÿ(7[×l°ÿ 8àéLÑbÊþò},Á]þ˱‡°pGÕÿÎ;°CÕþ*7Ðÿ×næ³§ÿ6ü¾Ý̶þ³žAÿQÂڟªßà ÿ&Åb¨¤%X¤ºn`$†êòåúyòþpÿ/^ ïÿQ†™þÖý¨ÿC|àõ_J,þmÜÿ²YYü$LÆ.ÿLMo†êˆÿ\'^¹HêÿFD‡ÿçfþM猧/:”avÿá¦Îÿn²Öÿ´ƒ¢á\rÚNÿr™!bh̯ru§ÎKÊÄS:@CŠ/oÄ÷€ÿ‰ààþžpϚdÿ†%kƀOÿћÿ£þ¹þ<óÛpþÙAÈ\rtþ{<Äÿà;¸þòYÄ{Kþ•ÎEþ0çtßÿÑ AÈPb%¸þ”?"‹ðAÿِ„ÿ8&-þÇxÒl±¦ÿ ÞÜ~wþ¥k ÿRÜøñ¯ˆÿ©ŠT ‰NÿâvPÿ4„ÿ?`‹ÿ˜ú\'¼›è3–þ(èÿðå ÿ‰¯ÿKIaÚÔ ‡¢k¹Õùkÿ(òFÛȝ\rCRPÿÄùÿ‘•2H’^L”ûAÀ¸ÔÉÿ{é¢÷­H¢WÛþ~†YŸ þ¦iIäqx·ÿB£mԏ ÿŸç¨ÿ€Z9:þY4\nÿý£‘Òÿ\nU.µgˆ þ~¼Ñÿ"#o×ÛÿÔ ÖþevèŅÿß§mÿíPVÿF‹^žÁ¿›3ÿ¾sN‡Ïÿù\nµ}é_¬\rþªÕ¡ÿ\'ìŠÿ_]Wÿ¾€_}Φ–ŸãžÿΞxÿ*€e²xœmƒÚ,þ÷¨ÎÿÔppäÿZ%ÅÞlþÏSÿ Zóÿóô¬XsÿÍtz¿æÁ´d Ù%`ÿšNœëêÿβ²ÿ•Àû¶ú‡öi|Ámÿҕÿ©ª`nÿu 2{(ÿÁ½c"ã 0PFþÓ3ì-zõþ,®­%éÿžA«zE×ÿZPÿƒj`þãr‡Í1wþ°>@ÿR3ÿñóÿ‚\rþ€Ùóÿ¢þZvñöÆöÿ7vÿȟ£ŒkyU¡vÿ&•œ/î ¦¦Kbµÿ2JB/‹áŸLŽÿî¸ Ï5ÿ·Àº« ®ÿ¿LÝ÷ªÛ¬2þÙ éË~Dÿ·\\0§·A1þ?þªÿ;àþ0?ÿN‚þ(Ãú„pþ#ːh©¨Ïýÿh(&þ^äX΀ÿÔ7zÿßêßÅýµµ‘fvì™$ÿÔÙHÿ&þŠ>>˜ŒæÜcÿÔÿ”Éçô{ þ«Ò3:%ÿÿÿô·‘þò¦J„yØ)_Ãrþ…—ÿœâçÿ÷Mÿö”sþá\\QÿÞPöþª{YÿJǍÿŠˆFÿ]K\\ݓ1þ4~âå|. µÍ@4ƒþ—žÔƒ@NΫ拿ýnþg÷§@((*¥ñÿ;Käþ|ó½ÿÄ\\²ÿ‚ŒVÿY8“ÆÿËøžþ¢ ¬â‚*ÿ§ÿ$$ÿ0X¤þ¨ªÜbGÖ[ÐOŸLɦ*ÖÿEÿÿ€}ÿ¾Œ’SÚÿ×îHz5½t¥ÿTBÿÖÐÿÕn…è,žçE¢@Èþ[:h¶:»þùäˆË†LþcÝéKþÖþPEš@˜øþìˆÊÿi™þ•¯#ÿ|yéºúÆþ„勉P®ÿ¥}DÊ”þëïø‡¸ve^ÿzHFþE‚’ÞøEvÿR×þ¼Jÿå§ÂþuBÿAê8þÕœ—;]þ-ÿº~¤ÿ ïrcÛ4ÿc`¦þ>¾~ÿlÞ¨Kâ®æâÇÿ(kþŠšÇÿ^ßâÿ«&£±þ-vÿÞѾQÿv{è\rÕeÿ{7{þö¥2cLÿŒÖ ÿaACÿ ®VN@÷` ‡CB7óÿ“Ì`ÿ!ÿb3S™ÕÐÿ¸6ÿÚ 1Cöþ•Hÿ\rH*OÖ*&‹ÿ•»¤„õT¸þxÆhÿ~Ú`8uêÿ\rÖþD/\nÿ§š„þ˜&ÆB²YÿÈ.«ÿ\rcSÿÒ»ýÿª-*ŠÑ|Ö¢ æœf$pþ“C4×{ÿé«6ÿb‰>÷Ú\'ÿçÚì÷¿ÒT¥°\\ÿÔ^ÿJãX(™ƓÿÎCõþðÚÿ=Õÿa·jÃèëþ_VšÑ0ÍþvÑñÿðxßÕŸ£“ÿ\rÚ]UDþFPÿ½ŒRaþÿcc¿ÿ„T…ÿkÚtÿpz.i  ?ÿDÞ\'Øý\\±iÍÿ•ÉÃ*á ÿ(¢s Q¥ÚÛ´þ’üÿ’Ïá´‡`£p± Ûÿ… Áþ+N2Aqy;Ùÿn^p¬o`$U{G–ÿÐI¼À §Õõ" æ\\¢Ž\'ÿ×ZbaY^OÓZð_Ü~f°â$àþ#çèsUS‚ÒIõÿ/rÿDAÅ;H>ÿ·…­þ]yvÿ;±QÿêE­ÿ̀±Üô3ôÑIÞMÿ£`þ–•ÓžþË6‹¡à;mÿÞ*-ÿВfÿ쎻2Íõÿ\nJYþ0OŽÞL‚ÿ¦?ì \rÿ1¸ô»qfÚeý™9¶þ –*ƒíñ8ŒD[¤¬ÿN‘ºþC4ÍÛρms6:øxÿ³ÿÁìBÿÿÿýÀ0ÿEÙÖÿ@e’ß}#ÿëI³ÿù§âá¯\na¢:jp«T¬ÿ…Œ²ÿ†õŽaZ}ÿºË¹ÿßMÿÀ\\jÆsÿ٘ø«²xÿä†5°6Áúû5Õ\nd"Çj—ôþ¬àWÿíÿýUÿ\'tÿ¬hdûFÿÔЊÿýÓú°1¥L{ÿ%Ú ÿ\\‡\n~rÿFàÿ÷ùD<ñÒ½ÿÃÙ»—q—\\®ç>²ÿÛ·á!ÿ͵P9¸øÿC´ÿZ{]ÿ\'¢ÿ`ø4ÿTBŒ"äÿЦn¼›š¾ÆÿÖP;ÿHâÇÙùè¡G•¾ÉÙ¯_þq“CÿŠÇÿ̶SÎæ›ÿºÌ<\n}Uÿè`ÿÿY÷ÿÕþ¯èÁQ+œþ E“øÆ1†<#vöÿ1Xþþäºÿ¶ApÛÿ~4ÿ½51ÿp&7ÿâe£þЅ=ÿ‰E®¾v‘ÿ!sÓ¢a€ÿ¸þt¨ÿøŠ—ÿbôðºv‚røëÿi­È |Gÿ^$¤¯A’ÿîñªþÊÆÅäGŠþ-ömÿÂ4ž…»°SüšþY½ÝÿªIü”:}$D3þ*E±ÿ¨LVÿ&dÌÿ&5#¯aáîýÿQQ‡ÒÿþëIkÏsRˆTcþψd¤ePÐMÿ„Ïíÿÿ!¦nœ_Uÿ%¹o–j#ÿ¦—LrW‡ÿŸÂ@ zÿèeþ­wbšGÜþ¿95ÿ¨è ÿà cÿڜ¥—™£Ù\r”ÅqY•¡þÏi„ãÿ6æ^ÿ…­Ìÿ\\·ÿXüþf!ZŸaµÚ›ÿðrwjÖ5ÿ¥¾s˜[áÿXj,ÿÐ=q—4|¿œÿn6ì¦ÿ\'ÏåǼä¼þdëöÚ·kÁÿΠ_Lï“Ï¡u3¦ÿ4u\nþI8ãÿ˜Áá„^ˆÿe¿Ñ kåÿÆ+´dÒvrC™ÿXÿYš\\ÜxŒÿrÏÿüsúÿ"ÎHŠ…ÿ²|WKaå\\þðCƒÿv{ãþ’xhÿ‘Õÿ»FÿÛw6­-–”øSHË驎k8÷ù&-òPÿég`RFÉoQ\'ÿ¡·NÿÂê!ÿDãŒþØÎtFëÿhO¤æ]þևœš»òþ¼ƒÿ$m®Ÿpñn•$¥Ú¦².I]+ þø½íf›É]Ãÿñ‹ýÿobÿlA£þ›O¾ÿI®Áþö(0ÿkX þÊaUÿýÌÿqòBn ÂþкQ<¼h§ÿ|¦aþ҅Ž8ò‰þ)o‚o—:oՍÿ·¬ñÿ&Äÿ¹{ÿ. öõiw¡ÿÎ-ÿÊJÿS|sԍSÑþ‹èÿ¬6­þ2÷„ֽՐ¸ißþøÿ“ðÿ¼H36¼´þÜ´ÿS £½óÿ:ÑÂÿWI<j1õùÜ­§v Ãÿ~ínŸ%ÿ;R/´»V¼”Ðd%…ÿpÁ¼œÿTjÿ…áÊìoÿ(e¬¬1þ36Jÿû¹¸ÿ]›àÿ´ùà沒H96þ²>¸wÍH¹ïýÿ=ÚÄC8ÿê «.ÛäÐlêÿ?èÿ¥5Ç…äÿ4ÍkJîŒÿ–œÛþגּÿû½ßþ ŽÓÿÚŠñÄP$bþêÇ=íÜÿö9%ŽŽÿ>+î_þÙÿÕð\'Ü®ÿšÍ0þ\rÀÿô"6þŒ›ðµþ›Á<¦€ÿ$‘8ÿ–ðÛx3‘R™*Œì’k\\ø½\n?ˆòÓ\'Ê¡­ºÿÒÌïþ)Ñ¢ÿ¶þŸÿ¬t4ÃgÞþÍE;5)Ú0ÂPÒòҼϻ¡¡þ؈áqú¸?ßbþM¨¢;5¯É\nÿ‹à“ÁšÿÔ½ þÈ®ÿ2…q^³Z­¶‡^±q+Y×ÿˆüjÿ{†SþõBÿR1\'Üàa±M;Y=›Ë«Üÿ\\N‹‘!µÿ©7–³‹ìxþb{cÿ¨ÉÂþ.êÖ¿…1ÿc©w¾»#s-ÿùƒHp{ÿÖ1µþ¦é"\\ÅfþýäÍÿ;É*b.Û%#ÿ©Ã&^|Áœ+ß_H…þxοzÅïÿ±»Oÿþ.ú§¾TËq¦ÿù½þHÊÿÐGIÿÏH\nÒQLÿXÐÀÿ~ókÿîxÿÇyêÿ‰ ;ÿ$Ü{ÿ”³<þð Ba$&ÿs]ÿ`gçÿŞ;À¤ðÊÊ9ÿ®0YM›*L×ô—é0Qï4þã‚%ÿøt]|„v­þÀëSÿn¯çû¶ù]þT¸€Lµ>¯€ºd5ˆþmâÝé:cJ †\r 47ÿYŒ¯";T¥wÿàâêÿH¦ÿ{sÿÖöúGÙܹÔ#Lÿ&}¯½aÒrî,ÿ)¼©þ-ºšQ\\„ ÁyÐbÿ\rQ,ÿ˜RG:ÿÐr¿þ2&“šØÃe<ú×ÿé„ëÿg¯Ž\\nþîñ-ÿ™Ùïa¨/ÿùU¯>ÿ9þ6Þç~¦-uþ½`ÿäL2Èô^ƘxD"Eÿ A þeZ§ÅxÿD6¹ÿ)Ú¼q¨0Xi½R ÿ¹]¤äðíÿB¶5«Å\\ÿk éÇxÿN1\nÿmªiÿZÿôqÿJ: >ÜöÿyšÈþÒ²ÿ~9+úÿeo/Vñÿ=F–ÿ5IÿžÑVŠíJ¤_¼Ž<þ¢tøÿ»¯ —ÑoAþˆ\'ÿXl1ÿƒGÿÝ×þhi]ÿìþ‡ÓÿnÔIåéC§þÃÐÿ„Ýÿ3ÙZCë2ÿßҏ³5‚éjÆÙ­Üÿpåÿ¯š]þGËöÿ0B…ÿˆæÿÝqþëoÕªx_þûÝ-‚žþi^Ùÿò4´þÕD-ÿh&ôžL¡È`ÿÏ5\rÿ»C”ª6øw¢²ÿS **À’Ÿ£ÿ·èoMåÿG5L"öˆ/ÿÛ\'¶ÿ\\àÉŽÿE¶ñÿ£võ mjªµ÷ÿN/îÿTÒ°ÿÕk‹\'& H–H‚EÍM›þŽ…Go¬þâ*;ÿ³×!€ñêü\r¸OnIÿö½ªÏÚJšEÿŠö1ÿ› d}JiÿZU=ÿ#å±ÿ>}Áÿ™V¼IxÔÑ{öþ‡Ñ&ÿ—:,\\EÖÿ Xÿü™¦ÿýÏpÿ°{þ …ÿá¿>]F™µ*h¿àÿÈȌÿùê%•9Ã8Ðÿþ‚Fÿ ­ðÿÜÇndsÿ„åùäéßÿ%ØÑþ²±Ñÿ·-¥þàar‰a¨ÿáÞ¬¥\r1ÒëÌÿüþF —è¾4þSø]ÿ>×M¯¯³ÿ 2By0Ð?©ÑÿÒÈà»,I¢R °ÿLÁÿ;§+š¾¾¼èëËÿêmÿ6AŸ{„ÿ÷d½›ß˜Å!›;,ÿ–]ðWÿ_GϧUÿ¼˜tÿ\n‰Ã]6bað¨ÿ”¼†k—Lý«Z„À’6àB6þæºåÿ\'¶Ä”û‚ÿAƒlþ€ ©1§þÇþ”ÿûƒ»þÿUR>²:ÿþ„¤Õ\'†ü’þ%5Qÿ›†Rͧîÿ^-´ÿ„(¡þop6KÙ³æÝë^¿ÿó0ʑËÿ\'v*ÿuýþÞ+û26©êPDДËóþ‘‡þü¹bÿ&#HÿÓ$Ü(Y¨@ÅþÞïÿS×þ´Ÿi:sºtjÿå÷ÛÿvÁÊ®·¦¡HÉk“þíˆJéæjio¨@àåf—¯ÿÂîäÿþúÔ»íyCû`Å ·_ÌÍYŠ@Ý%ÿßÿ²0ÓÿñÈZÿ§Ñ`ÿ9‚Ý.rÈÿ=¸B7¶þn¶!«¾èÿr^Ý/çþÿpSv×ÿ­(þÀÁÿî’ÿ«Ávÿeê5þƒÔpYÀkеÙÿç•èŒì~ Çÿ Oµþ“¶Êÿm¶ÿ1ÔáJ£Ë¯é”p3ÁÁ ÿ‡ù–ã‚ÌÛòÍîÐuÿôpå"%P¼ÿ&-ÎþðZáÿ/ÿ*àLºó§ „ÿ3}‹‡ñÛ¬å…ÿöÖ2ç Ïÿ¿~S´£ªÿõ8²¤ÓÿÊb9vÿƒYþ!3ó•[ÿý4#©Cþ1Xÿ³$ÿ¥Œ·:½—XK©BBeÇÿØÇyÄÿOËþðâQÿ^\nÿSÁðÿÌÁƒÿ^VÚ(3ÁÑò±f¹÷žmt&‡[߯•ÜBÿV<è`%ÿáz¢×»¨ÿž.8«¢èðez 3 ÿ5îÿÙèþ}©”\rèf” %¥aäƒ)Þóÿþ<íjq;„½\\piÐÕ0T³ÿ»yçþØmÿ¢ÝkþIïÃÿú9ÿ•‡Yÿ¹s£ÿpú9»ÿ¡`¤/ó ûþCê¸ÿ)¡¯`ÿ ¬4þ°·ÿÆÁU|y‰ÿ—2rÿÜË<ÿÏï&kÿ7î^þF˜^ÕÜMxEÿU¤¾ÿËêQ&1%þ=|‰N1þ¨÷0_¤üi©‡ýä†@¦KQIÿÏÒ\nêj–ÿ^"ZÿþŸ9þ܅c‹“´þ¹)9ÿ½aLA»ßÿà¬%ÿ">_çðMj~þ@˜[b›âû5ÿêÓÿËÞÿ¤°Ýþç³zÍ$†ÿ}F—þaäü¬þ0ZÑÿ–àRT†ñÄ.gqêÿ.eyþ(|úÿ‡-òþ ù¨ÿŒlƒÿ£«2­ÇÿXގÿÈ_žŽÀ£ÿu‡o|ì AþD&Aÿã®þôõ&ð2Ðÿ¡?ú<Ñïz#!æþŸqjÿäÍ`‰Ò®þ´ÔÿYbš"X‹§¢pAnÅñ%©B8ƒÿ\nÉSþ…ý»ÿ±p-þÄûÄú—ÿîèÖÿ–ÑÍðvGLSìc[*úƒ`@ÿvÞ#qÖËÿzw¸ÿB$Ì@ù’Y‹†>‡hée¼T1ùÐÖKÿςMÿs¯ë«‰ÿ¯‘º7õ‡ÿšVµd:öÿmÇ<ÿR̆ÿ×1æŒåÀÿÞÁûÿQˆÿ³•¢ÿ\'ÿ_Kþ¿QÞñQZÿk1Éÿôӝތ•ÿAÛ8þ½öZÿ²;0Û4b"×»ÿ¯©\\O¡ÿìÈ“êåáŨë35ýx®Å¨ÿÊu«£ÎrUZÿ)\nÿÂcA7Øþ¢’t2ÎÔÿ@’ÿžžƒd¥‚ÿ¬ÿ}5 ÿÁ1 ÿµ®É‡Éÿd•ÛbO*cþ`0ÿÅùSþh•OÿënˆþR€,ÿA)$þXÓ\n»y»b†Ç«¼³þÒ îÿB{‚þ4ê=0qþVxÿw²õWÉòÑÊrU”¡gÃ01«ÿŠC‚¶Izþ”‚Óåš ›žTi=±Â ÿ¦YV6S»ù(uÿm×ÿ5’,?/³ÂØþTˆˆ±\rÿHóºÿu}ÿÓ:Óÿ]OßZXõÿ‹ÑoÿFÞ/\nöOÿÆÙ²ãá N~³ÿ>+~g”#¥þõð”=3ŽQІ‰sÿÓwìÿŸõøÿ†ˆÿæ‹: ¤þrUÿ1¦¶ÿFTU¶.5] ¦¡ÿ7¢²ÿ-¸¼’,þ©Z1x²ñ{ÿñǽB2ÿƏeþ½ó‡ÿþKaWvûší6œ«’ÏÿƒÄöÿˆ@q—è9ðÚs1=ÿ@Iü©ÿ(„\nZÉÁÿüyðºÎ)+Æa‘d·ÌØPþ¬–AùåÄþh{IÿMh`þ‚´h{9ÜÊåÿfùÓVèÿ¶NÑïá¤j\r ÿxIÿ†CéSþµ·ìp0@ƒÿñØóÿAÁâÎñdþd†¦ÿíÊÅ7\rQ |fÿ(ä±vµ砆ÿw»ÊŽ<ÿ€&½ÿ¦É–Ïx6¸¬ òÌþ…Bæ"&¸pP 3¥þ¿ó7:I’þ›§Íÿdh˜ÿÅþÏÿ­÷î\nÊï—ò^;\'ÿðfÿ\n\\šÿåTÛÿ¡PÐZÌðÛ®ÿžf‘5²Lÿ4l¨SÞkÓ$mv:8í ÇªÑ‰G/V ÆòÔ0ˆ\\¬ºæ—i`¿åŠP¿þð؂ÿb+þ¨Ä1ý[Iy=’\'?hÿ¸¥pþ~ëbPÕbÿ{ÿœXÒ¸bÿ¯{ÿfSåÜAt–úÿ\\ŽÜÿ"÷BÿÌá³þ—Q—G(ìÿŠ?>Oðÿ·¹µv2?ãÀ{c:2à›ÿáßþÜàMÿ,{€¯øÔȖ;·ÿ“a–̵ý%G‘UwšÈº€ùÿS|W¨3õ|—çÿÐðÅ|¾¹0:öéè}bÿ\rþÿõ±‚ÿlŽ#«}òþŒ "ÿ¥¡¢ÎÍe÷"d‘9\'F9vÌËÿò¢¥ôÆtâ€o™ÿŒ6¶ƒÿO@ þ^0qŠ2þÁÿ÷ÅC7hÍ_ÿ0%B7œ?@RJÿÈ5GþïC}àÞ߉]ÿàÊÿ ܄Æ&ëfV<+Qˆé$þÏò”¤¢?3.àÿr0Oÿ ¯âÞÁÿ/ èÿÿ]iþ*æŠRÐ+ô\'&ÿbÐÿ@•¶ÿúÑ»<þ1Úÿ©tÍÿwxœt“ÿ„5mÿ\r\nÊnS§Û‰ÿ‚ÿ2§ÿ<Ÿ/ÿ€þ^½¦DSßזZ¨AãS3ÿÍ«Bÿ6»<˜f-ÿwšáð÷ˆdŲÿ‹GßÿÌR)Î*ÿœÀÝÿØ{ôÿÚÚ¹ÿ»ºïÿü¬ ÿÃ4®µþ»dsÿÓN°ÿÁ“ÕhÿZÉ\nÿP{B!ºcþÎ\nåê5ҊÜþG7§HáVv¾¼þÁe«ù¬ÿ^ž·þ]lÿ°]LÿIcOÿJ@þö.Acñþö—fÿ,5Ðþ;fꚯ¤ÿXò o&ÿ¶¾ÿs°þ©<zíñZL?>JxÿzÃnw²Þò҂!.þœ()§’p1£oÿy°ëLÏÿÆ)ëÕU$Ö1\\mÿÈþ¨ìÑ\'|ìÕZ$¸ÿCUªÿ&#þƒ|Dÿï›#ÿ6ɤÄuÿ1Íà~qu¶ËŸß‡M°æ°ÿ¾å×ÿc%µÿ3Šÿ½Yÿ10¥þ˜-÷ªlÞPÊEgþ́ÿ´ü>þÒ[ÿ’nþÿÛ¢ßüÕ;!ÎôÓ0k Ðp;ÑmMØþ"¹ÿöc8ÿ³‹ÿ¹2ÿTYJúbÿá*ÈÿÀÙÍÿÒ§c„_+æ9þ Ëÿc¼?ÿwÁûþPi6èµ½·EpÿЫ¥ÿ/m´ÿ{S¥’¢4ÿš ÿ—ãZÿ’‰aþ=é)ÿ^*7ÿl¤ì˜Dþ\nŒƒÿ\njOþóž‰C²Bþ±{Æÿ>"ÅX*ÿ•_±ÿ˜Æÿ•þqÿáZ£ÿ}Ù÷à€BxþÀ ÿ2ÝÍ1ÔFéÿ¤Ñ Ý4Ûþ¬àôÿ^8Îò³ÿ[¤æ.Šÿ½æÜ9/=ÿo ±[˜æbaW~ÆY‘ÿ§OkùM éæÿ–Vþ< Á—%$þ¹–óÿäÔS¬—´É©›ô<êŽëCÚ<ÀqKtóÏÿA¬›QœÿPH!þçmÿŽkþ}„ÿ°;ÿ–É:ΩÉÐyâ(¬ÿ–=^ÿ89œÿ<‘ÿ-l•ÿÿÑUþÀ Òcb]þ˜—á¹Üë,ÿ ¬þGÿ\r@]þ8Ʊ>ø¶ñ¦e”ÿNQ…ÿÞ×¼©ÿèa1p<ÿÙåûwlŠ\'{þƒ1ë„T‘‚æ”ÿJ»õ6ÿ¹ÛñÂäÿñÊfiqʛëO ²ÿœïȔ=s÷Òÿ1݇:½#. QAÿ4ž¹ÿ}t.ÿJŒ\rÿÒ\\¬þ“GÙàýþsl´ÿ‘:0þÛ±ÿœÿ<š“òý†W5Kå0ÃÞÿ¯2ÿœÒxÿÐ#Þÿø³\neÿÂøÿžÌeÿhþÅÿO>²¬e`’ûÿA\nœ‰¥ÿtçò×#ÿ+¡O;•öûB°È!ÿPnŽÿáä8Bÿ{/‘þ„¤C®¬ýrWaWúÜT`[Èÿ%};Av¡4ñÿí¬ÿ°¿ÿÿA‚þß¾æeýçÿ’#múM1{Z›V ÿÚÕAo]<]©ÿ¶ºþý‰öÿÕ0þLîÿø\\Fÿcà‹¸ ÿ¤Ð̓ÆWÖǂÖ_ݕÞ&«þÅnÕ+sŒþ×±v`4Buží@¶ÿ.?®ÿž_¾ÿáͱÿ+Žÿ¬cÔÿô»“3™ÿätþeÏö–ÿ†ç}†âMAbì‚!ÿn>Elÿq‘Sþ¡çÿƒµ<Ùѱÿå”Ôþƒ¸u±»ÿ°fP2T—ÿ}6ÿ…ÿ³‹àè"uªÿ§ü«ÿIÎþú#HOìÜåÿ)Ê­ÿcLîÿÆàÿlÆÃÿ$`ìž;ÿjdWnâãêޚ]wÿJp¤ÿC[ÿ‘!ÿf։ÿ¯ægþ£ö¦]÷tþ§àÿÜ9«ÎT{äÿxww “´/áÿhȹþ¥rMNÔ-š±ÿÄyþR¶Z¾ “Å_ï˜ÿ ëGV’wÿ¬†Ö<ƒÄ¡á‚xþ_È3içÒÿ: ”ÿ+¨Ýÿ|íŽÆÓ2þ.õg¤øT˜FÐÿ´u±FO¹óJ •œÏÅÄ¡õ5ï]öþ‹ð1ÿÄX$ÿ¢&{€È®Lgÿ­©"þØ«ÿr3ˆäÂn–8þjöŸ¸Oÿ–Mðÿ›P¢5©ÿ—VD^\\nþbu•ÿùMæÿý\nŒÖ|\\þ#vëY095¦¸=ÿ³ÿÂÖø=þ;nöyQþ¦äj@ÿEè†ÿòÜ5þ.ÜUq•÷ÿa³gÿ¾ ‡Ñ¶_4ªÎÿzÈÌÿ¨d’<•þF<(z4±ÿöÓeÿ®í3x­~ïœÿ½ËĀXÿé…âÿ}­ÿÉl2{d;ÿþ£ݔµÿֈ9þÞ´‰ÿÏX6ÿ!ûÿCÖ4ÒÐdQª^‘(5àoçþ#ôÿâÇÃþîæÙÙ¤þ©ÝÚ.¢ÇÏ£ÿls¢`»ÿvçãê³ÿ"½Ôþô»ù¾\rP‚Y߅­ ÞÆÿBJ§Ø]ÿ›¨ÆB‘Df.¬ZšØ€Kÿ (3ž|ð1ìʰÿ—|Àÿ&Á¾_¶=£“|ÿÿ¥3ÿ(þ×`NV‘Úþ$ÊÿV o)Èÿíla9>,u¸-ñt˜Üÿ¥¼úƒ<,}ÿAÜûÿK2¸5Z€ÿçPÂÿˆ»ÿ-:¡ÿG“"®ù þ#ïD±ÿsn:î¾±Wõ¦ÿ¾1÷ÿ’S¸ÿ­\'ÿ’×hŽßx•È›ÿÔϑµÙ­ Wÿÿ#µwß¡Èß^ÿFºÿÀCUÿ2©˜{ÿ8ó³þDˆ\'Œ¼þýÐÿÈs‡+¬åÿœh»—û§4‡—™H“Åkþ”žÿîÎ~™‰ÿX˜ÅþD§üŸ¥ÿïN6ÿ?7ÿ&Þ^í· ÿÎÌÒ\'öþJç‡l³suvt„üÿ‘¡iCR%âÿîâäÿÌցþ¢{dÿ¹yê-lçB8ÿ„ˆ€¬àBþ¯¼æßâþòÛE¸wR¢8r{¢gUÿ1ïcþœ‡×oÿ§þ\'Ä֐&Où¨}›aœÿ4Ûÿ–,•¥ÿ(·ÄMéÿvÒÿª‡æÿÖwÆéð#ý4ÿuf0ÿ̚ÿ³ˆ±ÿ•‚YÿüŸF<k´¾<ÿ8¶;ÿnG6ÿƁÿ•àWÿߘÿжÿúœÍì-ÐÿO”òeFÑgN®e¬ÿ˜ˆí¿ÂˆqP}˜›–5ÿÄtõïrIþRÿ|}êÿ(4¿*Ҟÿ›„¥²*@\\(ÿ$UMÿ²äv‰B`þsâBnðEþ—oP§®ìÿãlkÿ¼òAÿ·Qÿ9εÿ/"µÿÕðžGK_œ(ÿfÒQ«Çäÿš")ã¯KïÊå_LÀ1u{Wãá‚}>?ÿÆ«þ$\rþ‘ºÎ”ÿôÿ#¦–Û\\äÔ\\Æ<þ>…ÈÿÉ);}îmÿ´£îŒzR Xÿŝ/ÿ™^9X¶T¡U²’|¦¦ÿÐߜ¶ò›y¹Sœ®þšvÿºSèß:yÿX#}ÿª•þ¤ ‚ÿ›Ä¡`ˆ#¢%û.òÿÙ¼9®âÎé9»ˆþ{½ ÿÉuÿº$ÌçØPNi†ÿ”ËDQ}þø¥Èÿ֐‡—7¦ÿ&ë[.šßþ–ÿ#™´ÿ}°+bÿØzæÿé  9¹ þðqÿ þ[lmÆË“(†äÿ|º(ÿrb„þ¦„cE, òîÿ¸5;„fÿ4 óþ“ßÈÿ{S³þ‡Éÿ%8—<ãÿZIœˬ»P—/ÿ^‰çÿ$¿;ÿáѵÿJ×Õþv³ÿ™6Á2çhHŒãšÿ¶âþ`á\\ÿsªþúNøK­ÿ5Yÿ´vH­@ή…ß¹>…ÿÖ bÅЫ§ôÿçµ–Ú¹÷©a¥‹÷ÿ/x•gø3²¦{„ ¡ÿ=®+ÃE/¿",N9ê4ÿ(ÿö^’Sä€?ƒ³»ÿMœ›ÿwV¤ªÐ’ÿЅšÿ”›:ÿ¢xèþü՛ñ\r*^2ƒ³ªpŒS—ÿ7wTŒ#ïÿ™-Cì¯\'6—gÿž*AÿÄï‡þV5˕a/þØ#ÿFFg$Zÿ(­¸0\r£ÛÙÿQÿݪlþéÐ]dÉùþV$#ÿњãÉûÿ½§þd9\r€)ÅdK–Ìëÿ‘®;xø•ÿU7árÒ5þÇÌw÷J?ûCh—‡‚POY7ÿuæÿ`Õ‘Eñx•ó_ÿr*ƒHš5ÿI>mÄf˜) Ìÿz& ú\n‘Ï}”öôÞÿ) UpÕ~¢ùVGÆÿQ b\'ÿÌG-Ko‰ê;ç 0_ÿÌrĵÿ3ñ§þ]mŽh-ë µÿ4p¤LþÊÿ®¢=ë“ÿ+@¹þé}ÙóX§þJ1œÌB|Ö{&Ýv’pìrb±—YÇWÅp¹•¡,`¥ø³ÿ¼ÛØþ(>\róŽåãÎÿ¬Ê#ÿu°áÿRn&*õÿSa1«\nòwxè=Ôð“ÿs8ÿ‘ïþÊûÿùõÿcu︳ÿöí3ÿ%ï‰ÿ¦p¦ÿQ¼!ÿ¹úŽÿ6»­ÐpÉö+äh¸XÿÔ4Äÿ3ulÿþu›.[ÿWÿWãÌSSŸLãŸÕ—lu³þ‰ÑR&Ÿ\ns…Éß¶œnÄ]ÿ9<é§iÿšÅ¤`"ºÿ“…%Üc¾§Tÿ‘«ÂÅûþ_N…ÿüøóÿá]ƒÿ»†ÄÿؙªvžþŒvVž-Ó)ÿ“dþqtLÿÓlg0ÁfE3_ÿk€‰«éZ|j¡¶¯Lìȍ¬ÿ£:hé´4ÿðýÿ¢qþÿ&ïŠþ4.¦ñe!þƒºœoÐ>ÿ|^ ÿ¬þp®8ÿ¼cÿCŠû}:€œ˜®ÿ² ÷ÿüTžRÅþ¬ÈSÿ%\'.jϧ½"ƒ²ÎÕ¡âÒH3iÿa-»ÿN¸ßÿ°ûO Vÿt%²RMÕRTÿâeÔ¯XÇÿõ^÷¬vmÿ¦¹¾ƒµxWþ]ÿ†ðIÿ õÿ‹¢gÿ³bþÙÌp“ßxÿ5\n󦌖}PÈÿmÛÿ[Úÿüü/þmœtÿs1ÌWÓÿ”ÊÙÿUùÿõ†LY©ÿò-æ;b¬ÿrI„þN›1ÿž~T1¯+ÿ¶Tÿg#hÁmÿCݚɬþ¢X¥ÿ}›åÿšÜgï\\ÜmÿÊÆ^Ž$6,ëâžÿªûÖÿ¹M aJòÛ£•ÿð#vÿßrXþÀÇj%ÿÉ¡vÿaYcà:gÿeǓþÞÿ\n—\nO‹²ÿxòÊÛÕ>}#ÿlÿæ!SÿQ-Øà>ÖÙ}b™™ÿ³°jþƒ]Šÿm>$ÿ²y ÿxüFÜø%ÌXg€Üûÿìãj1Æÿ<8kcrîÜÌ^I»Yš"NÙ¥ÿÃùÿ æýÿ͇õüÿT͆p%ž ç[íÿ¿ªÌÿ˜ÞmÀ1Á¦’ÿèµÿiŽ4ÿgýÈ¥ÃÙÿ4½ÿ{› þW‚6ÿNx=ÿ8))}ÿW¨õÖ¥FÔ©ÿÛÓÂþH]¤ÿÅ!gÿ+Žƒá¬ôiDDáˆT\rÿ‚9(þ‹M8T–56_\r±þ_sºuvÿô¦ñÿ º‡²jËÿaÚ]+ý-¤˜‹vï`þë™Óÿ¨nÿ2ï°r)èÁú5þ oþˆz)ÿalCטÿŒÑÔ*½£Ê*2ÿjj½ÿ¾DÙÿé:uåÜóÅ%x6þœ†ÿ$=«þ¥ˆdÿÔèZ®\nØÆAÿ @tqsÿøgç}ÿ Å¸#ßIùÿ{.þ‡8%ÿ­\råw¡"ÿõ=IÍ}p‰h†Ùöÿ펏AŸfÿl¤¾Ûu­ÿ"%xþÈEP|ÚþJ ÿºšÇÿGÇühQŸÈ\'Ó=Àî[”Ù ;[Õÿ Q·ÿæzÿrˑw´BÿHŠ´à•jwRhÿЌ+b ¶ÿÍe†ÿe&_ŦÿËñ“>Бÿ…öû©\r÷¸Žþ$ÈÿXÍß[4ÿºäÒ÷êøÿæEþ°º‡ÿîÍ4‹O+°Ùþ óCòoé,# ÿãrQG ÿ&i¿u2ÿQO?DAÿ$nÿMñÿâ-ûŽÎx{Ñþîÿ€~ÿ[Þ×ÿ¢¿VðI‡¹Qþ,ñ£ÔÛÒÿp¢›Ïev¨H8ÿÄ4H¬òÿ~ÿ’`;ÿ¢y˜þŒ_ÃþÈþR–¢w+‘þ̬Nÿ¦àŸhíÿõ~Ðÿâ;ÕuÙŘHíÜþZçÿ¼Ô@¸L@Ϭ¯Ðþ¯J%ŠÓþ”}Â\nYQ¨Ëeÿ+ÕÑëõ6#âÿ ~Fâ}^þœuÿ9øpæ0@ÿ¤\\¦àÖæÿ$x7+ÿûõjb¥Jkjþ56ÿZ²–x{ÿôYrú=ÿþ™RM9îZ_ßæì4/þg”¤ÿyÏ$¹ÿKJ» e.0ÿïÒÿMìÿoMÌÿ=HaÿÇÙûÿ*×̅‘Éÿ9æ’ëdƒI#þlÆÿ¶OÒÿRgˆöl°"<ÿJrþ¨ªNÿïÿ•)¨:yO³†ÿçy‡ÿ®Ñbÿóz¾«¦ÍÔt0lBÿ¢Þ¶wÕ\'ùÿþßäÿ·¥Æ…¾0|Ðmÿw¯Uÿ Ñy0«½ÿÃG†ˆÛ3ÿ¶[þ1ŸH#võÿpºãÿ;‰‰,£rg<þՖ¢\nqÿÂhH܃tÿ²O\\ËúÕþ]Á½ÿ‚ÿ"þÔ¼—ˆÿeSÿÔΦåîIÿ—Jÿ¨Wכ¼…ÿ¦IðO…ÿ²ÓQÿËH£þÁ¨¥¤ÇþÿÌAH[¦JfÿÈ*ÿÂqãÿBÐåØdÿï\né>ÿ{\n²$®ÿwÛÇ-£¾¨*¦9Æÿ~¥çûldÿ=åyÿ:vŠLÏ\r"pþY¨%Ðiÿ#É×ÿ(jeþïr(gâþönÿ?§:„ðŽžXÿIžÿ^Y’æ6’-­O©sº÷T@ƒCàýÿϽ@šQ-¸6ÿWÔàÿ`Iÿ!ë4BPÿû®›ÿ³%ê¤]þ]¯ýÆEWÿàj.cÒ>¼rÿ,ꩯ÷ÿm‰ÿå¶\'À¥^þõeÙ¿X`Ä^cÿjî þ5~ó^eÿ.“É||ÿ Ú\r¦0ûíÿ›ú|ÿj”’ÿ¶\rÊ=§Ù˜þ܂-ÿÈæÿ7AWÿ]¿aþrû i\\ύÏ\rþ20ÿº”tÿÓ+á%"¢þ¤Ò*ÿD`ÿ¶Öÿõu‰ÿBÃ2K SþPŒ¤ ¥$änãñZ4Ôß ÿ‹ó9 qKö·¿ÿÕ¿EÿæŽÃÄÿŠ«/ÿ@?j©ÖÿÏ®8XI…ÿ¶…Œ±ÿ“¸5ÿ\nã¡ÿxØôÿIMéî‹;AéFûØ)¸™ÿ Ëp’“ýWem,R…ÿô–5ÿ^˜èÿ;]\'ÿX“ÜÿNQ\r /üÿ rÿ]k\'ÿvÓ¹wÑÿãÛþXiìÿ¢nÿ$¦nÿ[ìÝÿBêtoôþ\né ·þ¿òڜ5þ)­o¥övs[ÿ€T<§ËW\róä±q’ÿªæþü™ÿ‘á+Fçÿzi~þVö”ÿn%šþÑ[D‘>ä¥ÿ7Ýùþ²Ò[S’âþE’º]Òhþ­çº&½zŒÿû\rpÿin]ûHªÀßÿÊá]䙓Çþmªøeöÿ²| ÿ²þfþ7A}Ö´·`“-uþ„¿ù°Ëþˆ·6ÿ’ê±’eVÿ,{!јÀZ)þS}ÿÕ¬Rש\r" ÑdÿTùÅìÿÙºæ1 °ÿovaÿíhëO;\\þEù ÿ#¬JvDÞ|¥ÿ´B#ÿV®ö+Joÿ~Vÿäê[òÕþE,ëÿÜ´#øÿf/\\ÿðÍfÿq櫹ÉÿÂöFÿz»†FÇÿ•–ÿu?gAh{ÿÔ6XS†óÿˆ5g©´±1o6§Ã=×ÿl<*F¹¢ÿ•(ÿö&þ¾w&ÿ=w`¡Ûÿ*Ëݱò¤ÿõŸ\ntÄ]Íþ€³}íöÿ•¢ÙÿW%þŒîÀ Áaâ&\nˆ?ÿåHÒþ&†\\ÿNÚÐh$Tÿ Áÿò¯=ÿ¿©.³““ÿq¾‹þ}¬Küþ×$ÁÿE•ÿnvË]ùЉ@þ&F™tÞ¡J{ÁcOÿv;^ÿ= +’±.“¿ÿ& 3<:bÿoÂMš[ôŒ(­\nûËÑ2þl‚Nä´Z®ú®<)«tcRÿvÁ‹ÿ»­ÆþÚo8¹{Øùž44´]ÿÉ [ÿ8-¦þ„›Ëÿ:èn4ÓYÿý¢ W·‘ˆ,^zõU¼«“\\Æh_®Ýæ4÷÷ëÿ‰®5ÿ#ÌÿGãÖèR 0ãÿªI¸ÿÆûüþ,p"ƒeƒÿH¨»„‡}ÿŠhaÿÿóhTÿ‡Øâÿ‹í¼‰–P8ŒÿV©§ÿÂNÿÜ´ÿ\rÁu‰Ôÿà—1ô¯Ác¯ÿcšÿA>ÿœÒ7ÿòôÿú•žXÙÿÏ†þûè.œûÿ«8¸ÿï3ꎊƒÿþó\nÉÂ?aKÒï¢ÀÈuÖóGÞþ6(èÿL·oþWÿÖOˆÿØÄԄŒþƒý|lÿ×KLÞ7þé¶?D«¿þ4oÞÿ\niMÿPªëXÿ-çy”à=öTý.ÛÿïL!1”þæ%EC†þŽ›^ÓþÕ*ÿä÷þü°\rÿ\'þñôÿÿª-\nþýÞùÞr„ÿ/ÿ´£³T^—ÿYÑRþå4©ÿÕìÖ8äÿ‡w—ÿpÉÁS 5þ—B¢éa[ƒNµx5ÿu_?ÿíu¹¿~ˆÿwé·9a/É»ÿ§¥w-d~bþ‘–_ÿx6˜Ñbhoþ¸”ùëØ.øÊ”ÿ9_òá£é÷èÿG«ÿgô1ÿTg]ÿDyôRà\r)O+ÿùΧÿ×4þÀ ÿ÷o<eJ&ÿ[Tþ\rÿÆç×þôšÈ߉íӄ_@Îÿ>÷ÿéƒy]MÍÌ4þQ½ˆ´ÛŠ^Ì+Œþ¼¯Ûobÿ—?¢ÿÓ2Gþ’5’-Sþ²Rîÿ…TÿâÆ]ÿÉaÿxv#ÿr2çÿ¢åœÿÓ r\'sÿÎԆÅÙ ÿt^þÇ×ÛÿKßùýtµÿè×hÿä‚öÿ¹uVï=íW…ÿ}’‰þ̨ß.¨õšiÜÔ¡ÿkEÿ‰ÚµÿñTÆÿ‚zÓÿ™ÿ¾±v`Y²ÿ0þz`iÿu6èÿ"~iÿÌC¦è4Šÿӓ 6,×þ3ì-¾Dj“á]-þìÿ=¡ÜsÀì‘þo¨©à:?ÿ¤¼RêKàž†ÑDnÙ¦ÙFᦻÁÿXÿ\n͌uÀœ8&|l«×7ÿ_ýԛ‡¨ÿö²™þšDJè=`þi„;!Lǽ°‚ÿ hþKÆfÿéplÜÿræFŒÂ…ÿ9ž¤þ’Pÿ©ÄaU·‚FžÞ;íêÿ`ÿè¯aÿ yøþX#ÂÛ´üþJãÃãI¸n¡ÿ1餀5/RyÿÁ¾:0®uÿ„ (\n†3ÿð °ÿn9’uïevÿ6TL͸ÿ/HÿNpUÿÁ2B]4ÿi† mHÿ:œû#Ì, uþ2kÂD¥ÿon¢žS(þLÖê:ØÍÿ«`“ÿ(ãr°ãñFù·ˆT‹ÿ÷ÿ-@8ÿ¡ô"98iÊS€“Ðg\nÿJŠAÿaPdÿÖ®!ÿ2†Jÿn—‚þoT¬TÇKþø;pÿز ·_îþªÍÜÃå‡bLíÿâ[RÛ\'ÿá¾ÇÙÈyÿQ³ÿŒAβÏWþúü.ÿhYný½žÿÖžÿ õ6ÿ5·\\ÈÂÿ’!qÑÿëj+ÿ§4èåÝ3úÝA“WÿO{ÄAÄßÿL,UñDÊ·ùÿAÔÔÿ !šG;P¯Â;ÿH d ôæÐ8;KþPÂÂÈþ Ÿs„÷o]9ÿ:í †Þ‡ÿz£l{+¾ÿû½ÎþP¶HÿÐöà< ¡Ï&m[ØÓÿˆNnb£hÿPyÿ­²·hÿ3ÿÒÿ>ìþ7àÿr\'ôÀ¼úÿäL5bTQÿ­Ë=þ“27ÿÌë¿4ÅôX+Óþ¿w¼çšBQ¡\\Á úãx{7â¸H…¨\nþ‡œÿ)gÿ0Ê:º•Qÿ¼†ïëµ½þً¼ÿJ0R.Úå½ýû2å ÿӍ¿€ôÿ©çzþV/½ÿ„·ÿ%²–ÿ3‰ýÈNi2‚<„£[þç»ÀOïf¤ÿÀRµgÿð ê{¤ÿ…éÿÊòò<ºõñÇÿàtžþ¿}[ÿàVÏy%çÿã Æÿ™ïÿyèÙþKpR_ 9þ3Öiÿ”ÜaÇb$œÑ þ\nÔ4Ù´7þÔªèÿØTÿú‡cþÎ)•$F6ÄÉÿWtþ뫖£êʇ´Ð_þ{œ]·>K‰ë¶Ìáÿÿ֋Òÿsÿ o4œýûÿ%¥þ ‚Ój5þ*cšÙ=þØ \\ÿÈÅpþ“&Ç$üxþk©M{ŸÿÏKf£¯Ä,ðxº°þ\rbLÿí|ñÿ蒼ÿÈ`àÌ)ÐÈ\rá`ÿ¯œÄ÷Ð~>¸ôþ«QUsž6@-ÿŠr‡GÍã/“ÚçBýÑô­ÿvþ–Ðÿ¹2ÿVpÏÿKq×?’+ÿáþã>ÿÿÖþ-ÍÿWŗþÒR×ÿõø÷ÿ€øFá÷WZxFÕõ\\\r…â/µ\\£iÿ…þè²=ÿæ•ÿ1žäd=þtóûÿMK\\QۓÿL£þþÕöè%˜þa,dÉ%2Ôô9®«·ÿùJp¦œÞÝaÿó]IþûedÿØÙ]ÿþŠ»ÿ޾4ÿ;˱ÿÈ^4sržÿ¥˜h~câÿvôkÈÁZåyXœ ]þ}ñÓÿíÿ¥šÿ¸àÿú˜ÿqM÷«ÿí±Ìÿ4‰‘ÿ¶ràê•\nogɁîŽN4(ÿnÕ¥þ<Ïý>×E`aÿ1-Êxyÿë‹0Æ-"ÿ¶2ƒÒ[ÿ.6€¯{iÿƍNþCôïÿõ6gþN&òÿ\\ùþû®Wÿ‹?lÿ"f"˜Båvþ2c©•v˜²yŸZeæÿwD$ è·7ÿ`ÿ¡)Áÿ?‹Þ³óÿdÿR5‡‰9•cðªÿæäþ1´Rÿ=R+nõÙÇ}=.ý4ÅÛӟÁ7yiþ·©wªÿ˲‹ÿ‡(¶ÿ¬\rÊÿA²”Ï+z5J¡0ãրþV óÿdVõD†ÿ=+˜T^ÿ¾<úþïvèÿֈ%qLkÿ]hdÎÿn–šäg¹Ú12þ‡M‹ÿ¹N¡”ÿaéÿϔ•ÿ ¨[€«ÿþ o÷\'»–ÿŠè•u>Dÿ?ؼÿëê þ9 ÿ ñ©<¿ ƒÿíŸ{ÿ^Å^þtþÿ\\³aþya\\ÿªp•øøãP`mKÀJ Zâÿ¡jDÐrÿr*ÿþJJÿ÷³–þyŒ<“FÈÿÖ(¡ÿ¡¼ÉÿA‡ÿòsü>/Ê´•ÿþ‚7í¥ºÿ\n©ÂœmÚÿpŒ{ÿh€ßþ±Žlÿy%Ûÿ€Mÿol[ÀK®õÿì>ÿ+@™ã­þíz„YºÿŽR€þüT®Z³±óÖWÿg<¢ÿЂÿ ‚‹ÎÛÿ^ٝÿïææÿtsŸþ¤k_3ÚØ}ÆÿŒÊ€þ _Dÿ7 ]þ®™ÿ̬`E nÕ&1þPÕv}rFFCÿŽIÿƒz¹ÿó2þ‚í(ҟŒŗAÿT™BÃ~Zîìv»fÿ…ÿ»Eæ8Å\\ÕE^ÿPŠåÎæÞoæ[éwÿ Yb”J…ÿ3ö´ÿä±p:½lÿÂËíþÑÓ\n#Vâ£‹þ8Kÿ>Ztµ<©Š¢ÔþQ§ÍZpÿ!pãS—u±àIÿ®ÙÿæÌOÿMèÿrNêà9~þ 1ò“¥h¶Œÿ§„ {DáW\'ûlÆÁy‡Ïÿ¬F2Dtÿe¯(ÿøié¦ËnÅÚ×þþ¨âý` g)·Ëþd÷JÿÕ~„Ò“,Çê”/µ›[ž6i¯ÿN‘þfš_€Ïþ4|ìÿ‚TGÝóӘªÏÞjÇ·T^þ\\È8ÿжsŽ`’…ˆäa–7ûBŒfÊg—øÿ3¸ÏÊÆY7Åáþ©_ùÿBADÿ¼ê~¦ßdpïôÂ:\'¶ô,þ¯D³ÿ˜v𰢂ÙrÌþ­~Nÿ!Þÿ$[ÿó ë׫—×õÿ¨/¤þñ’ÏE´Dóq5Hþû-n¨DDOÿnF_þ®[ÿ!Î_ÿ‰)ÿ»™þ#ÿpÿ ‘¹þ2% p1f¾ÿêó©ÿaæGÿf=LÔìÿ¤aÆ;’£Ä8=µbÁû“åÿb½ÿ.6ÎÿêRö·g&m>Ì\nðà’uÿŽšxEÔ#ÐcvyÿÿHÂuÅÿ}šO™Ö^Åÿ¹7“ÿ>þNþR™nf?ÿlR¡ÿi»ÔPŠ\'<ÿ]ÿH ºÒû¾§ÿä,þ€CèÖùkþˆ‘Vÿ„.°½»ãÿÐŒÙÓt2Qºþ‹ú@Ƈ›d Îþ»¢Óÿ¼?þÐ1UT¿ñÀòÿ™~‘ꢢÿæaØ@‡~¾”ß4+ÿ\'½@ˆî¯Ä¹bâÕÿŸôâ¯< éŽ´óÏÿE˜Ye¤þ‹¿Ñ[y “\'º{ÿ?sæÿ]§ÆÿÕÜÿ³œÿBzÖ Ùÿ->ÿjO’þ3‰cÿWdçÿ¯‘èÿe¸ÿ® }R%¡$rÿ0ގÿõºš®Ýþ?r›ÿ‡7 P‡~ú³ìÚ-‘“Iù½„½ÀÿߎÆÿHÿú5íþ ÓqþÕk8ÿ®“’ÿ`~0Ám%¢^ǝùþ€»ÿÍ1²þ]¤*ÿ+wëX·íÿÚÒÿkþ*æ\ncÿ¢âÛí[²ËÐ2_þÎÐ_ÿ÷¿YþnêOÿ¥=ózpÿöö¹þg{écæÛ[üÿÇÞÿ³õéÿÓñêoúÀÿUTˆe:2ÿƒ­œþw-3ÿvéþòZÖ^ŸÛêÿbL\\þP6æäçþ5ßÿq8v„ÿ«Òì8ñžÿºsÿå®0,rr¦ÿIâÿÍYô‰ãKø­8Jxöþw ÿQxÆÿˆzbÿ’ñÝmÂNÿßñFÖÈ©ÿa¾/ÿ/g®ÿc\\Hþvé´ÿÁ#éþå ÿÞüÆÌ+GÿÇT¬†f¾oîaþæ(æãÍ@þÈ á¦ÞqE3ÿŸ§¸JàtþžÐéÁt~ÿÔ …ÿ:ŒÌ$3ÿè+ëFµÿ@8’þ©Tÿâ\rÿÈ2°ÿ4Õõþ¨Ña¿G7"Nœè:¹J½ºŽ•þ@Eÿ¡Ë“ÿ°—¿ˆçËþ£¶‰¡~ûþé BDÏB%]r`þ\\÷ÿ,«EÊw ÿ¼v2ÿSˆÿGRFã ëyµ)šG†åþÊÿ$)˜š?Iÿ"¶|yݖÿÌÕ)¬WZ’ÿm‚GkÈÿóf½Ñþ.XuÎã¿nýÿm€þ†U3ÿ‰±pØ"ÿƒÐÿy•ªr¦Pÿqðzè³úDn´þÒªwßl¤ÿÏOéÿåâþÑbQÿODƒ¹dª¢ÿ¢kÿ9 dȵÿA¦¥†Ìh§¨¤O’‡;F2€ÿfw\rþã‡¢Ž³ÿ dÞàÛž]Ãÿꍉ}ÿîÎ/ÿabÿtn ÿ`sM[ãèÿøþOÿ\\åþXƋÎKúMÎÿô{ŠEÜ —ƒ§ÿíD§þǽ–£«Šÿ3¼ÿ_‰þ”â³µkÐÿ†Rÿ—e-ÿÊáàH“0Š—ÿÃ@Îþíڞj‰þý½éÿgÿÂaÿ²-©þÆá›\'0uÿ‡jsa&µ–/AÿS‚åþö&\\ïšþ[c¡o!ÿîÙòÿƒ¹ÃÿÕ¿žÿ)–Ú„©ƒYTü«F€ÿ£øËþ2´ÿ|LUûoPcBïÿší¶ÿÝ~…þJÌcÿA“wÿc8§ÿOø•ÿt›äÿí+þE‰ ÿúñ[zÿÍùóÔ<ÿ0¶°0¿ÿËy˜þ-JÕÿ>Zþõ£æÿ¹jtÿS#Ÿ !ÿP">W®ÿ­eUÊ$Qþ EÌÿ@á»:Î^V/åVõ?‘¾%\'mû‰“ê¢y‘ÿtÎÿÅè¹ÿ·¾ŒÿI þÿ‹òÿªZïÿaB»ÿõµ‡þވ4õ3þË/N˜eØI}þ`!ëÒIÿ+ÑXmzhäþªòËò̇ÿÊéÿAŸGdŒ_N–\rûkv¶:}ÿ&lÿ½Ñÿ›}q£[ÿyO¾ÿ†ïlÿL/ø£äïo\nX•Kÿ×ë履ÿ/—lÿkѼéçcþʔÿ®#ŠÿnDÿEµkfRfí\\$íÿÝ¢S7Êÿ‡ê‡ÿúÞA^¨þõøÒÿ§lÉþÿ¡oÍþˆ\rtd°„ÿ+×~ÿ±…‚ÿžO”Cà% Îÿ>"níh¯ÿP„oÿŽ®HTå´þi³Œ@øÿéŠõC{þÚyÔÿ?_ÚՅ‰ÿ¶Rÿ0 ôrѯLÿµ–ÿºåÿ¤o罋wʾÿÚj@ÿDë?þ`¬ÿ»/ ×ûÿQTYD:€^q\\ÐÿaSþ ¼ï ¤<͘À£bÿ¸<Ù¶‹m;xÿÀû©Òðÿ%¬\\þ”Óõÿ³A4ý\rs¹®Îr¼•ÿíZ­+ÇÀÿXlq4#LB”ÿÝÿ—ñrÿ¾Ñèb2Ǘ–ÕÿJ$5(‡Aÿ¬E®íUc_)8\' ±ÿÈjÚþ¹DTÿ[º=þCÿ\rô¦ÿcrÆÇn£ÿÁº|ïönDë.Ôdÿµì^þ¤LpÿxfOÊÀåȰ×)@ôÿθN§-? #ÿ; ŽÿÌ ÿÛ^åzp½imÿ@ÐJÿû7âÆ,Lї˜MÿÒ.É«Eÿ,Óç¾%àÿõÄ>ÿ©µÞÿ"ÓwñÅÿå#˜E(ÿ²â¡”³ÁÛÂþ(Î3ÿç\\úC™ª”ñªERÿyçÿ\\r¸>æáÉWÿ’`¢ÿµòÜ­»Ýâ>ªÿ8~Ùu\rãÿ³,›ÿÝSëÑÐ*¥ûQ…|õÉþaÓÿSÖ¦š$ ÿø/Zیÿ¡Ù&þԓ?ÿBT”Ïæ†YNzÿà›ÿRˆJ²œÐÿº1ÿÞÒ喾ÿU¢4ÿ)TÿI{Tþ]–w ×ÿÌÿŽñ4ÿä4}LÏ×§úþ¯¤æ7Ïim»õÿ¡,Ü)e€ÿ§^]ÖkÿvHþP=êÿy¯}‹©ûa\'“þúÄ1ÿ¥³nþßF»ÿŽ}š³Šÿv°*\n®™œ\\f¨\r¡ÿ úÅ´ÿË£,W $¡™ÿ{üãPþÄáºþ{¬U)ÿâo·Õç—;ÿB“!ÿöÿэtÿhpX¡¬S׿þ/o—-&4„-̊€mþéu†ÿó¾­þñìðRìþ(ß¡ÿn¶áÿ{®ï‡ò‘3њ–sþÙ¤üÿ7œET^ÿÿèI-Ôÿ`Å;þ`û!&ÇI@¬÷ÿut8ÿä>Šgöå¤ÿôvÉþV Ÿÿm"‰UÓº\nÁÁþz±zîfÿ¢Ú«lÙ¡žª"°/›µä ÿœK]Îbÿ:š# ó¸þCuBÿæå{É*n†ä²þºlvÿ:šÿR©>ÿrsïÄ2ÿ­0Áÿ“Tÿ–†“þ_èImã4þ¿‰\n(ÌþL4aÿ¤ë~þ|¼J¶y#ÿñþUÚÖÿT–þQuÿ Ÿ˜þBÝÿã\n<‡fн–u³\\„ˆÿxǁOþ¶ AÚ£©ö“Æÿk&N¯ÍÿÖúþ/Xÿ¤/Ìÿ+7ÿƒ†ÏþtdÖ`ŒKjܐà ¬Qÿdz4ÿ%T˪p® [Eôuƒ\\!˜¯ÿŒ™kÿû‡+þWŠÿÆê“þy˜TÿÍe› Hjþl™ÿ½åºÁ°ÿ®•Ñî‚éÖ~=âf9£Æo3ÿ-ONsÒ\nÿÚ ÿž‹ÆÿÓR»þP…Sæó…†ÿ(ˆMkOÿ·U\\±ÌÊ£G“ÿ˜E¾¬3¼úÒ¬ÿÓòqYYÿ@Boþt˜*¡\'ÿ6PþjÑsg|aÝæbÿç²ÀxþÙËÿ|žOp‘÷\\ú0£µÁÿ%/Žþ½¥ÿ.’ðK€)ÈþWyÕqì-ú Rlçáïwÿ§½ÿ»ä„ÿn½"^,Ì¢4ÅN¼ñþ9ô’/Îd3}k”þÃM˜ýZÿ3%"w&ÿÅv™¼Ó—tþõA4ÿ´ýn/±Ñ¡cÿvÞÊ}³ü{6~ÿ‘9¿7ºy\nóŠÍÓåÿ}œñþ”œ¹ÿã¼ÿ|) ÿ"Îþ9SÌ%ÿ*`bwf¸¾nRÚÿÈÌÀÿɑvu̒„ bÀÂyj¡øíX|ÔÍ«Zÿø0؍%æÿ|Ëþž¨ÿÖøp»ÿK…ïÿJãóÿú“FÖx¢§ ³ÿžÚMÑamQÿô!³ÿ949ÿA¬ÒÿùGÑÿŽ©îž½™ÿ®þgþb!Læÿq‹4ÿ:Ô¨×ÉÿøÌ×ßD ÿ9š·þ/çyj¦‰QˆŠ¥+3ç‹=9_;þvbÿ—?ì^¾úÿ©¹rú:ÿKia×߆qc£€>pcj“£Ã\n!ͶÖ®ÿ&çÿ5¶ßb*Ÿÿ÷\r(¼Ò±ÿÿ=”þ‰-ÿYtþ~&rû2òþy†€ÿÌù§þ¥ë×ʱó…>ð‚¾n¯ÿ’%Òyÿ\'‚ŽúTÿÈÏ _hÿ ô®†è~§{þÁ•ÿèéïÕFpÿüt þòÞÜÿÍUã¹:v÷?tM±ÿ>õÈþ?%ÿk5èþ2ÝÓ¢Ûþ^+¶>¶þ NÈÿ‡Œªë¸ä¯5ŠþP:Mÿ˜É?Ä"¸«°šy;Î&c\'¬PMþ†—º!ñþ^ýßÿ,rül~9ÿÉ(\rÿ\'åÿ\'ï—y3ÿ™–ø\nê®ÿvöþÈõ&E¡ò²–q8‚«iXlÿ1*jû©BE]•9þ¤oZ¼ZÿÌÅ(Õ2Ô`„ÿXŠ´þä’|ÿ¸ö÷AuVÿýfÒþþy$‰sÿ<؆;âa°ŽGÑ¡½T3þ›úHÕTëÿ-Þàÿª*5ÿN§uº(ÿ}±gÿEáBãXK¬©-ã$Fÿ2 ÿ‹Á·çþÚE2ì8¡Ճ*Š‘,þˆå(ÿ1?#ÿ=‘õÿeÀþè§q˜h&y¹Úy‹Óþwð#A½Ùþ»³¢ÿ »æ>øÿçÿÜøl 粏P[ƒ]eÿ\'ÿú²ìþ‹ .̼&þõs4ÿ¿qIþ¿lEÿEõ˲ªcªAøo%l™ÿ@%EX>þY”ÿ¿Dàñ\'5)Ëíÿ‘~ÂÿÝ*ýÿc—aýßJs1ÿ¯Hÿ;°Ë|·ùääc Ïþ¨ÀÃÿ̰þ˜ê«M%Uÿ!x‡ÿŽÂãÖ:Õ»}ÿè.<ÿ¾t*þ—²ÿ3>íþÌìÁÂè<¬"ÿ½¸þg_ÿé$þ) ÿævõ-CՕÿŸ ÿ»¤ã  NÃ+Åá0Ž)þě<ÿßÇ‘ˆœüu©þ‘âîïkmµ¼ÿæp1þIªíÿç·ãÿPÜÂkÍe.4ÅÒ«$ÿXZÿ8—`»ÿÿ*NÈþFFô}¨ÌDŠ|×FfBÈþ4äu܏þËø{8®ÿº—¤ÿ3èРä+ÿùD¾?\rÿõûýóó óýÿõÿÿA¬‰ +vÁ_epÿPü¡þòjÆÿ…²äßpßîUþ3ó>+‹þËA\nAà‰ W3M푪Vÿ6&3ÿñ€eÿ)yJÿìN›©—iþœ)HÂf¯ÿ΢eÿ.{¨ýÿÓ¯—þÃÛ`8v¾þþÑõÿ™d~þèÿ5¸òÿǤÝAàŠ A€‹ ñ&àëz|;A¸®VãúñŸÄjÚ ëœ2±ý†b_I¸_œ•¼£PŒ$±Ð±Uœƒï[D\\ÄXކØ"NÝПWìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆcc¥ø||„îww™ö{{ÿòò\rÖkk½Þoo±‘ÅÅT`00PÎgg©V++}çþþµ××bM««æìvvšÊÊE‚‚‰ÉÉ@ú}}‡ïúú²YYëŽGGÉûðð A­­ì³ÔÔg_¢¢ýE¯¯ê#œœ¿S¤¤÷ärr–›ÀÀ[u··Âáýý=““®L&&jl66Z~??Aõ÷÷ƒÌÌOh44\\Q¥¥ôÑåå4ùññâqq“«ØØsb11S*? •ÇÇRF##eÃÃ^0(7––¡\n/ššµ $6€€›ßââ=Íëë&N\'\'i²²ÍêuuŸ ƒƒžX,,t4.6-Ünn²´ZZî[  û¤RRöv;;M·ÖÖa}³³ÎR)){Ýãã>^//q„„—¦SSõ¹ÑÑhÁíí,@ `ãüüy±±È¶[[íÔjj¾ËËFg¾¾Ùr99K”JJޘLLÔ°XXè…ÏÏJ»ÐÐkÅïï*Oªªåíûû†CCŚMM×f33U……”ŠEEÏéùùþ PPðx<!–KKÝa½½Ü\r‹‹†ŠŠ…àpp|>>BqµµÄÌffªHHØ÷ööÂaa£j55_®WWùi¹¹Ð††‘™ÁÁX:\'\'žž¹Ùáá8ëøø+˜˜³"3Òii»©ÙÙpŽŽ‰3””§-››¶<"‡‡’Ééé ‡ÎÎIªUUÿP((x¥ßßzŒŒY¡¡ø ‰‰€\r\re¿¿Ú׿æ1„BBÆÐhh¸‚AAÃ)™™°Z--w{°°Ë¨TTüm»»Ö,:¥Æcc„ø||™îwwö{{\rÿòò½Ökk±ÞooT‘ÅÅP`00©Îgg}V++çþþbµ×׿M««šìvvEÊʝ‚‚@‰Éɇú}}ïúúë²YYɎGG ûððìA­­g³ÔÔý_¢¢êE¯¯¿#œœ÷S¤¤–ärr[›ÀÀÂu··áýý®=““jL&&Zl66A~??õ÷÷OƒÌÌ\\h44ôQ¥¥4Ñååùññ“âqqs«ØØSb11?* R•ÇÇeF##^ÃÃ(0¡7––\nµ/šš 6$›€€=ßââ&ÍëëiN\'\'Ͳ²Ÿêuu žƒƒtX,,.4-6²Ünnî´ZZû[  ö¤RRMv;;a·ÖÖÎ}³³{R))>Ýããq^//—„„õ¦SSh¹ÑÑ,Áíí`@ ãüüÈy±±í¶[[¾ÔjjFËËÙg¾¾Kr99ޔJJԘLLè°XXJ…ÏÏk»ÐÐ*ÅïïåOªªíûûņCCךMMUf33”……ÏŠEEéùùþð PPDx<<º%ŸŸãK¨¨ó¢QQþ]££À€@@Š­?’’¼!Hp88ñõõßc¼¼Áw¶¶u¯ÚÚcB!!0 åÿÿýóóm¿ÒÒLÍÍ 5&/Ãììá¾__¢5——̈DD9.W“ÄÄòU§§‚ü~~Gz==¬Èddçº]]+2•æss À``˜ÑžOO£ÜÜfD""~T**«;ƒ ˆˆÊŒFF)ÇîîÓk¸¸<(y§ÞÞâ¼^^ v­ÛÛ;ÛààVd22Nt::\n\nےII\n lH$$ä¸\\\\]ŸÂÂn½ÓÓïC¬¬¦Äbb¨9‘‘¤1••7Óää‹òyy2ÕççC‹ÈÈYn77·ÚmmŒd±ÕÕҜNNàI©©´Øllú¬VVóôô%Ïêê¯ÊeeŽôzzéG®®ÕoººˆðxxoJ%%r\\..$8ñW¦¦Çs´´Q—ÆÆ#Ëèè|¡Ýݜètt!>ݖKKÜa½½†\r‹‹…ŠŠàppB|>>ÄqµµªÌffؐHH÷öö£Âaa_j55ù®WWÐi¹¹‘††X™ÁÁ\':¹\'žž8Ùááëøø³+˜˜3"»Òiip©ÙىŽŽ§3””¶-››"<’‡‡ ÉééI‡ÎÎÿªUUxP((z¥ßߏŒŒøY¡¡€ ‰‰\r\rÚe¿¿1×ææÆ„BB¸ÐhhÂAA°)™™wZ--Ë{°°ü¨TTÖm»»:,c¥Æc|„ø|w™îw{ö{ò\rÿòk½Öko±ÞoÅT‘Å0P`0g©Îg+}V+þçþ×bµ×«æM«všìvÊEÊ‚‚É@‰É}‡ú}úïúYë²YGɎGð ûð­ìA­Ôg³Ô¢ý_¢¯êE¯œ¿#œ¤÷S¤r–ärÀ[›À·Âu·ýáý“®=“&jL&6Zl6?A~?÷õ÷ÌOƒÌ4\\h4¥ôQ¥å4Ñåñùñq“âqØs«Ø1Sb1?* ÇR•Ç#eF#Ã^Ã(0–¡7–\nšµ/š 6$€›€â=ßâë&Íë\'iN\'²Í²uŸêu  ƒžƒ,tX,.4-6n²ÜnZî´Z û[ Rö¤R;Mv;Öa·Ö³Î}³){R)ã>Ýã/q^/„—„Sõ¦SÑh¹Ñí,Áí `@ üãü±Èy±[í¶[j¾ÔjËFË¾Ùg¾9Kr9JޔJLԘLXè°XÏJ…ÏÐk»Ðï*ÅïªåOªûíûCņCMךM3Uf3…”…EϊEùéùþPð PKݖK½Üa½‹†\r‹Š…Špàp>B|>µÄqµfªÌfHؐHö÷öa£Âa5_j5Wù®W¹Ði¹†‘†ÁX™Á\':ž¹\'žá8Ùáøëø˜³+˜3"i»ÒiÙp©ÙމŽ”§3”›¶-›"<‡’‡é ÉéÎI‡ÎUÿªU(xP(ßz¥ßŒŒ¡øY¡‰€ ‰\r\r¿Úe¿æ1׿BƄBh¸ÐhAÂA™°)™-wZ-°Ë{°Tü¨T»Öm»:,cc¥Æ||„øww™î{{öòò\rÿkk½Öoo±ÞÅÅT‘00P`gg©Î++}Vþþç××bµ««æMvvšìÊÊE‚‚ÉÉ@‰}}‡úúúïYYë²GGɎðð û­­ìAÔÔg³¢¢ý_¯¯êEœœ¿#¤¤÷Srr–äÀÀ[›··Âuýýᓓ®=&&jL66Zl??A~÷÷õÌÌOƒ44\\h¥¥ôQåå4Ñññùqq“âØØs«11Sb?* ÇÇR•##eFÃÃ^(0––¡7\nššµ/ 6$€€›ââ=ßëë&Í\'\'iN²²ÍuuŸê ƒƒž,,tX.4-6nn²ÜZZî´  û[RRö¤;;MvÖÖa·³³Î})){Rãã>Ý//q^„„—SSõ¦ÑÑh¹íí,Á `@üüã±±Èy[[í¶jj¾ÔËËF¾¾Ùg99KrJJޔLLԘXXè°ÏÏJ…ÐÐk»ïï*ŪªåOûûíCCņMMך33Uf……”EEϊùùéþPPð <KKݖ½½Üa‹‹†\rŠŠ…ppà>>B|µµÄqffªÌHHؐöö÷aa£Â55_jWWù®¹¹Ði††‘ÁÁX™\':žž¹\'áá8Ùøø똘³+3"ii»ÒÙÙp©ŽŽ‰””§3››¶-"<‡‡’éé ÉÎÎI‡UUÿª((xPßßz¥ŒŒ¡¡øY‰‰€ \r\r¿¿Úeææ1×BBƄhh¸ÐAA™™°)--wZ°°Ë{TTü¨»»Öm:,LibsodiumDRGɼógæ j;§Ê„…®g»+ø”þrón<ñ6_:õO¥Ñ‚æ­RQl>+Œh›k½Aû«Ùƒy!~Íà["®(ט/ŠBÍeï#‘D7q/;MìÏûÀµ¼Û‰¥Ûµé8µHó[ÂV9жññY›O¯¤‚?’mÚÕ^«B£˜ªؾopE[ƒŒ²äN¾…1$â´ÿÕÃ} Uo‰{òt]¾r±–;þ±Þ€5Ç%§ܛ”&iÏtñ›ÁÒJñžÁi›äã%O8†G¾ïµÕŒ‹ÆÁeœ¬wÌ¡ $u+Yo,é-ƒä¦nª„tJÔûA½Ü©°\\µSƒÚˆùv«ßfîRQ>˜2´-mÆ1¨?!û˜È\'°äï¾ÇY¿Â¨=ó àÆ%§\n“G‘§Õo‚àQcÊpn\ng))ü/ÒF…\n·\'&É&\\8!.í*ÄZüm,Mß³•\r8SÞc¯‹Ts\ne¨²w<»\njvæ®íG.Ɂ;5‚…,r’dñL¡è¿¢0B¼Kf¨‘—øÐp‹KÂ0¾T£QlÇRïÖè’Ñ©eU$™Ö* qW…5ô¸Ñ»2p jÈÐÒ¸Á¤S«AQl7™ëŽßLwH\'¨H›áµ¼°4cZÉų 9ˊAãJªØNsãcwOʜ[£¸²Öóo.hü²ï]t`/Coc¥xr«ð¡xȄì9dnj(c#úÿ¾é½‚ÞëlP¤yƲ÷£ù¾+SrãòxqƜa&êÎ>\'ÊÂÀ!Ǹ†ÑëàÍÖ}ÚêxÑnîO}õºorªgð¦˜È¢Å}c\n®\rù¾˜?G5 q„}#õwÛ(“$Ç@{«Ê2¼¾É\n¾žË¾ÔÅL*~eüœ)YìúÖ:«oË_XGJŒDl€Að² íÓõ\\cX֜÷¢ÞùÞA³ A ³ ¡gæ j…®g»rón<:õO¥RQŒh›«ÙƒÍà[˜/ŠB‘D7qÏûÀµ¥Ûµé[ÂV9ññY¤‚?’Õ^«˜ªØ[ƒ¾…1$Ã} Ut]¾rþ±Þ€§ܛtñ›ÁÁi›ä†G¾ïƝÁÌ¡ $o,é-ª„tJÜ©°\\ڈùvRQ>˜mÆ1¨È\'°ÇY¿ó àÆG‘§ÕQcÊg))…\n·\'8!.üm,M\r8STs\ne»\njv.Ɂ…,r’¡è¿¢Kf¨p‹K£QlÇè’Ñ$™Ö…5ôp jÁ¤l7LwH\'µ¼°4³ 9JªØNOʜ[óo.htoc¥xxȄnjúÿ¾ëlP¤÷£ù¾òxqƀA¶ !SigEd25519 no Ed25519 collisionsAð¶ E¡ \n \r')}function getBinarySync(file){return file}async function getWasmBinary(binaryFile){return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason);}}async function instantiateAsync(binary,binaryFile,imports){return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();removeRunDependency();return wasmExports}addRunDependency();function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst));});})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports$1=receiveInstantiationResult(result);return exports$1}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module);}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies);};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case "i1":return HEAP8[ptr];case "i8":return HEAP8[ptr];case "i16":return HEAP16[ptr>>1];case "i32":return HEAP32[ptr>>2];case "i64":abort("to do getValue(i64) use WASM_BIGINT");case "float":return HEAPF32[ptr>>2];case "double":return HEAPF64[ptr>>3];case "*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`);}}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case "i1":HEAP8[ptr]=value;break;case "i8":HEAP8[ptr]=value;break;case "i16":HEAP16[ptr>>1]=value;break;case "i32":HEAP32[ptr>>2]=value;break;case "i64":abort("to do setValue(i64) use WASM_BIGINT");case "float":HEAPF32[ptr>>2]=value;break;case "double":HEAPF64[ptr>>3]=value;break;case "*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`);}}var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023);}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):"";var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);var __abort_js=()=>abort("");var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4;}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};for(var base64ReverseLookup=new Uint8Array(123),i=25;i>=0;--i){base64ReverseLookup[48+i]=52+i;base64ReverseLookup[65+i]=i;base64ReverseLookup[97+i]=26+i;}base64ReverseLookup[43]=62;base64ReverseLookup[47]=63;{if(Module["noExitRuntime"])Module["noExitRuntime"];if(Module["print"])Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])Module["arguments"];if(Module["thisProgram"])Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()();}}}Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;var ASM_CONSTS={39864:()=>Module.getRandomValue(),39900:()=>{if(Module.getRandomValue===undefined){try{var window_="object"===typeof window?window:self;var crypto_=typeof window_.crypto!=="undefined"?window_.crypto:window_.msCrypto;crypto_=crypto_===undefined?crypto:crypto_;var randomValuesStandard=function(){var buf=new Uint32Array(1);crypto_.getRandomValues(buf);return buf[0]>>>0};randomValuesStandard();Module.getRandomValue=randomValuesStandard;}catch(e){try{var crypto=null;var randomValueNodeJS=function(){var buf=crypto["randomBytes"](4);return (buf[0]<<24|buf[1]<<16|buf[2]<<8|buf[3])>>>0};randomValueNodeJS();Module.getRandomValue=randomValueNodeJS;}catch(e){throw "No secure random number generator found"}}}}};var wasmMemory;function assignWasmExports(wasmExports){Module["_crypto_aead_aegis128l_keybytes"]=wasmExports["f"];Module["_crypto_aead_aegis128l_nsecbytes"]=wasmExports["g"];Module["_crypto_aead_aegis128l_npubbytes"]=wasmExports["h"];Module["_crypto_aead_aegis128l_abytes"]=wasmExports["i"];Module["_crypto_aead_aegis128l_messagebytes_max"]=wasmExports["j"];Module["_crypto_aead_aegis128l_keygen"]=wasmExports["k"];Module["_crypto_aead_aegis128l_encrypt"]=wasmExports["l"];Module["_crypto_aead_aegis128l_encrypt_detached"]=wasmExports["m"];Module["_crypto_aead_aegis128l_decrypt"]=wasmExports["n"];Module["_crypto_aead_aegis128l_decrypt_detached"]=wasmExports["o"];Module["_crypto_aead_aegis256_keybytes"]=wasmExports["p"];Module["_crypto_aead_aegis256_nsecbytes"]=wasmExports["q"];Module["_crypto_aead_aegis256_npubbytes"]=wasmExports["r"];Module["_crypto_aead_aegis256_abytes"]=wasmExports["s"];Module["_crypto_aead_aegis256_messagebytes_max"]=wasmExports["t"];Module["_crypto_aead_aegis256_keygen"]=wasmExports["u"];Module["_crypto_aead_aegis256_encrypt"]=wasmExports["v"];Module["_crypto_aead_aegis256_encrypt_detached"]=wasmExports["w"];Module["_crypto_aead_aegis256_decrypt"]=wasmExports["x"];Module["_crypto_aead_aegis256_decrypt_detached"]=wasmExports["y"];Module["_crypto_aead_aes256gcm_is_available"]=wasmExports["z"];Module["_crypto_aead_chacha20poly1305_encrypt_detached"]=wasmExports["A"];Module["_crypto_aead_chacha20poly1305_encrypt"]=wasmExports["B"];Module["_crypto_aead_chacha20poly1305_ietf_encrypt_detached"]=wasmExports["C"];Module["_crypto_aead_chacha20poly1305_ietf_encrypt"]=wasmExports["D"];Module["_crypto_aead_chacha20poly1305_decrypt_detached"]=wasmExports["E"];Module["_crypto_aead_chacha20poly1305_decrypt"]=wasmExports["F"];Module["_crypto_aead_chacha20poly1305_ietf_decrypt_detached"]=wasmExports["G"];Module["_crypto_aead_chacha20poly1305_ietf_decrypt"]=wasmExports["H"];Module["_crypto_aead_chacha20poly1305_ietf_keybytes"]=wasmExports["I"];Module["_crypto_aead_chacha20poly1305_ietf_npubbytes"]=wasmExports["J"];Module["_crypto_aead_chacha20poly1305_ietf_nsecbytes"]=wasmExports["K"];Module["_crypto_aead_chacha20poly1305_ietf_abytes"]=wasmExports["L"];Module["_crypto_aead_chacha20poly1305_ietf_messagebytes_max"]=wasmExports["M"];Module["_crypto_aead_chacha20poly1305_ietf_keygen"]=wasmExports["N"];Module["_crypto_aead_chacha20poly1305_keybytes"]=wasmExports["O"];Module["_crypto_aead_chacha20poly1305_npubbytes"]=wasmExports["P"];Module["_crypto_aead_chacha20poly1305_nsecbytes"]=wasmExports["Q"];Module["_crypto_aead_chacha20poly1305_abytes"]=wasmExports["R"];Module["_crypto_aead_chacha20poly1305_messagebytes_max"]=wasmExports["S"];Module["_crypto_aead_chacha20poly1305_keygen"]=wasmExports["T"];Module["_crypto_aead_xchacha20poly1305_ietf_encrypt_detached"]=wasmExports["U"];Module["_crypto_aead_xchacha20poly1305_ietf_encrypt"]=wasmExports["V"];Module["_crypto_aead_xchacha20poly1305_ietf_decrypt_detached"]=wasmExports["W"];Module["_crypto_aead_xchacha20poly1305_ietf_decrypt"]=wasmExports["X"];Module["_crypto_aead_xchacha20poly1305_ietf_keybytes"]=wasmExports["Y"];Module["_crypto_aead_xchacha20poly1305_ietf_npubbytes"]=wasmExports["Z"];Module["_crypto_aead_xchacha20poly1305_ietf_nsecbytes"]=wasmExports["_"];Module["_crypto_aead_xchacha20poly1305_ietf_abytes"]=wasmExports["$"];Module["_crypto_aead_xchacha20poly1305_ietf_messagebytes_max"]=wasmExports["aa"];Module["_crypto_aead_xchacha20poly1305_ietf_keygen"]=wasmExports["ba"];Module["_crypto_auth_bytes"]=wasmExports["ca"];Module["_crypto_auth_keybytes"]=wasmExports["da"];Module["_crypto_auth_primitive"]=wasmExports["ea"];Module["_crypto_auth"]=wasmExports["fa"];Module["_crypto_auth_verify"]=wasmExports["ga"];Module["_crypto_auth_keygen"]=wasmExports["ha"];Module["_crypto_auth_hmacsha256_bytes"]=wasmExports["ia"];Module["_crypto_auth_hmacsha256_keybytes"]=wasmExports["ja"];Module["_crypto_auth_hmacsha256_statebytes"]=wasmExports["ka"];Module["_crypto_auth_hmacsha256_keygen"]=wasmExports["la"];Module["_crypto_auth_hmacsha256_init"]=wasmExports["ma"];Module["_crypto_auth_hmacsha256_update"]=wasmExports["na"];Module["_crypto_auth_hmacsha256_final"]=wasmExports["oa"];Module["_crypto_auth_hmacsha256"]=wasmExports["pa"];Module["_crypto_auth_hmacsha256_verify"]=wasmExports["qa"];Module["_crypto_auth_hmacsha512_bytes"]=wasmExports["ra"];Module["_crypto_auth_hmacsha512_keybytes"]=wasmExports["sa"];Module["_crypto_auth_hmacsha512_statebytes"]=wasmExports["ta"];Module["_crypto_auth_hmacsha512_keygen"]=wasmExports["ua"];Module["_crypto_auth_hmacsha512_init"]=wasmExports["va"];Module["_crypto_auth_hmacsha512_update"]=wasmExports["wa"];Module["_crypto_auth_hmacsha512_final"]=wasmExports["xa"];Module["_crypto_auth_hmacsha512"]=wasmExports["ya"];Module["_crypto_auth_hmacsha512_verify"]=wasmExports["za"];Module["_crypto_auth_hmacsha512256_bytes"]=wasmExports["Aa"];Module["_crypto_auth_hmacsha512256_keybytes"]=wasmExports["Ba"];Module["_crypto_auth_hmacsha512256_statebytes"]=wasmExports["Ca"];Module["_crypto_auth_hmacsha512256_keygen"]=wasmExports["Da"];Module["_crypto_auth_hmacsha512256_init"]=wasmExports["Ea"];Module["_crypto_auth_hmacsha512256_update"]=wasmExports["Fa"];Module["_crypto_auth_hmacsha512256_final"]=wasmExports["Ga"];Module["_crypto_auth_hmacsha512256"]=wasmExports["Ha"];Module["_crypto_auth_hmacsha512256_verify"]=wasmExports["Ia"];Module["_crypto_box_seedbytes"]=wasmExports["Ja"];Module["_crypto_box_publickeybytes"]=wasmExports["Ka"];Module["_crypto_box_secretkeybytes"]=wasmExports["La"];Module["_crypto_box_beforenmbytes"]=wasmExports["Ma"];Module["_crypto_box_noncebytes"]=wasmExports["Na"];Module["_crypto_box_zerobytes"]=wasmExports["Oa"];Module["_crypto_box_boxzerobytes"]=wasmExports["Pa"];Module["_crypto_box_macbytes"]=wasmExports["Qa"];Module["_crypto_box_messagebytes_max"]=wasmExports["Ra"];Module["_crypto_box_primitive"]=wasmExports["Sa"];Module["_crypto_box_seed_keypair"]=wasmExports["Ta"];Module["_crypto_box_keypair"]=wasmExports["Ua"];Module["_crypto_box_beforenm"]=wasmExports["Va"];Module["_crypto_box_afternm"]=wasmExports["Wa"];Module["_crypto_box_open_afternm"]=wasmExports["Xa"];Module["_crypto_box"]=wasmExports["Ya"];Module["_crypto_box_open"]=wasmExports["Za"];Module["_crypto_box_detached_afternm"]=wasmExports["_a"];Module["_crypto_box_detached"]=wasmExports["$a"];Module["_crypto_box_easy_afternm"]=wasmExports["ab"];Module["_crypto_box_easy"]=wasmExports["bb"];Module["_crypto_box_open_detached_afternm"]=wasmExports["cb"];Module["_crypto_box_open_detached"]=wasmExports["db"];Module["_crypto_box_open_easy_afternm"]=wasmExports["eb"];Module["_crypto_box_open_easy"]=wasmExports["fb"];Module["_crypto_box_seal"]=wasmExports["gb"];Module["_crypto_box_seal_open"]=wasmExports["hb"];Module["_crypto_box_sealbytes"]=wasmExports["ib"];Module["_crypto_box_curve25519xsalsa20poly1305_seed_keypair"]=wasmExports["jb"];Module["_crypto_box_curve25519xsalsa20poly1305_keypair"]=wasmExports["kb"];Module["_crypto_box_curve25519xsalsa20poly1305_beforenm"]=wasmExports["lb"];Module["_crypto_box_curve25519xsalsa20poly1305_afternm"]=wasmExports["mb"];Module["_crypto_box_curve25519xsalsa20poly1305_open_afternm"]=wasmExports["nb"];Module["_crypto_box_curve25519xsalsa20poly1305"]=wasmExports["ob"];Module["_crypto_box_curve25519xsalsa20poly1305_open"]=wasmExports["pb"];Module["_crypto_box_curve25519xsalsa20poly1305_seedbytes"]=wasmExports["qb"];Module["_crypto_box_curve25519xsalsa20poly1305_publickeybytes"]=wasmExports["rb"];Module["_crypto_box_curve25519xsalsa20poly1305_secretkeybytes"]=wasmExports["sb"];Module["_crypto_box_curve25519xsalsa20poly1305_beforenmbytes"]=wasmExports["tb"];Module["_crypto_box_curve25519xsalsa20poly1305_noncebytes"]=wasmExports["ub"];Module["_crypto_box_curve25519xsalsa20poly1305_zerobytes"]=wasmExports["vb"];Module["_crypto_box_curve25519xsalsa20poly1305_boxzerobytes"]=wasmExports["wb"];Module["_crypto_box_curve25519xsalsa20poly1305_macbytes"]=wasmExports["xb"];Module["_crypto_box_curve25519xsalsa20poly1305_messagebytes_max"]=wasmExports["yb"];Module["_crypto_core_hchacha20"]=wasmExports["zb"];Module["_crypto_core_hchacha20_outputbytes"]=wasmExports["Ab"];Module["_crypto_core_hchacha20_inputbytes"]=wasmExports["Bb"];Module["_crypto_core_hchacha20_keybytes"]=wasmExports["Cb"];Module["_crypto_core_hchacha20_constbytes"]=wasmExports["Db"];Module["_crypto_core_hsalsa20"]=wasmExports["Eb"];Module["_crypto_core_hsalsa20_outputbytes"]=wasmExports["Fb"];Module["_crypto_core_hsalsa20_inputbytes"]=wasmExports["Gb"];Module["_crypto_core_hsalsa20_keybytes"]=wasmExports["Hb"];Module["_crypto_core_hsalsa20_constbytes"]=wasmExports["Ib"];Module["_crypto_core_salsa20"]=wasmExports["Jb"];Module["_crypto_core_salsa20_outputbytes"]=wasmExports["Kb"];Module["_crypto_core_salsa20_inputbytes"]=wasmExports["Lb"];Module["_crypto_core_salsa20_keybytes"]=wasmExports["Mb"];Module["_crypto_core_salsa20_constbytes"]=wasmExports["Nb"];Module["_crypto_core_salsa2012"]=wasmExports["Ob"];Module["_crypto_core_salsa2012_outputbytes"]=wasmExports["Pb"];Module["_crypto_core_salsa2012_inputbytes"]=wasmExports["Qb"];Module["_crypto_core_salsa2012_keybytes"]=wasmExports["Rb"];Module["_crypto_core_salsa2012_constbytes"]=wasmExports["Sb"];Module["_crypto_core_salsa208"]=wasmExports["Tb"];Module["_crypto_core_salsa208_outputbytes"]=wasmExports["Ub"];Module["_crypto_core_salsa208_inputbytes"]=wasmExports["Vb"];Module["_crypto_core_salsa208_keybytes"]=wasmExports["Wb"];Module["_crypto_core_salsa208_constbytes"]=wasmExports["Xb"];Module["_crypto_generichash_bytes_min"]=wasmExports["Yb"];Module["_crypto_generichash_bytes_max"]=wasmExports["Zb"];Module["_crypto_generichash_bytes"]=wasmExports["_b"];Module["_crypto_generichash_keybytes_min"]=wasmExports["$b"];Module["_crypto_generichash_keybytes_max"]=wasmExports["ac"];Module["_crypto_generichash_keybytes"]=wasmExports["bc"];Module["_crypto_generichash_primitive"]=wasmExports["cc"];Module["_crypto_generichash_statebytes"]=wasmExports["dc"];Module["_crypto_generichash"]=wasmExports["ec"];Module["_crypto_generichash_init"]=wasmExports["fc"];Module["_crypto_generichash_update"]=wasmExports["gc"];Module["_crypto_generichash_final"]=wasmExports["hc"];Module["_crypto_generichash_keygen"]=wasmExports["ic"];Module["_crypto_generichash_blake2b_bytes_min"]=wasmExports["jc"];Module["_crypto_generichash_blake2b_bytes_max"]=wasmExports["kc"];Module["_crypto_generichash_blake2b_bytes"]=wasmExports["lc"];Module["_crypto_generichash_blake2b_keybytes_min"]=wasmExports["mc"];Module["_crypto_generichash_blake2b_keybytes_max"]=wasmExports["nc"];Module["_crypto_generichash_blake2b_keybytes"]=wasmExports["oc"];Module["_crypto_generichash_blake2b_saltbytes"]=wasmExports["pc"];Module["_crypto_generichash_blake2b_personalbytes"]=wasmExports["qc"];Module["_crypto_generichash_blake2b_statebytes"]=wasmExports["rc"];Module["_crypto_generichash_blake2b_keygen"]=wasmExports["sc"];Module["_crypto_generichash_blake2b"]=wasmExports["tc"];Module["_crypto_generichash_blake2b_salt_personal"]=wasmExports["uc"];Module["_crypto_generichash_blake2b_init"]=wasmExports["vc"];Module["_crypto_generichash_blake2b_init_salt_personal"]=wasmExports["wc"];Module["_crypto_generichash_blake2b_update"]=wasmExports["xc"];Module["_crypto_generichash_blake2b_final"]=wasmExports["yc"];Module["_crypto_hash_bytes"]=wasmExports["zc"];Module["_crypto_hash"]=wasmExports["Ac"];Module["_crypto_hash_primitive"]=wasmExports["Bc"];Module["_crypto_hash_sha256_bytes"]=wasmExports["Cc"];Module["_crypto_hash_sha256_statebytes"]=wasmExports["Dc"];Module["_crypto_hash_sha256_init"]=wasmExports["Ec"];Module["_crypto_hash_sha256_update"]=wasmExports["Fc"];Module["_crypto_hash_sha256_final"]=wasmExports["Gc"];Module["_crypto_hash_sha256"]=wasmExports["Hc"];Module["_crypto_hash_sha512_bytes"]=wasmExports["Ic"];Module["_crypto_hash_sha512_statebytes"]=wasmExports["Jc"];Module["_crypto_hash_sha512_init"]=wasmExports["Kc"];Module["_crypto_hash_sha512_update"]=wasmExports["Lc"];Module["_crypto_hash_sha512_final"]=wasmExports["Mc"];Module["_crypto_hash_sha512"]=wasmExports["Nc"];Module["_crypto_kdf_blake2b_bytes_min"]=wasmExports["Oc"];Module["_crypto_kdf_blake2b_bytes_max"]=wasmExports["Pc"];Module["_crypto_kdf_blake2b_contextbytes"]=wasmExports["Qc"];Module["_crypto_kdf_blake2b_keybytes"]=wasmExports["Rc"];Module["_crypto_kdf_blake2b_derive_from_key"]=wasmExports["Sc"];Module["_crypto_kdf_primitive"]=wasmExports["Tc"];Module["_crypto_kdf_bytes_min"]=wasmExports["Uc"];Module["_crypto_kdf_bytes_max"]=wasmExports["Vc"];Module["_crypto_kdf_contextbytes"]=wasmExports["Wc"];Module["_crypto_kdf_keybytes"]=wasmExports["Xc"];Module["_crypto_kdf_derive_from_key"]=wasmExports["Yc"];Module["_crypto_kdf_keygen"]=wasmExports["Zc"];Module["_crypto_kdf_hkdf_sha256_extract_init"]=wasmExports["_c"];Module["_crypto_kdf_hkdf_sha256_extract_update"]=wasmExports["$c"];Module["_crypto_kdf_hkdf_sha256_extract_final"]=wasmExports["ad"];Module["_crypto_kdf_hkdf_sha256_extract"]=wasmExports["bd"];Module["_crypto_kdf_hkdf_sha256_keygen"]=wasmExports["cd"];Module["_crypto_kdf_hkdf_sha256_expand"]=wasmExports["dd"];Module["_crypto_kdf_hkdf_sha256_keybytes"]=wasmExports["ed"];Module["_crypto_kdf_hkdf_sha256_bytes_min"]=wasmExports["fd"];Module["_crypto_kdf_hkdf_sha256_bytes_max"]=wasmExports["gd"];Module["_crypto_kdf_hkdf_sha256_statebytes"]=wasmExports["hd"];Module["_crypto_kdf_hkdf_sha512_extract_init"]=wasmExports["id"];Module["_crypto_kdf_hkdf_sha512_extract_update"]=wasmExports["jd"];Module["_crypto_kdf_hkdf_sha512_extract_final"]=wasmExports["kd"];Module["_crypto_kdf_hkdf_sha512_extract"]=wasmExports["ld"];Module["_crypto_kdf_hkdf_sha512_keygen"]=wasmExports["md"];Module["_crypto_kdf_hkdf_sha512_expand"]=wasmExports["nd"];Module["_crypto_kdf_hkdf_sha512_keybytes"]=wasmExports["od"];Module["_crypto_kdf_hkdf_sha512_bytes_min"]=wasmExports["pd"];Module["_crypto_kdf_hkdf_sha512_bytes_max"]=wasmExports["qd"];Module["_crypto_kdf_hkdf_sha512_statebytes"]=wasmExports["rd"];Module["_crypto_kx_seed_keypair"]=wasmExports["sd"];Module["_crypto_kx_keypair"]=wasmExports["td"];Module["_crypto_kx_client_session_keys"]=wasmExports["ud"];Module["_crypto_kx_server_session_keys"]=wasmExports["vd"];Module["_crypto_kx_publickeybytes"]=wasmExports["wd"];Module["_crypto_kx_secretkeybytes"]=wasmExports["xd"];Module["_crypto_kx_seedbytes"]=wasmExports["yd"];Module["_crypto_kx_sessionkeybytes"]=wasmExports["zd"];Module["_crypto_kx_primitive"]=wasmExports["Ad"];Module["_crypto_onetimeauth_statebytes"]=wasmExports["Bd"];Module["_crypto_onetimeauth_bytes"]=wasmExports["Cd"];Module["_crypto_onetimeauth_keybytes"]=wasmExports["Dd"];Module["_crypto_onetimeauth"]=wasmExports["Ed"];Module["_crypto_onetimeauth_verify"]=wasmExports["Fd"];Module["_crypto_onetimeauth_init"]=wasmExports["Gd"];Module["_crypto_onetimeauth_update"]=wasmExports["Hd"];Module["_crypto_onetimeauth_final"]=wasmExports["Id"];Module["_crypto_onetimeauth_primitive"]=wasmExports["Jd"];Module["_crypto_onetimeauth_keygen"]=wasmExports["Kd"];Module["_crypto_onetimeauth_poly1305"]=wasmExports["Ld"];Module["_crypto_onetimeauth_poly1305_verify"]=wasmExports["Md"];Module["_crypto_onetimeauth_poly1305_init"]=wasmExports["Nd"];Module["_crypto_onetimeauth_poly1305_update"]=wasmExports["Od"];Module["_crypto_onetimeauth_poly1305_final"]=wasmExports["Pd"];Module["_crypto_onetimeauth_poly1305_bytes"]=wasmExports["Qd"];Module["_crypto_onetimeauth_poly1305_keybytes"]=wasmExports["Rd"];Module["_crypto_onetimeauth_poly1305_statebytes"]=wasmExports["Sd"];Module["_crypto_onetimeauth_poly1305_keygen"]=wasmExports["Td"];Module["_crypto_pwhash_argon2i_alg_argon2i13"]=wasmExports["Ud"];Module["_crypto_pwhash_argon2i_bytes_min"]=wasmExports["Vd"];Module["_crypto_pwhash_argon2i_bytes_max"]=wasmExports["Wd"];Module["_crypto_pwhash_argon2i_passwd_min"]=wasmExports["Xd"];Module["_crypto_pwhash_argon2i_passwd_max"]=wasmExports["Yd"];Module["_crypto_pwhash_argon2i_saltbytes"]=wasmExports["Zd"];Module["_crypto_pwhash_argon2i_strbytes"]=wasmExports["_d"];Module["_crypto_pwhash_argon2i_strprefix"]=wasmExports["$d"];Module["_crypto_pwhash_argon2i_opslimit_min"]=wasmExports["ae"];Module["_crypto_pwhash_argon2i_opslimit_max"]=wasmExports["be"];Module["_crypto_pwhash_argon2i_memlimit_min"]=wasmExports["ce"];Module["_crypto_pwhash_argon2i_memlimit_max"]=wasmExports["de"];Module["_crypto_pwhash_argon2i_opslimit_interactive"]=wasmExports["ee"];Module["_crypto_pwhash_argon2i_memlimit_interactive"]=wasmExports["fe"];Module["_crypto_pwhash_argon2i_opslimit_moderate"]=wasmExports["ge"];Module["_crypto_pwhash_argon2i_memlimit_moderate"]=wasmExports["he"];Module["_crypto_pwhash_argon2i_opslimit_sensitive"]=wasmExports["ie"];Module["_crypto_pwhash_argon2i_memlimit_sensitive"]=wasmExports["je"];Module["_crypto_pwhash_argon2i"]=wasmExports["ke"];Module["_crypto_pwhash_argon2i_str"]=wasmExports["le"];Module["_crypto_pwhash_argon2i_str_verify"]=wasmExports["me"];Module["_crypto_pwhash_argon2i_str_needs_rehash"]=wasmExports["ne"];Module["_crypto_pwhash_argon2id_str_needs_rehash"]=wasmExports["oe"];Module["_crypto_pwhash_argon2id_alg_argon2id13"]=wasmExports["pe"];Module["_crypto_pwhash_argon2id_bytes_min"]=wasmExports["qe"];Module["_crypto_pwhash_argon2id_bytes_max"]=wasmExports["re"];Module["_crypto_pwhash_argon2id_passwd_min"]=wasmExports["se"];Module["_crypto_pwhash_argon2id_passwd_max"]=wasmExports["te"];Module["_crypto_pwhash_argon2id_saltbytes"]=wasmExports["ue"];Module["_crypto_pwhash_argon2id_strbytes"]=wasmExports["ve"];Module["_crypto_pwhash_argon2id_strprefix"]=wasmExports["we"];Module["_crypto_pwhash_argon2id_opslimit_min"]=wasmExports["xe"];Module["_crypto_pwhash_argon2id_opslimit_max"]=wasmExports["ye"];Module["_crypto_pwhash_argon2id_memlimit_min"]=wasmExports["ze"];Module["_crypto_pwhash_argon2id_memlimit_max"]=wasmExports["Ae"];Module["_crypto_pwhash_argon2id_opslimit_interactive"]=wasmExports["Be"];Module["_crypto_pwhash_argon2id_memlimit_interactive"]=wasmExports["Ce"];Module["_crypto_pwhash_argon2id_opslimit_moderate"]=wasmExports["De"];Module["_crypto_pwhash_argon2id_memlimit_moderate"]=wasmExports["Ee"];Module["_crypto_pwhash_argon2id_opslimit_sensitive"]=wasmExports["Fe"];Module["_crypto_pwhash_argon2id_memlimit_sensitive"]=wasmExports["Ge"];Module["_crypto_pwhash_argon2id"]=wasmExports["He"];Module["_crypto_pwhash_argon2id_str"]=wasmExports["Ie"];Module["_crypto_pwhash_argon2id_str_verify"]=wasmExports["Je"];Module["_crypto_pwhash_alg_argon2i13"]=wasmExports["Ke"];Module["_crypto_pwhash_alg_argon2id13"]=wasmExports["Le"];Module["_crypto_pwhash_alg_default"]=wasmExports["Me"];Module["_crypto_pwhash_bytes_min"]=wasmExports["Ne"];Module["_crypto_pwhash_bytes_max"]=wasmExports["Oe"];Module["_crypto_pwhash_passwd_min"]=wasmExports["Pe"];Module["_crypto_pwhash_passwd_max"]=wasmExports["Qe"];Module["_crypto_pwhash_saltbytes"]=wasmExports["Re"];Module["_crypto_pwhash_strbytes"]=wasmExports["Se"];Module["_crypto_pwhash_strprefix"]=wasmExports["Te"];Module["_crypto_pwhash_opslimit_min"]=wasmExports["Ue"];Module["_crypto_pwhash_opslimit_max"]=wasmExports["Ve"];Module["_crypto_pwhash_memlimit_min"]=wasmExports["We"];Module["_crypto_pwhash_memlimit_max"]=wasmExports["Xe"];Module["_crypto_pwhash_opslimit_interactive"]=wasmExports["Ye"];Module["_crypto_pwhash_memlimit_interactive"]=wasmExports["Ze"];Module["_crypto_pwhash_opslimit_moderate"]=wasmExports["_e"];Module["_crypto_pwhash_memlimit_moderate"]=wasmExports["$e"];Module["_crypto_pwhash_opslimit_sensitive"]=wasmExports["af"];Module["_crypto_pwhash_memlimit_sensitive"]=wasmExports["bf"];Module["_crypto_pwhash"]=wasmExports["cf"];Module["_crypto_pwhash_str"]=wasmExports["df"];Module["_crypto_pwhash_str_alg"]=wasmExports["ef"];Module["_crypto_pwhash_str_verify"]=wasmExports["ff"];Module["_crypto_pwhash_str_needs_rehash"]=wasmExports["gf"];Module["_crypto_pwhash_primitive"]=wasmExports["hf"];Module["_crypto_scalarmult_primitive"]=wasmExports["jf"];Module["_crypto_scalarmult_base"]=wasmExports["kf"];Module["_crypto_scalarmult"]=wasmExports["lf"];Module["_crypto_scalarmult_bytes"]=wasmExports["mf"];Module["_crypto_scalarmult_scalarbytes"]=wasmExports["nf"];Module["_crypto_scalarmult_curve25519"]=wasmExports["of"];Module["_crypto_scalarmult_curve25519_base"]=wasmExports["pf"];Module["_crypto_scalarmult_curve25519_bytes"]=wasmExports["qf"];Module["_crypto_scalarmult_curve25519_scalarbytes"]=wasmExports["rf"];Module["_crypto_secretbox_keybytes"]=wasmExports["sf"];Module["_crypto_secretbox_noncebytes"]=wasmExports["tf"];Module["_crypto_secretbox_zerobytes"]=wasmExports["uf"];Module["_crypto_secretbox_boxzerobytes"]=wasmExports["vf"];Module["_crypto_secretbox_macbytes"]=wasmExports["wf"];Module["_crypto_secretbox_messagebytes_max"]=wasmExports["xf"];Module["_crypto_secretbox_primitive"]=wasmExports["yf"];Module["_crypto_secretbox"]=wasmExports["zf"];Module["_crypto_secretbox_open"]=wasmExports["Af"];Module["_crypto_secretbox_keygen"]=wasmExports["Bf"];Module["_crypto_secretbox_detached"]=wasmExports["Cf"];Module["_crypto_secretbox_easy"]=wasmExports["Df"];Module["_crypto_secretbox_open_detached"]=wasmExports["Ef"];Module["_crypto_secretbox_open_easy"]=wasmExports["Ff"];Module["_crypto_secretbox_xsalsa20poly1305"]=wasmExports["Gf"];Module["_crypto_secretbox_xsalsa20poly1305_open"]=wasmExports["Hf"];Module["_crypto_secretbox_xsalsa20poly1305_keybytes"]=wasmExports["If"];Module["_crypto_secretbox_xsalsa20poly1305_noncebytes"]=wasmExports["Jf"];Module["_crypto_secretbox_xsalsa20poly1305_zerobytes"]=wasmExports["Kf"];Module["_crypto_secretbox_xsalsa20poly1305_boxzerobytes"]=wasmExports["Lf"];Module["_crypto_secretbox_xsalsa20poly1305_macbytes"]=wasmExports["Mf"];Module["_crypto_secretbox_xsalsa20poly1305_messagebytes_max"]=wasmExports["Nf"];Module["_crypto_secretbox_xsalsa20poly1305_keygen"]=wasmExports["Of"];Module["_crypto_secretstream_xchacha20poly1305_keygen"]=wasmExports["Pf"];Module["_crypto_secretstream_xchacha20poly1305_init_push"]=wasmExports["Qf"];Module["_crypto_secretstream_xchacha20poly1305_init_pull"]=wasmExports["Rf"];Module["_crypto_secretstream_xchacha20poly1305_rekey"]=wasmExports["Sf"];Module["_crypto_secretstream_xchacha20poly1305_push"]=wasmExports["Tf"];Module["_crypto_secretstream_xchacha20poly1305_pull"]=wasmExports["Uf"];Module["_crypto_secretstream_xchacha20poly1305_statebytes"]=wasmExports["Vf"];Module["_crypto_secretstream_xchacha20poly1305_abytes"]=wasmExports["Wf"];Module["_crypto_secretstream_xchacha20poly1305_headerbytes"]=wasmExports["Xf"];Module["_crypto_secretstream_xchacha20poly1305_keybytes"]=wasmExports["Yf"];Module["_crypto_secretstream_xchacha20poly1305_messagebytes_max"]=wasmExports["Zf"];Module["_crypto_secretstream_xchacha20poly1305_tag_message"]=wasmExports["_f"];Module["_crypto_secretstream_xchacha20poly1305_tag_push"]=wasmExports["$f"];Module["_crypto_secretstream_xchacha20poly1305_tag_rekey"]=wasmExports["ag"];Module["_crypto_secretstream_xchacha20poly1305_tag_final"]=wasmExports["bg"];Module["_crypto_shorthash_bytes"]=wasmExports["cg"];Module["_crypto_shorthash_keybytes"]=wasmExports["dg"];Module["_crypto_shorthash_primitive"]=wasmExports["eg"];Module["_crypto_shorthash"]=wasmExports["fg"];Module["_crypto_shorthash_keygen"]=wasmExports["gg"];Module["_crypto_shorthash_siphash24_bytes"]=wasmExports["hg"];Module["_crypto_shorthash_siphash24_keybytes"]=wasmExports["ig"];Module["_crypto_shorthash_siphash24"]=wasmExports["jg"];Module["_crypto_sign_statebytes"]=wasmExports["kg"];Module["_crypto_sign_bytes"]=wasmExports["lg"];Module["_crypto_sign_seedbytes"]=wasmExports["mg"];Module["_crypto_sign_publickeybytes"]=wasmExports["ng"];Module["_crypto_sign_secretkeybytes"]=wasmExports["og"];Module["_crypto_sign_messagebytes_max"]=wasmExports["pg"];Module["_crypto_sign_primitive"]=wasmExports["qg"];Module["_crypto_sign_seed_keypair"]=wasmExports["rg"];Module["_crypto_sign_keypair"]=wasmExports["sg"];Module["_crypto_sign"]=wasmExports["tg"];Module["_crypto_sign_open"]=wasmExports["ug"];Module["_crypto_sign_detached"]=wasmExports["vg"];Module["_crypto_sign_verify_detached"]=wasmExports["wg"];Module["_crypto_sign_init"]=wasmExports["xg"];Module["_crypto_sign_update"]=wasmExports["yg"];Module["_crypto_sign_final_create"]=wasmExports["zg"];Module["_crypto_sign_final_verify"]=wasmExports["Ag"];Module["_crypto_sign_ed25519ph_statebytes"]=wasmExports["Bg"];Module["_crypto_sign_ed25519_bytes"]=wasmExports["Cg"];Module["_crypto_sign_ed25519_seedbytes"]=wasmExports["Dg"];Module["_crypto_sign_ed25519_publickeybytes"]=wasmExports["Eg"];Module["_crypto_sign_ed25519_secretkeybytes"]=wasmExports["Fg"];Module["_crypto_sign_ed25519_messagebytes_max"]=wasmExports["Gg"];Module["_crypto_sign_ed25519_sk_to_seed"]=wasmExports["Hg"];Module["_crypto_sign_ed25519_sk_to_pk"]=wasmExports["Ig"];Module["_crypto_sign_ed25519ph_init"]=wasmExports["Jg"];Module["_crypto_sign_ed25519ph_update"]=wasmExports["Kg"];Module["_crypto_sign_ed25519ph_final_create"]=wasmExports["Lg"];Module["_crypto_sign_ed25519ph_final_verify"]=wasmExports["Mg"];Module["_crypto_sign_ed25519_seed_keypair"]=wasmExports["Ng"];Module["_crypto_sign_ed25519_keypair"]=wasmExports["Og"];Module["_crypto_sign_ed25519_pk_to_curve25519"]=wasmExports["Pg"];Module["_crypto_sign_ed25519_sk_to_curve25519"]=wasmExports["Qg"];Module["_crypto_sign_ed25519_verify_detached"]=wasmExports["Rg"];Module["_crypto_sign_ed25519_open"]=wasmExports["Sg"];Module["_crypto_sign_ed25519_detached"]=wasmExports["Tg"];Module["_crypto_sign_ed25519"]=wasmExports["Ug"];Module["_crypto_stream_chacha20_keybytes"]=wasmExports["Vg"];Module["_crypto_stream_chacha20_noncebytes"]=wasmExports["Wg"];Module["_crypto_stream_chacha20_messagebytes_max"]=wasmExports["Xg"];Module["_crypto_stream_chacha20_ietf_keybytes"]=wasmExports["Yg"];Module["_crypto_stream_chacha20_ietf_noncebytes"]=wasmExports["Zg"];Module["_crypto_stream_chacha20_ietf_messagebytes_max"]=wasmExports["_g"];Module["_crypto_stream_chacha20"]=wasmExports["$g"];Module["_crypto_stream_chacha20_xor_ic"]=wasmExports["ah"];Module["_crypto_stream_chacha20_xor"]=wasmExports["bh"];Module["_crypto_stream_chacha20_ietf"]=wasmExports["ch"];Module["_crypto_stream_chacha20_ietf_xor_ic"]=wasmExports["dh"];Module["_crypto_stream_chacha20_ietf_xor"]=wasmExports["eh"];Module["_crypto_stream_chacha20_ietf_keygen"]=wasmExports["fh"];Module["_crypto_stream_chacha20_keygen"]=wasmExports["gh"];Module["_crypto_stream_keybytes"]=wasmExports["hh"];Module["_crypto_stream_noncebytes"]=wasmExports["ih"];Module["_crypto_stream_messagebytes_max"]=wasmExports["jh"];Module["_crypto_stream_primitive"]=wasmExports["kh"];Module["_crypto_stream"]=wasmExports["lh"];Module["_crypto_stream_xor"]=wasmExports["mh"];Module["_crypto_stream_keygen"]=wasmExports["nh"];Module["_crypto_stream_salsa20_keybytes"]=wasmExports["oh"];Module["_crypto_stream_salsa20_noncebytes"]=wasmExports["ph"];Module["_crypto_stream_salsa20_messagebytes_max"]=wasmExports["qh"];Module["_crypto_stream_salsa20"]=wasmExports["rh"];Module["_crypto_stream_salsa20_xor_ic"]=wasmExports["sh"];Module["_crypto_stream_salsa20_xor"]=wasmExports["th"];Module["_crypto_stream_salsa20_keygen"]=wasmExports["uh"];Module["_crypto_stream_xsalsa20"]=wasmExports["vh"];Module["_crypto_stream_xsalsa20_xor_ic"]=wasmExports["wh"];Module["_crypto_stream_xsalsa20_xor"]=wasmExports["xh"];Module["_crypto_stream_xsalsa20_keybytes"]=wasmExports["yh"];Module["_crypto_stream_xsalsa20_noncebytes"]=wasmExports["zh"];Module["_crypto_stream_xsalsa20_messagebytes_max"]=wasmExports["Ah"];Module["_crypto_stream_xsalsa20_keygen"]=wasmExports["Bh"];Module["_crypto_verify_16_bytes"]=wasmExports["Ch"];Module["_crypto_verify_32_bytes"]=wasmExports["Dh"];Module["_crypto_verify_64_bytes"]=wasmExports["Eh"];Module["_crypto_verify_16"]=wasmExports["Fh"];Module["_crypto_verify_32"]=wasmExports["Gh"];Module["_crypto_verify_64"]=wasmExports["Hh"];Module["_randombytes_implementation_name"]=wasmExports["Ih"];Module["_randombytes_random"]=wasmExports["Jh"];Module["_randombytes_stir"]=wasmExports["Kh"];Module["_randombytes_uniform"]=wasmExports["Lh"];Module["_randombytes_buf"]=wasmExports["Mh"];Module["_randombytes_buf_deterministic"]=wasmExports["Nh"];Module["_randombytes_seedbytes"]=wasmExports["Oh"];Module["_randombytes_close"]=wasmExports["Ph"];Module["_randombytes"]=wasmExports["Qh"];Module["_sodium_bin2hex"]=wasmExports["Rh"];Module["_sodium_hex2bin"]=wasmExports["Sh"];Module["_sodium_base64_encoded_len"]=wasmExports["Th"];Module["_sodium_bin2base64"]=wasmExports["Uh"];Module["_sodium_base642bin"]=wasmExports["Vh"];Module["_sodium_init"]=wasmExports["Wh"];Module["_sodium_pad"]=wasmExports["Xh"];Module["_sodium_unpad"]=wasmExports["Yh"];Module["_sodium_version_string"]=wasmExports["Zh"];Module["_sodium_library_version_major"]=wasmExports["_h"];Module["_sodium_library_version_minor"]=wasmExports["$h"];Module["_sodium_library_minimal"]=wasmExports["ai"];Module["_crypto_box_curve25519xchacha20poly1305_seed_keypair"]=wasmExports["bi"];Module["_crypto_box_curve25519xchacha20poly1305_keypair"]=wasmExports["ci"];Module["_crypto_box_curve25519xchacha20poly1305_beforenm"]=wasmExports["di"];Module["_crypto_box_curve25519xchacha20poly1305_detached_afternm"]=wasmExports["ei"];Module["_crypto_box_curve25519xchacha20poly1305_detached"]=wasmExports["fi"];Module["_crypto_box_curve25519xchacha20poly1305_easy_afternm"]=wasmExports["gi"];Module["_crypto_box_curve25519xchacha20poly1305_easy"]=wasmExports["hi"];Module["_crypto_box_curve25519xchacha20poly1305_open_detached_afternm"]=wasmExports["ii"];Module["_crypto_box_curve25519xchacha20poly1305_open_detached"]=wasmExports["ji"];Module["_crypto_box_curve25519xchacha20poly1305_open_easy_afternm"]=wasmExports["ki"];Module["_crypto_box_curve25519xchacha20poly1305_open_easy"]=wasmExports["li"];Module["_crypto_box_curve25519xchacha20poly1305_seedbytes"]=wasmExports["mi"];Module["_crypto_box_curve25519xchacha20poly1305_publickeybytes"]=wasmExports["ni"];Module["_crypto_box_curve25519xchacha20poly1305_secretkeybytes"]=wasmExports["oi"];Module["_crypto_box_curve25519xchacha20poly1305_beforenmbytes"]=wasmExports["pi"];Module["_crypto_box_curve25519xchacha20poly1305_noncebytes"]=wasmExports["qi"];Module["_crypto_box_curve25519xchacha20poly1305_macbytes"]=wasmExports["ri"];Module["_crypto_box_curve25519xchacha20poly1305_messagebytes_max"]=wasmExports["si"];Module["_crypto_box_curve25519xchacha20poly1305_seal"]=wasmExports["ti"];Module["_crypto_box_curve25519xchacha20poly1305_seal_open"]=wasmExports["ui"];Module["_crypto_box_curve25519xchacha20poly1305_sealbytes"]=wasmExports["vi"];Module["_crypto_core_ed25519_is_valid_point"]=wasmExports["wi"];Module["_crypto_core_ed25519_add"]=wasmExports["xi"];Module["_crypto_core_ed25519_sub"]=wasmExports["yi"];Module["_crypto_core_ed25519_from_uniform"]=wasmExports["zi"];Module["_crypto_core_ed25519_random"]=wasmExports["Ai"];Module["_crypto_core_ed25519_scalar_random"]=wasmExports["Bi"];Module["_crypto_core_ed25519_scalar_invert"]=wasmExports["Ci"];Module["_crypto_core_ed25519_scalar_negate"]=wasmExports["Di"];Module["_crypto_core_ed25519_scalar_complement"]=wasmExports["Ei"];Module["_crypto_core_ed25519_scalar_add"]=wasmExports["Fi"];Module["_crypto_core_ed25519_scalar_reduce"]=wasmExports["Gi"];Module["_crypto_core_ed25519_scalar_sub"]=wasmExports["Hi"];Module["_crypto_core_ed25519_scalar_mul"]=wasmExports["Ii"];Module["_crypto_core_ed25519_bytes"]=wasmExports["Ji"];Module["_crypto_core_ed25519_nonreducedscalarbytes"]=wasmExports["Ki"];Module["_crypto_core_ed25519_uniformbytes"]=wasmExports["Li"];Module["_crypto_core_ed25519_hashbytes"]=wasmExports["Mi"];Module["_crypto_core_ed25519_scalarbytes"]=wasmExports["Ni"];Module["_crypto_core_ristretto255_is_valid_point"]=wasmExports["Oi"];Module["_crypto_core_ristretto255_add"]=wasmExports["Pi"];Module["_crypto_core_ristretto255_sub"]=wasmExports["Qi"];Module["_crypto_core_ristretto255_from_hash"]=wasmExports["Ri"];Module["_crypto_core_ristretto255_random"]=wasmExports["Si"];Module["_crypto_core_ristretto255_scalar_random"]=wasmExports["Ti"];Module["_crypto_core_ristretto255_scalar_invert"]=wasmExports["Ui"];Module["_crypto_core_ristretto255_scalar_negate"]=wasmExports["Vi"];Module["_crypto_core_ristretto255_scalar_complement"]=wasmExports["Wi"];Module["_crypto_core_ristretto255_scalar_add"]=wasmExports["Xi"];Module["_crypto_core_ristretto255_scalar_sub"]=wasmExports["Yi"];Module["_crypto_core_ristretto255_scalar_mul"]=wasmExports["Zi"];Module["_crypto_core_ristretto255_scalar_reduce"]=wasmExports["_i"];Module["_crypto_core_ristretto255_bytes"]=wasmExports["$i"];Module["_crypto_core_ristretto255_nonreducedscalarbytes"]=wasmExports["aj"];Module["_crypto_core_ristretto255_hashbytes"]=wasmExports["bj"];Module["_crypto_core_ristretto255_scalarbytes"]=wasmExports["cj"];Module["_crypto_pwhash_scryptsalsa208sha256_ll"]=wasmExports["dj"];Module["_crypto_pwhash_scryptsalsa208sha256_bytes_min"]=wasmExports["ej"];Module["_crypto_pwhash_scryptsalsa208sha256_bytes_max"]=wasmExports["fj"];Module["_crypto_pwhash_scryptsalsa208sha256_passwd_min"]=wasmExports["gj"];Module["_crypto_pwhash_scryptsalsa208sha256_passwd_max"]=wasmExports["hj"];Module["_crypto_pwhash_scryptsalsa208sha256_saltbytes"]=wasmExports["ij"];Module["_crypto_pwhash_scryptsalsa208sha256_strbytes"]=wasmExports["jj"];Module["_crypto_pwhash_scryptsalsa208sha256_strprefix"]=wasmExports["kj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_min"]=wasmExports["lj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_max"]=wasmExports["mj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_min"]=wasmExports["nj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_max"]=wasmExports["oj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive"]=wasmExports["pj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive"]=wasmExports["qj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive"]=wasmExports["rj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive"]=wasmExports["sj"];Module["_crypto_pwhash_scryptsalsa208sha256"]=wasmExports["tj"];Module["_crypto_pwhash_scryptsalsa208sha256_str"]=wasmExports["uj"];Module["_crypto_pwhash_scryptsalsa208sha256_str_verify"]=wasmExports["vj"];Module["_crypto_pwhash_scryptsalsa208sha256_str_needs_rehash"]=wasmExports["wj"];Module["_crypto_scalarmult_ed25519"]=wasmExports["xj"];Module["_crypto_scalarmult_ed25519_noclamp"]=wasmExports["yj"];Module["_crypto_scalarmult_ed25519_base"]=wasmExports["zj"];Module["_crypto_scalarmult_ed25519_base_noclamp"]=wasmExports["Aj"];Module["_crypto_scalarmult_ed25519_bytes"]=wasmExports["Bj"];Module["_crypto_scalarmult_ed25519_scalarbytes"]=wasmExports["Cj"];Module["_crypto_scalarmult_ristretto255"]=wasmExports["Dj"];Module["_crypto_scalarmult_ristretto255_base"]=wasmExports["Ej"];Module["_crypto_scalarmult_ristretto255_bytes"]=wasmExports["Fj"];Module["_crypto_scalarmult_ristretto255_scalarbytes"]=wasmExports["Gj"];Module["_crypto_secretbox_xchacha20poly1305_detached"]=wasmExports["Hj"];Module["_crypto_secretbox_xchacha20poly1305_easy"]=wasmExports["Ij"];Module["_crypto_secretbox_xchacha20poly1305_open_detached"]=wasmExports["Jj"];Module["_crypto_secretbox_xchacha20poly1305_open_easy"]=wasmExports["Kj"];Module["_crypto_secretbox_xchacha20poly1305_keybytes"]=wasmExports["Lj"];Module["_crypto_secretbox_xchacha20poly1305_noncebytes"]=wasmExports["Mj"];Module["_crypto_secretbox_xchacha20poly1305_macbytes"]=wasmExports["Nj"];Module["_crypto_secretbox_xchacha20poly1305_messagebytes_max"]=wasmExports["Oj"];Module["_crypto_shorthash_siphashx24_bytes"]=wasmExports["Pj"];Module["_crypto_shorthash_siphashx24_keybytes"]=wasmExports["Qj"];Module["_crypto_shorthash_siphashx24"]=wasmExports["Rj"];Module["_crypto_stream_salsa2012"]=wasmExports["Sj"];Module["_crypto_stream_salsa2012_xor"]=wasmExports["Tj"];Module["_crypto_stream_salsa2012_keybytes"]=wasmExports["Uj"];Module["_crypto_stream_salsa2012_noncebytes"]=wasmExports["Vj"];Module["_crypto_stream_salsa2012_messagebytes_max"]=wasmExports["Wj"];Module["_crypto_stream_salsa2012_keygen"]=wasmExports["Xj"];Module["_crypto_stream_salsa208"]=wasmExports["Yj"];Module["_crypto_stream_salsa208_xor"]=wasmExports["Zj"];Module["_crypto_stream_salsa208_keybytes"]=wasmExports["_j"];Module["_crypto_stream_salsa208_noncebytes"]=wasmExports["$j"];Module["_crypto_stream_salsa208_messagebytes_max"]=wasmExports["ak"];Module["_crypto_stream_salsa208_keygen"]=wasmExports["bk"];Module["_crypto_stream_xchacha20_keybytes"]=wasmExports["ck"];Module["_crypto_stream_xchacha20_noncebytes"]=wasmExports["dk"];Module["_crypto_stream_xchacha20_messagebytes_max"]=wasmExports["ek"];Module["_crypto_stream_xchacha20"]=wasmExports["fk"];Module["_crypto_stream_xchacha20_xor_ic"]=wasmExports["gk"];Module["_crypto_stream_xchacha20_xor"]=wasmExports["hk"];Module["_crypto_stream_xchacha20_keygen"]=wasmExports["ik"];Module["_malloc"]=wasmExports["jk"];Module["_free"]=wasmExports["kk"];wasmExports["dynCall_iiiji"];wasmExports["dynCall_iiij"];wasmExports["dynCall_iijii"];wasmExports["dynCall_iiijiji"];wasmExports["dynCall_iiijiii"];wasmMemory=wasmExports["e"];wasmExports["__indirect_function_table"];}var wasmImports={b:___assert_fail,c:__abort_js,a:_emscripten_asm_const_int,d:_emscripten_resize_heap};function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;Module["onRuntimeInitialized"]?.();postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun();},1);}else {doRun();}}var wasmExports;createWasm();run(); + }).catch(function() { + return _Module.useBackupModule(); + }); +var e = Module; + +let a;const r={},t=e.ready.then(function(){function t(){if(a._sodium_init()<0)throw new Error("libsodium was not correctly initialized.");for(var e=["crypto_aead_aegis128l_decrypt","crypto_aead_aegis128l_decrypt_detached","crypto_aead_aegis128l_encrypt","crypto_aead_aegis128l_encrypt_detached","crypto_aead_aegis128l_keygen","crypto_aead_aegis256_decrypt","crypto_aead_aegis256_decrypt_detached","crypto_aead_aegis256_encrypt","crypto_aead_aegis256_encrypt_detached","crypto_aead_aegis256_keygen","crypto_aead_chacha20poly1305_decrypt","crypto_aead_chacha20poly1305_decrypt_detached","crypto_aead_chacha20poly1305_encrypt","crypto_aead_chacha20poly1305_encrypt_detached","crypto_aead_chacha20poly1305_ietf_decrypt","crypto_aead_chacha20poly1305_ietf_decrypt_detached","crypto_aead_chacha20poly1305_ietf_encrypt","crypto_aead_chacha20poly1305_ietf_encrypt_detached","crypto_aead_chacha20poly1305_ietf_keygen","crypto_aead_chacha20poly1305_keygen","crypto_aead_xchacha20poly1305_ietf_decrypt","crypto_aead_xchacha20poly1305_ietf_decrypt_detached","crypto_aead_xchacha20poly1305_ietf_encrypt","crypto_aead_xchacha20poly1305_ietf_encrypt_detached","crypto_aead_xchacha20poly1305_ietf_keygen","crypto_auth","crypto_auth_hmacsha256","crypto_auth_hmacsha256_final","crypto_auth_hmacsha256_init","crypto_auth_hmacsha256_keygen","crypto_auth_hmacsha256_update","crypto_auth_hmacsha256_verify","crypto_auth_hmacsha512","crypto_auth_hmacsha512256","crypto_auth_hmacsha512256_final","crypto_auth_hmacsha512256_init","crypto_auth_hmacsha512256_keygen","crypto_auth_hmacsha512256_update","crypto_auth_hmacsha512256_verify","crypto_auth_hmacsha512_final","crypto_auth_hmacsha512_init","crypto_auth_hmacsha512_keygen","crypto_auth_hmacsha512_update","crypto_auth_hmacsha512_verify","crypto_auth_keygen","crypto_auth_verify","crypto_box_beforenm","crypto_box_curve25519xchacha20poly1305_beforenm","crypto_box_curve25519xchacha20poly1305_detached","crypto_box_curve25519xchacha20poly1305_detached_afternm","crypto_box_curve25519xchacha20poly1305_easy","crypto_box_curve25519xchacha20poly1305_easy_afternm","crypto_box_curve25519xchacha20poly1305_keypair","crypto_box_curve25519xchacha20poly1305_open_detached","crypto_box_curve25519xchacha20poly1305_open_detached_afternm","crypto_box_curve25519xchacha20poly1305_open_easy","crypto_box_curve25519xchacha20poly1305_open_easy_afternm","crypto_box_curve25519xchacha20poly1305_seal","crypto_box_curve25519xchacha20poly1305_seal_open","crypto_box_curve25519xchacha20poly1305_seed_keypair","crypto_box_detached","crypto_box_easy","crypto_box_easy_afternm","crypto_box_keypair","crypto_box_open_detached","crypto_box_open_easy","crypto_box_open_easy_afternm","crypto_box_seal","crypto_box_seal_open","crypto_box_seed_keypair","crypto_core_ed25519_add","crypto_core_ed25519_from_hash","crypto_core_ed25519_from_uniform","crypto_core_ed25519_is_valid_point","crypto_core_ed25519_random","crypto_core_ed25519_scalar_add","crypto_core_ed25519_scalar_complement","crypto_core_ed25519_scalar_invert","crypto_core_ed25519_scalar_mul","crypto_core_ed25519_scalar_negate","crypto_core_ed25519_scalar_random","crypto_core_ed25519_scalar_reduce","crypto_core_ed25519_scalar_sub","crypto_core_ed25519_sub","crypto_core_hchacha20","crypto_core_hsalsa20","crypto_core_ristretto255_add","crypto_core_ristretto255_from_hash","crypto_core_ristretto255_is_valid_point","crypto_core_ristretto255_random","crypto_core_ristretto255_scalar_add","crypto_core_ristretto255_scalar_complement","crypto_core_ristretto255_scalar_invert","crypto_core_ristretto255_scalar_mul","crypto_core_ristretto255_scalar_negate","crypto_core_ristretto255_scalar_random","crypto_core_ristretto255_scalar_reduce","crypto_core_ristretto255_scalar_sub","crypto_core_ristretto255_sub","crypto_generichash","crypto_generichash_blake2b_salt_personal","crypto_generichash_final","crypto_generichash_init","crypto_generichash_keygen","crypto_generichash_update","crypto_hash","crypto_hash_sha256","crypto_hash_sha256_final","crypto_hash_sha256_init","crypto_hash_sha256_update","crypto_hash_sha512","crypto_hash_sha512_final","crypto_hash_sha512_init","crypto_hash_sha512_update","crypto_kdf_derive_from_key","crypto_kdf_keygen","crypto_kx_client_session_keys","crypto_kx_keypair","crypto_kx_seed_keypair","crypto_kx_server_session_keys","crypto_onetimeauth","crypto_onetimeauth_final","crypto_onetimeauth_init","crypto_onetimeauth_keygen","crypto_onetimeauth_update","crypto_onetimeauth_verify","crypto_pwhash","crypto_pwhash_scryptsalsa208sha256","crypto_pwhash_scryptsalsa208sha256_ll","crypto_pwhash_scryptsalsa208sha256_str","crypto_pwhash_scryptsalsa208sha256_str_verify","crypto_pwhash_str","crypto_pwhash_str_needs_rehash","crypto_pwhash_str_verify","crypto_scalarmult","crypto_scalarmult_base","crypto_scalarmult_ed25519","crypto_scalarmult_ed25519_base","crypto_scalarmult_ed25519_base_noclamp","crypto_scalarmult_ed25519_noclamp","crypto_scalarmult_ristretto255","crypto_scalarmult_ristretto255_base","crypto_secretbox_detached","crypto_secretbox_easy","crypto_secretbox_keygen","crypto_secretbox_open_detached","crypto_secretbox_open_easy","crypto_secretstream_xchacha20poly1305_init_pull","crypto_secretstream_xchacha20poly1305_init_push","crypto_secretstream_xchacha20poly1305_keygen","crypto_secretstream_xchacha20poly1305_pull","crypto_secretstream_xchacha20poly1305_push","crypto_secretstream_xchacha20poly1305_rekey","crypto_shorthash","crypto_shorthash_keygen","crypto_shorthash_siphashx24","crypto_sign","crypto_sign_detached","crypto_sign_ed25519_pk_to_curve25519","crypto_sign_ed25519_sk_to_curve25519","crypto_sign_ed25519_sk_to_pk","crypto_sign_ed25519_sk_to_seed","crypto_sign_final_create","crypto_sign_final_verify","crypto_sign_init","crypto_sign_keypair","crypto_sign_open","crypto_sign_seed_keypair","crypto_sign_update","crypto_sign_verify_detached","crypto_stream_chacha20","crypto_stream_chacha20_ietf_xor","crypto_stream_chacha20_ietf_xor_ic","crypto_stream_chacha20_keygen","crypto_stream_chacha20_xor","crypto_stream_chacha20_xor_ic","crypto_stream_keygen","crypto_stream_xchacha20_keygen","crypto_stream_xchacha20_xor","crypto_stream_xchacha20_xor_ic","randombytes_buf","randombytes_buf_deterministic","randombytes_close","randombytes_random","randombytes_set_implementation","randombytes_stir","randombytes_uniform","sodium_version_string"],t=[x,k,S,T,w,Y,B,A,M,I,K,N,L,O,U,C,P,R,X,G,D,F,V,H,W,q,z,j,J,Q,Z,$,ee,ae,re,te,_e,ne,se,ce,he,oe,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Me,Ie,Ke,Ne,Le,Oe,Ue,Ce,Pe,Re,Xe,Ge,De,Fe,Ve,He,We,qe,ze,je,Je,Qe,Ze,$e,ea,aa,ra,ta,_a,na,sa,ca,ha,oa,pa,ya,ia,la,ua,da,va,ga,ba,fa,ma,Ea,xa,ka,Sa,Ta,wa,Ya,Ba,Aa,Ma,Ia,Ka,Na,La,Oa,Ua,Ca,Pa,Ra,Xa,Ga,Da,Fa,Va,Ha,Wa,qa,za,ja,Ja,Qa,Za,$a,er,ar,rr,tr,_r,nr,sr,cr,hr,or,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Mr,Ir,Kr,Nr,Lr,Or,Ur,Cr,Pr,Rr,Xr,Gr,Dr,Fr,Vr,Hr,Wr,qr],_=0;_=240?(p=4,h=true):y>=224?(p=3,h=true):y>=192?(p=2,h=true):y<128&&(p=1,h=true);}while(!h);for(var i=p-(c.length-o),l=0;l>8&-39)<<8|87+(a=e[n]>>>4)+(a-10>>8&-39),_+=String.fromCharCode(255&t)+String.fromCharCode(t>>>8);return _}var c={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function h(e){if(void 0===e)return c.URLSAFE_NO_PADDING;if(e!==c.ORIGINAL&&e!==c.ORIGINAL_NO_PADDING&&e!==c.URLSAFE&&e!==c.URLSAFE_NO_PADDING)throw new Error("unsupported base64 variant");return e}function o(e,r){r=h(r);var t=[];e=E(t,e,"input");var _,s=0|Math.floor(e.length/3),c=e.length-3*s,o=4*s+(0!==c?2&r?2+(c>>>1):4:0),p=new l(o+1),y=u(e);return t.push(y),t.push(p.address),0===a._sodium_bin2base64(p.address,p.length,y,e.length,r)&&b(t,"conversion failed"),p.length=o,_=n(p.to_Uint8Array()),g(t),_}function p(e,a){var r=a||"uint8array";if(!y(r))throw new Error(r+" output format is not available");if(e instanceof l){if("uint8array"===r)return e.to_Uint8Array();if("text"===r)return n(e.to_Uint8Array());if("hex"===r)return s(e.to_Uint8Array());if("base64"===r)return o(e.to_Uint8Array(),c.URLSAFE_NO_PADDING);throw new Error('What is output format "'+r+'"?')}if("object"==typeof e){for(var t=Object.keys(e),_={},h=0;h=BigInt(0)){const e=r>>BigInt(32);e>BigInt(4294967295)&&f(c,"subkey_id cannot be more than 64 bits"),o=Number(e),h=Number(r&BigInt(4294967295));}else "number"==typeof r&&(0|r)===r&&r>=0?h=r:f(c,"subkey_id must be an unsigned integer or bigint");"string"!=typeof t&&f(c,"ctx must be a string"),(t=_(t+"\0")).length-1!==a._crypto_kdf_contextbytes()&&f(c,"invalid ctx length");var y=u(t);t.length,c.push(y),n=E(c,n,"key");var d,v=0|a._crypto_kdf_keybytes();n.length!==v&&f(c,"invalid key length"),d=u(n),c.push(d);var b=new l(0|e),x=b.address;c.push(x),a._crypto_kdf_derive_from_key(x,e,h,o,y,d);var k=p(b,s);return g(c),k}function Aa(e){var r=[];i(e);var t=new l(0|a._crypto_kdf_keybytes()),_=t.address;r.push(_),a._crypto_kdf_keygen(_);var n=p(t,e);return g(r),n}function Ma(e,r,t,_){var n=[];i(_),e=E(n,e,"clientPublicKey");var s,c=0|a._crypto_kx_publickeybytes();e.length!==c&&f(n,"invalid clientPublicKey length"),s=u(e),n.push(s),r=E(n,r,"clientSecretKey");var h,o=0|a._crypto_kx_secretkeybytes();r.length!==o&&f(n,"invalid clientSecretKey length"),h=u(r),n.push(h),t=E(n,t,"serverPublicKey");var y,d=0|a._crypto_kx_publickeybytes();t.length!==d&&f(n,"invalid serverPublicKey length"),y=u(t),n.push(y);var v=new l(0|a._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var x=new l(0|a._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),!(0|a._crypto_kx_client_session_keys(m,k,s,h,y))){var S=p({sharedRx:v,sharedTx:x},_);return g(n),S}b(n,"invalid usage");}function Ia(e){var r=[];i(e);var t=new l(0|a._crypto_kx_publickeybytes()),_=t.address;r.push(_);var n=new l(0|a._crypto_kx_secretkeybytes()),s=n.address;if(r.push(s),!(0|a._crypto_kx_keypair(_,s))){var c={publicKey:p(t,e),privateKey:p(n,e),keyType:"x25519"};return g(r),c}b(r,"internal error");}function Ka(e,r){var t=[];i(r),e=E(t,e,"seed");var _,n=0|a._crypto_kx_seedbytes();e.length!==n&&f(t,"invalid seed length"),_=u(e),t.push(_);var s=new l(0|a._crypto_kx_publickeybytes()),c=s.address;t.push(c);var h=new l(0|a._crypto_kx_secretkeybytes()),o=h.address;if(t.push(o),!(0|a._crypto_kx_seed_keypair(c,o,_))){var y={publicKey:p(s,r),privateKey:p(h,r),keyType:"x25519"};return g(t),y}b(t,"internal error");}function Na(e,r,t,_){var n=[];i(_),e=E(n,e,"serverPublicKey");var s,c=0|a._crypto_kx_publickeybytes();e.length!==c&&f(n,"invalid serverPublicKey length"),s=u(e),n.push(s),r=E(n,r,"serverSecretKey");var h,o=0|a._crypto_kx_secretkeybytes();r.length!==o&&f(n,"invalid serverSecretKey length"),h=u(r),n.push(h),t=E(n,t,"clientPublicKey");var y,d=0|a._crypto_kx_publickeybytes();t.length!==d&&f(n,"invalid clientPublicKey length"),y=u(t),n.push(y);var v=new l(0|a._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var x=new l(0|a._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),!(0|a._crypto_kx_server_session_keys(m,k,s,h,y))){var S=p({sharedRx:v,sharedTx:x},_);return g(n),S}b(n,"invalid usage");}function La(e,r,t){var _=[];i(t);var n=u(e=E(_,e,"message")),s=e.length;_.push(n),r=E(_,r,"key");var c,h=0|a._crypto_onetimeauth_keybytes();r.length!==h&&f(_,"invalid key length"),c=u(r),_.push(c);var o=new l(0|a._crypto_onetimeauth_bytes()),y=o.address;if(_.push(y),!(0|a._crypto_onetimeauth(y,n,s,0,c))){var d=p(o,t);return g(_),d}b(_,"invalid usage");}function Oa(e,r){var t=[];i(r),m(t,e,"state_address");var _=new l(0|a._crypto_onetimeauth_bytes()),n=_.address;if(t.push(n),!(0|a._crypto_onetimeauth_final(e,n))){var s=(a._free(e),p(_,r));return g(t),s}b(t,"invalid usage");}function Ua(e,r){var t=[];i(r);var _=null;null!=e&&(_=u(e=E(t,e,"key")),e.length,t.push(_));var n=new l(144).address;if(!(0|a._crypto_onetimeauth_init(n,_))){var s=n;return g(t),s}b(t,"invalid usage");}function Ca(e){var r=[];i(e);var t=new l(0|a._crypto_onetimeauth_keybytes()),_=t.address;r.push(_),a._crypto_onetimeauth_keygen(_);var n=p(t,e);return g(r),n}function Pa(e,r,t){var _=[];i(t),m(_,e,"state_address");var n=u(r=E(_,r,"message_chunk")),s=r.length;_.push(n),0|a._crypto_onetimeauth_update(e,n,s)&&b(_,"invalid usage"),g(_);}function Ra(e,r,t){var _=[];e=E(_,e,"hash");var n,s=0|a._crypto_onetimeauth_bytes();e.length!==s&&f(_,"invalid hash length"),n=u(e),_.push(n);var c=u(r=E(_,r,"message")),h=r.length;_.push(c),t=E(_,t,"key");var o,p=0|a._crypto_onetimeauth_keybytes();t.length!==p&&f(_,"invalid key length"),o=u(t),_.push(o);var y=!(0|a._crypto_onetimeauth_verify(n,c,h,0,o));return g(_),y}function Xa(e,r,t,_,n,s,c){var h=[];i(c),m(h,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&f(h,"keyLength must be an unsigned integer");var o=u(r=E(h,r,"password")),y=r.length;h.push(o),t=E(h,t,"salt");var d,v=0|a._crypto_pwhash_saltbytes();t.length!==v&&f(h,"invalid salt length"),d=u(t),h.push(d),m(h,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&f(h,"opsLimit must be an unsigned integer"),m(h,n,"memLimit"),("number"!=typeof n||(0|n)!==n||n<0)&&f(h,"memLimit must be an unsigned integer"),m(h,s,"algorithm"),("number"!=typeof s||(0|s)!==s||s<0)&&f(h,"algorithm must be an unsigned integer");var x=new l(0|e),k=x.address;if(h.push(k),!(0|a._crypto_pwhash(k,e,0,o,y,0,d,_,0,n,s))){var S=p(x,c);return g(h),S}b(h,"invalid usage");}function Ga(e,r,t,_,n,s){var c=[];i(s),m(c,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&f(c,"keyLength must be an unsigned integer");var h=u(r=E(c,r,"password")),o=r.length;c.push(h),t=E(c,t,"salt");var y,d=0|a._crypto_pwhash_scryptsalsa208sha256_saltbytes();t.length!==d&&f(c,"invalid salt length"),y=u(t),c.push(y),m(c,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&f(c,"opsLimit must be an unsigned integer"),m(c,n,"memLimit"),("number"!=typeof n||(0|n)!==n||n<0)&&f(c,"memLimit must be an unsigned integer");var v=new l(0|e),x=v.address;if(c.push(x),!(0|a._crypto_pwhash_scryptsalsa208sha256(x,e,0,h,o,0,y,_,0,n))){var k=p(v,s);return g(c),k}b(c,"invalid usage");}function Da(e,r,t,_,n,s,c){var h=[];i(c);var o=u(e=E(h,e,"password")),y=e.length;h.push(o);var d=u(r=E(h,r,"salt")),v=r.length;h.push(d),m(h,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&f(h,"opsLimit must be an unsigned integer"),m(h,_,"r"),("number"!=typeof _||(0|_)!==_||_<0)&&f(h,"r must be an unsigned integer"),m(h,n,"p"),("number"!=typeof n||(0|n)!==n||n<0)&&f(h,"p must be an unsigned integer"),m(h,s,"keyLength"),("number"!=typeof s||(0|s)!==s||s<0)&&f(h,"keyLength must be an unsigned integer");var x=new l(0|s),k=x.address;if(h.push(k),!(0|a._crypto_pwhash_scryptsalsa208sha256_ll(o,y,d,v,t,0,_,n,k,s))){var S=p(x,c);return g(h),S}b(h,"invalid usage");}function Fa(e,r,t,_){var n=[];i(_);var s=u(e=E(n,e,"password")),c=e.length;n.push(s),m(n,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(n,"opsLimit must be an unsigned integer"),m(n,t,"memLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&f(n,"memLimit must be an unsigned integer");var h=new l(0|a._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(n.push(h),!(0|a._crypto_pwhash_scryptsalsa208sha256_str(h,s,c,0,r,0,t))){var o=a.UTF8ToString(h);return g(n),o}b(n,"invalid usage");}function Va(e,r,t){var n=[];i(t),"string"!=typeof e&&f(n,"hashed_password must be a string");var s=u(e=_(e+"\0"));e.length,n.push(s);var c=u(r=E(n,r,"password")),h=r.length;n.push(c);var o=!(0|a._crypto_pwhash_scryptsalsa208sha256_str_verify(s,c,h,0));return g(n),o}function Ha(e,r,t,_){var n=[];i(_);var s=u(e=E(n,e,"password")),c=e.length;n.push(s),m(n,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(n,"opsLimit must be an unsigned integer"),m(n,t,"memLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&f(n,"memLimit must be an unsigned integer");var h=new l(0|a._crypto_pwhash_strbytes()).address;if(n.push(h),!(0|a._crypto_pwhash_str(h,s,c,0,r,0,t))){var o=a.UTF8ToString(h);return g(n),o}b(n,"invalid usage");}function Wa(e,r,t,n){var s=[];i(n),"string"!=typeof e&&f(s,"hashed_password must be a string");var c=u(e=_(e+"\0"));e.length,s.push(c),m(s,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(s,"opsLimit must be an unsigned integer"),m(s,t,"memLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&f(s,"memLimit must be an unsigned integer");var h=!!(0|a._crypto_pwhash_str_needs_rehash(c,r,0,t));return g(s),h}function qa(e,r,t){var n=[];i(t),"string"!=typeof e&&f(n,"hashed_password must be a string");var s=u(e=_(e+"\0"));e.length,n.push(s);var c=u(r=E(n,r,"password")),h=r.length;n.push(c);var o=!(0|a._crypto_pwhash_str_verify(s,c,h,0));return g(n),o}function za(e,r,t){var _=[];i(t),e=E(_,e,"privateKey");var n,s=0|a._crypto_scalarmult_scalarbytes();e.length!==s&&f(_,"invalid privateKey length"),n=u(e),_.push(n),r=E(_,r,"publicKey");var c,h=0|a._crypto_scalarmult_bytes();r.length!==h&&f(_,"invalid publicKey length"),c=u(r),_.push(c);var o=new l(0|a._crypto_scalarmult_bytes()),y=o.address;if(_.push(y),!(0|a._crypto_scalarmult(y,n,c))){var d=p(o,t);return g(_),d}b(_,"weak public key");}function ja(e,r){var t=[];i(r),e=E(t,e,"privateKey");var _,n=0|a._crypto_scalarmult_scalarbytes();e.length!==n&&f(t,"invalid privateKey length"),_=u(e),t.push(_);var s=new l(0|a._crypto_scalarmult_bytes()),c=s.address;if(t.push(c),!(0|a._crypto_scalarmult_base(c,_))){var h=p(s,r);return g(t),h}b(t,"unknown error");}function Ja(e,r,t){var _=[];i(t),e=E(_,e,"n");var n,s=0|a._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,"invalid n length"),n=u(e),_.push(n),r=E(_,r,"p");var c,h=0|a._crypto_scalarmult_ed25519_bytes();r.length!==h&&f(_,"invalid p length"),c=u(r),_.push(c);var o=new l(0|a._crypto_scalarmult_ed25519_bytes()),y=o.address;if(_.push(y),!(0|a._crypto_scalarmult_ed25519(y,n,c))){var d=p(o,t);return g(_),d}b(_,"invalid point or scalar is 0");}function Qa(e,r){var t=[];i(r),e=E(t,e,"scalar");var _,n=0|a._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(t,"invalid scalar length"),_=u(e),t.push(_);var s=new l(0|a._crypto_scalarmult_ed25519_bytes()),c=s.address;if(t.push(c),!(0|a._crypto_scalarmult_ed25519_base(c,_))){var h=p(s,r);return g(t),h}b(t,"scalar is 0");}function Za(e,r){var t=[];i(r),e=E(t,e,"scalar");var _,n=0|a._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(t,"invalid scalar length"),_=u(e),t.push(_);var s=new l(0|a._crypto_scalarmult_ed25519_bytes()),c=s.address;if(t.push(c),!(0|a._crypto_scalarmult_ed25519_base_noclamp(c,_))){var h=p(s,r);return g(t),h}b(t,"scalar is 0");}function $a(e,r,t){var _=[];i(t),e=E(_,e,"n");var n,s=0|a._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,"invalid n length"),n=u(e),_.push(n),r=E(_,r,"p");var c,h=0|a._crypto_scalarmult_ed25519_bytes();r.length!==h&&f(_,"invalid p length"),c=u(r),_.push(c);var o=new l(0|a._crypto_scalarmult_ed25519_bytes()),y=o.address;if(_.push(y),!(0|a._crypto_scalarmult_ed25519_noclamp(y,n,c))){var d=p(o,t);return g(_),d}b(_,"invalid point or scalar is 0");}function er(e,r,t){var _=[];i(t),e=E(_,e,"scalar");var n,s=0|a._crypto_scalarmult_ristretto255_scalarbytes();e.length!==s&&f(_,"invalid scalar length"),n=u(e),_.push(n),r=E(_,r,"element");var c,h=0|a._crypto_scalarmult_ristretto255_bytes();r.length!==h&&f(_,"invalid element length"),c=u(r),_.push(c);var o=new l(0|a._crypto_scalarmult_ristretto255_bytes()),y=o.address;if(_.push(y),!(0|a._crypto_scalarmult_ristretto255(y,n,c))){var d=p(o,t);return g(_),d}b(_,"result is identity element");}function ar(e,r){var t=[];i(r),e=E(t,e,"scalar");var _,n=0|a._crypto_core_ristretto255_scalarbytes();e.length!==n&&f(t,"invalid scalar length"),_=u(e),t.push(_);var s=new l(0|a._crypto_core_ristretto255_bytes()),c=s.address;if(t.push(c),!(0|a._crypto_scalarmult_ristretto255_base(c,_))){var h=p(s,r);return g(t),h}b(t,"scalar is 0");}function rr(e,r,t,_){var n=[];i(_);var s=u(e=E(n,e,"message")),c=e.length;n.push(s),r=E(n,r,"nonce");var h,o=0|a._crypto_secretbox_noncebytes();r.length!==o&&f(n,"invalid nonce length"),h=u(r),n.push(h),t=E(n,t,"key");var y,d=0|a._crypto_secretbox_keybytes();t.length!==d&&f(n,"invalid key length"),y=u(t),n.push(y);var v=new l(0|c),m=v.address;n.push(m);var x=new l(0|a._crypto_secretbox_macbytes()),k=x.address;if(n.push(k),!(0|a._crypto_secretbox_detached(m,k,s,c,0,h,y))){var S=p({mac:x,cipher:v},_);return g(n),S}b(n,"invalid usage");}function tr(e,r,t,_){var n=[];i(_);var s=u(e=E(n,e,"message")),c=e.length;n.push(s),r=E(n,r,"nonce");var h,o=0|a._crypto_secretbox_noncebytes();r.length!==o&&f(n,"invalid nonce length"),h=u(r),n.push(h),t=E(n,t,"key");var y,d=0|a._crypto_secretbox_keybytes();t.length!==d&&f(n,"invalid key length"),y=u(t),n.push(y);var v=new l(c+a._crypto_secretbox_macbytes()|0),m=v.address;if(n.push(m),!(0|a._crypto_secretbox_easy(m,s,c,0,h,y))){var x=p(v,_);return g(n),x}b(n,"invalid usage");}function _r(e){var r=[];i(e);var t=new l(0|a._crypto_secretbox_keybytes()),_=t.address;r.push(_),a._crypto_secretbox_keygen(_);var n=p(t,e);return g(r),n}function nr(e,r,t,_,n){var s=[];i(n);var c=u(e=E(s,e,"ciphertext")),h=e.length;s.push(c),r=E(s,r,"mac");var o,y=0|a._crypto_secretbox_macbytes();r.length!==y&&f(s,"invalid mac length"),o=u(r),s.push(o),t=E(s,t,"nonce");var d,v=0|a._crypto_secretbox_noncebytes();t.length!==v&&f(s,"invalid nonce length"),d=u(t),s.push(d),_=E(s,_,"key");var m,x=0|a._crypto_secretbox_keybytes();_.length!==x&&f(s,"invalid key length"),m=u(_),s.push(m);var k=new l(0|h),S=k.address;if(s.push(S),!(0|a._crypto_secretbox_open_detached(S,c,o,h,0,d,m))){var T=p(k,n);return g(s),T}b(s,"wrong secret key for the given ciphertext");}function sr(e,r,t,_){var n=[];i(_),e=E(n,e,"ciphertext");var s,c=a._crypto_secretbox_macbytes(),h=e.length;h>>0;return g([]),r}function Vr(e,r){var t=[];i(r);for(var _=a._malloc(24),n=0;n<6;n++)a.setValue(_+4*n,a.Runtime.addFunction(e[["implementation_name","random","stir","uniform","buf","close"][n]]),"i32");0|a._randombytes_set_implementation(_)&&b(t,"unsupported implementation"),g(t);}function Hr(e){i(e),a._randombytes_stir();}function Wr(e,r){var t=[];i(r),m(t,e,"upper_bound"),("number"!=typeof e||(0|e)!==e||e<0)&&f(t,"upper_bound must be an unsigned integer");var _=a._randombytes_uniform(e)>>>0;return g(t),_}function qr(){var e=a._sodium_version_string(),r=a.UTF8ToString(e);return g([]),r}l.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(a.HEAPU8.subarray(this.address,this.address+this.length)),e},r.add=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be added");var r=e.length,t=0,_=0;if(a.length!==e.length)throw new TypeError("Arguments must have the same length");for(_=0;_>=8,t+=e[_]+a[_],e[_]=255&t;},r.base64_variants=c,r.compare=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be compared");if(e.length!==a.length)throw new TypeError("Only instances of identical length can be compared");for(var r=0,t=1,_=e.length;_-- >0;)r|=a[_]-e[_]>>8&t,t&=(a[_]^e[_])-1>>8;return r+r+t-1},r.from_base64=function(e,r){r=h(r);var t,_=[],n=new l(3*(e=E(_,e,"input")).length/4),s=u(e),c=d(4),o=d(4);return _.push(s),_.push(n.address),_.push(c),_.push(o),0!==a._sodium_base642bin(n.address,n.length,s,e.length,0,c,o,r)&&b(_,"invalid input"),a.getValue(o,"i32")-s!==e.length&&b(_,"incomplete input"),n.length=a.getValue(c,"i32"),t=n.to_Uint8Array(),g(_),t},r.from_hex=function(e){var r,t=[],_=new l((e=E(t,e,"input")).length/2),n=u(e),s=d(4);return t.push(n),t.push(_.address),t.push(s),0!==a._sodium_hex2bin(_.address,_.length,n,e.length,0,0,s)&&b(t,"invalid input"),a.getValue(s,"i32")-n!==e.length&&b(t,"incomplete input"),r=_.to_Uint8Array(),g(t),r},r.from_string=_,r.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be incremented");for(var a=256,r=0,t=e.length;r>=8,a+=e[r],e[r]=255&a;},r.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be checked");for(var a=0,r=0,t=e.length;r 0");var t,_=[],n=d(4),s=1,c=0,h=0|e.length,o=new l(h+r);_.push(n),_.push(o.address);for(var p=o.address,y=o.address+h+r;p>>48|h>>>32|h>>>16|h))-1>>16);return 0!==a._sodium_pad(n,o.address,e.length,r,o.length)&&b(_,"internal error"),o.length=a.getValue(n,"i32"),t=o.to_Uint8Array(),g(_),t},r.unpad=function(e,r){if(!(e instanceof Uint8Array))throw new TypeError("buffer must be a Uint8Array");if((r|=0)<=0)throw new Error("block size must be > 0");var t=[],_=u(e),n=d(4);return t.push(_),t.push(n),0!==a._sodium_unpad(n,_,e.length,r)&&b(t,"unsupported/invalid padding"),e=(e=new Uint8Array(e)).subarray(0,a.getValue(n,"i32")),g(t),e},r.ready=t,r.symbols=function(){return Object.keys(r).sort()},r.to_base64=o,r.to_hex=s,r.to_string=n; + +class Decoder { + buf; + view; + pos; + constructor(buf) { + this.buf = buf; + this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength); + this.pos = 0; + } + take(n) { + if (this.pos + n > this.buf.length) throw new Error("Decoder: unexpected end of input"); + const slice = this.buf.subarray(this.pos, this.pos + n); + this.pos += n; + return slice; + } + takeAll() { + const slice = this.buf.subarray(this.pos); + this.pos = this.buf.length; + return slice; + } + anyByte() { + if (this.pos >= this.buf.length) throw new Error("Decoder: unexpected end of input"); + return this.buf[this.pos++]; + } + remaining() { + return this.buf.length - this.pos; + } + offset() { + return this.pos; + } +} +function concatBytes(...arrays) { + let totalLen = 0; + for (const a of arrays) totalLen += a.length; + const result = new Uint8Array(totalLen); + let offset = 0; + for (const a of arrays) { + result.set(a, offset); + offset += a.length; + } + return result; +} +function encodeWord32(n) { + const buf = new Uint8Array(4); + const view = new DataView(buf.buffer); + view.setUint32(0, n, false); + return buf; +} +function decodeWord32(d) { + const bytes = d.take(4); + const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); + return view.getUint32(0, false); +} +function encodeInt64(n) { + const high = Number(n >> 32n & 0xFFFFFFFFn); + const low = Number(n & 0xFFFFFFFFn); + return concatBytes(encodeWord32(high), encodeWord32(low)); +} +function decodeInt64(d) { + const high = BigInt(decodeWord32(d)); + const low = BigInt(decodeWord32(d)); + const unsigned = high << 32n | low; + return unsigned >= 0x8000000000000000n ? unsigned - 0x10000000000000000n : unsigned; +} +function encodeBytes(bs) { + if (bs.length > 255) throw new Error("encodeBytes: length exceeds 255"); + const result = new Uint8Array(1 + bs.length); + result[0] = bs.length; + result.set(bs, 1); + return result; +} +function decodeBytes(d) { + const len = d.anyByte(); + return d.take(len); +} +const textEncoder = new TextEncoder(); +const textDecoder = new TextDecoder(); +function encodeString(s) { + return encodeBytes(textEncoder.encode(s)); +} +function decodeString(d) { + return textDecoder.decode(decodeBytes(d)); +} +const CHAR_0 = 48; +const CHAR_1 = 49; +function encodeMaybe(encode, v) { + return new Uint8Array([CHAR_0]); +} +function decodeMaybe(decode, d) { + const tag = d.anyByte(); + if (tag === CHAR_0) return null; + if (tag === CHAR_1) return decode(d); + throw new Error("decodeMaybe: invalid tag " + tag); +} + +function unPadLazy(padded) { + return splitLen(padded).content; +} +function splitLen(data) { + if (data.length < 8) throw new Error("splitLen: input too short"); + const d = new Decoder(data); + const len = decodeInt64(d); + if (len < 0n) throw new Error("splitLen: negative length"); + const numLen = Number(len); + const available = data.length - 8; + const takeLen = Math.min(numLen, available); + return { len, content: data.subarray(8, 8 + takeLen) }; +} + +const _sodium = r; +function readU32LE(buf, off) { + return (buf[off] | buf[off + 1] << 8 | buf[off + 2] << 16 | buf[off + 3] << 24) >>> 0; +} +function writeU32LE(buf, off, val) { + buf[off] = val & 255; + buf[off + 1] = val >>> 8 & 255; + buf[off + 2] = val >>> 16 & 255; + buf[off + 3] = val >>> 24 & 255; +} +function rotl32(v, n) { + return (v << n | v >>> 32 - n) >>> 0; +} +const SIGMA_0 = 1634760805; +const SIGMA_1 = 857760878; +const SIGMA_2 = 2036477234; +const SIGMA_3 = 1797285236; +function salsa20Block(key, nonce8, counter) { + const k0 = readU32LE(key, 0), k1 = readU32LE(key, 4); + const k2 = readU32LE(key, 8), k3 = readU32LE(key, 12); + const k4 = readU32LE(key, 16), k5 = readU32LE(key, 20); + const k6 = readU32LE(key, 24), k7 = readU32LE(key, 28); + const n0 = readU32LE(nonce8, 0), n1 = readU32LE(nonce8, 4); + const s0 = SIGMA_0, s1 = k0, s2 = k1, s3 = k2; + const s4 = k3, s5 = SIGMA_1, s6 = n0, s7 = n1; + const s8 = counter >>> 0, s9 = 0, s10 = SIGMA_2, s11 = k4; + const s12 = k5, s13 = k6, s14 = k7, s15 = SIGMA_3; + let x0 = s0, x1 = s1, x2 = s2, x3 = s3; + let x4 = s4, x5 = s5, x6 = s6, x7 = s7; + let x8 = s8, x9 = s9, x10 = s10, x11 = s11; + let x12 = s12, x13 = s13, x14 = s14, x15 = s15; + for (let i = 0; i < 10; i++) { + x4 ^= rotl32(x0 + x12 >>> 0, 7); + x8 ^= rotl32(x4 + x0 >>> 0, 9); + x12 ^= rotl32(x8 + x4 >>> 0, 13); + x0 ^= rotl32(x12 + x8 >>> 0, 18); + x9 ^= rotl32(x5 + x1 >>> 0, 7); + x13 ^= rotl32(x9 + x5 >>> 0, 9); + x1 ^= rotl32(x13 + x9 >>> 0, 13); + x5 ^= rotl32(x1 + x13 >>> 0, 18); + x14 ^= rotl32(x10 + x6 >>> 0, 7); + x2 ^= rotl32(x14 + x10 >>> 0, 9); + x6 ^= rotl32(x2 + x14 >>> 0, 13); + x10 ^= rotl32(x6 + x2 >>> 0, 18); + x3 ^= rotl32(x15 + x11 >>> 0, 7); + x7 ^= rotl32(x3 + x15 >>> 0, 9); + x11 ^= rotl32(x7 + x3 >>> 0, 13); + x15 ^= rotl32(x11 + x7 >>> 0, 18); + x1 ^= rotl32(x0 + x3 >>> 0, 7); + x2 ^= rotl32(x1 + x0 >>> 0, 9); + x3 ^= rotl32(x2 + x1 >>> 0, 13); + x0 ^= rotl32(x3 + x2 >>> 0, 18); + x6 ^= rotl32(x5 + x4 >>> 0, 7); + x7 ^= rotl32(x6 + x5 >>> 0, 9); + x4 ^= rotl32(x7 + x6 >>> 0, 13); + x5 ^= rotl32(x4 + x7 >>> 0, 18); + x11 ^= rotl32(x10 + x9 >>> 0, 7); + x8 ^= rotl32(x11 + x10 >>> 0, 9); + x9 ^= rotl32(x8 + x11 >>> 0, 13); + x10 ^= rotl32(x9 + x8 >>> 0, 18); + x12 ^= rotl32(x15 + x14 >>> 0, 7); + x13 ^= rotl32(x12 + x15 >>> 0, 9); + x14 ^= rotl32(x13 + x12 >>> 0, 13); + x15 ^= rotl32(x14 + x13 >>> 0, 18); + } + const out = new Uint8Array(64); + writeU32LE(out, 0, x0 + s0 >>> 0); + writeU32LE(out, 4, x1 + s1 >>> 0); + writeU32LE(out, 8, x2 + s2 >>> 0); + writeU32LE(out, 12, x3 + s3 >>> 0); + writeU32LE(out, 16, x4 + s4 >>> 0); + writeU32LE(out, 20, x5 + s5 >>> 0); + writeU32LE(out, 24, x6 + s6 >>> 0); + writeU32LE(out, 28, x7 + s7 >>> 0); + writeU32LE(out, 32, x8 + s8 >>> 0); + writeU32LE(out, 36, x9 + s9 >>> 0); + writeU32LE(out, 40, x10 + s10 >>> 0); + writeU32LE(out, 44, x11 + s11 >>> 0); + writeU32LE(out, 48, x12 + s12 >>> 0); + writeU32LE(out, 52, x13 + s13 >>> 0); + writeU32LE(out, 56, x14 + s14 >>> 0); + writeU32LE(out, 60, x15 + s15 >>> 0); + return out; +} +function sbInit(key, nonce) { + const zeros16 = new Uint8Array(16); + const subkey1 = _sodium.crypto_core_hsalsa20(zeros16, key); + const subkey = _sodium.crypto_core_hsalsa20(nonce.subarray(0, 16), subkey1); + const nonce8 = new Uint8Array(nonce.subarray(16, 24)); + const block0 = salsa20Block(subkey, nonce8, 0); + const poly1305Key = block0.subarray(0, 32); + const ksBuf = new Uint8Array(block0.subarray(32)); + const authState = r.crypto_onetimeauth_init(poly1305Key); + return { _subkey: subkey, _nonce8: nonce8, _counter: 1, _ksBuf: ksBuf, _ksOff: 0, _authState: authState }; +} +function cbInit(dhSecret, nonce) { + return sbInit(dhSecret, nonce); +} +function sbEncryptChunk(state, chunk) { + const cipher = xorKeystream(state, chunk); + r.crypto_onetimeauth_update(state._authState, cipher); + return cipher; +} +function sbDecryptChunk(state, chunk) { + r.crypto_onetimeauth_update(state._authState, chunk); + return xorKeystream(state, chunk); +} +function sbAuth(state) { + return r.crypto_onetimeauth_final(state._authState); +} +function sbDecryptTailTag(key, nonce, paddedLen, data) { + const pLen = Number(paddedLen); + const cipher = data.subarray(0, pLen); + const providedTag = data.subarray(pLen); + const state = sbInit(key, nonce); + const plaintext = sbDecryptChunk(state, cipher); + const computedTag = sbAuth(state); + const valid = providedTag.length === 16 && constantTimeEqual$1(providedTag, computedTag); + const content = unPadLazy(plaintext); + return { valid, content }; +} +function xorKeystream(state, data) { + const result = new Uint8Array(data.length); + let off = 0; + while (off < data.length) { + if (state._ksOff >= state._ksBuf.length) { + state._ksBuf = salsa20Block(state._subkey, state._nonce8, state._counter++); + state._ksOff = 0; + } + const available = state._ksBuf.length - state._ksOff; + const needed = data.length - off; + const n = Math.min(available, needed); + for (let i = 0; i < n; i++) { + result[off + i] = data[off + i] ^ state._ksBuf[state._ksOff + i]; + } + state._ksOff += n; + off += n; + } + return result; +} +function constantTimeEqual$1(a, b) { + if (a.length !== b.length) return false; + let diff = 0; + for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i]; + return diff === 0; +} + +const AUTH_TAG_SIZE = 16n; +const PROGRESS_SEG = 256 * 1024; +function encodeFileHeader(hdr) { + return concatBytes( + encodeString(hdr.fileName), + encodeMaybe() + ); +} +function parseFileHeader(data) { + const hdrLen = Math.min(1024, data.length); + const d = new Decoder(data.subarray(0, hdrLen)); + const fileName = decodeString(d); + const fileExtra = decodeMaybe(decodeString, d); + const consumed = d.offset(); + return { + header: { fileName, fileExtra }, + rest: data.subarray(consumed) + }; +} +function encryptFile(source, fileHdr, key, nonce, fileSize, encSize, onProgress) { + const state = sbInit(key, nonce); + const lenStr = encodeInt64(fileSize); + const padLen = Number(encSize - AUTH_TAG_SIZE - fileSize - 8n); + if (padLen < 0) throw new Error("encryptFile: encSize too small"); + const hdr = sbEncryptChunk(state, concatBytes(lenStr, fileHdr)); + const encSource = new Uint8Array(source.length); + for (let off = 0; off < source.length; off += PROGRESS_SEG) { + const end = Math.min(off + PROGRESS_SEG, source.length); + const seg = sbEncryptChunk(state, source.subarray(off, end)); + encSource.set(seg, off); + onProgress?.(end, source.length); + } + if (source.length === 0) onProgress?.(0, 0); + const padding = new Uint8Array(padLen); + padding.fill(35); + const encPad = sbEncryptChunk(state, padding); + const tag = sbAuth(state); + return concatBytes(hdr, encSource, encPad, tag); +} +function decryptChunks(encSize, chunks, key, nonce, onProgress) { + if (chunks.length === 0) throw new Error("decryptChunks: empty chunks"); + const paddedLen = encSize - AUTH_TAG_SIZE; + const data = chunks.length === 1 ? chunks[0] : concatBytes(...chunks); + if (!onProgress) { + const { valid, content: content2 } = sbDecryptTailTag(key, nonce, paddedLen, data); + if (!valid) throw new Error("decryptChunks: invalid auth tag"); + const { header: header2, rest: rest2 } = parseFileHeader(content2); + return { header: header2, content: rest2 }; + } + const pLen = Number(paddedLen); + const cipher = data.subarray(0, pLen); + const providedTag = data.subarray(pLen); + const state = sbInit(key, nonce); + const plaintext = new Uint8Array(pLen); + for (let off = 0; off < pLen; off += PROGRESS_SEG) { + const end = Math.min(off + PROGRESS_SEG, pLen); + const seg = sbDecryptChunk(state, cipher.subarray(off, end)); + plaintext.set(seg, off); + onProgress(end, pLen); + } + if (pLen === 0) onProgress(0, 0); + const computedTag = sbAuth(state); + let diff = providedTag.length === 16 ? 0 : 1; + for (let i = 0; i < computedTag.length; i++) diff |= providedTag[i] ^ computedTag[i]; + if (diff !== 0) throw new Error("decryptChunks: invalid auth tag"); + const content = unPadLazy(plaintext); + const { header, rest } = parseFileHeader(content); + return { header, content: rest }; +} + +function sha256(data) { + return r.crypto_hash_sha256(data); +} +function sha512Streaming(chunks, onProgress, totalBytes) { + const SEG = 4 * 1024 * 1024; + const state = r.crypto_hash_sha512_init(); + let done = 0; + for (const chunk of chunks) { + for (let off = 0; off < chunk.length; off += SEG) { + const end = Math.min(off + SEG, chunk.length); + r.crypto_hash_sha512_update(state, chunk.subarray(off, end)); + done += end - off; + onProgress?.(done, totalBytes ?? done); + } + } + return r.crypto_hash_sha512_final(state); +} + +const B64URL = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; +const B64_DECODE = new Uint8Array(128); +B64_DECODE.fill(255); +for (let i = 0; i < 64; i++) B64_DECODE[B64URL.charCodeAt(i)] = i; +const kb = (n) => n * 1024; +const mb = (n) => n * 1048576; + +const chunkSize0 = kb(64); +const chunkSize1 = kb(256); +const chunkSize2 = mb(1); +const chunkSize3 = mb(4); +const fileSizeLen = 8; +const authTagSize = 16; +function size34(sz) { + return Math.floor(sz * 3 / 4); +} +function prepareChunkSizes(payloadSize) { + let smallSize, bigSize; + if (payloadSize > size34(chunkSize3)) { + smallSize = chunkSize2; + bigSize = chunkSize3; + } else if (payloadSize > size34(chunkSize2)) { + smallSize = chunkSize1; + bigSize = chunkSize2; + } else { + smallSize = chunkSize0; + bigSize = chunkSize1; + } + function prepareSizes(size) { + if (size === 0) return []; + if (size >= bigSize) { + const n1 = Math.floor(size / bigSize); + const remSz = size % bigSize; + return new Array(n1).fill(bigSize).concat(prepareSizes(remSz)); + } + if (size > size34(bigSize)) return [bigSize]; + const n2 = Math.floor(size / smallSize); + const remSz2 = size % smallSize; + return new Array(remSz2 === 0 ? n2 : n2 + 1).fill(smallSize); + } + return prepareSizes(payloadSize); +} + +await r.ready; + +function decryptTransportChunk(dhSecret, cbNonce, encData) { + if (encData.length < 16) return { valid: false, content: new Uint8Array(0), computedTag: new Uint8Array(0) }; + const cipher = encData.subarray(0, encData.length - 16); + const providedTag = encData.subarray(encData.length - 16); + const state = cbInit(dhSecret, cbNonce); + const plaintext = sbDecryptChunk(state, cipher); + const computedTag = sbAuth(state); + const valid = constantTimeEqual(providedTag, computedTag); + return { valid, content: plaintext, computedTag }; +} +function constantTimeEqual(a, b) { + if (a.length !== b.length) return false; + let diff = 0; + for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i]; + return diff === 0; +} + +function decryptReceivedChunk(dhSecret, cbNonce, encData, expectedDigest) { + encData.slice(encData.length - 16); + const { valid, content } = decryptTransportChunk(dhSecret, cbNonce, encData); + if (!valid) throw new Error("transport auth tag verification failed"); + if (expectedDigest !== null) { + const actual = sha256(content); + if (!digestEqual$1(actual, expectedDigest)) { + throw new Error("chunk digest mismatch"); + } + } + return content; +} +function digestEqual$1(a, b) { + if (a.length !== b.length) return false; + let diff = 0; + for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i]; + return diff === 0; +} + +const SESSION_DIR = `session-${Date.now()}-${crypto.randomUUID()}`; +let uploadReadHandle = null; +let downloadWriteHandle = null; +const chunkMeta = /* @__PURE__ */ new Map(); +let currentDownloadOffset = 0; +let sessionDir = null; +let useMemory = false; +const memoryChunks = /* @__PURE__ */ new Map(); +async function getSessionDir() { + if (!sessionDir) { + const root = await navigator.storage.getDirectory(); + sessionDir = await root.getDirectoryHandle(SESSION_DIR, { create: true }); + } + return sessionDir; +} +async function sweepStale() { + const root = await navigator.storage.getDirectory(); + const oneHourAgo = Date.now() - 36e5; + for await (const [name] of root.entries()) { + if (!name.startsWith("session-")) continue; + const parts = name.split("-"); + const ts = parseInt(parts[1], 10); + if (!isNaN(ts) && ts < oneHourAgo) { + try { + await root.removeEntry(name, { recursive: true }); + } catch (_) { + } + } + } +} +async function handleEncrypt(id, data, fileName) { + const source = new Uint8Array(data); + const key = new Uint8Array(32); + const nonce = new Uint8Array(24); + crypto.getRandomValues(key); + crypto.getRandomValues(nonce); + const fileHdr = encodeFileHeader({ fileName}); + const fileSize = BigInt(fileHdr.length + source.length); + const payloadSize = Number(fileSize) + fileSizeLen + authTagSize; + const chunkSizes = prepareChunkSizes(payloadSize); + const encSize = BigInt(chunkSizes.reduce((a, b) => a + b, 0)); + const encDataLen = Number(encSize); + const total = source.length + encDataLen * 2; + const encData = encryptFile(source, fileHdr, key, nonce, fileSize, encSize, (done) => { + self.postMessage({ id, type: "progress", done, total }); + }); + const digest = sha512Streaming([encData], (done) => { + self.postMessage({ id, type: "progress", done: source.length + done, total }); + }, encDataLen); + console.log(`[WORKER-DBG] encrypt: encData.len=${encData.length} digest=${_whex(digest, 64)} chunkSizes=[${chunkSizes.join(",")}]`); + const dir = await getSessionDir(); + const fileHandle = await dir.getFileHandle("upload.bin", { create: true }); + const writeHandle = await fileHandle.createSyncAccessHandle(); + const written = writeHandle.write(encData); + if (written !== encData.length) throw new Error(`OPFS upload write: ${written}/${encData.length}`); + writeHandle.flush(); + writeHandle.close(); + uploadReadHandle = await fileHandle.createSyncAccessHandle(); + self.postMessage({ id, type: "progress", done: total, total }); + self.postMessage({ id, type: "encrypted", digest, key, nonce, chunkSizes }); +} +function handleReadChunk(id, offset, size) { + if (!uploadReadHandle) { + self.postMessage({ id, type: "error", message: "No upload file open" }); + return; + } + const buf = new Uint8Array(size); + uploadReadHandle.read(buf, { at: offset }); + const ab = buf.buffer; + self.postMessage({ id, type: "chunk", data: ab }, [ab]); +} +async function handleDecryptAndStore(id, dhSecret, nonce, body, chunkDigest, chunkNo) { + const bodyArr = new Uint8Array(body); + console.log(`[WORKER-DBG] store chunk=${chunkNo} body.len=${bodyArr.length} nonce=${_whex(nonce, 24)} dhSecret=${_whex(dhSecret)} digest=${_whex(chunkDigest, 32)} body[0..8]=${_whex(bodyArr)} body[-8..]=${_whex(bodyArr.slice(-8))}`); + const decrypted = decryptReceivedChunk(dhSecret, nonce, bodyArr, chunkDigest); + console.log(`[WORKER-DBG] decrypted chunk=${chunkNo} len=${decrypted.length} [0..8]=${_whex(decrypted)} [-8..]=${_whex(decrypted.slice(-8))}`); + if (useMemory) { + memoryChunks.set(chunkNo, decrypted); + self.postMessage({ id, type: "stored" }); + return; + } + if (!downloadWriteHandle) { + const dir = await getSessionDir(); + const fileHandle = await dir.getFileHandle("download.bin", { create: true }); + downloadWriteHandle = await fileHandle.createSyncAccessHandle(); + } + const offset = currentDownloadOffset; + currentDownloadOffset += decrypted.length; + chunkMeta.set(chunkNo, { offset, size: decrypted.length }); + const written = downloadWriteHandle.write(decrypted, { at: offset }); + console.log(`[WORKER-DBG] OPFS write chunk=${chunkNo} offset=${offset} size=${decrypted.length} written=${written}`); + if (written !== decrypted.length) { + console.warn(`[WORKER] OPFS write failed chunk=${chunkNo}: ${written}/${decrypted.length}, falling back to in-memory storage`); + for (const [cn, meta] of chunkMeta.entries()) { + if (cn === chunkNo) continue; + const buf = new Uint8Array(meta.size); + downloadWriteHandle.read(buf, { at: meta.offset }); + memoryChunks.set(cn, buf); + } + downloadWriteHandle.close(); + downloadWriteHandle = null; + try { + const dir = await getSessionDir(); + await dir.removeEntry("download.bin"); + } catch (_) { + } + chunkMeta.clear(); + currentDownloadOffset = 0; + memoryChunks.set(chunkNo, decrypted); + useMemory = true; + self.postMessage({ id, type: "stored" }); + return; + } + downloadWriteHandle.flush(); + const verifyBuf = new Uint8Array(Math.min(8, decrypted.length)); + downloadWriteHandle.read(verifyBuf, { at: offset }); + const verifyEnd = new Uint8Array(Math.min(8, decrypted.length)); + downloadWriteHandle.read(verifyEnd, { at: offset + decrypted.length - verifyEnd.length }); + console.log(`[WORKER-DBG] OPFS verify chunk=${chunkNo} readBack[0..8]=${_whex(verifyBuf)} readBack[-8..]=${_whex(verifyEnd)} expected[0..8]=${_whex(decrypted)} expected[-8..]=${_whex(decrypted.slice(-8))}`); + self.postMessage({ id, type: "stored" }); +} +async function handleVerifyAndDecrypt(id, size, digest, key, nonce) { + console.log(`[WORKER-DBG] verify: expectedSize=${size} expectedDigest=${_whex(digest, 64)} useMemory=${useMemory} chunkMeta.size=${chunkMeta.size} memoryChunks.size=${memoryChunks.size}`); + const chunks = []; + let totalSize = 0; + const total = size * 3; + let done = 0; + if (useMemory) { + const sorted = [...memoryChunks.entries()].sort((a, b) => a[0] - b[0]); + for (const [chunkNo, data] of sorted) { + console.log(`[WORKER-DBG] verify memory chunk=${chunkNo} size=${data.length}`); + chunks.push(data); + totalSize += data.length; + done += data.length; + self.postMessage({ id, type: "progress", done, total }); + } + } else { + if (downloadWriteHandle) { + downloadWriteHandle.flush(); + downloadWriteHandle.close(); + downloadWriteHandle = null; + } + const dir = await getSessionDir(); + const fileHandle = await dir.getFileHandle("download.bin"); + const readHandle = await fileHandle.createSyncAccessHandle(); + console.log(`[WORKER-DBG] verify: OPFS file size=${readHandle.getSize()}`); + const sortedEntries = [...chunkMeta.entries()].sort((a, b) => a[0] - b[0]); + for (const [chunkNo, meta] of sortedEntries) { + const buf = new Uint8Array(meta.size); + const bytesRead = readHandle.read(buf, { at: meta.offset }); + console.log(`[WORKER-DBG] verify read chunk=${chunkNo} offset=${meta.offset} size=${meta.size} bytesRead=${bytesRead} [0..8]=${_whex(buf)} [-8..]=${_whex(buf.slice(-8))}`); + chunks.push(buf); + totalSize += meta.size; + done += meta.size; + self.postMessage({ id, type: "progress", done, total }); + } + readHandle.close(); + } + if (totalSize !== size) { + self.postMessage({ id, type: "error", message: `File size mismatch: ${totalSize} !== ${size}` }); + return; + } + const hashSEG = 4 * 1024 * 1024; + const state = r.crypto_hash_sha512_init(); + for (let i = 0; i < chunks.length; i++) { + const chunk = chunks[i]; + for (let off = 0; off < chunk.length; off += hashSEG) { + const end = Math.min(off + hashSEG, chunk.length); + r.crypto_hash_sha512_update(state, chunk.subarray(off, end)); + done += end - off; + self.postMessage({ id, type: "progress", done, total }); + } + } + const actualDigest = r.crypto_hash_sha512_final(state); + if (!digestEqual(actualDigest, digest)) { + console.error(`[WORKER-DBG] DIGEST MISMATCH: expected=${_whex(digest, 64)} actual=${_whex(actualDigest, 64)} chunks=${chunks.length} totalSize=${totalSize}`); + const state2 = r.crypto_hash_sha512_init(); + for (let i = 0; i < chunks.length; i++) { + const chunk = chunks[i]; + for (let off = 0; off < chunk.length; off += hashSEG) { + r.crypto_hash_sha512_update(state2, chunk.subarray(off, Math.min(off + hashSEG, chunk.length))); + } + const chunkDigest = sha512Streaming([chunk]); + console.error(`[WORKER-DBG] chunk[${i}] size=${chunk.length} sha512=${_whex(chunkDigest, 32)}… [0..8]=${_whex(chunk)} [-8..]=${_whex(chunk.slice(-8))}`); + } + self.postMessage({ id, type: "error", message: "File digest mismatch" }); + return; + } + console.log(`[WORKER-DBG] verify: digest OK`); + const result = decryptChunks(BigInt(size), chunks, key, nonce, (d) => { + self.postMessage({ id, type: "progress", done: size * 2 + d, total }); + }); + self.postMessage({ id, type: "progress", done: total, total }); + if (!useMemory) { + const dir = await getSessionDir(); + try { + await dir.removeEntry("download.bin"); + } catch (_) { + } + } + chunkMeta.clear(); + memoryChunks.clear(); + currentDownloadOffset = 0; + useMemory = false; + const contentBuf = result.content.buffer.slice( + result.content.byteOffset, + result.content.byteOffset + result.content.byteLength + ); + self.postMessage( + { id, type: "decrypted", header: result.header, content: contentBuf }, + [contentBuf] + ); +} +async function handleCleanup(id) { + if (uploadReadHandle) { + uploadReadHandle.close(); + uploadReadHandle = null; + } + if (downloadWriteHandle) { + downloadWriteHandle.close(); + downloadWriteHandle = null; + } + chunkMeta.clear(); + memoryChunks.clear(); + currentDownloadOffset = 0; + useMemory = false; + try { + const root = await navigator.storage.getDirectory(); + await root.removeEntry(SESSION_DIR, { recursive: true }); + } catch (_) { + } + sessionDir = null; + self.postMessage({ id, type: "cleaned" }); +} +let queue = Promise.resolve(); +self.onmessage = (e) => { + const msg = e.data; + queue = queue.then(async () => { + try { + await initPromise; + switch (msg.type) { + case "encrypt": + await handleEncrypt(msg.id, msg.data, msg.fileName); + break; + case "readChunk": + handleReadChunk(msg.id, msg.offset, msg.size); + break; + case "decryptAndStoreChunk": + await handleDecryptAndStore(msg.id, msg.dhSecret, msg.nonce, msg.body, msg.chunkDigest, msg.chunkNo); + break; + case "verifyAndDecrypt": + await handleVerifyAndDecrypt(msg.id, msg.size, msg.digest, msg.key, msg.nonce); + break; + case "cleanup": + await handleCleanup(msg.id); + break; + default: + self.postMessage({ id: msg.id, type: "error", message: `Unknown message type: ${msg.type}` }); + } + } catch (err) { + self.postMessage({ id: msg.id, type: "error", message: err?.message ?? String(err) }); + } + }); +}; +function _whex(b, n = 8) { + return Array.from(b.slice(0, n)).map((x) => x.toString(16).padStart(2, "0")).join(""); +} +function digestEqual(a, b) { + if (a.length !== b.length) return false; + let diff = 0; + for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i]; + return diff === 0; +} +const initPromise = (async () => { + await r.ready; + await sweepStale(); +})(); +initPromise.then(() => self.postMessage({ type: "ready" }), () => { +}); diff --git a/apps/xftp-server/static/xftp/index.css b/apps/xftp-server/static/xftp/index.css new file mode 100644 index 0000000000..e5ba53f03e --- /dev/null +++ b/apps/xftp-server/static/xftp/index.css @@ -0,0 +1,131 @@ +#app, [data-xftp-app] { + font-family: system-ui, -apple-system, sans-serif; + color: #333; + width: 100%; + max-width: 480px; + padding: 16px; + box-sizing: border-box; + --xftp-ring-fg: #3b82f6; +} + +:is(#app, [data-xftp-app]) .card { + background: #fff; + border-radius: 12px; + padding: 32px 24px; + box-shadow: 0 1px 3px rgba(0,0,0,.1); + text-align: center; +} + +:is(#app, [data-xftp-app]) h1 { + font-size: 1.25rem; + font-weight: 600; + margin-bottom: 24px; +} + +:is(#app, [data-xftp-app]) .stage { margin-top: 16px; } + +/* Drop zone */ +:is(#app, [data-xftp-app]) .drop-zone { + border: 2px dashed #ccc; + border-radius: 8px; + padding: 32px 16px; + transition: border-color .15s, background .15s; +} +:is(#app, [data-xftp-app]) .drop-zone.drag-over { + border-color: #3b82f6; + background: #eff6ff; +} + +/* Buttons */ +:is(#app, [data-xftp-app]) .btn { + display: inline-block; + padding: 10px 24px; + border: none; + border-radius: 6px; + background: #3b82f6; + color: #fff; + font-size: .9rem; + font-weight: 500; + cursor: pointer; + transition: background .15s; +} +:is(#app, [data-xftp-app]) .btn:hover { background: #2563eb; } +:is(#app, [data-xftp-app]) .btn-secondary { background: #6b7280; } +:is(#app, [data-xftp-app]) .btn-secondary:hover { background: #4b5563; } + +/* Hints */ +:is(#app, [data-xftp-app]) .hint { color: #999; font-size: .85rem; margin-top: 8px; } +:is(#app, [data-xftp-app]) .expiry { margin-top: 12px; } + +/* Progress */ +:is(#app, [data-xftp-app]) .progress-ring { display: block; margin: 0 auto 12px; } +:is(#app, [data-xftp-app]) #upload-status, +:is(#app, [data-xftp-app]) #dl-status { font-size: .9rem; color: #666; margin-bottom: 12px; } + +/* Share link row */ +:is(#app, [data-xftp-app]) .link-row { + display: flex; + gap: 8px; + margin-top: 12px; +} +:is(#app, [data-xftp-app]) .link-row input { + flex: 1; + padding: 8px 10px; + border: 1px solid #ccc; + border-radius: 6px; + font-size: .85rem; + background: #f9fafb; +} + +/* Messages */ +:is(#app, [data-xftp-app]) .success { color: #16a34a; font-weight: 600; } +:is(#app, [data-xftp-app]) .error { color: #dc2626; font-weight: 500; margin-bottom: 12px; } + +/* Security note */ +:is(#app, [data-xftp-app]) .security-note { + margin-top: 20px; + padding: 12px; + background: #f0fdf4; + border-radius: 6px; + font-size: .8rem; + color: #555; + text-align: left; +} +:is(#app, [data-xftp-app]) .security-note p + p { margin-top: 6px; } +:is(#app, [data-xftp-app]) .security-note a { color: #3b82f6; text-decoration: none; } +:is(#app, [data-xftp-app]) .security-note a:hover { text-decoration: underline; } + +/* ── Dark mode ─────────────────────────────────── */ +.dark :is(#app, [data-xftp-app]) { + color: #e5e7eb; + --xftp-ring-bg: #374151; + --xftp-ring-fg: #60a5fa; + --xftp-ring-text: #e5e7eb; + --xftp-ring-done: #4ade80; +} +.dark :is(#app, [data-xftp-app]) .card { + background: #1f2937; + box-shadow: 0 1px 3px rgba(0,0,0,.4); +} +.dark :is(#app, [data-xftp-app]) .drop-zone { border-color: #4b5563; } +.dark :is(#app, [data-xftp-app]) .drop-zone.drag-over { + border-color: #60a5fa; + background: rgba(59,130,246,.15); +} +.dark :is(#app, [data-xftp-app]) .btn-secondary { background: #4b5563; } +.dark :is(#app, [data-xftp-app]) .btn-secondary:hover { background: #374151; } +.dark :is(#app, [data-xftp-app]) .hint { color: #9ca3af; } +.dark :is(#app, [data-xftp-app]) #upload-status, +.dark :is(#app, [data-xftp-app]) #dl-status { color: #9ca3af; } +.dark :is(#app, [data-xftp-app]) .link-row input { + background: #374151; + border-color: #4b5563; + color: #e5e7eb; +} +.dark :is(#app, [data-xftp-app]) .success { color: #4ade80; } +.dark :is(#app, [data-xftp-app]) .error { color: #f87171; } +.dark :is(#app, [data-xftp-app]) .security-note { + background: rgba(34,197,94,.1); + color: #d1d5db; +} +.dark :is(#app, [data-xftp-app]) .security-note a { color: #60a5fa; } diff --git a/apps/xftp-server/static/xftp/index.js b/apps/xftp-server/static/xftp/index.js new file mode 100644 index 0000000000..6adc77f2ca --- /dev/null +++ b/apps/xftp-server/static/xftp/index.js @@ -0,0 +1,11599 @@ +true &&(function polyfill() { + const relList = document.createElement("link").relList; + if (relList && relList.supports && relList.supports("modulepreload")) { + return; + } + for (const link of document.querySelectorAll('link[rel="modulepreload"]')) { + processPreload(link); + } + new MutationObserver((mutations) => { + for (const mutation of mutations) { + if (mutation.type !== "childList") { + continue; + } + for (const node of mutation.addedNodes) { + if (node.tagName === "LINK" && node.rel === "modulepreload") + processPreload(node); + } + } + }).observe(document, { childList: true, subtree: true }); + function getFetchOpts(link) { + const fetchOpts = {}; + if (link.integrity) fetchOpts.integrity = link.integrity; + if (link.referrerPolicy) fetchOpts.referrerPolicy = link.referrerPolicy; + if (link.crossOrigin === "use-credentials") + fetchOpts.credentials = "include"; + else if (link.crossOrigin === "anonymous") fetchOpts.credentials = "omit"; + else fetchOpts.credentials = "same-origin"; + return fetchOpts; + } + function processPreload(link) { + if (link.ep) + return; + link.ep = true; + const fetchOpts = getFetchOpts(link); + fetch(link.href, fetchOpts); + } +}()); + +const scriptRel = 'modulepreload';const assetsURL = function(dep, importerUrl) { return new URL(dep, importerUrl).href };const seen = {};const __vitePreload = function preload(baseModule, deps, importerUrl) { + let promise = Promise.resolve(); + if (true && deps && deps.length > 0) { + let allSettled2 = function(promises) { + return Promise.all( + promises.map( + (p) => Promise.resolve(p).then( + (value) => ({ status: "fulfilled", value }), + (reason) => ({ status: "rejected", reason }) + ) + ) + ); + }; + const links = document.getElementsByTagName("link"); + const cspNonceMeta = document.querySelector( + "meta[property=csp-nonce]" + ); + const cspNonce = cspNonceMeta?.nonce || cspNonceMeta?.getAttribute("nonce"); + promise = allSettled2( + deps.map((dep) => { + dep = assetsURL(dep, importerUrl); + if (dep in seen) return; + seen[dep] = true; + const isCss = dep.endsWith(".css"); + const cssSelector = isCss ? '[rel="stylesheet"]' : ""; + const isBaseRelative = !!importerUrl; + if (isBaseRelative) { + for (let i = links.length - 1; i >= 0; i--) { + const link2 = links[i]; + if (link2.href === dep && (!isCss || link2.rel === "stylesheet")) { + return; + } + } + } else if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) { + return; + } + const link = document.createElement("link"); + link.rel = isCss ? "stylesheet" : scriptRel; + if (!isCss) { + link.as = "script"; + } + link.crossOrigin = ""; + link.href = dep; + if (cspNonce) { + link.setAttribute("nonce", cspNonce); + } + document.head.appendChild(link); + if (isCss) { + return new Promise((res, rej) => { + link.addEventListener("load", res); + link.addEventListener( + "error", + () => rej(new Error(`Unable to preload CSS for ${dep}`)) + ); + }); + } + }) + ); + } + function handlePreloadError(err) { + const e = new Event("vite:preloadError", { + cancelable: true + }); + e.payload = err; + window.dispatchEvent(e); + if (!e.defaultPrevented) { + throw err; + } + } + return promise.then((res) => { + for (const item of res || []) { + if (item.status !== "rejected") continue; + handlePreloadError(item.reason); + } + return baseModule().catch(handlePreloadError); + }); +}; + +// __dirname and __filename are not available in ESM, so we polyfill them for Node.js +var __filename$1, __dirname$1; +try { + // Only works in Node.js ESM - browsers will skip this + if (typeof process !== 'undefined' && process.versions && process.versions.node) { + var url = await __vitePreload(() => import('url'),true ?[]:void 0,import.meta.url); + var path = await __vitePreload(() => import('./__vite-browser-external.js'),true ?[]:void 0,import.meta.url); + __filename$1 = url.fileURLToPath(import.meta.url); + __dirname$1 = path.dirname(__filename$1); + } +} catch (e) { + // In browser environments, these are not needed +} + +var Module = {}; + +// Set up getRandomValue for ESM environments (browsers and Node.js 19+) +// This must be done before the WASM module initializes +(function() { + try { + // Try globalThis.crypto first (works in browsers and Node.js 19+) + var crypto_ = globalThis.crypto; + if (crypto_ && typeof crypto_.getRandomValues === 'function') { + Module.getRandomValue = function() { + var buf = new Uint32Array(1); + crypto_.getRandomValues(buf); + return buf[0] >>> 0; + }; + return; + } + } catch (e) {} + + try { + // Fallback for older browsers: window.crypto or self.crypto + var window_ = typeof window !== 'undefined' ? window : self; + var crypto_ = window_.crypto || window_.msCrypto; + if (crypto_ && typeof crypto_.getRandomValues === 'function') { + Module.getRandomValue = function() { + var buf = new Uint32Array(1); + crypto_.getRandomValues(buf); + return buf[0] >>> 0; + }; + return; + } + } catch (e) {} + + // No crypto available - will fail at runtime if random bytes are needed +})(); + var Module; + if (typeof Module === 'undefined') { + Module = {}; + } + var root = Module; + if (typeof root['sodium'] !== 'object') { + if (typeof global === 'object') { + root = global; + } else if (typeof window === 'object') { + root = window; + } + } + if (typeof Module.getRandomValue === 'undefined') { + try { + var window_ = 'object' === typeof window ? window : self; + var crypto_ = typeof window_.crypto !== 'undefined' ? window_.crypto : window_.msCrypto; + var randomValuesStandard = function() { + var buf = new Uint32Array(1); + crypto_.getRandomValues(buf); + return buf[0] >>> 0; + }; + randomValuesStandard(); + Module.getRandomValue = randomValuesStandard; + } catch (e) { + try { + var crypto$2 = null; + var randomValueNodeJS = function() { + var buf = crypto$2['randomBytes'](4); + return (buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3]) >>> 0; + }; + randomValueNodeJS(); + Module.getRandomValue = randomValueNodeJS; + } catch (e) { + throw 'No secure random number generator found'; + } + } + } + var _Module = Module; + Module.ready = new Promise(function(resolve, reject) { + var Module = _Module; + Module.onAbort = reject; + Module.print = function(what) { + typeof(console) !== 'undefined' && console.log(what); + }; + Module.printErr = function(what) { + typeof(console) !== 'undefined' && console.warn(what); + }; + Module.onRuntimeInitialized = function() { + try { + /* Test arbitrary wasm function */ + Module._crypto_secretbox_keybytes(); + resolve(); + } catch (err) { + reject(err); + } + }; + Module.useBackupModule = function() { + return new Promise(function(resolve, reject) { + var Module = {}; + Module.onAbort = reject; + Module.getRandomValue = _Module.getRandomValue; + + Module.onRuntimeInitialized = function() { + Object.keys(_Module).forEach(function(k) { + if (k !== 'getRandomValue') { + delete _Module[k]; + } + }); + Object.keys(Module).forEach(function(k) { + _Module[k] = Module[k]; + }); + resolve(); + }; + +var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename$1!="undefined"){_scriptName=__filename$1;}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href;}var scriptDirectory="";if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname$1+"/";if(process.argv.length>1){process.argv[1].replace(/\\/g,"/");}process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module;}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href;}catch{}}else;console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536);},Module:function(binary){},Instance:function(module,info){this.exports=( +// EMSCRIPTEN_START_ASM +function instantiate(ea){var a;var b=new Uint8Array(123);for(var c=25;c>=0;--c){b[48+c]=52+c;b[65+c]=c;b[97+c]=26+c;}b[43]=62;b[47]=63;function i(j,k,l){var d,e,c=0,f=k,g=l.length,h=k+(g*3>>2)-(l[g-2]=="=")-(l[g-1]=="=");for(;c>4;if(f>2;if(f>>0;r=r>>>0;if(p+r>a.length)throw "trap: invalid memory.fill";a.fill(q,p,p+r);}function s(){throw new Error("abort")}function t(p,u,r){a.copyWithin(p,u,u+r);}function da(n){var v=new ArrayBuffer(50331648);var w=new Int8Array(v);var x=new Int16Array(v);var y=new Int32Array(v);var z=new Uint8Array(v);var A=new Uint16Array(v);var B=new Uint32Array(v);var E=Math.imul;var H=Math.clz32;var O=n.a;var P=O.a;var Q=O.b;var R=O.c;var S=O.d;var T=106768;var U=0;var V=0;var W=0; +// EMSCRIPTEN_START_FUNCS +function Eb(a,b){var 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,x=0,y=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,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,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;ia=z[b+40|0]|z[b+41|0]<<8|(z[b+42|0]<<16|z[b+43|0]<<24);c=z[b+44|0]|z[b+45|0]<<8|(z[b+46|0]<<16|z[b+47|0]<<24);ka=c;Z=z[b+104|0]|z[b+105|0]<<8|(z[b+106|0]<<16|z[b+107|0]<<24);c=z[b+108|0]|z[b+109|0]<<8|(z[b+110|0]<<16|z[b+111|0]<<24);la=c;c=z[b+68|0]|z[b+69|0]<<8|(z[b+70|0]<<16|z[b+71|0]<<24);O=z[b+64|0]|z[b+65|0]<<8|(z[b+66|0]<<16|z[b+67|0]<<24);$=c;c=z[b+36|0]|z[b+37|0]<<8|(z[b+38|0]<<16|z[b+39|0]<<24);wa=c;s=c;da=z[b+120|0]|z[b+121|0]<<8|(z[b+122|0]<<16|z[b+123|0]<<24);c=z[b+124|0]|z[b+125|0]<<8|(z[b+126|0]<<16|z[b+127|0]<<24);qa=c;c=z[b+92|0]|z[b+93|0]<<8|(z[b+94|0]<<16|z[b+95|0]<<24);Aa=c;pa=z[b+88|0]|z[b+89|0]<<8|(z[b+90|0]<<16|z[b+91|0]<<24);N=c;ca=z[b+80|0]|z[b+81|0]<<8|(z[b+82|0]<<16|z[b+83|0]<<24);c=z[b+84|0]|z[b+85|0]<<8|(z[b+86|0]<<16|z[b+87|0]<<24);na=c;P=c;aa=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);fa=z[a+52|0]|z[a+53|0]<<8|(z[a+54|0]<<16|z[a+55|0]<<24);c=fa+s|0;ea=z[a+48|0]|z[a+49|0]<<8|(z[a+50|0]<<16|z[a+51|0]<<24);ga=z[b+32|0]|z[b+33|0]<<8|(z[b+34|0]<<16|z[b+35|0]<<24);L=ea+ga|0;c=(z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24))+(ea>>>0>L>>>0?c+1|0:c)|0;d=L;L=L+aa|0;aa=d>>>0>L>>>0?c+1|0:c;c=aa+ka|0;ja=L+ia|0;c=ja>>>0>>0?c+1|0:c;ba=ja;ja=c;L=Ci(L^(z[a+80|0]|z[a+81|0]<<8|(z[a+82|0]<<16|z[a+83|0]<<24))^-79577749,aa^(z[a+84|0]|z[a+85|0]<<8|(z[a+86|0]<<16|z[a+87|0]<<24))^528734635,32);c=W;ta=c;c=c+1013904242|0;aa=L;L=L-23791573|0;c=L>>>0<4271175723?c+1|0:c;S=c;fa=Ci(L^ea,c^fa,40);ea=fa+ba|0;c=ja;ja=W;c=c+ja|0;k=ea;l=k>>>0>>0?c+1|0:c;ea=Ci(aa^k,ta^l,48);J=W;c=S+J|0;m=ea;ea=L+m|0;c=ea>>>0>>0?c+1|0:c;o=ea;p=c;c=Ci(fa^o,ja^c,1);L=W;ea=c;S=L;ja=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);c=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);ta=c;ha=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);fa=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);aa=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);L=fa+aa|0;xa=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);Ba=z[a+44|0]|z[a+45|0]<<8|(z[a+46|0]<<16|z[a+47|0]<<24);c=xa+Ba|0;c=(z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24))+(L>>>0>>0?c+1|0:c)|0;d=L;L=L+ha|0;ba=d>>>0>L>>>0?c+1|0:c;c=ta+ba|0;ha=L+ja|0;c=ha>>>0>>0?c+1|0:c;d=Ci(L^(z[a+72|0]|z[a+73|0]<<8|(z[a+74|0]<<16|z[a+75|0]<<24))^725511199,ba^(z[a+76|0]|z[a+77|0]<<8|(z[a+78|0]<<16|z[a+79|0]<<24))^-1694144372,32);L=W;C=L;e=d-2067093701|0;H=C-((d>>>0<2067093701)+1150833018|0)|0;h=Ci(aa^e,Ba^H,40);L=h+ha|0;K=W;c=K+c|0;q=L;B=q>>>0>>0?c+1|0:c;c=B+S|0;L=q+ea|0;c=(q>>>0>L>>>0?c+1|0:c)+P|0;f=L;L=L+ca|0;aa=f>>>0>L>>>0?c+1|0:c;c=aa+N|0;N=L+pa|0;c=N>>>0>>0?c+1|0:c;F=N;j=c;n=ea;ra=S;S=L;ba=aa;ea=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);c=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);L=c;c=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);Ba=c;aa=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);Ca=aa;P=c;ua=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);g=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);c=ua+g|0;N=z[a+32|0]|z[a+33|0]<<8|(z[a+34|0]<<16|z[a+35|0]<<24);aa=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);f=N+aa|0;c=Ca+(N>>>0>f>>>0?c+1|0:c)|0;P=f+P|0;ha=P>>>0>>0?c+1|0:c;c=ha+L|0;f=P+ea|0;c=f>>>0

>>0?c+1|0:c;oa=f;f=c;i=N;c=a- -64|0;N=Ci(P^(z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24))^-1377402159,ha^(z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24))^1359893119,32);c=W;ha=c;c=c+1779033703|0;P=N;N=N-205731576|0;c=N>>>0<4089235720?c+1|0:c;r=N;x=c;g=Ci(i^r,c^g,40);N=g+oa|0;E=W;c=E+f|0;f=N;t=g>>>0>f>>>0?c+1|0:c;i=Ci(P^f,ha^t,48);U=W;c=Ci(i^S,U^ba,32);N=W;R=N;G=c;c=z[b+60|0]|z[b+61|0]<<8|(z[b+62|0]<<16|z[b+63|0]<<24);za=c;oa=z[b+56|0]|z[b+57|0]<<8|(z[b+58|0]<<16|z[b+59|0]<<24);ha=oa;v=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);ba=z[b+48|0]|z[b+49|0]<<8|(z[b+50|0]<<16|z[b+51|0]<<24);P=z[a+56|0]|z[a+57|0]<<8|(z[a+58|0]<<16|z[a+59|0]<<24);N=ba+P|0;va=z[b+52|0]|z[b+53|0]<<8|(z[b+54|0]<<16|z[b+55|0]<<24);D=z[a+60|0]|z[a+61|0]<<8|(z[a+62|0]<<16|z[a+63|0]<<24);c=va+D|0;c=(z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24))+(N>>>0

>>0?c+1|0:c)|0;u=N;N=v+N|0;S=u>>>0>N>>>0?c+1|0:c;c=za+S|0;v=N+ha|0;c=v>>>0>>0?c+1|0:c;S=Ci(N^(z[a+88|0]|z[a+89|0]<<8|(z[a+90|0]<<16|z[a+91|0]<<24))^327033209,S^(z[a+92|0]|z[a+93|0]<<8|(z[a+94|0]<<16|z[a+95|0]<<24))^1541459225,32);N=W;y=N;ha=S+1595750129|0;u=D;D=y-((S>>>0<2699217167)+1521486533|0)|0;P=Ci(P^ha,u^D,40);N=P+v|0;Y=W;c=Y+c|0;v=N;u=v>>>0

>>0?c+1|0:c;N=Ci(v^S,y^u,48);V=W;c=D+V|0;D=N;N=ha+D|0;c=N>>>0>>0?c+1|0:c;y=N;A=c;c=R+c|0;S=G+y|0;c=S>>>0>>0?c+1|0:c;Q=n^S;n=c;ha=Ci(Q,c^ra,40);N=ha+F|0;ra=W;c=ra+j|0;j=N;F=G^j;G=j>>>0>>0?c+1|0:c;N=Ci(F,R^G,48);_=W;c=n+_|0;F=N;n=S+F|0;c=n>>>0>>0?c+1|0:c;R=c;I=Ci(n^ha,ra^c,1);S=z[b+72|0]|z[b+73|0]<<8|(z[b+74|0]<<16|z[b+75|0]<<24);N=I+S|0;ma=W;ra=z[b+76|0]|z[b+77|0]<<8|(z[b+78|0]<<16|z[b+79|0]<<24);c=ma+ra|0;sa=N;M=N>>>0>>0?c+1|0:c;T=la;N=z[b+96|0]|z[b+97|0]<<8|(z[b+98|0]<<16|z[b+99|0]<<24);c=z[b+100|0]|z[b+101|0]<<8|(z[b+102|0]<<16|z[b+103|0]<<24);ha=c;c=k;k=Ci(y^P,A^Y,1);P=c+k|0;y=W;c=y+l|0;c=(k>>>0>P>>>0?c+1|0:c)+ha|0;l=P;P=N+P|0;l=l>>>0>P>>>0?c+1|0:c;c=l+T|0;A=P+Z|0;c=A>>>0

>>0?c+1|0:c;Q=A;A=c;q=Ci(d^q,B^C,48);C=W;c=Ci(q^P,C^l,32);P=W;Y=P;B=c;c=x+U|0;P=i+r|0;r=P>>>0>>0?c+1|0:c;c=Y+r|0;l=P;i=l+B|0;c=l>>>0>i>>>0?c+1|0:c;x=c;k=Ci(i^k,y^c,40);P=k+Q|0;U=W;c=U+A|0;A=P;y=k>>>0>A>>>0?c+1|0:c;c=y+M|0;P=A+sa|0;d=A>>>0>P>>>0?c+1|0:c;c=d+qa|0;M=P+da|0;c=M>>>0

>>0?c+1|0:c;sa=M;M=c;Q=P;T=d;P=z[b+116|0]|z[b+117|0]<<8|(z[b+118|0]<<16|z[b+119|0]<<24);b=z[b+112|0]|z[b+113|0]<<8|(z[b+114|0]<<16|z[b+115|0]<<24);g=Ci(g^l,r^E,1);d=g+v|0;E=W;c=E+u|0;c=(d>>>0>>0?c+1|0:c)+P|0;r=d;d=b+d|0;l=r>>>0>d>>>0?c+1|0:c;c=l+qa|0;r=d+da|0;c=r>>>0>>0?c+1|0:c;ya=r;r=c;c=Ci(d^m,l^J,32);d=W;X=d;m=c;l=d;c=C+H|0;d=e+q|0;c=d>>>0>>0?c+1|0:c;q=d;v=c;c=c+l|0;d=d+m|0;c=q>>>0>d>>>0?c+1|0:c;u=d;J=c;l=Ci(d^g,E^c,40);d=l+ya|0;E=W;c=E+r|0;e=d>>>0>>0?c+1|0:c;m=Ci(d^m,X^e,48);ya=W;c=Ci(m^Q,ya^T,32);g=W;X=g;r=c;Q=g;h=Ci(h^q,v^K,1);q=W;c=t+q|0;g=f;f=f+h|0;c=(g>>>0>f>>>0?c+1|0:c)+$|0;g=f+O|0;f=g>>>0>>0?c+1|0:c;c=f+ra|0;t=g+S|0;c=t>>>0>>0?c+1|0:c;T=t;t=c;v=h;g=Ci(g^D,f^V,32);h=g+o|0;D=W;c=D+p|0;f=h;p=g>>>0>f>>>0?c+1|0:c;o=Ci(v^f,p^q,40);h=o+T|0;V=W;c=V+t|0;q=h;t=h>>>0>>0?c+1|0:c;h=Ci(g^h,D^t,48);Da=W;c=p+Da|0;p=h;h=f+h|0;c=h>>>0>>0?c+1|0:c;v=h;D=c;c=c+Q|0;h=h+r|0;c=v>>>0>h>>>0?c+1|0:c;Q=h;h=h^I;I=c;g=Ci(h,ma^c,40);h=g+sa|0;ma=W;c=ma+M|0;M=h;T=g>>>0>h>>>0?c+1|0:c;c=Aa+T|0;h=h+pa|0;c=h>>>0>>0?c+1|0:c;sa=h;C=c;h=d;H=Z;K=la;d=Ci(B^A,y^Y,48);Y=W;c=x+Y|0;B=d;f=i+d|0;c=f>>>0>>0?c+1|0:c;x=c;d=Ci(f^k,U^c,1);i=W;c=i+K|0;k=d+H|0;c=(k>>>0>>0?c+1|0:c)+e|0;e=h+k|0;h=e>>>0>>0?c+1|0:c;c=va+h|0;k=e+ba|0;c=k>>>0>>0?c+1|0:c;A=k;k=c;e=Ci(e^p,h^Da,32);y=W;c=R+y|0;p=e;e=n+e|0;c=e>>>0>>0?c+1|0:c;n=c;h=Ci(d^e,c^i,40);d=h+A|0;c=k;k=W;c=c+k|0;i=d;A=d>>>0>>0?c+1|0:c;d=Ci(d^p,y^A,48);U=W;c=n+U|0;y=d;n=e+d|0;c=n>>>0>>0?c+1|0:c;R=c;d=Ci(h^n,k^c,1);k=W;c=k+C|0;e=d+sa|0;h=e>>>0>>0?c+1|0:c;c=za+h|0;p=e+oa|0;c=p>>>0>>0?c+1|0:c;sa=p;p=c;C=d;H=k;c=J+ya|0;d=m+u|0;c=d>>>0>>0?c+1|0:c;m=d;u=c;c=Ci(d^l,E^c,1);k=W;l=k;d=c;c=t+P|0;q=b+q|0;c=(q>>>0>>0?c+1|0:c)+k|0;k=d+q|0;q=k>>>0>>0?c+1|0:c;c=na+q|0;t=k+ca|0;c=t>>>0>>0?c+1|0:c;J=t;t=c;k=Ci(k^F,q^_,32);F=W;c=x+F|0;x=f;q=k;f=f+k|0;c=x>>>0>f>>>0?c+1|0:c;x=c;k=Ci(d^f,c^l,40);d=k+J|0;E=W;c=E+t|0;l=d;t=d^q;q=d>>>0>>0?c+1|0:c;d=Ci(t,F^q,48);_=W;c=x+_|0;x=d;d=f+d|0;c=d>>>0>>0?c+1|0:c;t=d;F=c;J=e;K=h;d=Ci(o^v,D^V,1);f=W;c=f+s|0;e=d+ga|0;c=G+(e>>>0>>0?c+1|0:c)|0;e=e+j|0;h=e>>>0>>0?c+1|0:c;c=$+h|0;j=e+O|0;c=j>>>0>>0?c+1|0:c;G=j;j=c;o=d;e=Ci(e^B,h^Y,32);d=e+m|0;m=W;c=m+u|0;h=d;B=d>>>0>>0?c+1|0:c;f=Ci(d^o,B^f,40);d=f+G|0;Y=W;c=Y+j|0;j=d;G=d>>>0>>0?c+1|0:c;v=Ci(d^e,m^G,48);c=K;K=W;e=Ci(v^J,c^K,32);d=e+t|0;J=W;c=J+F|0;m=d;u=d>>>0>>0?c+1|0:c;o=Ci(d^C,u^H,40);d=o+sa|0;C=W;c=C+p|0;p=d;D=d>>>0>>0?c+1|0:c;d=Ci(d^e,J^D,48);V=W;c=u+V|0;e=m;u=d;m=m+d|0;c=e>>>0>m>>>0?c+1|0:c;J=c;d=Ci(m^o,C^c,1);sa=W;c=qa+sa|0;C=d;d=da+d|0;c=d>>>0>>0?c+1|0:c;ya=d;o=c;e=ia;d=Ci(k^t,E^F,1);k=W;c=A+k|0;t=i;i=d+i|0;c=(t>>>0>i>>>0?c+1|0:c)+ka|0;e=e+i|0;t=e>>>0>>0?c+1|0:c;c=t+ta|0;i=e+ja|0;c=i>>>0>>0?c+1|0:c;H=i;A=c;F=d;i=Ci(r^M,T^X,48);E=W;c=Ci(i^e,E^t,32);d=W;X=d;r=c;e=d;c=B+K|0;d=h+v|0;c=d>>>0>>0?c+1|0:c;h=d;B=c;c=c+e|0;d=d+r|0;c=h>>>0>d>>>0?c+1|0:c;t=d;v=c;e=Ci(d^F,c^k,40);c=A;A=W;c=c+A|0;d=e+H|0;c=d>>>0>>0?c+1|0:c;F=d;M=c;c=c+o|0;k=d+ya|0;c=k>>>0>>0?c+1|0:c;T=c;o=c;d=Ci(f^h,B^Y,1);f=W;c=L+f|0;h=d+ea|0;c=q+(h>>>0>>0?c+1|0:c)|0;h=h+l|0;l=h>>>0>>0?c+1|0:c;c=ha+l|0;q=h+N|0;c=q>>>0>>0?c+1|0:c;H=q;q=c;B=d;c=Ci(h^y,l^U,32);d=W;K=d;h=c;l=d;c=E+I|0;d=i+Q|0;c=d>>>0>>0?c+1|0:c;y=d;I=c;c=c+l|0;i=d+h|0;c=i>>>0>>0?c+1|0:c;d=i^B;B=c;l=Ci(d,c^f,40);d=l+H|0;U=W;c=U+q|0;f=d;q=d>>>0>>0?c+1|0:c;Q=Ci(d^h,K^q,48);Y=W;c=Ci(Q^k,Y^o,32);d=W;ya=d;H=c;o=d;d=Ci(g^y,I^ma,1);g=W;c=G+g|0;h=d+j|0;c=ua+(h>>>0>>0?c+1|0:c)|0;h=h+aa|0;j=h>>>0>>0?c+1|0:c;c=j+xa|0;G=h+fa|0;c=G>>>0>>0?c+1|0:c;y=G;G=c;h=Ci(h^x,j^_,32);I=W;c=R+I|0;x=h;h=n+h|0;c=h>>>0>>0?c+1|0:c;j=g;g=c;j=Ci(d^h,j^c,40);d=j+y|0;_=W;c=_+G|0;n=d;y=d^x;x=d>>>0>>0?c+1|0:c;d=Ci(y,I^x,48);E=W;c=g+E|0;g=d;d=h+d|0;c=d>>>0>>0?c+1|0:c;G=d;y=c;c=c+o|0;o=d+H|0;c=o>>>0>>0?c+1|0:c;R=c;h=Ci(o^C,sa^c,40);I=W;c=T+I|0;d=h+k|0;c=(d>>>0>>0?c+1|0:c)+la|0;k=d;d=d+Z|0;c=k>>>0>d>>>0?c+1|0:c;T=d;C=c;K=$;k=Ci(r^F,M^X,48);d=k+t|0;ma=W;c=ma+v|0;r=d;t=d>>>0>>0?c+1|0:c;c=Ci(d^e,t^A,1);e=W;A=e;d=c;c=q+Aa|0;f=f+pa|0;c=(f>>>0>>0?c+1|0:c)+e|0;e=d+f|0;f=e>>>0>>0?c+1|0:c;c=f+K|0;q=e+O|0;c=q>>>0>>0?c+1|0:c;v=q;q=c;e=Ci(e^g,f^E,32);F=W;c=J+F|0;g=e+m|0;c=g>>>0>>0?c+1|0:c;m=c;f=Ci(d^g,c^A,40);d=f+v|0;M=W;c=M+q|0;q=d;A=d>>>0>>0?c+1|0:c;e=Ci(d^e,F^A,48);v=W;c=m+v|0;m=e+g|0;c=m>>>0>>0?c+1|0:c;F=c;d=Ci(f^m,M^c,1);M=W;c=M+C|0;g=d+T|0;c=ra+(g>>>0>>0?c+1|0:c)|0;g=g+S|0;f=g>>>0>>0?c+1|0:c;c=f+s|0;s=g+ga|0;c=s>>>0>>0?c+1|0:c;sa=s;s=c;J=d;K=g;E=f;g=ia;d=Ci(j^G,y^_,1);j=W;c=D+j|0;f=p;p=d+p|0;c=(f>>>0>p>>>0?c+1|0:c)+ka|0;g=g+p|0;f=g>>>0

>>0?c+1|0:c;c=xa+f|0;p=g+fa|0;c=p>>>0>>0?c+1|0:c;D=p;G=c;p=d;c=Ci(g^k,f^ma,32);d=W;y=d;f=c;c=B+Y|0;d=i+Q|0;i=d>>>0>>0?c+1|0:c;c=y+i|0;k=d+f|0;c=k>>>0>>0?c+1|0:c;B=c;p=Ci(k^p,c^j,40);g=p+D|0;Y=W;c=Y+G|0;D=g^f;f=g>>>0

>>0?c+1|0:c;G=Ci(D,y^f,48);_=W;c=Ci(G^K,_^E,32);j=W;ma=j;D=c;y=j;d=Ci(d^l,i^U,1);j=W;c=ha+j|0;i=d+N|0;c=x+(i>>>0>>0?c+1|0:c)|0;i=i+n|0;n=i>>>0>>0?c+1|0:c;c=ua+n|0;l=i+aa|0;c=l>>>0>>0?c+1|0:c;K=l;l=c;x=d;Q=j;i=Ci(i^u,n^V,32);d=i+r|0;u=W;c=u+t|0;j=d;r=d>>>0>>0?c+1|0:c;n=Ci(d^x,r^Q,40);d=n+K|0;U=W;c=U+l|0;x=d;t=d>>>0>>0?c+1|0:c;d=Ci(d^i,u^t,48);K=W;c=r+K|0;l=d;d=j+d|0;c=d>>>0>>0?c+1|0:c;r=d;u=c;c=c+y|0;d=d+D|0;c=r>>>0>d>>>0?c+1|0:c;y=d;i=M;M=c;i=Ci(d^J,i^c,40);c=s;s=W;c=c+s|0;d=i+sa|0;c=d>>>0>>0?c+1|0:c;Q=d;J=c;j=f;d=Ci(H^T,C^ya,48);V=W;c=R+V|0;R=d;d=o+d|0;c=d>>>0>>0?c+1|0:c;f=d^h;h=c;f=Ci(f,c^I,1);g=f+g|0;I=W;c=I+j|0;c=za+(g>>>0>>0?c+1|0:c)|0;g=g+oa|0;j=g>>>0>>0?c+1|0:c;c=j+L|0;o=g+ea|0;c=o>>>0>>0?c+1|0:c;T=o;o=c;g=Ci(g^l,j^K,32);C=W;c=F+C|0;F=g;j=m+g|0;c=j>>>0>>0?c+1|0:c;m=c;f=Ci(f^j,I^c,40);g=f+T|0;c=o;o=W;c=c+o|0;l=g;H=g^F;F=g>>>0>>0?c+1|0:c;g=Ci(H,C^F,48);sa=W;c=m+sa|0;I=g;m=j+g|0;c=m>>>0>>0?c+1|0:c;T=c;g=Ci(f^m,o^c,1);o=W;c=o+J|0;f=g+Q|0;c=Aa+(f>>>0>>0?c+1|0:c)|0;f=f+pa|0;j=f>>>0>>0?c+1|0:c;c=P+j|0;C=b+f|0;c=C>>>0>>0?c+1|0:c;ya=C;C=c;H=g;K=o;o=f;E=j;g=Ci(n^r,u^U,1);j=W;c=j+A|0;f=g+q|0;c=na+(f>>>0>>0?c+1|0:c)|0;f=f+ca|0;n=f>>>0>>0?c+1|0:c;c=n+P|0;q=b+f|0;c=q>>>0>>0?c+1|0:c;A=q;q=c;r=g;c=Ci(f^R,n^V,32);g=W;f=c;n=g;c=B+_|0;g=k+G|0;c=g>>>0>>0?c+1|0:c;k=g;B=c;c=c+n|0;g=g+f|0;c=k>>>0>g>>>0?c+1|0:c;G=g;g=g^r;r=c;j=Ci(g,c^j,40);g=j+A|0;U=W;c=U+q|0;q=g^f;f=g>>>0>>0?c+1|0:c;n=Ci(q,n^f,48);c=E;E=W;c=Ci(n^o,c^E,32);o=W;V=o;q=c;A=h;h=e;c=Ci(k^p,B^Y,1);e=W;u=e;k=c;c=t+ta|0;p=x+ja|0;c=(p>>>0>>0?c+1|0:c)+e|0;e=k+p|0;c=e>>>0

>>0?c+1|0:c;p=c;h=Ci(e^h,c^v,32);d=h+d|0;c=A;A=W;c=c+A|0;B=d>>>0>>0?c+1|0:c;k=Ci(d^k,u^B,40);Y=W;c=p+Y|0;t=e;x=k;e=e+k|0;c=va+(t>>>0>e>>>0?c+1|0:c)|0;k=e+ba|0;c=k>>>0>>0?c+1|0:c;t=c;e=Ci(h^k,A^c,48);_=W;c=B+_|0;v=d;h=e;d=d+e|0;c=v>>>0>d>>>0?c+1|0:c;B=d;A=c;c=c+o|0;o=d+q|0;c=o>>>0>>0?c+1|0:c;v=c;p=Ci(o^H,c^K,40);d=p+ya|0;ya=W;c=ya+C|0;u=d;R=d>>>0

>>0?c+1|0:c;d=Ci(D^Q,J^ma,48);D=W;c=D+M|0;e=d+y|0;c=e>>>0>>0?c+1|0:c;y=e;H=s;s=c;c=Ci(e^i,H^c,1);e=W;Q=e;i=c;c=f+za|0;g=g+oa|0;c=(g>>>0>>0?c+1|0:c)+e|0;e=g+i|0;g=e>>>0>>0?c+1|0:c;c=ra+g|0;f=e+S|0;c=f>>>0>>0?c+1|0:c;J=f;f=c;e=Ci(e^h,g^_,32);C=W;c=T+C|0;M=e;h=m+e|0;c=h>>>0>>0?c+1|0:c;e=h^i;i=c;g=Ci(e,Q^c,40);e=g+J|0;c=f;f=W;c=c+f|0;Q=e;m=e^M;M=e>>>0>>0?c+1|0:c;e=Ci(m,C^M,48);_=W;c=i+_|0;T=e;e=h+e|0;c=e>>>0>>0?c+1|0:c;h=c;g=Ci(e^g,f^c,1);m=W;c=m+R|0;f=g+u|0;c=qa+(f>>>0>>0?c+1|0:c)|0;f=f+da|0;i=f>>>0>>0?c+1|0:c;c=i+$|0;J=f+O|0;c=J>>>0>>0?c+1|0:c;X=J;J=c;C=g;H=f;K=i;g=Ci(x^B,A^Y,1);f=g+Z|0;A=W;c=A+la|0;c=F+(g>>>0>f>>>0?c+1|0:c)|0;f=f+l|0;c=f>>>0>>0?c+1|0:c;i=c;c=Ci(d^f,c^D,32);d=W;D=d;l=c;c=r+E|0;d=n+G|0;c=d>>>0>>0?c+1|0:c;n=d;B=c;c=D+c|0;d=d+l|0;c=n>>>0>d>>>0?c+1|0:c;r=d;x=c;d=Ci(d^g,A^c,40);E=W;c=i+E|0;G=d;d=f+d|0;c=ha+(d>>>0>>0?c+1|0:c)|0;d=d+N|0;c=d>>>0>>0?c+1|0:c;A=d;d=d^l;l=c;i=Ci(d,D^c,48);c=K;K=W;c=Ci(i^H,c^K,32);d=W;Y=d;D=c;F=d;d=Ci(j^n,B^U,1);f=W;c=ta+f|0;g=d+ja|0;c=t+(g>>>0>>0?c+1|0:c)|0;g=g+k|0;j=g>>>0>>0?c+1|0:c;c=j+L|0;n=g+ea|0;c=n>>>0>>0?c+1|0:c;t=n;n=c;k=d;B=f;g=Ci(g^I,j^sa,32);d=g+y|0;y=W;c=y+s|0;f=d;j=d^k;k=d>>>0>>0?c+1|0:c;j=Ci(j,k^B,40);d=j+t|0;U=W;c=U+n|0;n=d;s=d>>>0>>0?c+1|0:c;g=Ci(d^g,y^s,48);B=W;c=k+B|0;d=g+f|0;c=d>>>0>>0?c+1|0:c;t=d;y=c;c=c+F|0;k=d+D|0;c=k>>>0>>0?c+1|0:c;F=c;f=Ci(k^C,c^m,40);I=W;c=I+J|0;d=f+X|0;c=d>>>0>>0?c+1|0:c;J=d;C=c;d=e;m=h;h=g;e=Ci(q^u,R^V,48);X=W;c=v+X|0;q=e;g=o+e|0;c=g>>>0>>0?c+1|0:c;o=c;c=Ci(g^p,ya^c,1);e=W;v=e;p=c;c=l+wa|0;l=A+ga|0;c=(l>>>0>>0?c+1|0:c)+e|0;e=l+p|0;c=e>>>0>>0?c+1|0:c;l=c;h=Ci(e^h,c^B,32);d=h+d|0;A=W;c=A+m|0;m=d>>>0>>0?c+1|0:c;p=Ci(d^p,v^m,40);u=W;c=l+u|0;l=e;e=e+p|0;c=ua+(l>>>0>e>>>0?c+1|0:c)|0;l=e+aa|0;c=l>>>0>>0?c+1|0:c;B=c;e=Ci(h^l,A^c,48);V=W;c=m+V|0;A=e;m=d+e|0;c=m>>>0>>0?c+1|0:c;v=c;d=Ci(m^p,u^c,1);p=W;c=p+C|0;e=d+J|0;c=na+(e>>>0>>0?c+1|0:c)|0;e=e+ca|0;h=e>>>0>>0?c+1|0:c;c=qa+h|0;u=e+da|0;c=u>>>0>>0?c+1|0:c;ma=u;u=c;R=d;H=e;d=Ci(j^t,y^U,1);j=W;c=j+M|0;e=d+Q|0;c=xa+(e>>>0>>0?c+1|0:c)|0;e=e+fa|0;t=e>>>0>>0?c+1|0:c;c=va+t|0;y=e+ba|0;c=y>>>0>>0?c+1|0:c;Q=y;y=c;M=d;c=Ci(e^q,t^X,32);d=W;X=d;e=c;c=x+K|0;d=i+r|0;c=d>>>0>>0?c+1|0:c;r=d;q=c;c=X+c|0;i=d+e|0;c=i>>>0>>0?c+1|0:c;x=c;j=Ci(i^M,c^j,40);d=j+Q|0;K=W;c=K+y|0;t=d;y=d>>>0>>0?c+1|0:c;M=Ci(d^e,X^y,48);X=W;c=Ci(M^H,X^h,32);d=W;U=d;Q=c;h=d;e=ia;d=Ci(r^G,q^E,1);q=W;c=s+q|0;r=n;n=d+n|0;c=(r>>>0>n>>>0?c+1|0:c)+ka|0;e=e+n|0;n=e>>>0>>0?c+1|0:c;c=na+n|0;s=e+ca|0;c=s>>>0>>0?c+1|0:c;r=s;s=c;e=Ci(e^T,n^_,32);G=W;c=o+G|0;o=e;e=g+e|0;c=e>>>0>>0?c+1|0:c;g=q;q=c;g=Ci(d^e,g^c,40);d=g+r|0;E=W;c=E+s|0;n=d;s=d>>>0>>0?c+1|0:c;d=Ci(d^o,G^s,48);H=W;c=q+H|0;q=d;d=e+d|0;c=d>>>0>>0?c+1|0:c;r=d;G=c;c=c+h|0;o=d+Q|0;c=o>>>0>>0?c+1|0:c;d=o^R;R=c;p=Ci(d,c^p,40);d=p+ma|0;_=W;c=_+u|0;u=d;T=d>>>0

>>0?c+1|0:c;d=Ci(D^J,C^Y,48);Y=W;c=F+Y|0;D=d;d=k+d|0;c=d>>>0>>0?c+1|0:c;k=d;F=c;c=Ci(d^f,c^I,1);d=W;I=d;h=c;c=y+ra|0;e=t+S|0;c=(e>>>0>>0?c+1|0:c)+d|0;d=e+h|0;e=d>>>0>>0?c+1|0:c;c=ua+e|0;f=d+aa|0;c=f>>>0>>0?c+1|0:c;t=f;f=c;d=Ci(d^q,e^H,32);y=W;c=v+y|0;q=d;e=m+d|0;c=e>>>0>>0?c+1|0:c;m=c;h=Ci(e^h,I^c,40);d=h+t|0;I=W;c=I+f|0;t=d;f=d^q;q=d>>>0>>0?c+1|0:c;d=Ci(f,y^q,48);ma=W;c=m+ma|0;m=d;f=e+d|0;c=f>>>0>>0?c+1|0:c;v=c;d=Ci(f^h,I^c,1);y=W;c=y+T|0;e=d+u|0;c=ta+(e>>>0>>0?c+1|0:c)|0;e=e+ja|0;h=e>>>0>>0?c+1|0:c;c=h+la|0;I=e+Z|0;c=I>>>0>>0?c+1|0:c;sa=I;I=c;J=d;C=e;H=h;d=Ci(g^r,E^G,1);h=W;c=xa+h|0;e=d+fa|0;c=B+(e>>>0>>0?c+1|0:c)|0;e=e+l|0;g=e>>>0>>0?c+1|0:c;c=wa+g|0;l=e+ga|0;c=l>>>0>>0?c+1|0:c;G=l;l=c;B=d;r=h;c=Ci(e^D,g^Y,32);d=W;D=d;g=c;e=d;c=x+X|0;d=i+M|0;c=d>>>0>>0?c+1|0:c;i=d;x=c;c=c+e|0;h=d+g|0;c=h>>>0>>0?c+1|0:c;d=h^B;B=c;d=Ci(d,c^r,40);c=l;l=W;c=c+l|0;e=d+G|0;c=e>>>0>>0?c+1|0:c;r=e;G=c;D=Ci(e^g,D^c,48);c=H;H=W;c=Ci(D^C,c^H,32);e=W;E=e;M=c;e=Ci(i^j,x^K,1);i=W;c=i+ka|0;g=e+ia|0;c=s+(g>>>0>>0?c+1|0:c)|0;g=g+n|0;j=g>>>0>>0?c+1|0:c;c=za+j|0;n=g+oa|0;c=n>>>0>>0?c+1|0:c;K=n;n=c;s=e;x=i;g=Ci(g^A,j^V,32);e=g+k|0;A=W;c=A+F|0;i=e;k=e>>>0>>0?c+1|0:c;j=Ci(e^s,k^x,40);e=j+K|0;K=W;c=K+n|0;s=e;x=e>>>0>>0?c+1|0:c;e=Ci(e^g,A^x,48);X=W;c=k+X|0;A=e;e=i+e|0;c=e>>>0>>0?c+1|0:c;F=e;C=c;c=E+c|0;g=e+M|0;c=g>>>0>>0?c+1|0:c;e=y;y=c;i=Ci(g^J,e^c,40);e=i+sa|0;Y=W;c=Y+I|0;n=e;I=e>>>0>>0?c+1|0:c;c=Ci(e^M,E^I,48);e=W;E=e;M=c;e=d;c=B+H|0;d=h+D|0;c=d>>>0>>0?c+1|0:c;B=d;D=c;c=Ci(d^e,c^l,1);e=W;h=e;d=c;c=x+Aa|0;k=s+pa|0;c=(k>>>0>>0?c+1|0:c)+e|0;e=d+k|0;k=e>>>0>>0?c+1|0:c;c=ha+k|0;l=e+N|0;c=l>>>0>>0?c+1|0:c;H=l;l=c;s=d;x=h;d=Ci(u^Q,T^U,48);U=W;c=R+U|0;u=d;d=o+d|0;c=d>>>0>>0?c+1|0:c;o=d;e=Ci(e^m,k^ma,32);d=e+d|0;R=c;Q=W;c=c+Q|0;h=d;m=d>>>0>>0?c+1|0:c;k=Ci(d^s,m^x,40);d=k+H|0;T=W;c=T+l|0;l=d;s=d>>>0>>0?c+1|0:c;d=Ci(d^e,Q^s,48);V=W;c=m+V|0;x=d;m=h+d|0;c=m>>>0>>0?c+1|0:c;Q=c;d=Ci(k^m,T^c,1);H=W;c=ua+H|0;T=d;d=aa+d|0;c=d>>>0>>0?c+1|0:c;ma=d;h=c;d=Ci(p^o,R^_,1);k=W;c=k+G|0;e=d+r|0;c=va+(e>>>0>>0?c+1|0:c)|0;e=e+ba|0;o=e>>>0>>0?c+1|0:c;c=$+o|0;p=e+O|0;c=p>>>0>>0?c+1|0:c;R=p;p=c;r=k;e=Ci(e^A,o^X,32);X=W;c=v+X|0;G=e;k=f+e|0;c=k>>>0>>0?c+1|0:c;f=r;r=c;o=Ci(d^k,f^c,40);d=o+R|0;_=W;c=_+p|0;A=d;v=d>>>0>>0?c+1|0:c;c=v+h|0;h=d+ma|0;c=h>>>0>>0?c+1|0:c;p=c;c=Ci(h^M,c^E,32);d=W;R=c;J=d;d=Ci(j^F,C^K,1);f=W;c=f+q|0;e=d+t|0;c=P+(e>>>0>>0?c+1|0:c)|0;e=b+e|0;j=e>>>0>>0?c+1|0:c;c=j+L|0;q=e+ea|0;c=q>>>0>>0?c+1|0:c;C=q;q=c;t=d;F=f;e=Ci(e^u,j^U,32);d=e+B|0;u=W;c=u+D|0;f=d;B=d>>>0>>0?c+1|0:c;j=Ci(d^t,B^F,40);d=j+C|0;C=W;c=C+q|0;q=d;t=d>>>0>>0?c+1|0:c;d=Ci(d^e,u^t,48);U=W;c=B+U|0;B=d;d=f+d|0;c=d>>>0>>0?c+1|0:c;f=d;u=c;c=c+J|0;d=d+R|0;c=f>>>0>d>>>0?c+1|0:c;D=c;e=Ci(d^T,H^c,40);H=W;c=p+H|0;F=e;e=h+e|0;c=Aa+(e>>>0>>0?c+1|0:c)|0;e=e+pa|0;c=e>>>0>>0?c+1|0:c;T=e;h=e^R;R=c;e=Ci(h,J^c,48);J=W;c=D+J|0;p=d+e|0;c=p>>>0>>0?c+1|0:c;D=c;c=Ci(p^F,H^c,1);h=W;d=c;F=h;h=Ci(f^j,u^C,1);j=W;c=s+j|0;f=h+l|0;c=va+(f>>>0>>0?c+1|0:c)|0;f=f+ba|0;l=f>>>0>>0?c+1|0:c;c=na+l|0;s=f+ca|0;c=s>>>0>>0?c+1|0:c;H=s;s=c;u=h;C=j;c=y+E|0;h=g+M|0;c=h>>>0>>0?c+1|0:c;y=h;G=Ci(A^G,v^X,48);X=W;j=Ci(f^G,l^X,32);h=j+h|0;A=c;ma=W;c=c+ma|0;l=h;v=h>>>0>>0?c+1|0:c;h=Ci(h^u,v^C,40);u=W;c=u+s|0;g=h+H|0;c=g>>>0>>0?c+1|0:c;M=g;C=c;c=c+F|0;g=d+g|0;c=za+(M>>>0>g>>>0?c+1|0:c)|0;g=g+oa|0;f=g>>>0>>0?c+1|0:c;c=f+ka|0;s=g+ia|0;c=s>>>0>>0?c+1|0:c;sa=s;H=c;K=d;E=g;c=Ci(i^y,A^Y,1);g=W;i=g;d=c;c=t+xa|0;s=q+fa|0;c=(s>>>0>>0?c+1|0:c)+g|0;g=d+s|0;s=g>>>0>>0?c+1|0:c;c=ha+s|0;q=g+N|0;c=q>>>0>>0?c+1|0:c;A=q;q=c;t=d;c=Ci(g^x,s^V,32);d=W;y=d;g=c;s=d;c=r+X|0;d=k+G|0;c=d>>>0>>0?c+1|0:c;r=d;x=c;c=c+s|0;k=d+g|0;c=k>>>0>>0?c+1|0:c;d=k^t;t=c;s=Ci(d,c^i,40);d=s+A|0;X=W;c=X+q|0;q=d^g;g=d>>>0>>0?c+1|0:c;G=Ci(q,y^g,48);c=G^E;E=W;c=Ci(c,E^f,32);f=W;Y=f;A=c;q=f;f=Ci(o^r,x^_,1);o=W;c=$+o|0;i=f+O|0;c=I+(i>>>0>>0?c+1|0:c)|0;i=i+n|0;n=i>>>0>>0?c+1|0:c;c=ta+n|0;r=i+ja|0;c=r>>>0>>0?c+1|0:c;x=r;r=c;i=Ci(i^B,n^U,32);y=W;c=Q+y|0;B=i;i=m+i|0;c=i>>>0>>0?c+1|0:c;m=c;n=Ci(f^i,c^o,40);f=n+x|0;U=W;c=U+r|0;o=f;r=f^B;B=f>>>0>>0?c+1|0:c;f=Ci(r,y^B,48);V=W;c=m+V|0;r=f;f=i+f|0;c=f>>>0>>0?c+1|0:c;x=f;y=c;c=c+q|0;i=f+A|0;c=i>>>0>>0?c+1|0:c;f=F;F=c;m=Ci(i^K,f^c,40);f=m+sa|0;I=W;c=I+H|0;q=f;H=f^A;A=f>>>0>>0?c+1|0:c;f=Ci(H,Y^A,48);Y=W;c=F+Y|0;F=f;f=i+f|0;c=f>>>0>>0?c+1|0:c;i=c;c=Ci(f^m,I^c,1);m=W;I=c;_=c;Q=m;m=g;g=h;h=Ci(j^M,C^ma,48);ma=W;c=v+ma|0;v=h;h=l+h|0;c=h>>>0>>0?c+1|0:c;l=d;d=g^h;g=c;d=Ci(d,c^u,1);j=l+d|0;u=W;c=u+m|0;c=wa+(d>>>0>j>>>0?c+1|0:c)|0;j=j+ga|0;l=j>>>0>>0?c+1|0:c;c=la+l|0;m=j+Z|0;c=m>>>0>>0?c+1|0:c;M=m;m=c;j=Ci(j^r,l^V,32);C=W;c=D+C|0;l=j+p|0;c=l>>>0

>>0?c+1|0:c;r=c;p=Ci(d^l,u^c,40);d=p+M|0;V=W;c=V+m|0;u=d;D=d>>>0

>>0?c+1|0:c;j=Ci(d^j,C^D,48);M=W;c=r+M|0;d=j+l|0;c=d>>>0>>0?c+1|0:c;C=d;r=d;H=c;l=h;m=g;c=t+E|0;d=k+G|0;c=d>>>0>>0?c+1|0:c;k=d;d=d^s;s=c;c=Ci(d,X^c,1);d=W;K=d;t=c;g=c;c=B+L|0;h=o+ea|0;c=(h>>>0>>0?c+1|0:c)+d|0;d=h;h=g+h|0;c=d>>>0>h>>>0?c+1|0:c;o=c;g=Ci(e^h,c^J,32);d=g+l|0;c=m;m=W;c=c+m|0;G=d;e=d^t;t=d>>>0>>0?c+1|0:c;e=Ci(e,K^t,40);J=W;c=o+J|0;d=e+h|0;c=ra+(d>>>0>>0?c+1|0:c)|0;l=d+S|0;c=l>>>0>>0?c+1|0:c;K=c;m=Ci(g^l,m^c,48);c=W;sa=c;d=Ci(n^x,y^U,1);g=W;c=g+R|0;h=d+T|0;c=qa+(h>>>0>>0?c+1|0:c)|0;h=h+da|0;n=h>>>0>>0?c+1|0:c;c=P+n|0;o=b+h|0;c=o>>>0>>0?c+1|0:c;R=o;x=c;y=d;o=Ci(h^v,n^ma,32);d=o+k|0;U=W;c=U+s|0;s=d;v=d>>>0>>0?c+1|0:c;h=Ci(d^y,v^g,40);c=x;x=W;c=c+x|0;d=h+R|0;c=d>>>0>>0?c+1|0:c;y=d;R=c;g=c;c=P+Q|0;n=b+I|0;c=(n>>>0>>0?c+1|0:c)+g|0;g=d+n|0;c=g>>>0>>0?c+1|0:c;B=c;d=Ci(g^m,sa^c,32);I=W;c=I+H|0;n=d+r|0;c=n>>>0>>0?c+1|0:c;k=Ci(n^_,c^Q,40);Q=c;r=W;c=la+r|0;T=k+Z|0;c=B+(T>>>0>>0?c+1|0:c)|0;B=g+T|0;c=B>>>0>>0?c+1|0:c;g=I;I=c;g=Ci(d^B,g^c,48);c=Q;Q=W;c=c+Q|0;n=g+n|0;c=n>>>0>>0?c+1|0:c;d=k^n;k=c;c=Ci(d,c^r,1);d=W;T=c;_=c;E=d;r=f;X=i;f=h;h=Ci(o^y,R^U,48);y=W;c=v+y|0;d=h+s|0;c=d>>>0>>0?c+1|0:c;o=d;s=c;f=Ci(d^f,c^x,1);d=f+ga|0;R=W;c=R+wa|0;c=K+(d>>>0>>0?c+1|0:c)|0;i=d+l|0;c=i>>>0>>0?c+1|0:c;l=c;d=Ci(i^j,c^M,32);x=W;c=x+X|0;j=d+r|0;c=j>>>0>>0?c+1|0:c;r=j;v=c;f=Ci(f^j,c^R,40);ma=W;c=na+ma|0;R=f;f=ca+f|0;c=l+(f>>>0>>0?c+1|0:c)|0;f=f+i|0;c=f>>>0>>0?c+1|0:c;i=c;j=Ci(d^f,c^x,48);c=v;v=W;c=c+v|0;d=j+r|0;c=d>>>0>>0?c+1|0:c;M=d;x=d;K=c;c=t+sa|0;d=m+G|0;c=d>>>0>>0?c+1|0:c;r=d^e;e=c;c=Ci(r,c^J,1);l=W;J=l;r=c;c=D+ha|0;m=u+N|0;c=(m>>>0>>0?c+1|0:c)+l|0;t=m;m=m+r|0;c=t>>>0>m>>>0?c+1|0:c;t=c;l=Ci(m^F,Y^c,32);G=l;c=W;u=c;c=c+s|0;l=l+o|0;c=G>>>0>l>>>0?c+1|0:c;D=l;F=c;l=Ci(l^r,J^c,40);J=W;c=ka+J|0;o=l+ia|0;c=t+(o>>>0>>0?c+1|0:c)|0;r=m;m=m+o|0;c=r>>>0>m>>>0?c+1|0:c;o=c;r=Ci(m^G,c^u,48);c=W;Y=c;s=c;p=Ci(p^C,H^V,1);c=W;t=c;G=h;c=c+L|0;h=p+ea|0;c=A+(h>>>0>>0?c+1|0:c)|0;h=h+q|0;c=h>>>0>>0?c+1|0:c;q=h^G;G=c;q=Ci(q,c^y,32);d=q+d|0;V=W;c=V+e|0;A=d;e=t;t=d>>>0>>0?c+1|0:c;e=Ci(d^p,e^t,40);u=W;c=qa+u|0;d=e+da|0;c=G+(d>>>0>>0?c+1|0:c)|0;d=d+h|0;c=d>>>0>>0?c+1|0:c;G=d;y=c;h=c;c=E+va|0;p=T+ba|0;c=(p>>>0>>0?c+1|0:c)+h|0;h=d+p|0;c=h>>>0

>>0?c+1|0:c;T=c;d=Ci(h^r,c^s,32);C=W;c=C+K|0;p=d+x|0;c=p>>>0>>0?c+1|0:c;s=Ci(p^_,c^E,40);x=W;H=x;E=c;c=x+ta|0;x=s+ja|0;c=T+(x>>>0>>0?c+1|0:c)|0;x=h+x|0;c=x>>>0>>0?c+1|0:c;T=c;h=Ci(d^x,c^C,48);C=W;c=C+E|0;p=h+p|0;c=p>>>0>>0?c+1|0:c;d=p^s;s=c;c=Ci(d,c^H,1);d=W;H=c;E=d;X=n;U=j;j=e;e=Ci(q^G,y^V,48);q=W;c=q+t|0;d=e+A|0;c=d>>>0>>0?c+1|0:c;t=d;G=c;j=Ci(d^j,c^u,1);d=j+aa|0;u=W;c=u+ua|0;c=(d>>>0>>0?c+1|0:c)+o|0;n=d+m|0;c=n>>>0>>0?c+1|0:c;m=c;d=Ci(n^U,c^v,32);o=W;c=o+k|0;k=d+X|0;c=k>>>0>>0?c+1|0:c;A=k;v=c;j=Ci(j^k,c^u,40);U=W;c=za+U|0;u=j;j=oa+j|0;c=m+(j>>>0>>0?c+1|0:c)|0;k=j+n|0;c=k>>>0>>0?c+1|0:c;y=c;j=Ci(d^k,c^o,48);c=v;v=W;c=c+v|0;d=j+A|0;c=d>>>0>>0?c+1|0:c;A=d;X=c;m=g;n=f;c=F+Y|0;d=r+D|0;c=d>>>0>>0?c+1|0:c;g=c;f=Ci(d^l,c^J,1);l=W;c=l+$|0;o=f+O|0;c=(o>>>0>>0?c+1|0:c)+i|0;n=n+o|0;c=n>>>0>>0?c+1|0:c;i=Ci(m^n,c^Q,32);o=c;r=f;m=W;c=m+G|0;f=i+t|0;c=f>>>0>>0?c+1|0:c;t=f;f=f^r;r=c;f=Ci(f,c^l,40);G=W;c=Aa+G|0;l=f+pa|0;c=(l>>>0>>0?c+1|0:c)+o|0;o=l;l=l+n|0;c=o>>>0>l>>>0?c+1|0:c;D=c;m=Ci(i^l,c^m,48);c=W;Y=c;n=c;i=Ci(M^R,K^ma,1);c=W;F=c;R=g;c=c+ra|0;g=i+S|0;c=I+(g>>>0>>0?c+1|0:c)|0;g=g+B|0;c=g>>>0>>0?c+1|0:c;o=q;q=c;o=Ci(e^g,o^c,32);d=o+d|0;V=W;c=V+R|0;B=d;e=F;F=d>>>0>>0?c+1|0:c;e=Ci(d^i,e^F,40);R=W;c=xa+R|0;d=e+fa|0;c=q+(d>>>0>>0?c+1|0:c)|0;d=d+g|0;c=d>>>0>>0?c+1|0:c;I=d;M=c;g=c;c=E+ha|0;i=N+H|0;c=(i>>>0>>0?c+1|0:c)+g|0;g=d+i|0;c=g>>>0>>0?c+1|0:c;q=c;d=Ci(g^m,c^n,32);Q=W;c=Q+X|0;i=d+A|0;c=i>>>0>>0?c+1|0:c;n=Ci(i^H,c^E,40);H=c;J=W;c=L+J|0;K=n+ea|0;c=q+(K>>>0>>0?c+1|0:c)|0;q=g+K|0;c=q>>>0>>0?c+1|0:c;g=Q;Q=c;g=Ci(d^q,g^c,48);c=H;H=W;c=c+H|0;i=g+i|0;c=i>>>0>>0?c+1|0:c;d=i^n;n=c;c=Ci(d,c^J,1);d=W;J=c;K=d;E=j;j=e;e=Ci(o^I,M^V,48);c=F;F=W;c=c+F|0;d=e+B|0;c=d>>>0>>0?c+1|0:c;B=d;o=R;R=c;j=Ci(d^j,o^c,1);d=j+ja|0;I=W;c=I+ta|0;c=D+(d>>>0>>0?c+1|0:c)|0;o=l;l=d+l|0;c=o>>>0>l>>>0?c+1|0:c;d=v;v=c;d=Ci(l^E,d^c,32);c=s;s=W;c=c+s|0;o=d+p|0;c=o>>>0>>0?c+1|0:c;D=c;p=o;j=Ci(j^o,c^I,40);V=W;c=ra+V|0;I=j;j=S+j|0;c=v+(j>>>0>>0?c+1|0:c)|0;o=j+l|0;c=o>>>0>>0?c+1|0:c;v=c;j=Ci(d^o,c^s,48);c=D;D=W;c=c+D|0;d=j+p|0;c=d>>>0>>0?c+1|0:c;M=d;E=c;p=h;c=r+Y|0;d=m+t|0;c=d>>>0>>0?c+1|0:c;h=c;f=Ci(d^f,c^G,1);m=W;c=la+m|0;l=f+Z|0;c=y+(l>>>0>>0?c+1|0:c)|0;l=k+l|0;c=l>>>0>>0?c+1|0:c;r=l^p;p=c;k=Ci(r,c^C,32);c=W;s=c;r=f;c=c+R|0;f=k+B|0;c=f>>>0>>0?c+1|0:c;t=f;f=f^r;r=c;f=Ci(f,c^m,40);G=W;c=Aa+G|0;m=f+pa|0;c=p+(m>>>0>>0?c+1|0:c)|0;m=l+m|0;c=m>>>0>>0?c+1|0:c;y=c;p=Ci(k^m,c^s,48);c=W;Y=c;l=c;k=Ci(u^A,U^X,1);c=W;B=c;A=h;c=c+za|0;h=k+oa|0;c=T+(h>>>0>>0?c+1|0:c)|0;h=h+x|0;c=h>>>0>>0?c+1|0:c;x=c;s=Ci(e^h,c^F,32);d=s+d|0;_=W;c=_+A|0;A=d;u=d>>>0>>0?c+1|0:c;e=Ci(d^k,u^B,40);F=W;c=P+F|0;d=b+e|0;c=x+(d>>>0>>0?c+1|0:c)|0;d=d+h|0;c=d>>>0>>0?c+1|0:c;x=d;R=c;h=c;c=K+qa|0;k=J+da|0;c=(k>>>0>>0?c+1|0:c)+h|0;h=d+k|0;c=h>>>0>>0?c+1|0:c;B=c;d=Ci(h^p,c^l,32);T=W;c=T+E|0;k=d+M|0;c=k>>>0>>0?c+1|0:c;l=Ci(k^J,c^K,40);C=c;J=W;c=wa+J|0;K=l+ga|0;c=B+(K>>>0>>0?c+1|0:c)|0;B=h+K|0;c=B>>>0>>0?c+1|0:c;h=T;T=c;h=Ci(d^B,h^c,48);c=C;C=W;c=c+C|0;k=h+k|0;c=k>>>0>>0?c+1|0:c;d=k^l;l=c;c=Ci(d,c^J,1);d=W;J=c;ma=c;K=d;X=i;U=j;i=e;e=Ci(s^x,R^_,48);s=W;c=s+u|0;d=e+A|0;c=d>>>0>>0?c+1|0:c;x=d;A=c;i=Ci(d^i,c^F,1);d=i+ia|0;F=W;c=F+ka|0;c=y+(d>>>0>>0?c+1|0:c)|0;j=d+m|0;c=j>>>0>>0?c+1|0:c;m=c;d=Ci(j^U,c^D,32);u=W;c=u+n|0;n=d+X|0;c=n>>>0>>0?c+1|0:c;D=c;i=Ci(i^n,c^F,40);_=W;c=ua+_|0;y=i;i=aa+i|0;c=m+(i>>>0>>0?c+1|0:c)|0;m=i+j|0;c=m>>>0>>0?c+1|0:c;i=u;u=c;i=Ci(d^m,i^c,48);c=D;D=W;c=c+D|0;d=i+n|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;j=g;c=r+Y|0;d=p+t|0;c=d>>>0

>>0?c+1|0:c;g=c;f=Ci(d^f,c^G,1);p=W;c=p+xa|0;n=f+fa|0;c=v+(n>>>0>>0?c+1|0:c)|0;n=n+o|0;c=n>>>0>>0?c+1|0:c;j=Ci(j^n,c^H,32);o=W;r=o;o=c;t=f;c=r+A|0;f=j+x|0;c=f>>>0>>0?c+1|0:c;x=f;f=f^t;t=c;f=Ci(f,c^p,40);G=W;c=na+G|0;p=f+ca|0;c=(p>>>0>>0?c+1|0:c)+o|0;o=n+p|0;c=o>>>0

>>0?c+1|0:c;v=r;r=c;p=Ci(j^o,v^c,48);c=W;Y=c;n=c;j=Ci(M^I,E^V,1);c=W;A=c;v=g;c=c+$|0;g=j+O|0;c=Q+(g>>>0>>0?c+1|0:c)|0;g=g+q|0;c=g>>>0>>0?c+1|0:c;q=c;s=Ci(e^g,c^s,32);d=s+d|0;V=W;c=V+v|0;v=d;e=A;A=d>>>0>>0?c+1|0:c;e=Ci(d^j,e^A,40);I=W;c=va+I|0;d=e+ba|0;c=q+(d>>>0>>0?c+1|0:c)|0;d=d+g|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;g=c;c=K+Aa|0;j=J+pa|0;c=(j>>>0>>0?c+1|0:c)+g|0;g=d+j|0;c=g>>>0>>0?c+1|0:c;q=c;d=Ci(g^p,c^n,32);J=W;c=J+R|0;j=d+F|0;c=j>>>0>>0?c+1|0:c;n=Ci(j^ma,c^K,40);K=c;H=W;c=ta+H|0;E=n+ja|0;c=q+(E>>>0>>0?c+1|0:c)|0;q=g+E|0;c=q>>>0>>0?c+1|0:c;g=J;J=c;g=Ci(d^q,g^c,48);c=K;K=W;c=c+K|0;j=g+j|0;c=j>>>0>>0?c+1|0:c;d=j^n;n=c;c=Ci(d,c^H,1);d=W;H=c;E=d;X=k;U=i;i=e;e=Ci(s^M,Q^V,48);s=W;c=s+A|0;d=e+v|0;c=d>>>0>>0?c+1|0:c;A=d;v=c;i=Ci(d^i,c^I,1);d=i+aa|0;I=W;c=I+ua|0;c=r+(d>>>0>>0?c+1|0:c)|0;k=d+o|0;c=k>>>0>>0?c+1|0:c;o=c;d=Ci(k^U,c^D,32);r=W;c=r+l|0;l=d+X|0;c=l>>>0>>0?c+1|0:c;D=c;i=Ci(i^l,c^I,40);V=W;c=$+V|0;I=i;i=O+i|0;c=o+(i>>>0>>0?c+1|0:c)|0;o=i+k|0;c=o>>>0>>0?c+1|0:c;i=r;r=c;i=Ci(d^o,i^c,48);c=D;D=W;c=c+D|0;d=i+l|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;k=h;c=t+Y|0;d=p+x|0;c=d>>>0

>>0?c+1|0:c;h=c;f=Ci(d^f,c^G,1);p=W;c=va+p|0;l=f+ba|0;c=u+(l>>>0>>0?c+1|0:c)|0;l=l+m|0;c=l>>>0>>0?c+1|0:c;m=c;k=Ci(k^l,c^C,32);c=W;x=c;t=f;c=c+v|0;f=k+A|0;c=f>>>0>>0?c+1|0:c;G=f;f=f^t;t=c;f=Ci(f,c^p,40);A=W;c=qa+A|0;p=f+da|0;c=m+(p>>>0>>0?c+1|0:c)|0;m=l+p|0;c=m>>>0>>0?c+1|0:c;l=x;x=c;p=Ci(k^m,l^c,48);c=W;Y=c;l=c;k=Ci(y^F,R^_,1);c=W;v=c;u=h;c=c+P|0;h=b+k|0;c=T+(h>>>0>>0?c+1|0:c)|0;h=h+B|0;c=h>>>0>>0?c+1|0:c;B=c;s=Ci(e^h,c^s,32);d=s+d|0;_=W;c=_+u|0;u=d;e=v;v=d>>>0>>0?c+1|0:c;e=Ci(d^k,e^v,40);y=W;c=ra+y|0;d=e+S|0;c=B+(d>>>0>>0?c+1|0:c)|0;d=d+h|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;h=c;c=E+la|0;k=H+Z|0;c=(k>>>0>>0?c+1|0:c)+h|0;h=d+k|0;c=h>>>0>>0?c+1|0:c;B=c;d=Ci(h^p,c^l,32);T=W;c=T+Q|0;k=d+M|0;c=k>>>0>>0?c+1|0:c;l=Ci(k^H,c^E,40);H=c;C=W;c=za+C|0;E=l+oa|0;c=B+(E>>>0>>0?c+1|0:c)|0;B=h+E|0;c=B>>>0>>0?c+1|0:c;h=T;T=c;h=Ci(d^B,h^c,48);c=H;H=W;c=c+H|0;k=h+k|0;c=k>>>0>>0?c+1|0:c;d=k^l;l=c;c=Ci(d,c^C,1);d=W;C=c;E=d;X=j;U=i;i=e;e=Ci(s^F,R^_,48);s=W;c=s+v|0;d=e+u|0;c=d>>>0>>0?c+1|0:c;v=d;u=c;i=Ci(d^i,c^y,1);d=i+N|0;y=W;c=y+ha|0;c=x+(d>>>0>>0?c+1|0:c)|0;j=d+m|0;c=j>>>0>>0?c+1|0:c;m=c;d=Ci(j^U,c^D,32);x=W;c=x+n|0;n=d+X|0;c=n>>>0>>0?c+1|0:c;D=c;i=Ci(i^n,c^y,40);_=W;c=xa+_|0;y=i;i=fa+i|0;c=m+(i>>>0>>0?c+1|0:c)|0;m=i+j|0;c=m>>>0>>0?c+1|0:c;i=x;x=c;i=Ci(d^m,i^c,48);c=D;D=W;c=c+D|0;d=i+n|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;j=g;c=t+Y|0;d=p+G|0;c=d>>>0

>>0?c+1|0:c;g=c;f=Ci(d^f,c^A,1);p=W;c=p+na|0;n=f+ca|0;c=r+(n>>>0>>0?c+1|0:c)|0;n=n+o|0;c=n>>>0>>0?c+1|0:c;o=c;j=Ci(j^n,c^K,32);c=W;r=c;t=f;c=c+u|0;f=j+v|0;c=f>>>0>>0?c+1|0:c;G=f;f=f^t;t=c;f=Ci(f,c^p,40);A=W;c=ka+A|0;p=f+ia|0;c=o+(p>>>0>>0?c+1|0:c)|0;o=n+p|0;c=o>>>0>>0?c+1|0:c;v=r;r=c;p=Ci(j^o,v^c,48);c=W;Y=c;n=c;j=Ci(M^I,Q^V,1);c=W;v=c;u=g;c=c+L|0;g=j+ea|0;c=J+(g>>>0>>0?c+1|0:c)|0;g=g+q|0;c=g>>>0>>0?c+1|0:c;q=c;s=Ci(e^g,c^s,32);d=s+d|0;V=W;c=V+u|0;u=d;e=v;v=d>>>0>>0?c+1|0:c;e=Ci(d^j,e^v,40);I=W;c=wa+I|0;d=e+ga|0;c=q+(d>>>0>>0?c+1|0:c)|0;d=d+g|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;g=c;c=E+za|0;j=C+oa|0;c=(j>>>0>>0?c+1|0:c)+g|0;g=d+j|0;c=g>>>0>>0?c+1|0:c;q=c;d=Ci(g^p,c^n,32);J=W;c=J+R|0;j=d+F|0;c=j>>>0>>0?c+1|0:c;n=Ci(j^C,c^E,40);K=c;C=W;c=va+C|0;E=n+ba|0;c=q+(E>>>0>>0?c+1|0:c)|0;q=g+E|0;c=q>>>0>>0?c+1|0:c;g=J;J=c;g=Ci(d^q,g^c,48);c=K;K=W;c=c+K|0;j=g+j|0;c=j>>>0>>0?c+1|0:c;d=j^n;n=c;c=Ci(d,c^C,1);d=W;C=c;E=d;X=k;U=i;i=e;e=Ci(s^M,Q^V,48);s=W;c=s+v|0;d=e+u|0;c=d>>>0>>0?c+1|0:c;v=d;u=c;i=Ci(d^i,c^I,1);d=i+ea|0;I=W;c=I+L|0;c=r+(d>>>0>>0?c+1|0:c)|0;k=d+o|0;c=k>>>0>>0?c+1|0:c;o=c;d=Ci(k^U,c^D,32);r=W;c=r+l|0;l=d+X|0;c=l>>>0>>0?c+1|0:c;D=c;i=Ci(i^l,c^I,40);V=W;c=ka+V|0;I=i;i=ia+i|0;c=o+(i>>>0>>0?c+1|0:c)|0;o=i+k|0;c=o>>>0>>0?c+1|0:c;i=r;r=c;i=Ci(d^o,i^c,48);c=D;D=W;c=c+D|0;d=i+l|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;k=h;c=t+Y|0;d=p+G|0;c=d>>>0

>>0?c+1|0:c;h=c;f=Ci(d^f,c^A,1);p=W;c=na+p|0;l=f+ca|0;c=x+(l>>>0>>0?c+1|0:c)|0;l=l+m|0;c=l>>>0>>0?c+1|0:c;m=c;k=Ci(k^l,c^H,32);c=W;x=c;t=f;c=c+u|0;f=k+v|0;c=f>>>0>>0?c+1|0:c;G=f;f=f^t;t=c;f=Ci(f,c^p,40);A=W;c=xa+A|0;p=f+fa|0;c=m+(p>>>0>>0?c+1|0:c)|0;m=l+p|0;c=m>>>0>>0?c+1|0:c;l=x;x=c;p=Ci(k^m,l^c,48);c=W;Y=c;l=c;k=Ci(y^F,R^_,1);c=W;v=c;u=h;c=c+$|0;h=k+O|0;c=T+(h>>>0>>0?c+1|0:c)|0;h=h+B|0;c=h>>>0>>0?c+1|0:c;B=c;s=Ci(e^h,c^s,32);d=s+d|0;_=W;c=_+u|0;u=d;e=v;v=d>>>0>>0?c+1|0:c;e=Ci(d^k,e^v,40);y=W;c=wa+y|0;d=e+ga|0;c=B+(d>>>0>>0?c+1|0:c)|0;d=d+h|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;h=c;c=E+ra|0;k=C+S|0;c=(k>>>0>>0?c+1|0:c)+h|0;h=d+k|0;c=h>>>0>>0?c+1|0:c;B=c;d=Ci(h^p,c^l,32);T=W;c=T+Q|0;k=d+M|0;c=k>>>0>>0?c+1|0:c;l=Ci(k^C,c^E,40);H=c;C=W;c=P+C|0;E=b+l|0;c=B+(E>>>0>>0?c+1|0:c)|0;B=h+E|0;c=B>>>0>>0?c+1|0:c;h=T;T=c;h=Ci(d^B,h^c,48);c=H;H=W;c=c+H|0;k=h+k|0;c=k>>>0>>0?c+1|0:c;d=k^l;l=c;c=Ci(d,c^C,1);d=W;C=c;E=d;X=j;U=i;i=e;e=Ci(s^F,R^_,48);s=W;c=s+v|0;d=e+u|0;c=d>>>0>>0?c+1|0:c;v=d;u=c;i=Ci(d^i,c^y,1);d=i+da|0;y=W;c=y+qa|0;c=x+(d>>>0>>0?c+1|0:c)|0;j=d+m|0;c=j>>>0>>0?c+1|0:c;m=c;d=Ci(j^U,c^D,32);x=W;c=x+n|0;n=d+X|0;c=n>>>0>>0?c+1|0:c;D=c;i=Ci(i^n,c^y,40);_=W;c=Aa+_|0;y=i;i=pa+i|0;c=m+(i>>>0>>0?c+1|0:c)|0;m=i+j|0;c=m>>>0>>0?c+1|0:c;i=x;x=c;i=Ci(d^m,i^c,48);c=D;D=W;c=c+D|0;d=i+n|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;j=g;c=t+Y|0;d=p+G|0;c=d>>>0

>>0?c+1|0:c;g=c;f=Ci(d^f,c^A,1);p=W;c=p+la|0;n=f+Z|0;c=r+(n>>>0>>0?c+1|0:c)|0;n=n+o|0;c=n>>>0>>0?c+1|0:c;o=c;j=Ci(j^n,c^K,32);c=W;r=c;t=f;c=c+u|0;f=j+v|0;c=f>>>0>>0?c+1|0:c;G=f;f=f^t;t=c;f=Ci(f,c^p,40);A=W;c=ua+A|0;p=f+aa|0;c=o+(p>>>0>>0?c+1|0:c)|0;o=n+p|0;c=o>>>0>>0?c+1|0:c;v=r;r=c;p=Ci(j^o,v^c,48);c=W;Y=c;n=c;j=Ci(M^I,Q^V,1);c=W;v=c;u=g;c=c+ta|0;g=j+ja|0;c=J+(g>>>0>>0?c+1|0:c)|0;g=g+q|0;c=g>>>0>>0?c+1|0:c;q=c;s=Ci(e^g,c^s,32);d=s+d|0;V=W;c=V+u|0;u=d;e=v;v=d>>>0>>0?c+1|0:c;e=Ci(d^j,e^v,40);I=W;c=ha+I|0;d=e+N|0;c=q+(d>>>0>>0?c+1|0:c)|0;d=d+g|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;g=c;c=E+wa|0;j=C+ga|0;c=(j>>>0>>0?c+1|0:c)+g|0;g=d+j|0;c=g>>>0>>0?c+1|0:c;q=c;d=Ci(g^p,c^n,32);J=W;c=J+R|0;j=d+F|0;c=j>>>0>>0?c+1|0:c;n=Ci(j^C,c^E,40);K=c;C=W;c=ka+C|0;E=n+ia|0;c=q+(E>>>0>>0?c+1|0:c)|0;q=g+E|0;c=q>>>0>>0?c+1|0:c;g=J;J=c;g=Ci(d^q,g^c,48);c=K;K=W;c=c+K|0;j=g+j|0;c=j>>>0>>0?c+1|0:c;d=j^n;n=c;c=Ci(d,c^C,1);d=W;C=c;E=d;X=k;U=i;i=e;e=Ci(s^M,Q^V,48);s=W;c=s+v|0;d=e+u|0;c=d>>>0>>0?c+1|0:c;v=d;u=c;i=Ci(d^i,c^I,1);d=i+ba|0;I=W;c=I+va|0;c=r+(d>>>0>>0?c+1|0:c)|0;k=d+o|0;c=k>>>0>>0?c+1|0:c;o=c;d=Ci(k^U,c^D,32);r=W;c=r+l|0;l=d+X|0;c=l>>>0>>0?c+1|0:c;D=c;i=Ci(i^l,c^I,40);V=W;c=za+V|0;I=i;i=oa+i|0;c=o+(i>>>0>>0?c+1|0:c)|0;o=i+k|0;c=o>>>0>>0?c+1|0:c;i=r;r=c;i=Ci(d^o,i^c,48);c=D;D=W;c=c+D|0;d=i+l|0;c=d>>>0>>0?c+1|0:c;M=d;Q=c;k=h;c=t+Y|0;d=p+G|0;c=d>>>0

>>0?c+1|0:c;h=c;f=Ci(d^f,c^A,1);p=W;c=ua+p|0;l=f+aa|0;c=x+(l>>>0>>0?c+1|0:c)|0;l=l+m|0;c=l>>>0>>0?c+1|0:c;m=c;k=Ci(k^l,c^H,32);c=W;x=c;t=f;c=c+u|0;f=k+v|0;c=f>>>0>>0?c+1|0:c;G=f;f=f^t;t=c;f=Ci(f,c^p,40);A=W;c=L+A|0;p=f+ea|0;c=m+(p>>>0>>0?c+1|0:c)|0;m=l+p|0;c=m>>>0>>0?c+1|0:c;l=x;x=c;p=Ci(k^m,l^c,48);c=W;Y=c;l=c;k=Ci(y^F,R^_,1);c=W;v=c;u=h;c=c+xa|0;h=k+fa|0;c=T+(h>>>0>>0?c+1|0:c)|0;h=h+B|0;c=h>>>0>>0?c+1|0:c;B=c;s=Ci(e^h,c^s,32);d=s+d|0;_=W;c=_+u|0;u=d;e=v;v=d>>>0>>0?c+1|0:c;e=Ci(d^k,e^v,40);y=W;c=ta+y|0;d=e+ja|0;c=B+(d>>>0>>0?c+1|0:c)|0;d=d+h|0;c=d>>>0>>0?c+1|0:c;F=d;R=c;h=c;c=E+na|0;k=C+ca|0;c=(k>>>0>>0?c+1|0:c)+h|0;h=d+k|0;c=h>>>0>>0?c+1|0:c;B=c;d=Ci(h^p,c^l,32);T=W;c=T+Q|0;k=d+M|0;c=k>>>0>>0?c+1|0:c;l=Ci(k^C,c^E,40);H=c;C=W;c=Aa+C|0;E=l+pa|0;c=B+(E>>>0>>0?c+1|0:c)|0;B=h+E|0;c=B>>>0>>0?c+1|0:c;h=T;T=c;h=Ci(d^B,h^c,48);c=H;H=W;c=c+H|0;k=h+k|0;c=k>>>0>>0?c+1|0:c;d=k^l;l=c;c=Ci(d,c^C,1);d=W;C=c;E=d;X=j;U=i;i=e;e=Ci(s^F,R^_,48);s=W;c=s+v|0;d=e+u|0;c=d>>>0>>0?c+1|0:c;v=d;u=c;i=Ci(d^i,c^y,1);d=i+O|0;F=W;c=F+$|0;c=x+(d>>>0>>0?c+1|0:c)|0;j=d+m|0;c=j>>>0>>0?c+1|0:c;m=c;d=Ci(j^U,c^D,32);x=W;c=x+n|0;n=d+X|0;c=n>>>0>>0?c+1|0:c;D=n;y=c;i=Ci(i^n,c^F,40);X=W;c=ra+X|0;F=i;i=S+i|0;c=m+(i>>>0>>0?c+1|0:c)|0;n=i+j|0;c=n>>>0>>0?c+1|0:c;i=x;x=c;i=Ci(d^n,i^c,48);c=y;y=W;c=c+y|0;d=i+D|0;c=d>>>0>>0?c+1|0:c;D=d;R=c;j=g;c=t+Y|0;d=p+G|0;c=d>>>0

>>0?c+1|0:c;g=c;f=Ci(d^f,c^A,1);p=W;c=p+P|0;m=b+f|0;c=r+(m>>>0>>0?c+1|0:c)|0;m=m+o|0;c=m>>>0>>0?c+1|0:c;o=c;j=Ci(j^m,c^K,32);r=j;c=W;t=c;G=f;c=c+u|0;f=j+v|0;c=f>>>0>>0?c+1|0:c;A=f;f=f^G;G=c;f=Ci(f,c^p,40);v=W;c=qa+v|0;j=f+da|0;c=o+(j>>>0>>0?c+1|0:c)|0;j=j+m|0;c=j>>>0>>0?c+1|0:c;u=j^r;r=c;m=Ci(u,c^t,48);c=W;K=c;p=c;o=Ci(M^I,Q^V,1);t=o;c=W;u=c;I=g;c=c+ha|0;g=o+N|0;c=J+(g>>>0>>0?c+1|0:c)|0;g=g+q|0;c=g>>>0>>0?c+1|0:c;q=s;s=c;o=Ci(e^g,q^c,32);d=o+d|0;U=W;c=U+I|0;q=d;e=d^t;t=d>>>0>>0?c+1|0:c;e=Ci(e,t^u,40);u=W;c=la+u|0;d=e+Z|0;c=s+(d>>>0>>0?c+1|0:c)|0;d=d+g|0;c=d>>>0>>0?c+1|0:c;s=d;I=c;g=c;c=E+ra|0;J=S;S=C+S|0;c=(J>>>0>S>>>0?c+1|0:c)+g|0;d=d+S|0;c=d>>>0>>0?c+1|0:c;ra=c;S=Ci(d^m,c^p,32);M=W;c=M+R|0;g=D+S|0;c=g>>>0>>0?c+1|0:c;p=Ci(g^C,c^E,40);J=c;Q=W;c=qa+Q|0;C=da;da=p+da|0;c=ra+(C>>>0>da>>>0?c+1|0:c)|0;da=d+da|0;c=da>>>0>>0?c+1|0:c;d=S^da;S=c;qa=Ci(d,c^M,48);ra=W;c=ra+J|0;d=g+qa|0;c=d>>>0>>0?c+1|0:c;g=c;c=Ci(d^p,c^Q,1);p=W;M=c;Q=k;k=Z;J=la;la=Ci(o^s,I^U,48);o=W;c=o+t|0;Z=q+la|0;c=Z>>>0>>0?c+1|0:c;t=k;s=Z;q=c;k=Ci(e^s,c^u,1);Z=t+k|0;u=W;c=u+J|0;c=r+(k>>>0>Z>>>0?c+1|0:c)|0;Z=j+Z|0;c=Z>>>0>>0?c+1|0:c;e=c;i=Ci(i^Z,c^y,32);c=l;l=W;c=c+l|0;j=i+Q|0;c=j>>>0>>0?c+1|0:c;r=j;t=c;j=Ci(j^k,c^u,40);ba=j+ba|0;u=W;c=u+va|0;c=(j>>>0>ba>>>0?c+1|0:c)+e|0;e=ba;ba=Z+ba|0;c=e>>>0>ba>>>0?c+1|0:c;e=c;i=Ci(i^ba,c^l,48);k=W;c=k+t|0;Z=i+r|0;c=Z>>>0>>0?c+1|0:c;l=Z;va=c;r=b;t=P;c=G+K|0;b=m+A|0;c=b>>>0>>0?c+1|0:c;Z=c;P=Ci(b^f,c^v,1);m=W;c=m+t|0;f=r+P|0;c=x+(f>>>0

>>0?c+1|0:c)|0;f=f+n|0;c=f>>>0>>0?c+1|0:c;h=Ci(f^h,c^H,32);r=c;x=ca;ca=P;n=W;c=n+q|0;P=h+s|0;c=P>>>0>>0?c+1|0:c;q=m;m=c;ca=Ci(P^ca,q^c,40);s=W;c=s+na|0;na=x+ca|0;c=(na>>>0>>0?c+1|0:c)+r|0;r=na;na=f+na|0;c=r>>>0>na>>>0?c+1|0:c;f=h^na;h=c;c=Ci(f,c^n,48);f=W;G=f;n=c;q=O;r=$;O=Ci(D^F,R^X,1);x=O;c=W;t=c;c=c+wa|0;O=x+ga|0;c=T+(O>>>0>>0?c+1|0:c)|0;O=B+O|0;c=O>>>0>>0?c+1|0:c;ga=c;$=Ci(O^la,c^o,32);b=$+b|0;B=W;c=B+Z|0;Z=b;o=b>>>0<$>>>0?c+1|0:c;la=Ci(b^x,o^t,40);b=la+q|0;c=r;r=W;c=c+r|0;c=ga+(b>>>0>>0?c+1|0:c)|0;b=b+O|0;c=b>>>0>>0?c+1|0:c;ga=b;wa=c;O=c;c=p+ua|0;x=aa;aa=M+aa|0;c=(x>>>0>aa>>>0?c+1|0:c)+O|0;O=b+aa|0;c=O>>>0>>0?c+1|0:c;ua=c;aa=Ci(n^O,c^f,32);b=aa+l|0;x=W;c=x+va|0;f=b;q=p;p=b>>>0>>0?c+1|0:c;b=Ci(b^M,q^p,40);t=W;c=xa+t|0;xa=b;b=fa+b|0;c=ua+(b>>>0>>0?c+1|0:c)|0;b=b+O|0;c=b>>>0>>0?c+1|0:c;ua=b;A=(z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24))^b;q=c;v=c^(z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24));O=Ci($^ga,B^wa,48);ga=W;c=ga+o|0;b=O+Z|0;c=b>>>0>>0?c+1|0:c;o=b;wa=c;$=ia;c=m+G|0;b=n+P|0;c=b>>>0

>>0?c+1|0:c;ia=c;ca=Ci(b^ca,c^s,1);$=ca+$|0;n=W;c=n+ka|0;c=($>>>0>>0?c+1|0:c)+e|0;ka=$+ba|0;c=ka>>>0<$>>>0?c+1|0:c;$=c;Z=Ci(ka^qa,c^ra,32);P=W;c=P+wa|0;fa=Z+o|0;c=fa>>>0>>0?c+1|0:c;ba=c;qa=Z;Z=Ci(ca^fa,c^n,40);ca=Z+ja|0;e=W;c=e+ta|0;c=(Z>>>0>ca>>>0?c+1|0:c)+$|0;ka=ca+ka|0;c=ka>>>0>>0?c+1|0:c;ja=ka;m=P;P=c;ca=Ci(qa^ja,m^c,48);$=ca+fa|0;n=W;c=n+ba|0;c=$>>>0>>0?c+1|0:c;fa=$;$=A^$;w[a+8|0]=$;w[a+9|0]=$>>>8;w[a+10|0]=$>>>16;w[a+11|0]=$>>>24;ba=c;c=c^v;w[a+12|0]=c;w[a+13|0]=c>>>8;w[a+14|0]=c>>>16;w[a+15|0]=c>>>24;ka=b;$=ia;b=O;O=Ci(j^l,u^va,1);ia=O+pa|0;ta=W;c=ta+Aa|0;c=(O>>>0>ia>>>0?c+1|0:c)+S|0;l=ia;ia=da+ia|0;c=l>>>0>ia>>>0?c+1|0:c;da=c;b=Ci(b^ia,c^ga,32);c=$;$=W;c=c+$|0;ka=b+ka|0;c=ka>>>0>>0?c+1|0:c;ga=c;qa=b;S=ka;ka=Ci(O^S,c^ta,40);b=ka+oa|0;j=W;c=j+za|0;c=da+(b>>>0>>0?c+1|0:c)|0;b=b+ia|0;c=b>>>0>>0?c+1|0:c;da=b;b=b^qa;qa=c;ia=Ci(b,c^$,48);b=ia+S|0;l=W;c=l+ga|0;S=b;ga=b>>>0>>0?c+1|0:c;b=Ci(o^la,r^wa,1);la=b;c=W;ta=c;c=c+L|0;b=b+ea|0;c=h+(b>>>0>>0?c+1|0:c)|0;O=b+na|0;c=O>>>0>>0?c+1|0:c;L=c;$=Ci(i^O,c^k,32);b=$+d|0;d=W;c=d+g|0;na=b;h=b^la;la=b>>>0<$>>>0?c+1|0:c;ea=Ci(h,la^ta,40);b=ea+N|0;N=W;c=N+ha|0;c=L+(b>>>0>>0?c+1|0:c)|0;L=b+O|0;c=L>>>0>>0?c+1|0:c;b=a;O=L^Ba^S;w[b|0]=O;w[b+1|0]=O>>>8;w[b+2|0]=O>>>16;w[b+3|0]=O>>>24;O=c^Ca^ga;w[b+4|0]=O;w[b+5|0]=O>>>8;w[b+6|0]=O>>>16;w[b+7|0]=O>>>24;$=Ci(L^$,c^d,48);O=$+na|0;na=W;c=na+la|0;la=O>>>0<$>>>0?c+1|0:c;c=la^((z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24))^qa);L=(z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24))^da^O;w[b+16|0]=L;w[b+17|0]=L>>>8;w[b+18|0]=L>>>16;w[b+19|0]=L>>>24;w[b+20|0]=c;w[b+21|0]=c>>>8;w[b+22|0]=c>>>16;w[b+23|0]=c>>>24;b=Ci(aa^ua,q^x,48);L=W;da=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);c=(z[a+32|0]|z[a+33|0]<<8|(z[a+34|0]<<16|z[a+35|0]<<24))^Ci(Z^fa,e^ba,1)^b;w[a+32|0]=c;w[a+33|0]=c>>>8;w[a+34|0]=c>>>16;w[a+35|0]=c>>>24;c=W^da^L;w[a+36|0]=c;w[a+37|0]=c>>>8;w[a+38|0]=c>>>16;w[a+39|0]=c>>>24;c=p+L|0;da=b+f|0;c=da>>>0>>0?c+1|0:c;b=a;Z=(z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24))^P^c;L=(z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24))^ja^da;w[b+24|0]=L;w[b+25|0]=L>>>8;w[b+26|0]=L>>>16;w[b+27|0]=L>>>24;w[b+28|0]=Z;w[b+29|0]=Z>>>8;w[b+30|0]=Z>>>16;w[b+31|0]=Z>>>24;Z=z[b+44|0]|z[b+45|0]<<8|(z[b+46|0]<<16|z[b+47|0]<<24);b=ia^((z[b+40|0]|z[b+41|0]<<8|(z[b+42|0]<<16|z[b+43|0]<<24))^Ci(O^ea,N^la,1));w[a+40|0]=b;w[a+41|0]=b>>>8;w[a+42|0]=b>>>16;w[a+43|0]=b>>>24;b=l^(W^Z);w[a+44|0]=b;w[a+45|0]=b>>>8;w[a+46|0]=b>>>16;w[a+47|0]=b>>>24;O=z[a+60|0]|z[a+61|0]<<8|(z[a+62|0]<<16|z[a+63|0]<<24);b=$^((z[a+56|0]|z[a+57|0]<<8|(z[a+58|0]<<16|z[a+59|0]<<24))^Ci(S^ka,j^ga,1));w[a+56|0]=b;w[a+57|0]=b>>>8;w[a+58|0]=b>>>16;w[a+59|0]=b>>>24;b=na^(W^O);w[a+60|0]=b;w[a+61|0]=b>>>8;w[a+62|0]=b>>>16;w[a+63|0]=b>>>24;O=z[a+52|0]|z[a+53|0]<<8|(z[a+54|0]<<16|z[a+55|0]<<24);b=ca^((z[a+48|0]|z[a+49|0]<<8|(z[a+50|0]<<16|z[a+51|0]<<24))^Ci(da^xa,c^t,1));w[a+48|0]=b;w[a+49|0]=b>>>8;w[a+50|0]=b>>>16;w[a+51|0]=b>>>24;b=n^(W^O);w[a+52|0]=b;w[a+53|0]=b>>>8;w[a+54|0]=b>>>16;w[a+55|0]=b>>>24;}function qc(a,b,c,d,e,f,g){var 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,x=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,U=0,V=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,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=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,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Xa=0,Ya=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0;H=T-560|0;T=H;k=H+352|0;Za(k);if(g){va(k,39696,34,0);}rb(H+288|0,f,32,0);n=H+352|0;va(n,H+320|0,32,0);va(n,c,d,e);p=H+224|0;Ca(n,p);j=f;r=z[f+32|0]|z[f+33|0]<<8|(z[f+34|0]<<16|z[f+35|0]<<24);t=z[f+36|0]|z[f+37|0]<<8|(z[f+38|0]<<16|z[f+39|0]<<24);l=z[f+40|0]|z[f+41|0]<<8|(z[f+42|0]<<16|z[f+43|0]<<24);h=z[f+44|0]|z[f+45|0]<<8|(z[f+46|0]<<16|z[f+47|0]<<24);k=z[f+48|0]|z[f+49|0]<<8|(z[f+50|0]<<16|z[f+51|0]<<24);f=z[f+52|0]|z[f+53|0]<<8|(z[f+54|0]<<16|z[f+55|0]<<24);m=z[j+60|0]|z[j+61|0]<<8|(z[j+62|0]<<16|z[j+63|0]<<24);j=z[j+56|0]|z[j+57|0]<<8|(z[j+58|0]<<16|z[j+59|0]<<24);w[a+56|0]=j;w[a+57|0]=j>>>8;w[a+58|0]=j>>>16;w[a+59|0]=j>>>24;w[a+60|0]=m;w[a+61|0]=m>>>8;w[a+62|0]=m>>>16;w[a+63|0]=m>>>24;w[a+48|0]=k;w[a+49|0]=k>>>8;w[a+50|0]=k>>>16;w[a+51|0]=k>>>24;w[a+52|0]=f;w[a+53|0]=f>>>8;w[a+54|0]=f>>>16;w[a+55|0]=f>>>24;w[a+40|0]=l;w[a+41|0]=l>>>8;w[a+42|0]=l>>>16;w[a+43|0]=l>>>24;w[a+44|0]=h;w[a+45|0]=h>>>8;w[a+46|0]=h>>>16;w[a+47|0]=h>>>24;w[a+32|0]=r;w[a+33|0]=r>>>8;w[a+34|0]=r>>>16;w[a+35|0]=r>>>24;w[a+36|0]=t;w[a+37|0]=t>>>8;w[a+38|0]=t>>>16;w[a+39|0]=t>>>24;Pa(p);jb(H,p);Wa(a,H);Za(n);if(g){va(n,39696,34,0);}f=H+352|0;va(f,a,64,0);va(f,c,d,e);o=H+160|0;Ca(f,o);Pa(o);w[H+288|0]=z[H+288|0]&248;w[H+319|0]=z[H+319|0]&63|64;u=H+288|0;c=u;d=z[c+23|0];P=z[c+21|0]|z[c+22|0]<<8|d<<16&2031616;Q=(z[o+28|0]|z[o+29|0]<<8|(z[o+30|0]<<16|z[o+31|0]<<24))>>>7|0;l=Ai(P,0,Q,0);k=W;c=z[o+27|0];d=0;h=z[o+23|0]|z[o+24|0]<<8|(z[o+25|0]<<16|z[o+26|0]<<24);f=c<<8|h>>>24;e=z[o+28|0];c=0;e=e<<16;t=c|d;d=e|f;R=((t&3)<<30|d>>>2)&2097151;g=z[u+23|0]|z[u+24|0]<<8|(z[u+25|0]<<16|z[u+26|0]<<24);S=g>>>5&2097151;c=Ai(R,0,S,0);f=c+l|0;d=W+k|0;e=c>>>0>f>>>0?d+1|0:d;d=z[o+23|0];U=d<<16&2031616|(z[o+21|0]|z[o+22|0]<<8);V=(z[u+28|0]|z[u+29|0]<<8|(z[u+30|0]<<16|z[u+31|0]<<24))>>>7|0;c=Ai(U,0,V,0);d=c+f|0;e=W+e|0;k=d;f=c>>>0>d>>>0?e+1|0:e;c=z[u+27|0];e=0;g=c<<8|g>>>24;c=z[u+28|0];d=0;c=c<<16;e=d|e;d=c|g;X=((e&3)<<30|d>>>2)&2097151;Y=h>>>5&2097151;c=Ai(X,0,Y,0);e=c+k|0;d=W+f|0;j=e;f=c>>>0>e>>>0?d+1|0:d;h=Ai(S,0,Y,0);k=W;c=z[u+19|0];d=0;E=z[u+15|0]|z[u+16|0]<<8|(z[u+17|0]<<16|z[u+18|0]<<24);g=c<<8|E>>>24;c=z[u+20|0];c=c<<16;e=d|d;d=c|g;Z=(e&7)<<29|d>>>3;t=e>>>3|0;d=Ai(Z,t,Q,0);e=d+h|0;c=W+k|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(P,i,R,i);g=d+e|0;e=W+c|0;h=g;d=d>>>0>h>>>0?e+1|0:e;c=z[o+19|0];e=0;B=z[o+15|0]|z[o+16|0]<<8|(z[o+17|0]<<16|z[o+18|0]<<24);k=c<<8|B>>>24;g=z[o+20|0];c=0;g=g<<16;l=c|e;e=g|k;_=(l&7)<<29|e>>>3;$=l>>>3|0;c=Ai(_,$,V,0);e=c+h|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(X,i,U,i);p=c+e|0;d=W+d|0;d=c>>>0>p>>>0?d+1|0:d;r=d;c=d-((p>>>0<4293918720)-1|0)|0;v=c;d=c>>>21|0;l=p- -1048576|0;c=(c&2097151)<<11|l>>>21;j=c+j|0;e=d+f|0;e=c>>>0>j>>>0?e+1|0:e;h=e;c=e-((j>>>0<4293918720)-1|0)|0;A=c;k=j- -1048576|0;m=(c&2097151)<<11|k>>>21;g=c>>>21|0;c=Ai(V,0,Y,0);d=W;e=c;c=Ai(Q,0,S,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(R,i,X,i);x=c+e|0;c=W+d|0;c=e>>>0>x>>>0?c+1|0:c;e=x- -1048576|0;d=e&-2097152;n=x-d|0;f=c-((x>>>0<4293918720)-1|0)|0;d=(c-((f&131071)+(d>>>0>x>>>0)|0)|0)+g|0;c=m+n|0;d=c>>>0>>0?d+1|0:d;Ea=d;Fa=c;n=Ai(c,d,470296,0);m=W;d=Ai(Q,0,X,i);c=W;g=d;d=Ai(R,i,V,0);g=g+d|0;c=W+c|0;d=d>>>0>g>>>0?c+1|0:c;c=f>>>21|0;f=(f&2097151)<<11|e>>>21;g=f+g|0;e=c+d|0;e=f>>>0>g>>>0?e+1|0:e;f=e-((g>>>0<4293918720)-1|0)|0;J=f;I=g- -1048576|0;d=I&-2097152;c=g-d|0;g=e-((f&131071)+(d>>>0>g>>>0)|0)|0;Ga=g;e=k&-2097152;d=j-e|0;Ha=d;f=h-((e>>>0>j>>>0)+A|0)|0;Ia=f;Ja=c;e=Ai(c,g,666643,0);g=e+n|0;c=W+m|0;c=e>>>0>g>>>0?c+1|0:c;e=Ai(d,f,654183,0);f=e+g|0;d=W+c|0;q=f;k=e>>>0>f>>>0?d+1|0:d;c=l&-2097152;x=p-c|0;v=r-((c>>>0>p>>>0)+v|0)|0;d=Ai(R,i,Z,t);e=W;c=d;aa=E>>>6&2097151;d=Ai(aa,0,Q,0);f=c+d|0;c=W+e|0;c=d>>>0>f>>>0?c+1|0:c;d=Ai(S,0,U,i);f=d+f|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(P,i,Y,0);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;ba=B>>>6&2097151;e=Ai(V,0,ba,0);f=e+f|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;e=Ai(X,i,_,$);f=e+f|0;d=W+c|0;p=f;g=e>>>0>f>>>0?d+1|0:d;c=z[u+14|0];d=0;r=z[u+10|0]|z[u+11|0]<<8|(z[u+12|0]<<16|z[u+13|0]<<24);f=c<<8|r>>>24;e=z[u+15|0];c=0;e=e<<16;d=c|d;c=e|f;ca=((d&1)<<31|c>>>1)&2097151;d=Ai(ca,0,Q,0);c=W;e=d;d=Ai(R,i,aa,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(Y,0,Z,t);f=d+e|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(S,0,_,$);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(P,i,U,i);e=c+f|0;d=W+d|0;l=e;f=c>>>0>e>>>0?d+1|0:d;c=z[o+14|0];d=0;j=z[o+10|0]|z[o+11|0]<<8|(z[o+12|0]<<16|z[o+13|0]<<24);h=c<<8|j>>>24;c=z[o+15|0];c=c<<16|h;d=d|d;da=((d&1)<<31|c>>>1)&2097151;d=Ai(da,0,V,0);e=d+l|0;c=W+f|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(X,i,ba,0);l=d+e|0;c=W+c|0;c=d>>>0>l>>>0?c+1|0:c;h=c;d=c-((l>>>0<4293918720)-1|0)|0;K=d;c=d>>>21|0;n=l- -1048576|0;d=(d&2097151)<<11|n>>>21;A=d+p|0;e=c+g|0;e=d>>>0>A>>>0?e+1|0:e;m=e;d=e-((A>>>0<4293918720)-1|0)|0;F=d;c=d>>>21|0;p=A- -1048576|0;e=(d&2097151)<<11|p>>>21;d=e+x|0;c=c+v|0;c=d>>>0>>0?c+1|0:c;Ka=c;La=d;c=Ai(d,c,-997805,-1);e=c+q|0;d=W+k|0;q=e;k=c>>>0>e>>>0?d+1|0:d;s=H+224|0;N=z[s+23|0]|z[s+24|0]<<8|(z[s+25|0]<<16|z[s+26|0]<<24);x=N>>>5&2097151;c=z[u+2|0];ea=c<<16&2031616|(z[u|0]|z[u+1|0]<<8);e=Ai(ea,0,Y,0);d=W;g=z[u+2|0]|z[u+3|0]<<8|(z[u+4|0]<<16|z[u+5|0]<<24);fa=g>>>5&2097151;c=Ai(U,i,fa,0);f=c+e|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;ga=(z[u+7|0]|z[u+8|0]<<8|(z[u+9|0]<<16|z[u+10|0]<<24))>>>7&2097151;c=Ai(ga,0,ba,0);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;ha=r>>>4&2097151;e=Ai(da,i,ha,0);f=e+f|0;c=W+d|0;r=f;f=e>>>0>f>>>0?c+1|0:c;d=z[u+6|0];c=0;g=d<<8|g>>>24;e=c;c=z[u+7|0];d=0;c=c<<16|g;d=d|e;ia=((d&3)<<30|c>>>2)&2097151;d=Ai(ia,0,_,$);e=d+r|0;c=W+f|0;c=d>>>0>e>>>0?c+1|0:c;ka=(z[o+7|0]|z[o+8|0]<<8|(z[o+9|0]<<16|z[o+10|0]<<24))>>>7&2097151;d=Ai(aa,0,ka,0);f=d+e|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;G=j>>>4&2097151;d=Ai(ca,i,G,0);f=d+f|0;c=W+e|0;g=d>>>0>f>>>0?c+1|0:c;d=z[o+6|0];c=0;j=z[o+2|0]|z[o+3|0]<<8|(z[o+4|0]<<16|z[o+5|0]<<24);r=d<<8|j>>>24;d=c;c=z[o+7|0];e=0;c=c<<16|r;d=d|e;la=((d&3)<<30|c>>>2)&2097151;c=Ai(Z,t,la,0);e=c+f|0;d=W+g|0;d=c>>>0>e>>>0?d+1|0:d;c=z[o+2|0];f=e;ma=c<<16&2031616|(z[o|0]|z[o+1|0]<<8);e=Ai(ma,0,S,0);f=f+e|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;na=j>>>5&2097151;d=Ai(P,i,na,0);e=d+f|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=e+x|0;d=d>>>0>e>>>0?c+1|0:c;r=e;g=d;f=z[s+21|0]|z[s+22|0]<<8;c=Ai(ea,i,U,i);d=W;e=c;c=Ai(_,$,fa,0);j=e+c|0;e=W+d|0;e=c>>>0>j>>>0?e+1|0:e;c=Ai(da,i,ga,0);j=c+j|0;d=W+e|0;d=c>>>0>j>>>0?d+1|0:d;c=Ai(ha,0,G,0);e=c+j|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(ba,0,ia,i);j=c+e|0;c=W+d|0;c=e>>>0>j>>>0?c+1|0:c;d=Ai(aa,0,la,i);e=d+j|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(ca,i,ka,0);j=d+e|0;e=W+c|0;e=d>>>0>j>>>0?e+1|0:e;c=Ai(Z,t,na,0);j=c+j|0;d=W+e|0;d=c>>>0>j>>>0?d+1|0:d;c=Ai(P,i,ma,i);e=c+j|0;d=W+d|0;c=c>>>0>e>>>0?d+1|0:d;d=e;e=e+f|0;d=d>>>0>e>>>0?c+1|0:c;c=z[s+23|0];f=e;e=c<<16&2031616;f=f+e|0;c=d;c=e>>>0>f>>>0?c+1|0:c;e=c;c=c-((f>>>0<4293918720)-1|0)|0;o=c;d=c>>>21|0;j=f- -1048576|0;c=(c&2097151)<<11|j>>>21;r=c+r|0;d=d+g|0;g=r;d=g>>>0>>0?d+1|0:d;c=d+k|0;k=g+q|0;c=k>>>0>>0?c+1|0:c;B=g- -1048576|0;g=d-((g>>>0<4293918720)-1|0)|0;C=g;d=B&-2097152;D=k-d|0;L=c-((d>>>0>k>>>0)+g|0)|0;r=f;k=e;c=Ai(Ha,Ia,470296,0);d=W;e=c;c=Ai(Fa,Ea,666643,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(La,Ka,654183,0);f=c+e|0;c=W+d|0;E=f;g=e>>>0>f>>>0?c+1|0:c;d=Ai(_,$,ea,i);c=W;e=d;d=Ai(ba,0,fa,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(ga,0,G,0);f=d+e|0;d=W+c|0;d=e>>>0>f>>>0?d+1|0:d;c=Ai(ha,0,ka,0);f=c+f|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(da,i,ia,i);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;e=Ai(aa,0,na,0);f=e+f|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;d=Ai(ca,i,la,i);e=d+f|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(Z,t,ma,i);f=d+e|0;d=W+c|0;x=f;e=e>>>0>f>>>0?d+1|0:d;c=z[s+19|0];d=0;q=z[s+15|0]|z[s+16|0]<<8|(z[s+17|0]<<16|z[s+18|0]<<24);v=c<<8|q>>>24;f=z[s+20|0];c=0;f=f<<16;M=c|d;d=f|v;e=(M>>>3|0)+e|0;d=(M&7)<<29|d>>>3;f=d+x|0;x=f;f=d>>>0>f>>>0?e+1|0:e;v=q>>>6&2097151;c=Ai(ba,0,ea,i);d=W;e=c;c=Ai(da,i,fa,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(ga,0,ka,0);q=c+e|0;c=W+d|0;c=e>>>0>q>>>0?c+1|0:c;e=Ai(ha,0,la,i);q=e+q|0;d=W+c|0;d=e>>>0>q>>>0?d+1|0:d;e=Ai(ia,i,G,0);q=e+q|0;c=W+d|0;c=e>>>0>q>>>0?c+1|0:c;d=Ai(aa,0,ma,i);q=d+q|0;e=W+c|0;e=d>>>0>q>>>0?e+1|0:e;c=Ai(ca,i,na,0);q=c+q|0;d=W+e|0;c=c>>>0>q>>>0?d+1|0:d;oa=q+v|0;c=oa>>>0>>0?c+1|0:c;wa=c;c=c-((oa>>>0<4293918720)-1|0)|0;Ua=c;ta=oa- -1048576|0;e=(c&2097151)<<11|ta>>>21;xa=e+x|0;c=(c>>>21|0)+f|0;c=e>>>0>xa>>>0?c+1|0:c;ya=c;c=c-((xa>>>0<4293918720)-1|0)|0;Va=c;qa=xa- -1048576|0;e=(c&2097151)<<11|qa>>>21;f=e+E|0;c=(c>>>21|0)+g|0;d=(e>>>0>f>>>0?c+1|0:c)+k|0;e=f+r|0;d=e>>>0>>0?d+1|0:d;c=j&-2097152;k=e-c|0;c=d-((c>>>0>e>>>0)+o|0)|0;o=c;c=c-((k>>>0<4293918720)-1|0)|0;Xa=c;ra=k- -1048576|0;e=(c&2097151)<<11|ra>>>21;g=e+D|0;c=(c>>21)+L|0;c=e>>>0>g>>>0?c+1|0:c;f=c;c=c-((g>>>0<4293918720)-1|0)|0;Ma=c;E=g- -1048576|0;sa=(c&2097151)<<11|E>>>21;r=c>>21;c=p&-2097152;M=A-c|0;F=m-((c>>>0>A>>>0)+F|0)|0;c=Ai(Q,0,V,0);d=W;ua=d;D=c;q=c- -1048576|0;d=d-((c>>>0<4293918720)-1|0)|0;pa=d;c=d>>>21|0;Na=c;Da=(d&2097151)<<11|q>>>21;c=Ai(Da,c,-683901,-1);e=c+l|0;d=W+h|0;d=c>>>0>e>>>0?d+1|0:d;c=n&-2097152;p=e-c|0;j=d-((c>>>0>e>>>0)+K|0)|0;d=Ai(Y,0,aa,0);c=W;e=d;d=Ai(Q,0,ha,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(R,i,ca,i);e=d+e|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(Z,t,U,i);h=d+e|0;d=W+c|0;d=e>>>0>h>>>0?d+1|0:d;c=Ai(S,0,ba,0);h=c+h|0;e=W+d|0;e=c>>>0>h>>>0?e+1|0:e;c=Ai(P,i,_,$);h=c+h|0;d=W+e|0;d=c>>>0>h>>>0?d+1|0:d;e=Ai(V,0,G,0);h=e+h|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(X,i,da,i);e=d+h|0;c=W+c|0;l=e;h=d>>>0>e>>>0?c+1|0:c;c=Ai(R,i,ha,0);d=W;e=c;c=Ai(Q,0,ga,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(aa,0,U,i);m=c+e|0;e=W+d|0;e=c>>>0>m>>>0?e+1|0:e;c=Ai(Y,0,ca,i);m=c+m|0;d=W+e|0;d=c>>>0>m>>>0?d+1|0:d;e=Ai(Z,t,_,$);m=e+m|0;c=W+d|0;c=e>>>0>m>>>0?c+1|0:c;d=Ai(S,0,da,i);e=d+m|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(P,i,ba,0);m=d+e|0;d=W+c|0;d=e>>>0>m>>>0?d+1|0:d;c=Ai(V,0,ka,0);m=c+m|0;e=W+d|0;e=c>>>0>m>>>0?e+1|0:e;c=Ai(X,i,G,0);x=c+m|0;d=W+e|0;d=c>>>0>x>>>0?d+1|0:d;v=d;c=d-((x>>>0<4293918720)-1|0)|0;Aa=c;A=x- -1048576|0;d=(c&2097151)<<11|A>>>21;K=d+l|0;c=(c>>>21|0)+h|0;c=d>>>0>K>>>0?c+1|0:c;n=c;c=c-((K>>>0<4293918720)-1|0)|0;O=c;e=c>>>21|0;m=K- -1048576|0;c=(c&2097151)<<11|m>>>21;L=c+p|0;d=e+j|0;d=c>>>0>L>>>0?d+1|0:d;p=d;c=d-((L>>>0<4293918720)-1|0)|0;za=c;j=L- -1048576|0;h=(c&2097151)<<11|j>>>21;d=h+M|0;c=(c>>21)+F|0;c=d>>>0>>0?c+1|0:c;Oa=c;Qa=d;c=Ai(d,c,-683901,-1);e=c+sa|0;d=W+r|0;sa=e;r=c>>>0>e>>>0?d+1|0:d;c=Ai(R,i,ea,i);d=W;e=c;c=Ai(Y,0,fa,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(_,$,ga,0);h=c+e|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(ba,0,ha,0);h=d+h|0;e=W+c|0;e=d>>>0>h>>>0?e+1|0:e;d=Ai(U,i,ia,i);h=d+h|0;c=W+e|0;c=d>>>0>h>>>0?c+1|0:c;e=Ai(aa,0,G,0);h=e+h|0;d=W+c|0;d=e>>>0>h>>>0?d+1|0:d;c=Ai(ca,i,da,i);e=c+h|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(Z,t,ka,0);h=c+e|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(S,0,na,0);h=d+h|0;e=W+c|0;e=d>>>0>h>>>0?e+1|0:e;d=Ai(P,i,la,i);h=d+h|0;c=W+e|0;c=d>>>0>h>>>0?c+1|0:c;e=Ai(X,i,ma,i);h=e+h|0;d=W+c|0;F=h;e=e>>>0>h>>>0?d+1|0:d;c=z[s+27|0];d=0;l=c<<8|N>>>24;h=z[s+28|0];c=0;h=h<<16;d=c|d;c=h|l;h=((d&3)<<30|c>>>2)&2097151;c=h+F|0;d=e;l=c;h=c>>>0>>0?d+1|0:d;M=Ai(Ja,Ga,470296,0);F=W;e=(J&2097151)<<11|I>>>21;d=q&-2097152;c=e+(D-d|0)|0;d=ua-((pa&524287)+(d>>>0>D>>>0)|0)+(J>>>21)|0;d=c>>>0>>0?d+1|0:d;Ra=d;Sa=c;d=Ai(c,d,666643,0);e=d+M|0;c=W+F|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(Fa,Ea,654183,0);q=d+e|0;e=W+c|0;e=d>>>0>q>>>0?e+1|0:e;d=Ai(Ha,Ia,-997805,-1);q=d+q|0;c=W+e|0;c=d>>>0>q>>>0?c+1|0:c;e=Ai(La,Ka,136657,0);q=e+q|0;d=W+c|0;c=(C&2097151)<<11|B>>>21;B=c+q|0;d=(C>>>21|0)+(e>>>0>q>>>0?d+1|0:d)|0;ua=l- -1048576|0;q=h-((l>>>0<4293918720)-1|0)|0;pa=q;c=(c>>>0>B>>>0?d+1|0:d)+h|0;h=l+B|0;c=h>>>0>>0?c+1|0:c;e=ua&-2097152;d=h-e|0;c=c-((e>>>0>h>>>0)+q|0)|0;e=c+r|0;l=d+sa|0;e=l>>>0>>0?e+1|0:e;h=c-((d>>>0<4293918720)-1|0)|0;M=h;F=d- -1048576|0;d=F&-2097152;c=l-d|0;D=e-((d>>>0>l>>>0)+h|0)|0;N=c;h=g;g=f;c=j&-2097152;Ba=L-c|0;q=p-((c>>>0>L>>>0)+za|0)|0;c=Ai(Sa,Ra,-683901,-1);d=W;e=c;c=Ai(Da,Na,136657,0);f=e+c|0;e=W+d|0;d=n+(c>>>0>f>>>0?e+1|0:e)|0;e=f+K|0;d=e>>>0>>0?d+1|0:d;c=m&-2097152;m=e-c|0;p=d-((c>>>0>e>>>0)+O|0)|0;d=Ai(Da,Na,-997805,-1);e=d+x|0;c=W+v|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(Sa,Ra,136657,0);f=d+e|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(Ja,Ga,-683901,-1);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=A&-2097152;j=f-c|0;r=d-((c>>>0>f>>>0)+Aa|0)|0;d=Ai(Y,0,ha,0);c=W;e=d;d=Ai(R,i,ga,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(Q,0,ia,i);f=d+e|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(_,$,aa,0);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;e=Ai(U,i,ca,i);f=e+f|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;e=Ai(Z,t,ba,0);f=e+f|0;d=W+c|0;d=e>>>0>f>>>0?d+1|0:d;e=Ai(S,0,G,0);f=e+f|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;d=Ai(P,i,da,i);f=d+f|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(V,0,la,i);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;e=Ai(X,i,ka,0);f=e+f|0;c=W+d|0;l=f;f=e>>>0>f>>>0?c+1|0:c;c=Ai(Y,0,ga,0);d=W;e=c;c=Ai(Q,0,fa,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(U,i,ha,0);n=c+e|0;c=W+d|0;c=e>>>0>n>>>0?c+1|0:c;d=Ai(R,i,ia,i);n=d+n|0;e=W+c|0;e=d>>>0>n>>>0?e+1|0:e;c=Ai(aa,0,ba,0);n=c+n|0;d=W+e|0;d=c>>>0>n>>>0?d+1|0:d;e=Ai(_,$,ca,i);n=e+n|0;c=W+d|0;c=e>>>0>n>>>0?c+1|0:c;e=Ai(Z,t,da,i);n=e+n|0;d=W+c|0;d=e>>>0>n>>>0?d+1|0:d;e=Ai(S,0,ka,0);n=e+n|0;c=W+d|0;c=e>>>0>n>>>0?c+1|0:c;d=Ai(P,i,G,0);n=d+n|0;e=W+c|0;e=d>>>0>n>>>0?e+1|0:e;c=Ai(V,0,na,0);n=c+n|0;d=W+e|0;e=Ai(X,i,la,i);za=e+n|0;c=W+(c>>>0>n>>>0?d+1|0:d)|0;c=e>>>0>za>>>0?c+1|0:c;L=c;c=c-((za>>>0<4293918720)-1|0)|0;$a=c;J=za- -1048576|0;e=(c&2097151)<<11|J>>>21;sa=e+l|0;c=(c>>>21|0)+f|0;c=e>>>0>sa>>>0?c+1|0:c;I=c;c=c-((sa>>>0<4293918720)-1|0)|0;ab=c;C=sa- -1048576|0;e=(c&2097151)<<11|C>>>21;K=e+j|0;c=(c>>>21|0)+r|0;c=e>>>0>K>>>0?c+1|0:c;B=c;c=c-((K>>>0<4293918720)-1|0)|0;bb=c;v=K- -1048576|0;e=(c&2097151)<<11|v>>>21;j=e+m|0;c=(c>>21)+p|0;c=e>>>0>j>>>0?c+1|0:c;f=c;c=c-((j>>>0<4293918720)-1|0)|0;p=c;e=j- -1048576|0;r=(c&2097151)<<11|e>>>21;l=r+Ba|0;c=(c>>21)+q|0;c=l>>>0>>0?c+1|0:c;Aa=c;O=l;c=Ai(l,c,-683901,-1);d=W;l=c;c=Ai(Qa,Oa,136657,0);l=l+c|0;d=W+d|0;c=(c>>>0>l>>>0?d+1|0:d)+g|0;g=h+l|0;c=g>>>0>>0?c+1|0:c;d=E&-2097152;Ya=g-d|0;_a=c-((d>>>0>g>>>0)+Ma|0)|0;r=k;l=o;k=Ai(O,Aa,136657,0);g=W;d=e&-2097152;c=j-d|0;Ba=c;f=f-((d>>>0>j>>>0)+p|0)|0;Ta=f;e=Ai(Qa,Oa,-997805,-1);k=e+k|0;d=W+g|0;d=e>>>0>k>>>0?d+1|0:d;e=Ai(c,f,-683901,-1);f=e+k|0;c=W+d|0;Ma=f;h=e>>>0>f>>>0?c+1|0:c;c=Ai(La,Ka,470296,0);d=W;e=c;c=Ai(Ha,Ia,666643,0);f=e+c|0;e=W+d|0;d=ya+(c>>>0>f>>>0?e+1|0:e)|0;c=f+xa|0;d=c>>>0>>0?d+1|0:d;E=c;g=d;d=Ai(La,Ka,666643,0);e=d+oa|0;c=W+wa|0;c=d>>>0>e>>>0?c+1|0:c;d=ta&-2097152;m=e-d|0;x=c-((d>>>0>e>>>0)+Ua|0)|0;d=Ai(ea,i,da,i);c=W;e=d;d=Ai(fa,0,G,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(ga,0,la,i);f=d+e|0;d=W+c|0;d=e>>>0>f>>>0?d+1|0:d;e=Ai(ha,0,na,0);f=e+f|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;d=Ai(ia,i,ka,0);f=d+f|0;e=W+c|0;e=d>>>0>f>>>0?e+1|0:e;c=Ai(ca,i,ma,i);f=c+f|0;d=W+e|0;j=f;f=c>>>0>f>>>0?d+1|0:d;c=z[s+14|0];d=0;p=z[s+10|0]|z[s+11|0]<<8|(z[s+12|0]<<16|z[s+13|0]<<24);k=c<<8|p>>>24;c=z[s+15|0];e=0;c=k|c<<16;d=d|e;d=((d&1)<<31|c>>>1)&2097151;e=d+j|0;c=f;j=e;f=d>>>0>e>>>0?c+1|0:c;k=p>>>4&2097151;c=Ai(ea,i,G,0);d=W;e=c;c=Ai(fa,0,ka,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(ga,0,na,0);e=c+e|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(ha,0,ma,i);p=c+e|0;c=W+d|0;c=e>>>0>p>>>0?c+1|0:c;d=Ai(ia,i,la,i);p=d+p|0;e=W+c|0;c=d>>>0>p>>>0?e+1|0:e;ta=k+p|0;c=ta>>>0

>>0?c+1|0:c;o=c;c=c-((ta>>>0<4293918720)-1|0)|0;cb=c;e=c>>>21|0;q=ta- -1048576|0;c=(c&2097151)<<11|q>>>21;ya=c+j|0;d=e+f|0;d=c>>>0>ya>>>0?d+1|0:d;A=d;c=d-((ya>>>0<4293918720)-1|0)|0;db=c;n=ya- -1048576|0;d=(c&2097151)<<11|n>>>21;m=d+m|0;c=(c>>>21|0)+x|0;c=d>>>0>m>>>0?c+1|0:c;p=c;c=c-((m>>>0<4293918720)-1|0)|0;eb=c;e=c>>21;j=m- -1048576|0;c=(c&2097151)<<11|j>>>21;f=c+E|0;d=e+g|0;d=c>>>0>f>>>0?d+1|0:d;e=qa&-2097152;c=f-e|0;d=d-((e>>>0>f>>>0)+Va|0)|0;Ua=d;qa=c;k=c- -1048576|0;c=d-((c>>>0<4293918720)-1|0)|0;Va=c;d=c>>21;c=(c&2097151)<<11|k>>>21;f=c+Ma|0;e=d+h|0;d=(c>>>0>f>>>0?e+1|0:e)+l|0;c=f;f=f+r|0;d=c>>>0>f>>>0?d+1|0:d;e=ra&-2097152;c=f-e|0;d=d-((e>>>0>f>>>0)+Xa|0)|0;oa=d;l=c;g=c- -1048576|0;c=d-((c>>>0<4293918720)-1|0)|0;wa=c;d=c>>21;c=(c&2097151)<<11|g>>>21;h=c+Ya|0;e=d+_a|0;e=c>>>0>h>>>0?e+1|0:e;c=e-((h>>>0<4293918720)-1|0)|0;ra=c;E=N- -1048576|0;x=D-((N>>>0<4293918720)-1|0)|0;f=h- -1048576|0;r=(c&2097151)<<11|f>>>21;N=r+N|0;c=(c>>21)+D|0;d=E&-2097152;Xa=N-d|0;Ya=(r>>>0>N>>>0?c+1|0:c)-((d>>>0>N>>>0)+x|0)|0;c=f&-2097152;_a=h-c|0;Ma=e-((c>>>0>h>>>0)+ra|0)|0;c=g&-2097152;xa=l-c|0;N=oa-((c>>>0>l>>>0)+wa|0)|0;c=Ai(O,Aa,-997805,-1);d=W;e=c;c=Ai(Qa,Oa,654183,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(Ba,Ta,136657,0);f=c+e|0;c=W+d|0;d=Ua+(e>>>0>f>>>0?c+1|0:c)|0;e=f+qa|0;d=e>>>0>>0?d+1|0:d;c=k&-2097152;oa=e-c|0;wa=d-((c>>>0>e>>>0)+Va|0)|0;c=v&-2097152;qa=K-c|0;D=B-((c>>>0>K>>>0)+bb|0)|0;d=Ai(Sa,Ra,-997805,-1);c=W;e=d;d=Ai(Da,Na,654183,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(Ja,Ga,136657,0);f=d+e|0;d=W+c|0;d=e>>>0>f>>>0?d+1|0:d;c=Ai(Fa,Ea,-683901,-1);f=c+f|0;e=W+d|0;d=I+(c>>>0>f>>>0?e+1|0:e)|0;e=f+sa|0;d=e>>>0>>0?d+1|0:d;c=C&-2097152;v=e-c|0;B=d-((c>>>0>e>>>0)+ab|0)|0;d=Ai(Sa,Ra,654183,0);c=W;e=d;d=Ai(Da,Na,470296,0);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(Ja,Ga,-997805,-1);f=d+e|0;e=W+c|0;d=L+(d>>>0>f>>>0?e+1|0:e)|0;c=f+za|0;d=c>>>0>>0?d+1|0:d;e=c;c=Ai(Fa,Ea,136657,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(Ha,Ia,-683901,-1);f=c+e|0;c=W+d|0;d=J&-2097152;k=f-d|0;g=(e>>>0>f>>>0?c+1|0:c)-((d>>>0>f>>>0)+$a|0)|0;f=(z[s+28|0]|z[s+29|0]<<8|(z[s+30|0]<<16|z[s+31|0]<<24))>>>7|0;c=Ai(Q,0,ea,i);d=W;e=c;c=Ai(R,i,fa,0);h=e+c|0;e=W+d|0;e=c>>>0>h>>>0?e+1|0:e;c=Ai(U,i,ga,0);h=c+h|0;d=W+e|0;d=c>>>0>h>>>0?d+1|0:d;e=Ai(_,$,ha,0);h=e+h|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;e=Ai(Y,0,ia,i);h=e+h|0;d=W+c|0;d=e>>>0>h>>>0?d+1|0:d;e=Ai(aa,0,da,i);h=e+h|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(ba,0,ca,i);h=d+h|0;e=W+c|0;e=d>>>0>h>>>0?e+1|0:e;c=Ai(Z,t,G,0);h=c+h|0;d=W+e|0;d=c>>>0>h>>>0?d+1|0:d;e=Ai(S,0,la,i);h=e+h|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;e=Ai(P,i,ka,0);h=e+h|0;d=W+c|0;d=e>>>0>h>>>0?d+1|0:d;e=Ai(V,0,ma,i);h=e+h|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(X,i,na,0);h=d+h|0;e=W+c|0;e=d>>>0>h>>>0?e+1|0:e;d=e;c=f+h|0;d=c>>>0>>0?d+1|0:d;e=(pa&2097151)<<11|ua>>>21;I=e+c|0;c=(pa>>>21|0)+d|0;c=e>>>0>I>>>0?c+1|0:c;r=c;d=c-((I>>>0<4293918720)-1|0)|0;ra=d;c=d>>>21|0;t=I- -1048576|0;d=(d&2097151)<<11|t>>>21;C=d+k|0;e=c+g|0;e=d>>>0>C>>>0?e+1|0:e;l=e;d=e-((C>>>0<4293918720)-1|0)|0;ua=d;c=d>>21;h=C- -1048576|0;d=(d&2097151)<<11|h>>>21;v=d+v|0;c=c+B|0;c=d>>>0>v>>>0?c+1|0:c;k=c;d=c-((v>>>0<4293918720)-1|0)|0;J=d;c=d>>21;g=v- -1048576|0;f=(d&2097151)<<11|g>>>21;d=f+qa|0;e=c+D|0;e=d>>>0>>0?e+1|0:e;pa=e;D=d;c=Ai(d,e,-683901,-1);e=c+oa|0;d=W+wa|0;B=e;f=c>>>0>e>>>0?d+1|0:d;d=Ai(Qa,Oa,470296,0);m=d+m|0;c=W+p|0;c=d>>>0>m>>>0?c+1|0:c;d=Ai(O,Aa,654183,0);e=j&-2097152;j=d+(m-e|0)|0;c=W+(c-((e>>>0>m>>>0)+eb|0)|0)|0;c=d>>>0>j>>>0?c+1|0:c;e=Ai(Ba,Ta,-997805,-1);j=e+j|0;d=W+c|0;d=e>>>0>j>>>0?d+1|0:d;c=g&-2097152;e=v-c|0;L=e;k=k-((c>>>0>v>>>0)+J|0)|0;G=k;g=Ai(D,pa,136657,0);j=g+j|0;c=W+d|0;e=Ai(e,k,-683901,-1);p=e+j|0;d=W+(g>>>0>j>>>0?c+1|0:c)|0;d=e>>>0>p>>>0?d+1|0:d;k=d;c=d-((p>>>0<4293918720)-1|0)|0;J=c;g=p- -1048576|0;d=(c&2097151)<<11|g>>>21;j=d+B|0;c=(c>>21)+f|0;c=d>>>0>j>>>0?c+1|0:c;d=c-((j>>>0<4293918720)-1|0)|0;v=d;f=j- -1048576|0;m=(d&2097151)<<11|f>>>21;B=m+xa|0;d=(d>>21)+N|0;xa=B;B=m>>>0>B>>>0?d+1|0:d;d=f&-2097152;N=j-d|0;za=c-((d>>>0>j>>>0)+v|0)|0;c=g&-2097152;oa=p-c|0;wa=k-((c>>>0>p>>>0)+J|0)|0;c=Ai(Qa,Oa,666643,0);e=A+W|0;g=c+ya|0;e=g>>>0>>0?e+1|0:e;c=Ai(O,Aa,470296,0);d=n&-2097152;f=c+(g-d|0)|0;d=W+(e-((d>>>0>g>>>0)+db|0)|0)|0;d=c>>>0>f>>>0?d+1|0:d;e=Ai(Ba,Ta,654183,0);f=e+f|0;c=W+d|0;j=f;f=e>>>0>f>>>0?c+1|0:c;c=h&-2097152;g=C-c|0;k=l-((c>>>0>C>>>0)+ua|0)|0;c=Ai(Sa,Ra,470296,0);d=W;e=c;c=Ai(Da,Na,666643,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(Ja,Ga,654183,0);e=c+e|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(Fa,Ea,-997805,-1);h=c+e|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;d=Ai(Ha,Ia,136657,0);e=d+h|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(La,Ka,-683901,-1);h=d+e|0;e=W+c|0;d=r+(d>>>0>h>>>0?e+1|0:e)|0;h=h+I|0;d=h>>>0>>0?d+1|0:d;e=(M&2097151)<<11|F>>>21;c=t&-2097152;C=e+(h-c|0)|0;c=(d-((c>>>0>h>>>0)+ra|0)|0)+(M>>21)|0;c=e>>>0>C>>>0?c+1|0:c;v=c;c=c-((C>>>0<4293918720)-1|0)|0;qa=c;d=g;n=C- -1048576|0;g=(c&2097151)<<11|n>>>21;e=d+g|0;c=(c>>21)+k|0;c=e>>>0>>0?c+1|0:c;J=c;I=e;c=Ai(e,c,-683901,-1);e=c+j|0;d=W+f|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(D,pa,-997805,-1);f=c+e|0;c=W+d|0;c=e>>>0>f>>>0?c+1|0:c;d=Ai(L,G,136657,0);f=d+f|0;e=W+c|0;F=f;l=d>>>0>f>>>0?e+1|0:e;c=q&-2097152;j=ta-c|0;r=o-((c>>>0>ta>>>0)+cb|0)|0;d=Ai(ea,i,ka,0);c=W;e=d;d=Ai(fa,0,la,i);e=e+d|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(ga,0,ma,i);e=d+e|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=Ai(ia,i,na,0);f=d+e|0;e=W+c|0;d=d>>>0>f>>>0?e+1|0:e;c=(z[s+7|0]|z[s+8|0]<<8|(z[s+9|0]<<16|z[s+10|0]<<24))>>>7&2097151;e=c+f|0;t=e;h=c>>>0>e>>>0?d+1|0:d;c=Ai(ea,i,la,i);d=W;e=c;c=Ai(fa,0,na,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(ia,i,ma,i);f=c+e|0;c=W+d|0;k=f;f=e>>>0>f>>>0?c+1|0:c;d=z[s+6|0];c=0;ra=z[s+2|0]|z[s+3|0]<<8|(z[s+4|0]<<16|z[s+5|0]<<24);g=d<<8|ra>>>24;e=c;c=z[s+7|0];d=0;c=c<<16|g;d=d|e;c=((d&3)<<30|c>>>2)&2097151;k=c+k|0;e=f;e=c>>>0>k>>>0?e+1|0:e;g=e;c=e-((k>>>0<4293918720)-1|0)|0;sa=c;A=k- -1048576|0;e=(c&2097151)<<11|A>>>21;o=e+t|0;c=(c>>>21|0)+h|0;c=e>>>0>o>>>0?c+1|0:c;m=c;c=c-((o>>>0<4293918720)-1|0)|0;ua=c;d=c>>>21|0;p=o- -1048576|0;c=(c&2097151)<<11|p>>>21;f=c+j|0;e=d+r|0;e=c>>>0>f>>>0?e+1|0:e;d=Ai(O,Aa,666643,0);f=d+f|0;c=W+e|0;c=d>>>0>f>>>0?c+1|0:c;d=Ai(Ba,Ta,470296,0);e=d+f|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(I,J,136657,0);f=d+e|0;d=W+c|0;d=e>>>0>f>>>0?d+1|0:d;c=Ai(D,pa,654183,0);e=c+f|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(L,G,-997805,-1);j=c+e|0;e=W+d|0;e=c>>>0>j>>>0?e+1|0:e;r=e;c=e-((j>>>0<4293918720)-1|0)|0;M=c;t=j- -1048576|0;e=(c&2097151)<<11|t>>>21;f=e+F|0;c=(c>>21)+l|0;c=e>>>0>f>>>0?c+1|0:c;e=c-((f>>>0<4293918720)-1|0)|0;F=e;l=f- -1048576|0;h=(e&2097151)<<11|l>>>21;q=h+oa|0;e=(e>>21)+wa|0;K=q;q=h>>>0>q>>>0?e+1|0:e;h=f;d=c;c=n&-2097152;n=(x&2097151)<<11|E>>>21;f=(C-c|0)+n|0;c=(v-((c>>>0>C>>>0)+qa|0)|0)+(x>>21)|0;c=f>>>0>>0?c+1|0:c;x=c;c=c-((f>>>0<4293918720)-1|0)|0;oa=c;e=c>>21;C=e;v=f- -1048576|0;O=(c&2097151)<<11|v>>>21;c=Ai(O,e,-683901,-1);e=c+h|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=l&-2097152;wa=e-c|0;ta=d-((c>>>0>e>>>0)+F|0)|0;d=Ai(O,C,136657,0);e=d+j|0;c=W+r|0;c=d>>>0>e>>>0?c+1|0:c;d=t&-2097152;ya=e-d|0;M=c-((d>>>0>e>>>0)+M|0)|0;d=Ai(Ba,Ta,666643,0);e=p&-2097152;h=d+(o-e|0)|0;c=W+(m-((e>>>0>o>>>0)+ua|0)|0)|0;c=d>>>0>h>>>0?c+1|0:c;e=Ai(I,J,-997805,-1);h=e+h|0;d=W+c|0;d=e>>>0>h>>>0?d+1|0:d;c=Ai(D,pa,470296,0);h=c+h|0;e=W+d|0;e=c>>>0>h>>>0?e+1|0:e;d=Ai(L,G,654183,0);h=d+h|0;c=W+e|0;F=h;r=d>>>0>h>>>0?c+1|0:c;e=ra>>>5&2097151;c=Ai(ea,i,na,0);d=W;l=c;c=Ai(fa,0,ma,i);h=l+c|0;d=W+d|0;c=c>>>0>h>>>0?d+1|0:d;d=e+h|0;c=d>>>0>>0?c+1|0:c;l=d;e=c;d=Ai(ea,i,ma,i);c=z[s+2|0];c=c<<16&2031616|(z[s|0]|z[s+1|0]<<8);o=d+c|0;d=W;d=c>>>0>o>>>0?d+1|0:d;n=d;d=d-((o>>>0<4293918720)-1|0)|0;qa=d;c=d>>>21|0;m=o- -1048576|0;d=(d&2097151)<<11|m>>>21;E=d+l|0;c=c+e|0;c=d>>>0>E>>>0?c+1|0:c;p=c;d=c-((E>>>0<4293918720)-1|0)|0;ra=d;j=E- -1048576|0;e=(d&2097151)<<11|j>>>21;h=e+k|0;d=(d>>>21|0)+g|0;d=e>>>0>h>>>0?d+1|0:d;e=Ai(I,J,654183,0);g=A&-2097152;k=e+(h-g|0)|0;c=W+(d-((g>>>0>h>>>0)+sa|0)|0)|0;c=e>>>0>k>>>0?c+1|0:c;d=Ai(D,pa,666643,0);e=d+k|0;c=W+c|0;c=d>>>0>e>>>0?c+1|0:c;d=e;e=Ai(L,G,470296,0);t=d+e|0;d=W+c|0;d=e>>>0>t>>>0?d+1|0:d;l=d;d=d-((t>>>0<4293918720)-1|0)|0;ua=d;c=d>>21;h=t- -1048576|0;d=(d&2097151)<<11|h>>>21;k=d+F|0;e=c+r|0;e=d>>>0>k>>>0?e+1|0:e;d=e-((k>>>0<4293918720)-1|0)|0;A=d;g=k- -1048576|0;r=(d&2097151)<<11|g>>>21;D=r+ya|0;d=(d>>21)+M|0;pa=D;r=r>>>0>D>>>0?d+1|0:d;c=Ai(O,C,-997805,-1);k=c+k|0;d=W+e|0;d=c>>>0>k>>>0?d+1|0:d;c=g&-2097152;M=k-c|0;F=d-((c>>>0>k>>>0)+A|0)|0;d=Ai(O,C,654183,0);e=d+t|0;c=W+l|0;c=d>>>0>e>>>0?c+1|0:c;d=h&-2097152;D=e-d|0;A=c-((d>>>0>e>>>0)+ua|0)|0;c=Ai(I,J,470296,0);d=j&-2097152;g=c+(E-d|0)|0;e=W+(p-((d>>>0>E>>>0)+ra|0)|0)|0;e=c>>>0>g>>>0?e+1|0:e;d=Ai(L,G,666643,0);g=d+g|0;c=W+e|0;k=g;e=d>>>0>g>>>0?c+1|0:c;d=Ai(I,J,666643,0);g=m&-2097152;j=d+(o-g|0)|0;c=W+(n-((qa&4095)+(g>>>0>o>>>0)|0)|0)|0;c=d>>>0>j>>>0?c+1|0:c;t=c;c=c-((j>>>0<4293918720)-1|0)|0;n=c;l=j- -1048576|0;g=(c&2097151)<<11|l>>>21;h=g+k|0;c=(c>>21)+e|0;c=g>>>0>h>>>0?c+1|0:c;e=c;c=c-((h>>>0<4293918720)-1|0)|0;m=c;k=h- -1048576|0;g=(c&2097151)<<11|k>>>21;p=g+D|0;c=(c>>21)+A|0;g=g>>>0>p>>>0?c+1|0:c;c=Ai(O,C,470296,0);d=c+h|0;e=W+e|0;e=c>>>0>d>>>0?e+1|0:e;c=k&-2097152;h=d-c|0;k=e-((c>>>0>d>>>0)+m|0)|0;d=Ai(O,C,666643,0);e=l&-2097152;A=d+(j-e|0)|0;c=W+(t-((e>>>0>j>>>0)+n|0)|0)|0;c=d>>>0>A>>>0?c+1|0:c;e=c>>21;c=(c&2097151)<<11|A>>>21;n=c+h|0;d=e+k|0;d=c>>>0>n>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|n>>>21;m=d+p|0;c=c+g|0;c=d>>>0>m>>>0?c+1|0:c;d=c>>21;c=(c&2097151)<<11|m>>>21;g=c+M|0;d=d+F|0;d=c>>>0>g>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|g>>>21;p=d+pa|0;e=c+r|0;e=d>>>0>p>>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|p>>>21;j=e+wa|0;c=d+ta|0;c=e>>>0>j>>>0?c+1|0:c;e=c>>21;c=(c&2097151)<<11|j>>>21;r=c+K|0;d=e+q|0;d=c>>>0>r>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|r>>>21;t=d+N|0;c=c+za|0;c=d>>>0>t>>>0?c+1|0:c;d=c>>21;c=(c&2097151)<<11|t>>>21;l=c+xa|0;d=d+B|0;d=c>>>0>l>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|l>>>21;h=d+_a|0;e=c+Ma|0;e=d>>>0>h>>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|h>>>21;k=e+Xa|0;c=d+Ya|0;d=v&-2097152;q=f-d|0;c=e>>>0>k>>>0?c+1|0:c;v=q+((c&2097151)<<11|k>>>21)|0;c=(x-((d>>>0>f>>>0)+oa|0)|0)+(c>>21)|0;c=q>>>0>v>>>0?c+1|0:c;B=(c&2097151)<<11|v>>>21;d=c>>21;x=d;c=Ai(B,d,666643,0);d=A&2097151;A=c+d|0;c=W;c=d>>>0>A>>>0?c+1|0:c;f=c;w[a+32|0]=A;w[a+33|0]=(c&255)<<24|A>>>8;c=n&2097151;d=Ai(B,x,470296,0)+c|0;e=W;q=(f&2097151)<<11|A>>>21;n=q+d|0;c=(f>>21)+(c>>>0>d>>>0?e+1|0:e)|0;c=n>>>0>>0?c+1|0:c;w[a+36|0]=(c&2047)<<21|n>>>11;d=c;e=n;w[a+35|0]=(c&7)<<29|e>>>3;w[a+34|0]=((f&65535)<<16|A>>>16)&31|e<<5;f=m&2097151;m=Ai(B,x,654183,0)+f|0;c=W;f=f>>>0>m>>>0?c+1|0:c;n=(d&2097151)<<11|e>>>21;m=n+m|0;d=(d>>21)+f|0;d=m>>>0>>0?d+1|0:d;c=d;w[a+38|0]=(c&63)<<26|m>>>6;f=m;w[a+37|0]=f<<2|(e&1572864)>>>19;e=g&2097151;g=Ai(B,x,-997805,-1)+e|0;d=W;d=e>>>0>g>>>0?d+1|0:d;e=c;c=c>>21;m=(e&2097151)<<11|f>>>21;g=m+g|0;e=c+d|0;e=g>>>0>>0?e+1|0:e;w[a+41|0]=(e&511)<<23|g>>>9;w[a+40|0]=(e&1)<<31|g>>>1;w[a+39|0]=g<<7|(f&2080768)>>>14;d=p&2097151;f=Ai(B,x,136657,0)+d|0;c=W;c=d>>>0>f>>>0?c+1|0:c;d=e;e=d>>21;p=(d&2097151)<<11|g>>>21;f=p+f|0;d=c+e|0;d=f>>>0

>>0?d+1|0:d;w[a+44|0]=(d&4095)<<20|f>>>12;e=f;w[a+43|0]=(d&15)<<28|e>>>4;w[a+42|0]=e<<4|(g&1966080)>>>17;f=j&2097151;g=Ai(B,x,-683901,-1)+f|0;c=W;c=f>>>0>g>>>0?c+1|0:c;f=d;d=d>>21;j=g;g=(f&2097151)<<11|e>>>21;f=j+g|0;d=c+d|0;d=f>>>0>>0?d+1|0:d;w[a+46|0]=(d&127)<<25|f>>>7;w[a+45|0]=f<<1|(e&1048576)>>>20;c=d>>21;d=(d&2097151)<<11|f>>>21;g=d+(r&2097151)|0;e=d>>>0>g>>>0?c+1|0:c;w[a+49|0]=(e&1023)<<22|g>>>10;w[a+48|0]=(e&3)<<30|g>>>2;w[a+47|0]=g<<6|(f&2064384)>>>15;c=e>>21;d=(e&2097151)<<11|g>>>21;e=d+(t&2097151)|0;c=d>>>0>e>>>0?c+1|0:c;w[a+52|0]=(c&8191)<<19|e>>>13;w[a+51|0]=(c&31)<<27|e>>>5;d=l&2097151;l=(c&2097151)<<11|e>>>21;f=d+l|0;d=c>>21;d=f>>>0>>0?d+1|0:d;l=f;w[a+53|0]=f;w[a+50|0]=e<<3|(g&1835008)>>>18;w[a+54|0]=(d&255)<<24|f>>>8;g=(d&2097151)<<11|f>>>21;f=g+(h&2097151)|0;e=d>>21;e=f>>>0>>0?e+1|0:e;w[a+57|0]=(e&2047)<<21|f>>>11;w[a+56|0]=(e&7)<<29|f>>>3;w[a+55|0]=((d&65535)<<16|l>>>16)&31|f<<5;c=e>>21;d=(e&2097151)<<11|f>>>21;e=d+(k&2097151)|0;c=d>>>0>e>>>0?c+1|0:c;w[a+59|0]=(c&63)<<26|e>>>6;w[a+58|0]=e<<2|(f&1572864)>>>19;d=c;c=c>>21;k=(d&2097151)<<11|e>>>21;g=v&2097151;f=k+g|0;d=f>>>0>>0?c+1|0:c;w[a+63|0]=(d&131071)<<15|f>>>17;c=f;w[a+62|0]=(d&511)<<23|c>>>9;w[a+60|0]=c<<7|(e&2080768)>>>14;w[a+61|0]=k+v>>>1;ja(u,64);ja(s,64);if(b){y[b>>2]=64;y[b+4>>2]=0;}T=H+560|0;return 0}function ha(a,b,c){var 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,x=0,y=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,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,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,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0;e=z[c+2|0];M=e<<16&2031616|(z[c|0]|z[c+1|0]<<8);p=z[b+23|0]|z[b+24|0]<<8|(z[b+25|0]<<16|z[b+26|0]<<24);N=p>>>5&2097151;g=Ai(M,0,N,0);f=W;e=z[b+23|0];O=e<<16&2031616|(z[b+21|0]|z[b+22|0]<<8);i=z[c+2|0]|z[c+3|0]<<8|(z[c+4|0]<<16|z[c+5|0]<<24);P=i>>>5&2097151;d=Ai(O,0,P,0);g=d+g|0;e=W+f|0;e=d>>>0>g>>>0?e+1|0:e;Q=(z[c+7|0]|z[c+8|0]<<8|(z[c+9|0]<<16|z[c+10|0]<<24))>>>7&2097151;t=z[b+15|0]|z[b+16|0]<<8|(z[b+17|0]<<16|z[b+18|0]<<24);R=t>>>6&2097151;f=Ai(Q,0,R,0);g=f+g|0;d=W+e|0;l=g;f=f>>>0>g>>>0?d+1|0:d;e=z[b+14|0];d=0;m=z[b+10|0]|z[b+11|0]<<8|(z[b+12|0]<<16|z[b+13|0]<<24);j=e<<8|m>>>24;g=z[b+15|0];g=g<<16;n=d|d;e=g|j;S=((n&1)<<31|e>>>1)&2097151;k=z[c+10|0]|z[c+11|0]<<8|(z[c+12|0]<<16|z[c+13|0]<<24);T=k>>>4&2097151;d=Ai(S,0,T,0);e=d+l|0;f=W+f|0;n=e;g=e>>>0>>0?f+1|0:f;d=z[c+6|0];f=0;l=d<<8|i>>>24;e=z[c+7|0];d=0;e=l|e<<16;f=d|f;U=((f&3)<<30|e>>>2)&2097151;i=U;l=0;e=z[b+19|0];j=e<<8|t>>>24;f=d;d=z[b+20|0];e=0;d=d<<16|j;e=e|f;f=e>>>3|0;V=(e&7)<<29|d>>>3;ia=f;d=Ai(i,l,V,f);j=d+n|0;e=W+g|0;e=d>>>0>j>>>0?e+1|0:e;i=z[c+15|0]|z[c+16|0]<<8|(z[c+17|0]<<16|z[c+18|0]<<24);X=i>>>6&2097151;Y=(z[b+7|0]|z[b+8|0]<<8|(z[b+9|0]<<16|z[b+10|0]<<24))>>>7&2097151;f=Ai(X,0,Y,0);g=f+j|0;d=W+e|0;l=g;g=f>>>0>g>>>0?d+1|0:d;e=z[c+14|0];d=0;j=e<<8|k>>>24;e=d;d=z[c+15|0];f=0;d=d<<16;f=e|f;e=d|j;Z=((f&1)<<31|e>>>1)&2097151;_=m>>>4&2097151;d=Ai(Z,0,_,0);f=d+l|0;e=W+g|0;k=f;l=d>>>0>f>>>0?e+1|0:e;d=z[c+19|0];e=0;g=d<<8|i>>>24;d=z[c+20|0];f=0;d=g|d<<16;f=e|f;e=f>>>3|0;$=(f&7)<<29|d>>>3;A=e;g=e;d=z[b+6|0];e=0;n=z[b+2|0]|z[b+3|0]<<8|(z[b+4|0]<<16|z[b+5|0]<<24);i=d<<8|n>>>24;d=z[b+7|0];d=d<<16|i;e=e|e;aa=((e&3)<<30|d>>>2)&2097151;e=Ai($,g,aa,0);g=e+k|0;d=W+l|0;f=e>>>0>g>>>0?d+1|0:d;e=z[c+23|0];ba=e<<16&2031616|(z[c+21|0]|z[c+22|0]<<8);ca=n>>>5&2097151;e=Ai(ba,0,ca,0);g=e+g|0;d=W+f|0;f=e>>>0>g>>>0?d+1|0:d;e=z[b+2|0];da=e<<16&2031616|(z[b|0]|z[b+1|0]<<8);n=z[c+23|0]|z[c+24|0]<<8|(z[c+25|0]<<16|z[c+26|0]<<24);D=n>>>5&2097151;d=Ai(da,0,D,0);g=d+g|0;e=W+f|0;i=g;l=d>>>0>g>>>0?e+1|0:e;d=Ai(O,h,M,h);e=W;f=d;d=Ai(V,ia,P,0);g=f+d|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;d=Ai(Q,0,S,h);g=d+g|0;e=W+f|0;e=d>>>0>g>>>0?e+1|0:e;f=Ai(T,0,_,0);g=f+g|0;d=W+e|0;d=f>>>0>g>>>0?d+1|0:d;e=Ai(R,0,U,h);f=e+g|0;d=W+d|0;d=e>>>0>f>>>0?d+1|0:d;e=f;f=Ai(X,0,aa,h);g=e+f|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;d=Ai(Z,h,Y,0);g=d+g|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;d=Ai($,A,ca,0);g=d+g|0;e=W+f|0;f=Ai(ba,h,da,h);j=f+g|0;d=W+(d>>>0>g>>>0?e+1|0:e)|0;d=f>>>0>j>>>0?d+1|0:d;g=d;d=d-((j>>>0<4293918720)-1|0)|0;B=d;e=d>>>21|0;v=j- -1048576|0;d=(d&2097151)<<11|v>>>21;i=d+i|0;e=e+l|0;e=d>>>0>i>>>0?e+1|0:e;f=e-((i>>>0<4293918720)-1|0)|0;r=f;s=i- -1048576|0;d=s&-2097152;q=i-d|0;o=e-((d>>>0>i>>>0)+f|0)|0;e=z[c+27|0];d=0;l=e<<8|n>>>24;f=d;d=z[c+28|0];e=0;d=d<<16;f=e|f;e=d|l;ea=((f&3)<<30|e>>>2)&2097151;E=(z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24))>>>7|0;i=Ai(ea,0,E,0);l=W;d=z[b+27|0];e=0;b=z[b+28|0];f=0;d=d<<8|p>>>24|b<<16;e=e|f;fa=((e&3)<<30|d>>>2)&2097151;F=(z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24))>>>7|0;b=Ai(fa,0,F,0);c=b+i|0;d=W+l|0;d=b>>>0>c>>>0?d+1|0:d;f=c;b=Ai(N,0,F,0);c=W;e=b;b=Ai(D,0,E,0);l=e+b|0;e=W+c|0;e=b>>>0>l>>>0?e+1|0:e;b=Ai(ea,h,fa,h);n=b+l|0;e=W+e|0;e=b>>>0>n>>>0?e+1|0:e;l=e;b=e-((n>>>0<4293918720)-1|0)|0;k=b;e=b>>>21|0;c=n- -1048576|0;b=(b&2097151)<<11|c>>>21;i=b+f|0;f=e+d|0;f=b>>>0>i>>>0?f+1|0:f;e=f-((i>>>0<4293918720)-1|0)|0;t=e;m=i- -1048576|0;d=m&-2097152;b=i-d|0;d=f-((e&131071)+(d>>>0>i>>>0)|0)|0;ua=d;va=b;b=Ai(b,d,666643,0);e=b+q|0;d=W+o|0;I=e;i=b>>>0>e>>>0?d+1|0:d;b=c&-2097152;q=n-b|0;x=l-((k&131071)+(b>>>0>n>>>0)|0)|0;b=Ai(ba,h,E,0);c=W;d=b;b=Ai(D,0,fa,h);e=d+b|0;d=W+c|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(O,h,F,0);c=b+e|0;e=W+d|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(N,0,ea,h);c=b+c|0;d=W+e|0;k=c;b=b>>>0>c>>>0?d+1|0:d;c=Ai(N,0,D,0);d=W;e=c;c=Ai($,A,E,0);f=e+c|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(ba,h,fa,h);d=c+f|0;f=W+e|0;f=c>>>0>d>>>0?f+1|0:f;c=Ai(V,ia,F,0);e=c+d|0;d=W+f|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(O,h,ea,h);o=c+e|0;e=W+d|0;e=c>>>0>o>>>0?e+1|0:e;n=e;c=e-((o>>>0<4293918720)-1|0)|0;u=c;d=c>>>21|0;l=o- -1048576|0;c=(c&2097151)<<11|l>>>21;k=c+k|0;e=b+d|0;e=c>>>0>k>>>0?e+1|0:e;c=e;e=e-((k>>>0<4293918720)-1|0)|0;p=e;d=q;b=k- -1048576|0;q=(e&2097151)<<11|b>>>21;f=d+q|0;e=(e>>>21|0)+x|0;e=f>>>0>>0?e+1|0:e;wa=e;d=b&-2097152;b=k-d|0;xa=b;k=c-((d>>>0>k>>>0)+p|0)|0;ya=k;za=f;c=Ai(f,e,470296,0);e=c+I|0;d=W+i|0;d=c>>>0>e>>>0?d+1|0:d;b=Ai(b,k,654183,0);c=b+e|0;f=W+d|0;x=c;i=b>>>0>c>>>0?f+1|0:f;b=l&-2097152;p=o-b|0;o=n-((b>>>0>o>>>0)+u|0)|0;b=Ai($,A,fa,h);c=W;d=b;b=Ai(X,0,E,0);e=d+b|0;d=W+c|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(O,h,D,0);c=b+e|0;e=W+d|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(N,0,ba,h);c=b+c|0;f=W+e|0;f=b>>>0>c>>>0?f+1|0:f;b=Ai(R,0,F,0);c=b+c|0;d=W+f|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(V,ia,ea,h);c=b+c|0;e=W+d|0;n=c;l=b>>>0>c>>>0?e+1|0:e;b=Ai(Z,h,E,0);c=W;d=b;b=Ai(X,0,fa,h);e=d+b|0;d=W+c|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(N,0,$,A);c=b+e|0;e=W+d|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(V,ia,D,0);c=b+c|0;f=W+e|0;f=b>>>0>c>>>0?f+1|0:f;b=Ai(O,h,ba,h);c=b+c|0;d=W+f|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(S,h,F,0);c=b+c|0;e=W+d|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(R,0,ea,h);c=b+c|0;d=W+e|0;d=b>>>0>c>>>0?d+1|0:d;b=d;d=d-((c>>>0<4293918720)-1|0)|0;C=d;e=d>>>21|0;u=c- -1048576|0;d=(d&2097151)<<11|u>>>21;G=d+n|0;f=e+l|0;f=d>>>0>G>>>0?f+1|0:f;q=f;d=f-((G>>>0<4293918720)-1|0)|0;ga=d;k=G- -1048576|0;l=(d&2097151)<<11|k>>>21;f=l+p|0;d=(d>>>21|0)+o|0;d=f>>>0>>0?d+1|0:d;Aa=d;Ba=f;d=Ai(f,d,-997805,-1);f=d+x|0;e=W+i|0;o=f;i=d>>>0>f>>>0?e+1|0:e;l=j;j=g;d=Ai(M,h,V,ia);e=W;f=d;d=Ai(R,0,P,0);g=f+d|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;e=Ai(Q,0,_,0);g=e+g|0;d=W+f|0;d=e>>>0>g>>>0?d+1|0:d;f=Ai(T,0,Y,0);g=f+g|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;f=Ai(S,h,U,h);g=f+g|0;d=W+e|0;d=f>>>0>g>>>0?d+1|0:d;f=Ai(X,0,ca,0);g=f+g|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;d=Ai(Z,h,aa,h);g=d+g|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;e=Ai($,A,da,h);g=e+g|0;d=W+f|0;n=g;g=e>>>0>g>>>0?d+1|0:d;d=Ai(M,h,R,0);e=W;f=d;d=Ai(P,0,S,h);f=f+d|0;e=W+e|0;e=d>>>0>f>>>0?e+1|0:e;d=f;f=Ai(Q,0,Y,0);p=d+f|0;d=W+e|0;d=f>>>0>p>>>0?d+1|0:d;f=Ai(T,0,aa,h);p=f+p|0;e=W+d|0;e=f>>>0>p>>>0?e+1|0:e;d=Ai(U,h,_,0);p=d+p|0;f=W+e|0;f=d>>>0>p>>>0?f+1|0:f;e=Ai(X,0,da,h);p=e+p|0;d=W+f|0;f=Ai(Z,h,ca,0);ja=f+p|0;e=W+(e>>>0>p>>>0?d+1|0:d)|0;e=f>>>0>ja>>>0?e+1|0:e;ka=e;e=e-((ja>>>0<4293918720)-1|0)|0;Ja=e;ha=ja- -1048576|0;f=(e&2097151)<<11|ha>>>21;la=f+n|0;e=(e>>>21|0)+g|0;e=f>>>0>la>>>0?e+1|0:e;y=e;e=e-((la>>>0<4293918720)-1|0)|0;Ka=e;I=la- -1048576|0;f=(e&2097151)<<11|I>>>21;l=f+l|0;e=(e>>>21|0)+j|0;e=f>>>0>l>>>0?e+1|0:e;d=Ai(za,wa,666643,0);f=v&-2097152;g=d+(l-f|0)|0;e=W+(e-((f>>>0>l>>>0)+B|0)|0)|0;e=d>>>0>g>>>0?e+1|0:e;f=Ai(xa,ya,470296,0);g=f+g|0;d=W+e|0;d=f>>>0>g>>>0?d+1|0:d;f=Ai(Ba,Aa,654183,0);J=f+g|0;e=W+d|0;e=f>>>0>J>>>0?e+1|0:e;x=e;e=e-((J>>>0<4293918720)-1|0)|0;ra=e;d=e>>21;p=J- -1048576|0;e=(e&2097151)<<11|p>>>21;B=e+o|0;d=d+i|0;d=e>>>0>B>>>0?d+1|0:d;o=d;e=d-((B>>>0<4293918720)-1|0)|0;ma=e;v=B- -1048576|0;pa=(e&2097151)<<11|v>>>21;n=e>>21;d=Ai(M,h,fa,h);e=W;f=d;d=Ai(N,0,P,0);f=f+d|0;e=W+e|0;e=d>>>0>f>>>0?e+1|0:e;d=Ai(Q,0,V,ia);g=d+f|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;e=Ai(R,0,T,0);g=e+g|0;d=W+f|0;d=e>>>0>g>>>0?d+1|0:d;f=Ai(O,h,U,h);g=f+g|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;f=Ai(X,0,_,0);g=f+g|0;d=W+e|0;d=f>>>0>g>>>0?d+1|0:d;f=Ai(Z,h,S,h);g=f+g|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;d=Ai(Y,0,$,A);g=d+g|0;f=W+e|0;f=d>>>0>g>>>0?f+1|0:f;e=Ai(ca,0,D,0);g=e+g|0;d=W+f|0;d=e>>>0>g>>>0?d+1|0:d;f=Ai(aa,h,ba,h);g=f+g|0;e=W+d|0;e=f>>>0>g>>>0?e+1|0:e;d=g;g=Ai(ea,h,da,h);f=d+g|0;d=W+e|0;i=f;l=f>>>0>>0?d+1|0:d;K=Ai(E,0,F,0);g=K- -1048576|0;L=W;f=L-((K>>>0<4293918720)-1|0)|0;j=f;d=g&-2097152;e=K-d|0;d=L-((f&524287)+(d>>>0>K>>>0)|0)|0;m=(t&2097151)<<11|m>>>21;f=m+e|0;d=(t>>>21|0)+d|0;d=f>>>0>>0?d+1|0:d;Ca=d;Da=f;e=(r&2097151)<<11|s>>>21;m=Ai(f,d,666643,0)+e|0;d=W+(r>>>21|0)|0;d=e>>>0>m>>>0?d+1|0:d;f=Ai(va,ua,470296,0);m=f+m|0;e=W+d|0;e=(f>>>0>m>>>0?e+1|0:e)+l|0;d=i+m|0;e=d>>>0>>0?e+1|0:e;f=Ai(za,wa,654183,0);m=f+d|0;d=W+e|0;qa=i- -1048576|0;l=l-((i>>>0<4293918720)-1|0)|0;K=l;e=Ai(xa,ya,-997805,-1);i=e+m|0;f=W+(f>>>0>m>>>0?d+1|0:d)|0;f=e>>>0>i>>>0?f+1|0:f;d=Ai(Ba,Aa,136657,0);e=qa&-2097152;s=d+(i-e|0)|0;e=W+(f-((e>>>0>i>>>0)+l|0)|0)|0;t=d>>>0>s>>>0?e+1|0:e;f=t+n|0;d=s+pa|0;f=d>>>0>>0?f+1|0:f;na=d;m=f;d=k&-2097152;L=G-d|0;G=q-((d>>>0>G>>>0)+ga|0)|0;f=j>>>21|0;Ea=f;d=c;ta=(j&2097151)<<11|g>>>21;c=Ai(ta,f,-683901,-1);e=d+c|0;d=W+b|0;b=u&-2097152;q=e-b|0;r=(c>>>0>e>>>0?d+1|0:d)-((b>>>0>e>>>0)+C|0)|0;b=Ai(N,0,X,0);c=W;d=b;b=Ai(T,0,E,0);d=d+b|0;e=W+c|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(Z,h,fa,h);c=b+d|0;f=W+e|0;f=b>>>0>c>>>0?f+1|0:f;b=Ai(O,h,$,A);c=b+c|0;d=W+f|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(R,0,D,0);c=b+c|0;d=W+d|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(V,ia,ba,h);c=b+c|0;e=W+d|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(_,0,F,0);c=b+c|0;e=W+e|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(S,h,ea,h);c=b+c|0;f=W+e|0;g=c;b=b>>>0>c>>>0?f+1|0:f;c=Ai(T,0,fa,h);d=W;e=c;c=Ai(Q,0,E,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(O,h,X,0);e=c+e|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(N,0,Z,h);f=c+e|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(V,ia,$,A);d=c+f|0;e=W+e|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(S,h,D,0);d=c+d|0;f=W+e|0;f=c>>>0>d>>>0?f+1|0:f;c=Ai(R,0,ba,h);e=c+d|0;d=W+f|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(Y,0,F,0);e=c+e|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(_,0,ea,h);k=c+e|0;e=W+d|0;e=c>>>0>k>>>0?e+1|0:e;n=e;c=e-((k>>>0<4293918720)-1|0)|0;oa=c;d=c>>>21|0;i=k- -1048576|0;c=(c&2097151)<<11|i>>>21;u=c+g|0;f=b+d|0;f=c>>>0>u>>>0?f+1|0:f;l=f;b=f-((u>>>0<4293918720)-1|0)|0;C=b;d=b>>>21|0;j=u- -1048576|0;b=(b&2097151)<<11|j>>>21;q=b+q|0;e=d+r|0;e=b>>>0>q>>>0?e+1|0:e;g=e;c=e-((q>>>0<4293918720)-1|0)|0;r=c;d=c>>21;b=q- -1048576|0;e=(c&2097151)<<11|b>>>21;c=e+L|0;f=d+G|0;f=c>>>0>>0?f+1|0:f;Fa=f;ga=s- -1048576|0;e=t-((s>>>0<4293918720)-1|0)|0;pa=e;sa=c;c=Ai(c,f,-683901,-1);f=c+na|0;d=W+m|0;d=c>>>0>f>>>0?d+1|0:d;c=ga&-2097152;m=f-c|0;G=m- -1048576|0;e=d-((c>>>0>f>>>0)+e|0)|0;d=e-((m>>>0<4293918720)-1|0)|0;L=d;c=G&-2097152;Pa=m-c|0;La=e-((c>>>0>m>>>0)+d|0)|0;c=Ai(sa,Fa,136657,0);d=v&-2097152;f=c+(B-d|0)|0;e=W+(o-((d>>>0>B>>>0)+ma|0)|0)|0;Ga=f;c=c>>>0>f>>>0?e+1|0:e;b=b&-2097152;H=q-b|0;v=g-((b>>>0>q>>>0)+r|0)|0;b=Ai(Da,Ca,-683901,-1);d=W;e=b;b=Ai(ta,Ea,136657,0);f=e+b|0;d=W+d|0;e=l+(b>>>0>f>>>0?d+1|0:d)|0;d=f+u|0;e=d>>>0>>0?e+1|0:e;b=j&-2097152;t=d-b|0;m=e-((b>>>0>d>>>0)+C|0)|0;b=Ai(ta,Ea,-997805,-1);e=b+k|0;d=W+n|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(Da,Ca,136657,0);e=b+e|0;d=W+d|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(va,ua,-683901,-1);f=b+e|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=i&-2097152;l=f-b|0;j=e-((b>>>0>f>>>0)+oa|0)|0;b=Ai(N,0,T,0);d=W;e=b;b=Ai(Q,0,fa,h);f=e+b|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=Ai(U,h,E,0);f=b+f|0;d=W+e|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(X,0,V,ia);f=b+f|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=Ai(O,h,Z,h);f=b+f|0;d=W+e|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(R,0,$,A);e=b+f|0;f=W+d|0;f=b>>>0>e>>>0?f+1|0:f;b=Ai(_,0,D,0);d=b+e|0;e=W+f|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(S,h,ba,h);f=b+d|0;d=W+e|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(aa,h,F,0);f=b+f|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=Ai(Y,0,ea,h);f=b+f|0;d=W+e|0;g=f;b=b>>>0>f>>>0?d+1|0:d;d=Ai(N,0,Q,0);e=W;f=d;d=Ai(P,0,E,0);i=f+d|0;f=W+e|0;f=d>>>0>i>>>0?f+1|0:f;d=Ai(O,h,T,0);i=d+i|0;e=W+f|0;e=d>>>0>i>>>0?e+1|0:e;f=Ai(U,h,fa,h);i=f+i|0;d=W+e|0;d=f>>>0>i>>>0?d+1|0:d;f=Ai(R,0,X,0);i=f+i|0;e=W+d|0;e=f>>>0>i>>>0?e+1|0:e;f=Ai(V,ia,Z,h);i=f+i|0;d=W+e|0;d=f>>>0>i>>>0?d+1|0:d;e=Ai(S,h,$,A);i=e+i|0;f=W+d|0;f=e>>>0>i>>>0?f+1|0:f;d=Ai(Y,0,D,0);i=d+i|0;e=W+f|0;e=d>>>0>i>>>0?e+1|0:e;f=Ai(_,0,ba,h);i=f+i|0;d=W+e|0;d=f>>>0>i>>>0?d+1|0:d;f=Ai(ca,0,F,0);i=f+i|0;e=W+d|0;e=f>>>0>i>>>0?e+1|0:e;f=Ai(aa,h,ea,h);ma=f+i|0;d=W+e|0;d=f>>>0>ma>>>0?d+1|0:d;B=d;d=d-((ma>>>0<4293918720)-1|0)|0;Qa=d;e=d>>>21|0;r=ma- -1048576|0;d=(d&2097151)<<11|r>>>21;na=d+g|0;e=b+e|0;e=d>>>0>na>>>0?e+1|0:e;s=e;b=e-((na>>>0<4293918720)-1|0)|0;Ra=b;e=b>>>21|0;u=na- -1048576|0;b=(b&2097151)<<11|u>>>21;oa=b+l|0;d=e+j|0;d=b>>>0>oa>>>0?d+1|0:d;q=d;b=d-((oa>>>0<4293918720)-1|0)|0;Sa=b;e=b>>21;o=oa- -1048576|0;b=(b&2097151)<<11|o>>>21;C=b+t|0;e=e+m|0;e=b>>>0>C>>>0?e+1|0:e;n=e;b=e-((C>>>0<4293918720)-1|0)|0;Ma=b;e=b>>21;g=C- -1048576|0;f=(b&2097151)<<11|g>>>21;b=f+H|0;d=e+v|0;d=b>>>0>>0?d+1|0:d;Ha=d;H=b;b=Ai(b,d,-683901,-1);d=b+Ga|0;f=W+c|0;Na=d;i=b>>>0>d>>>0?f+1|0:f;b=p&-2097152;Oa=J-b|0;ra=x-((b>>>0>J>>>0)+ra|0)|0;b=Ai(xa,ya,666643,0);c=I&-2097152;e=b+(la-c|0)|0;d=W+(y-((c>>>0>la>>>0)+Ka|0)|0)|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(Ba,Aa,470296,0);c=b+e|0;e=W+d|0;I=c;c=b>>>0>c>>>0?e+1|0:e;b=ha&-2097152;k=ja-b|0;l=ka-((b>>>0>ja>>>0)+Ja|0)|0;b=Ai(M,h,S,h);d=W;e=b;b=Ai(P,0,_,0);e=e+b|0;f=W+d|0;f=b>>>0>e>>>0?f+1|0:f;b=Ai(Q,0,aa,h);e=b+e|0;d=W+f|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(T,0,ca,0);f=b+e|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=Ai(U,h,Y,0);f=b+f|0;d=W+e|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(Z,h,da,h);f=b+f|0;e=W+d|0;j=f;b=b>>>0>f>>>0?e+1|0:e;d=Ai(M,h,_,0);e=W;f=d;d=Ai(P,0,Y,0);m=f+d|0;f=W+e|0;f=d>>>0>m>>>0?f+1|0:f;e=Ai(Q,0,ca,0);m=e+m|0;d=W+f|0;d=e>>>0>m>>>0?d+1|0:d;f=Ai(T,0,da,h);m=f+m|0;e=W+d|0;e=f>>>0>m>>>0?e+1|0:e;f=Ai(U,h,aa,h);J=f+m|0;d=W+e|0;d=f>>>0>J>>>0?d+1|0:d;x=d;d=d-((J>>>0<4293918720)-1|0)|0;Ta=d;e=d>>>21|0;p=J- -1048576|0;d=(d&2097151)<<11|p>>>21;ka=d+j|0;f=b+e|0;f=d>>>0>ka>>>0?f+1|0:f;v=f;b=f-((ka>>>0<4293918720)-1|0)|0;Ja=b;e=b>>>21|0;t=ka- -1048576|0;b=(b&2097151)<<11|t>>>21;f=b+k|0;d=e+l|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(Ba,Aa,666643,0);ha=b+f|0;e=W+d|0;e=b>>>0>ha>>>0?e+1|0:e;m=e;b=e-((ha>>>0<4293918720)-1|0)|0;Ka=b;d=b>>21;k=ha- -1048576|0;b=(b&2097151)<<11|k>>>21;y=b+I|0;d=c+d|0;d=b>>>0>y>>>0?d+1|0:d;l=d;b=d-((y>>>0<4293918720)-1|0)|0;Ga=b;d=b>>21;j=y- -1048576|0;b=(b&2097151)<<11|j>>>21;c=b+Oa|0;e=d+ra|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(sa,Fa,-997805,-1);d=b+c|0;f=W+e|0;f=b>>>0>d>>>0?f+1|0:f;c=g&-2097152;b=C-c|0;la=b;e=n-((c>>>0>C>>>0)+Ma|0)|0;Ia=e;c=Ai(H,Ha,136657,0);g=c+d|0;d=W+f|0;b=Ai(b,e,-683901,-1);n=b+g|0;d=W+(c>>>0>g>>>0?d+1|0:d)|0;d=b>>>0>n>>>0?d+1|0:d;g=d;b=d-((n>>>0<4293918720)-1|0)|0;ja=b;e=b>>21;f=n- -1048576|0;b=(b&2097151)<<11|f>>>21;I=b+Na|0;d=e+i|0;i=I;d=i>>>0>>0?d+1|0:d;c=d;d=d-((i>>>0<4293918720)-1|0)|0;C=d;b=i- -1048576|0;I=(d&2097151)<<11|b>>>21;ra=I+Pa|0;d=(d>>21)+La|0;La=ra;I=I>>>0>ra>>>0?d+1|0:d;b=b&-2097152;Ma=i-b|0;Na=c-((b>>>0>i>>>0)+C|0)|0;b=f&-2097152;Oa=n-b|0;ra=g-((b>>>0>n>>>0)+ja|0)|0;b=Ai(sa,Fa,654183,0);c=j&-2097152;d=b+(y-c|0)|0;e=W+(l-((c>>>0>y>>>0)+Ga|0)|0)|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(H,Ha,-997805,-1);c=b+d|0;d=W+e|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(la,Ia,136657,0);c=b+c|0;d=W+d|0;Ga=c;b=b>>>0>c>>>0?d+1|0:d;c=o&-2097152;ja=oa-c|0;y=q-((c>>>0>oa>>>0)+Sa|0)|0;c=Ai(Da,Ca,-997805,-1);d=W;e=c;c=Ai(ta,Ea,654183,0);f=e+c|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(va,ua,136657,0);f=c+f|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(za,wa,-683901,-1);f=c+f|0;d=W+d|0;e=s+(c>>>0>f>>>0?d+1|0:d)|0;d=f+na|0;e=d>>>0>>0?e+1|0:e;c=u&-2097152;o=d-c|0;u=e-((c>>>0>d>>>0)+Ra|0)|0;c=Ai(Da,Ca,654183,0);d=W;e=c;c=Ai(ta,Ea,470296,0);f=e+c|0;e=W+d|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(va,ua,-997805,-1);f=c+f|0;d=W+e|0;e=B+(c>>>0>f>>>0?d+1|0:d)|0;c=f+ma|0;e=c>>>0>>0?e+1|0:e;d=c;c=Ai(za,wa,136657,0);f=d+c|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(xa,ya,-683901,-1);e=c+f|0;f=W+d|0;f=c>>>0>e>>>0?f+1|0:f;c=r&-2097152;j=e-c|0;g=f-((c>>>0>e>>>0)+Qa|0)|0;c=Ai(M,h,E,0);d=W;e=c;c=Ai(P,0,fa,h);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(O,h,Q,0);e=c+e|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(V,ia,T,0);e=c+e|0;f=W+d|0;f=c>>>0>e>>>0?f+1|0:f;c=Ai(N,0,U,h);d=c+e|0;e=W+f|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(X,0,S,h);d=c+d|0;e=W+e|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(R,0,Z,h);f=c+d|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(_,0,$,A);e=c+f|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(aa,h,D,0);e=c+e|0;f=W+d|0;f=c>>>0>e>>>0?f+1|0:f;c=Ai(Y,0,ba,h);d=c+e|0;e=W+f|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(da,h,F,0);d=c+d|0;e=W+e|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(ea,h,ca,0);f=c+d|0;d=W+e|0;d=c>>>0>f>>>0?d+1|0:d;c=(K&2097151)<<11|qa>>>21;s=c+f|0;d=(K>>>21|0)+d|0;d=c>>>0>s>>>0?d+1|0:d;n=d;c=d-((s>>>0<4293918720)-1|0)|0;ma=c;e=c>>>21|0;i=s- -1048576|0;c=(c&2097151)<<11|i>>>21;q=c+j|0;e=e+g|0;e=c>>>0>q>>>0?e+1|0:e;l=e;c=e-((q>>>0<4293918720)-1|0)|0;C=c;e=c>>21;j=q- -1048576|0;c=(c&2097151)<<11|j>>>21;o=c+o|0;d=e+u|0;d=c>>>0>o>>>0?d+1|0:d;g=d;d=d-((o>>>0<4293918720)-1|0)|0;r=d;e=d>>21;c=o- -1048576|0;f=(d&2097151)<<11|c>>>21;d=f+ja|0;e=e+y|0;e=d>>>0>>0?e+1|0:e;y=e;qa=d;e=Ai(d,e,-683901,-1);f=e+Ga|0;d=W+b|0;u=f;b=e>>>0>f>>>0?d+1|0:d;d=Ai(sa,Fa,470296,0);e=k&-2097152;k=d+(ha-e|0)|0;f=W+(m-((e>>>0>ha>>>0)+Ka|0)|0)|0;f=d>>>0>k>>>0?f+1|0:f;d=Ai(H,Ha,654183,0);k=d+k|0;e=W+f|0;e=d>>>0>k>>>0?e+1|0:e;f=Ai(la,Ia,-997805,-1);k=f+k|0;d=W+e|0;d=f>>>0>k>>>0?d+1|0:d;e=c&-2097152;c=o-e|0;K=c;g=g-((e>>>0>o>>>0)+r|0)|0;A=g;f=Ai(qa,y,136657,0);k=f+k|0;e=W+d|0;c=Ai(c,g,-683901,-1);m=c+k|0;f=W+(f>>>0>k>>>0?e+1|0:e)|0;f=c>>>0>m>>>0?f+1|0:f;g=f;e=f-((m>>>0<4293918720)-1|0)|0;B=e;c=m- -1048576|0;f=(e&2097151)<<11|c>>>21;k=f+u|0;e=(e>>21)+b|0;e=f>>>0>k>>>0?e+1|0:e;f=e-((k>>>0<4293918720)-1|0)|0;r=f;b=k- -1048576|0;o=(f&2097151)<<11|b>>>21;u=o+Oa|0;f=(f>>21)+ra|0;D=u;u=o>>>0>u>>>0?f+1|0:f;b=b&-2097152;E=k-b|0;F=e-((b>>>0>k>>>0)+r|0)|0;b=c&-2097152;na=m-b|0;oa=g-((b>>>0>m>>>0)+B|0)|0;b=Ai(sa,Fa,666643,0);c=t&-2097152;d=b+(ka-c|0)|0;e=W+(v-((c>>>0>ka>>>0)+Ja|0)|0)|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(H,Ha,470296,0);c=b+d|0;f=W+e|0;f=b>>>0>c>>>0?f+1|0:f;b=Ai(la,Ia,654183,0);c=b+c|0;e=W+f|0;k=c;b=b>>>0>c>>>0?e+1|0:e;c=j&-2097152;j=q-c|0;g=l-((c>>>0>q>>>0)+C|0)|0;c=Ai(Da,Ca,470296,0);d=W;e=c;c=Ai(ta,Ea,666643,0);e=e+c|0;d=W+d|0;d=c>>>0>e>>>0?d+1|0:d;c=Ai(va,ua,654183,0);e=c+e|0;f=W+d|0;f=c>>>0>e>>>0?f+1|0:f;c=Ai(za,wa,-997805,-1);d=c+e|0;e=W+f|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(xa,ya,136657,0);f=c+d|0;e=W+e|0;d=n+(c>>>0>f>>>0?e+1|0:e)|0;c=f+s|0;d=c>>>0>>0?d+1|0:d;e=c;c=Ai(Ba,Aa,-683901,-1);f=e+c|0;d=W+d|0;d=c>>>0>f>>>0?d+1|0:d;c=(pa&2097151)<<11|ga>>>21;e=i&-2097152;r=c+(f-e|0)|0;e=(d-((e>>>0>f>>>0)+ma|0)|0)+(pa>>21)|0;e=c>>>0>r>>>0?e+1|0:e;q=e;c=e-((r>>>0<4293918720)-1|0)|0;C=c;d=c>>21;o=r- -1048576|0;f=(c&2097151)<<11|o>>>21;c=f+j|0;e=d+g|0;e=c>>>0>>0?e+1|0:e;pa=e;B=c;c=Ai(c,e,-683901,-1);d=c+k|0;f=W+b|0;f=c>>>0>d>>>0?f+1|0:f;b=Ai(qa,y,-997805,-1);c=b+d|0;e=W+f|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(K,A,136657,0);c=b+c|0;d=W+e|0;ga=c;j=b>>>0>c>>>0?d+1|0:d;b=p&-2097152;i=J-b|0;l=x-((b>>>0>J>>>0)+Ta|0)|0;b=Ai(M,h,Y,0);c=W;d=b;b=Ai(P,0,aa,h);d=d+b|0;e=W+c|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(Q,0,da,h);c=b+d|0;e=W+e|0;e=b>>>0>c>>>0?e+1|0:e;b=Ai(U,h,ca,0);c=b+c|0;d=W+e|0;e=c;b=b>>>0>e>>>0?d+1|0:d;c=Ai(M,h,aa,h);d=W;f=c;c=Ai(P,0,ca,0);g=f+c|0;f=W+d|0;f=c>>>0>g>>>0?f+1|0:f;c=Ai(U,h,da,h);g=c+g|0;d=W+f|0;d=c>>>0>g>>>0?d+1|0:d;c=d;d=d-((g>>>0<4293918720)-1|0)|0;sa=d;f=d>>>21|0;v=g- -1048576|0;d=(d&2097151)<<11|v>>>21;s=d+e|0;e=b+f|0;e=d>>>0>s>>>0?e+1|0:e;t=e;b=e-((s>>>0<4293918720)-1|0)|0;ka=b;f=b>>>21|0;m=s- -1048576|0;b=(b&2097151)<<11|m>>>21;e=b+i|0;d=f+l|0;d=b>>>0>e>>>0?d+1|0:d;b=Ai(H,Ha,666643,0);f=b+e|0;e=W+d|0;e=b>>>0>f>>>0?e+1|0:e;b=Ai(la,Ia,470296,0);d=b+f|0;e=W+e|0;e=b>>>0>d>>>0?e+1|0:e;b=Ai(B,pa,136657,0);f=b+d|0;d=W+e|0;d=b>>>0>f>>>0?d+1|0:d;b=Ai(qa,y,654183,0);e=b+f|0;f=W+d|0;f=b>>>0>e>>>0?f+1|0:f;b=Ai(K,A,-997805,-1);k=b+e|0;d=W+f|0;d=b>>>0>k>>>0?d+1|0:d;n=d;b=d-((k>>>0<4293918720)-1|0)|0;ha=b;f=b>>21;i=k- -1048576|0;d=(b&2097151)<<11|i>>>21;b=d+ga|0;e=f+j|0;e=b>>>0>>0?e+1|0:e;d=e-((b>>>0<4293918720)-1|0)|0;ga=d;l=b- -1048576|0;j=(d&2097151)<<11|l>>>21;p=j+na|0;d=(d>>21)+oa|0;ja=p;x=j>>>0>p>>>0?d+1|0:d;j=b;f=e;d=o&-2097152;o=(L&2097151)<<11|G>>>21;b=(r-d|0)+o|0;e=(q-((d>>>0>r>>>0)+C|0)|0)+(L>>21)|0;e=b>>>0>>0?e+1|0:e;p=e;e=e-((b>>>0<4293918720)-1|0)|0;ma=e;d=e>>21;r=d;q=b- -1048576|0;H=(e&2097151)<<11|q>>>21;e=Ai(H,d,-683901,-1);j=e+j|0;d=W+f|0;d=e>>>0>j>>>0?d+1|0:d;e=l&-2097152;na=j-e|0;oa=d-((e>>>0>j>>>0)+ga|0)|0;d=Ai(H,r,136657,0);f=d+k|0;e=W+n|0;e=d>>>0>f>>>0?e+1|0:e;d=i&-2097152;C=f-d|0;ga=e-((d>>>0>f>>>0)+ha|0)|0;d=Ai(la,Ia,666643,0);e=m&-2097152;f=d+(s-e|0)|0;e=W+(t-((e>>>0>s>>>0)+ka|0)|0)|0;e=d>>>0>f>>>0?e+1|0:e;d=Ai(B,pa,-997805,-1);j=d+f|0;f=W+e|0;f=d>>>0>j>>>0?f+1|0:f;e=Ai(qa,y,470296,0);j=e+j|0;d=W+f|0;d=e>>>0>j>>>0?d+1|0:d;f=Ai(K,A,654183,0);j=f+j|0;e=W+d|0;L=j;n=f>>>0>j>>>0?e+1|0:e;j=g;g=c;c=Ai(P,0,da,h);d=W;e=c;c=Ai(M,h,ca,0);f=e+c|0;d=W+d|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(M,h,da,h);e=W;J=e;s=c;t=c- -1048576|0;c=e-((c>>>0<4293918720)-1|0)|0;ka=c;e=c>>>21|0;c=(c&2097151)<<11|t>>>21;o=c+f|0;f=e+d|0;f=c>>>0>o>>>0?f+1|0:f;m=f;c=f-((o>>>0<4293918720)-1|0)|0;ha=c;e=c>>>21|0;k=o- -1048576|0;c=(c&2097151)<<11|k>>>21;f=c+j|0;d=e+g|0;d=c>>>0>f>>>0?d+1|0:d;c=Ai(B,pa,654183,0);e=v&-2097152;g=c+(f-e|0)|0;f=W+(d-((sa&8191)+(e>>>0>f>>>0)|0)|0)|0;f=c>>>0>g>>>0?f+1|0:f;c=Ai(qa,y,666643,0);d=c+g|0;e=W+f|0;e=c>>>0>d>>>0?e+1|0:e;c=Ai(K,A,470296,0);i=c+d|0;d=W+e|0;d=c>>>0>i>>>0?d+1|0:d;l=d;c=d-((i>>>0<4293918720)-1|0)|0;G=c;e=c>>21;j=i- -1048576|0;c=(c&2097151)<<11|j>>>21;g=c+L|0;e=e+n|0;e=c>>>0>g>>>0?e+1|0:e;f=e;d=e-((g>>>0<4293918720)-1|0)|0;v=d;c=g- -1048576|0;n=(d&2097151)<<11|c>>>21;L=n+C|0;d=(d>>21)+ga|0;y=L;n=n>>>0>y>>>0?d+1|0:d;e=Ai(H,r,-997805,-1);g=e+g|0;d=W+f|0;c=c&-2097152;qa=g-c|0;ga=(e>>>0>g>>>0?d+1|0:d)-((c>>>0>g>>>0)+v|0)|0;c=Ai(H,r,654183,0);d=c+i|0;f=W+l|0;f=c>>>0>d>>>0?f+1|0:f;c=j&-2097152;L=d-c|0;G=f-((c>>>0>d>>>0)+G|0)|0;c=Ai(B,pa,470296,0);d=k&-2097152;f=c+(o-d|0)|0;e=W+(m-((ha&8191)+(d>>>0>o>>>0)|0)|0)|0;e=c>>>0>f>>>0?e+1|0:e;c=Ai(K,A,666643,0);d=c+f|0;e=W+e|0;e=c>>>0>d>>>0?e+1|0:e;g=d;c=Ai(B,pa,666643,0);d=t&-2097152;k=c+(s-d|0)|0;f=W+(J-((ka&2047)+(d>>>0>s>>>0)|0)|0)|0;f=c>>>0>k>>>0?f+1|0:f;i=f;c=f-((k>>>0<4293918720)-1|0)|0;v=c;d=c>>21;l=k- -1048576|0;c=(c&2097151)<<11|l>>>21;j=c+g|0;e=e+d|0;e=c>>>0>j>>>0?e+1|0:e;c=e-((j>>>0<4293918720)-1|0)|0;t=c;d=c>>21;g=j- -1048576|0;c=(c&2097151)<<11|g>>>21;m=c+L|0;f=d+G|0;c=c>>>0>m>>>0?f+1|0:f;d=Ai(H,r,470296,0);f=d+j|0;e=W+e|0;e=d>>>0>f>>>0?e+1|0:e;d=g&-2097152;g=f-d|0;j=e-((d>>>0>f>>>0)+t|0)|0;d=Ai(H,r,666643,0);e=l&-2097152;o=d+(k-e|0)|0;f=W+(i-((e>>>0>k>>>0)+v|0)|0)|0;f=d>>>0>o>>>0?f+1|0:f;e=f>>21;f=(f&2097151)<<11|o>>>21;g=f+g|0;d=e+j|0;d=f>>>0>g>>>0?d+1|0:d;f=d>>21;d=(d&2097151)<<11|g>>>21;j=d+m|0;e=c+f|0;c=j;e=c>>>0>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|c>>>21;v=e+qa|0;d=d+ga|0;d=e>>>0>v>>>0?d+1|0:d;e=d>>21;d=(d&2097151)<<11|v>>>21;t=d+y|0;e=e+n|0;e=d>>>0>t>>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|t>>>21;m=e+na|0;f=d+oa|0;f=e>>>0>m>>>0?f+1|0:f;e=f>>21;f=(f&2097151)<<11|m>>>21;k=f+ja|0;d=e+x|0;d=f>>>0>k>>>0?d+1|0:d;f=d>>21;d=(d&2097151)<<11|k>>>21;n=d+E|0;e=f+F|0;e=d>>>0>n>>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|n>>>21;i=e+D|0;d=d+u|0;d=e>>>0>i>>>0?d+1|0:d;e=d>>21;d=(d&2097151)<<11|i>>>21;l=d+Ma|0;e=e+Na|0;e=d>>>0>l>>>0?e+1|0:e;d=e>>21;e=(e&2097151)<<11|l>>>21;j=e+La|0;f=d+I|0;d=q&-2097152;x=b-d|0;f=e>>>0>j>>>0?f+1|0:f;q=x+((f&2097151)<<11|j>>>21)|0;e=(p-((b>>>0>>0)+ma|0)|0)+(f>>21)|0;e=q>>>0>>0?e+1|0:e;x=(e&2097151)<<11|q>>>21;d=e>>21;p=d;b=Ai(x,d,666643,0);d=o&2097151;b=b+d|0;f=W;w[a|0]=b;f=b>>>0>>0?f+1|0:f;w[a+1|0]=(f&255)<<24|b>>>8;d=g&2097151;g=Ai(x,p,470296,0)+d|0;e=W;e=d>>>0>g>>>0?e+1|0:e;o=(f&2097151)<<11|b>>>21;g=o+g|0;e=(f>>21)+e|0;e=g>>>0>>0?e+1|0:e;w[a+4|0]=(e&2047)<<21|g>>>11;w[a+3|0]=(e&7)<<29|g>>>3;w[a+2|0]=((f&65535)<<16|b>>>16)&31|g<<5;b=c&2097151;c=Ai(x,p,654183,0)+b|0;f=W;f=b>>>0>c>>>0?f+1|0:f;b=e;e=e>>21;b=(b&2097151)<<11|g>>>21;c=b+c|0;d=e+f|0;d=b>>>0>c>>>0?d+1|0:d;b=d;w[a+6|0]=(d&63)<<26|c>>>6;w[a+5|0]=c<<2|(g&1572864)>>>19;e=v&2097151;f=Ai(x,p,-997805,-1)+e|0;d=W;d=e>>>0>f>>>0?d+1|0:d;e=b>>21;g=f;f=(b&2097151)<<11|c>>>21;b=g+f|0;e=e+d|0;e=b>>>0>>0?e+1|0:e;w[a+9|0]=(e&511)<<23|b>>>9;w[a+8|0]=(e&1)<<31|b>>>1;w[a+7|0]=b<<7|(c&2080768)>>>14;c=t&2097151;d=Ai(x,p,136657,0)+c|0;f=W;f=c>>>0>d>>>0?f+1|0:f;c=e;e=e>>21;g=(c&2097151)<<11|b>>>21;c=g+d|0;d=e+f|0;d=c>>>0>>0?d+1|0:d;w[a+12|0]=(d&4095)<<20|c>>>12;w[a+11|0]=(d&15)<<28|c>>>4;w[a+10|0]=c<<4|(b&1966080)>>>17;b=m&2097151;f=Ai(x,p,-683901,-1)+b|0;e=W;e=b>>>0>f>>>0?e+1|0:e;b=d;d=d>>21;g=f;f=(b&2097151)<<11|c>>>21;b=g+f|0;d=e+d|0;d=b>>>0>>0?d+1|0:d;w[a+14|0]=(d&127)<<25|b>>>7;w[a+13|0]=b<<1|(c&1048576)>>>20;e=d>>21;d=(d&2097151)<<11|b>>>21;c=d+(k&2097151)|0;e=c>>>0>>0?e+1|0:e;w[a+17|0]=(e&1023)<<22|c>>>10;w[a+16|0]=(e&3)<<30|c>>>2;w[a+15|0]=c<<6|(b&2064384)>>>15;b=e;e=e>>21;d=(b&2097151)<<11|c>>>21;b=d+(n&2097151)|0;f=b>>>0>>0?e+1|0:e;w[a+20|0]=(f&8191)<<19|b>>>13;w[a+19|0]=(f&31)<<27|b>>>5;g=(f&2097151)<<11|b>>>21;e=g+(i&2097151)|0;d=f>>21;d=e>>>0>>0?d+1|0:d;g=e;w[a+21|0]=e;w[a+18|0]=b<<3|(c&1835008)>>>18;w[a+22|0]=(d&255)<<24|e>>>8;c=(d&2097151)<<11|e>>>21;b=c+(l&2097151)|0;e=d>>21;e=b>>>0>>0?e+1|0:e;w[a+25|0]=(e&2047)<<21|b>>>11;w[a+24|0]=(e&7)<<29|b>>>3;w[a+23|0]=((d&65535)<<16|g>>>16)&31|b<<5;d=(e&2097151)<<11|b>>>21;c=d+(j&2097151)|0;e=e>>21;e=c>>>0>>0?e+1|0:e;w[a+27|0]=(e&63)<<26|c>>>6;w[a+26|0]=c<<2|(b&1572864)>>>19;b=e;e=e>>21;g=(b&2097151)<<11|c>>>21;f=q&2097151;b=g+f|0;d=e;d=b>>>0>>0?d+1|0:d;w[a+31|0]=(d&131071)<<15|b>>>17;w[a+30|0]=(d&511)<<23|b>>>9;w[a+28|0]=b<<7|(c&2080768)>>>14;w[a+29|0]=g+q>>>1;}function Xb(a,b,c,d){var 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,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,X=0,Y=0;while(1){e=i<<3;g=e+c|0;e=b+e|0;f=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);u=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);l=f<<24|(f&65280)<<8;h=f&16711680;p=h<<24;h=h>>>8|0;j=f&-16777216;e=j>>>24|0;y[g>>2]=p|j<<8|(((u&255)<<24|f>>>8)&-16777216|((u&16777215)<<8|f>>>24)&16711680|(u>>>8&65280|u>>>24));e=e|h|l;y[g+4>>2]=e;i=i+1|0;if((i|0)!=16){continue}break}b=y[a+60>>2];y[d+56>>2]=y[a+56>>2];y[d+60>>2]=b;b=y[a+52>>2];y[d+48>>2]=y[a+48>>2];y[d+52>>2]=b;b=y[a+44>>2];y[d+40>>2]=y[a+40>>2];y[d+44>>2]=b;b=y[a+36>>2];y[d+32>>2]=y[a+32>>2];y[d+36>>2]=b;b=y[a+28>>2];y[d+24>>2]=y[a+24>>2];y[d+28>>2]=b;b=y[a+20>>2];y[d+16>>2]=y[a+16>>2];y[d+20>>2]=b;b=y[a+12>>2];y[d+8>>2]=y[a+8>>2];y[d+12>>2]=b;b=y[a+4>>2];y[d>>2]=y[a>>2];y[d+4>>2]=b;while(1){g=y[d+56>>2];h=y[d+60>>2];B=K<<3;u=B+c|0;b=u;e=y[b>>2];b=y[b+4>>2];f=y[d+36>>2];s=f;m=y[d+32>>2];f=Ci(m,f,50);i=W;f=Ci(m,s,46)^f;i=W^i;f=Ci(m,s,23)^f;e=f+e|0;b=(W^i)+b|0;b=e>>>0>>0?b+1|0:b;f=B+38512|0;i=y[f>>2];e=i+e|0;b=y[f+4>>2]+b|0;b=e>>>0>>0?b+1|0:b;p=y[d+48>>2];w=y[d+40>>2];i=(p^w)&m^p;f=i+e|0;r=y[d+52>>2];n=y[d+44>>2];e=((r^n)&s^r)+b|0;b=(f>>>0>>0?e+1|0:e)+h|0;g=f+g|0;b=g>>>0>>0?b+1|0:b;f=y[d+24>>2];i=f+g|0;e=y[d+28>>2]+b|0;e=f>>>0>i>>>0?e+1|0:e;x=e;y[d+24>>2]=i;y[d+28>>2]=e;e=y[d+4>>2];v=e;f=y[d>>2];e=Ci(f,e,36);h=W;e=Ci(f,v,30)^e;h=W^h;j=g+(Ci(f,v,25)^e)|0;e=b+(W^h)|0;e=g>>>0>j>>>0?e+1|0:e;b=j;h=y[d+16>>2];g=y[d+8>>2];j=f&(h|g)|g&h;l=b+j|0;b=e;e=y[d+20>>2];k=y[d+12>>2];b=b+(v&(e|k)|e&k)|0;b=j>>>0>l>>>0?b+1|0:b;j=b;y[d+56>>2]=l;y[d+60>>2]=b;o=h;q=e;t=B|8;C=t+c|0;b=C;A=y[b>>2];F=y[b+4>>2];h=(m^w)&i^w;b=h+p|0;e=((s^n)&x^n)+r|0;e=b>>>0>>0?e+1|0:e;h=Ci(i,x,50);p=W;h=Ci(i,x,46)^h;p=W^p;r=Ci(i,x,23)^h;h=r+b|0;b=(W^p)+e|0;b=(h>>>0>>0?b+1|0:b)+F|0;e=h+A|0;b=e>>>0>>0?b+1|0:b;h=e;e=t+38512|0;p=y[e>>2];h=h+p|0;e=y[e+4>>2]+b|0;b=h>>>0

>>0?e+1|0:e;e=b+q|0;p=h+o|0;e=p>>>0>>0?e+1|0:e;r=e;y[d+16>>2]=p;y[d+20>>2]=e;b=b+((k|v)&j|k&v)|0;e=h+((f|g)&l|f&g)|0;b=e>>>0>>0?b+1|0:b;h=Ci(l,j,36);o=W;h=Ci(l,j,30)^h;o=W^o;q=e;e=Ci(l,j,25)^h;h=q+e|0;b=(W^o)+b|0;b=e>>>0>h>>>0?b+1|0:b;o=b;y[d+48>>2]=h;y[d+52>>2]=b;q=g;t=k;g=B|16;e=g+c|0;k=y[e>>2];b=k+w|0;e=y[e+4>>2]+n|0;e=b>>>0>>0?e+1|0:e;n=b;b=g+38512|0;k=y[b>>2];g=n+k|0;b=y[b+4>>2]+e|0;b=g>>>0>>0?b+1|0:b;e=g;g=(i^m)&p^m;e=e+g|0;b=((s^x)&r^s)+b|0;b=e>>>0>>0?b+1|0:b;g=Ci(p,r,50);k=W;g=Ci(p,r,46)^g;k=W^k;w=Ci(p,r,23)^g;g=w+e|0;e=(W^k)+b|0;k=g;w=g>>>0>>0?e+1|0:e;e=w+t|0;g=g+q|0;e=k>>>0>g>>>0?e+1|0:e;t=e;y[d+8>>2]=g;y[d+12>>2]=e;b=Ci(h,o,36);e=W;b=Ci(h,o,30)^b;e=W^e;n=Ci(h,o,25)^b;q=n+((f|l)&h|f&l)|0;b=((j|v)&o|j&v)+(W^e)|0;e=w+(q>>>0>>0?b+1|0:b)|0;w=k+q|0;e=w>>>0>>0?e+1|0:e;k=e;y[d+40>>2]=w;y[d+44>>2]=e;q=f;e=m;f=B|24;b=f+c|0;m=y[b>>2];e=e+m|0;b=y[b+4>>2]+s|0;b=e>>>0>>0?b+1|0:b;n=e;e=f+38512|0;m=y[e>>2];f=n+m|0;e=y[e+4>>2]+b|0;e=f>>>0>>0?e+1|0:e;b=f;f=i^(i^p)&g;b=b+f|0;e=(x^(r^x)&t)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(g,t,50);m=W;f=Ci(g,t,46)^f;m=W^m;s=Ci(g,t,23)^f;f=s+b|0;b=(W^m)+e|0;b=f>>>0>>0?b+1|0:b;e=b+v|0;v=f+q|0;e=v>>>0>>0?e+1|0:e;s=e;y[d>>2]=v;y[d+4>>2]=e;e=Ci(w,k,36);m=W;e=Ci(w,k,30)^e;q=W^m;n=Ci(w,k,25)^e;m=n+((h|l)&w|h&l)|0;e=((j|o)&k|j&o)+(W^q)|0;b=b+(m>>>0>>0?e+1|0:e)|0;q=f+m|0;b=q>>>0>>0?b+1|0:b;m=b;y[d+32>>2]=q;y[d+36>>2]=b;b=B|32;e=b+c|0;f=y[e>>2];e=x+y[e+4>>2]|0;f=f+i|0;e=f>>>0>>0?e+1|0:e;b=b+38512|0;i=y[b>>2];f=i+f|0;b=y[b+4>>2]+e|0;b=f>>>0>>0?b+1|0:b;e=f;f=p^(g^p)&v;e=e+f|0;b=(r^(r^t)&s)+b|0;b=e>>>0>>0?b+1|0:b;f=Ci(v,s,50);i=W;f=Ci(v,s,46)^f;i=W^i;x=Ci(v,s,23)^f;f=x+e|0;e=(W^i)+b|0;e=f>>>0>>0?e+1|0:e;n=e;b=e;e=Ci(q,m,36);i=W;e=Ci(q,m,30)^e;x=W^i;A=Ci(q,m,25)^e;i=A+((h|w)&q|h&w)|0;e=((o|k)&m|o&k)+(W^x)|0;b=(i>>>0>>0?e+1|0:e)+b|0;x=f+i|0;b=x>>>0>>0?b+1|0:b;i=b;y[d+24>>2]=x;y[d+28>>2]=b;e=j+n|0;j=f+l|0;e=j>>>0>>0?e+1|0:e;n=e;y[d+56>>2]=j;y[d+60>>2]=e;e=B|40;b=e+c|0;f=y[b>>2];b=r+y[b+4>>2]|0;f=f+p|0;b=f>>>0

>>0?b+1|0:b;e=e+38512|0;l=y[e>>2];f=l+f|0;e=y[e+4>>2]+b|0;e=f>>>0>>0?e+1|0:e;b=f;f=g^(g^v)&j;b=b+f|0;e=(t^(s^t)&n)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(j,n,50);l=W;f=Ci(j,n,46)^f;l=W^l;p=Ci(j,n,23)^f;f=p+b|0;b=(W^l)+e|0;b=f>>>0

>>0?b+1|0:b;e=Ci(x,i,36);l=W;e=Ci(x,i,30)^e;p=W^l;r=Ci(x,i,25)^e;l=r+((q|w)&x|q&w)|0;e=((k|m)&i|k&m)+(W^p)|0;e=(l>>>0>>0?e+1|0:e)+b|0;p=f+l|0;e=p>>>0>>0?e+1|0:e;l=e;y[d+16>>2]=p;y[d+20>>2]=e;b=b+o|0;e=h;h=f+h|0;b=e>>>0>h>>>0?b+1|0:b;r=b;y[d+48>>2]=h;y[d+52>>2]=b;b=B|48;e=b+c|0;f=y[e>>2];e=t+y[e+4>>2]|0;f=f+g|0;e=f>>>0>>0?e+1|0:e;b=b+38512|0;g=y[b>>2];f=g+f|0;b=y[b+4>>2]+e|0;b=f>>>0>>0?b+1|0:b;e=f;f=v^(j^v)&h;e=e+f|0;b=(s^(s^n)&r)+b|0;b=e>>>0>>0?b+1|0:b;f=Ci(h,r,50);g=W;f=Ci(h,r,46)^f;g=W^g;o=Ci(h,r,23)^f;f=o+e|0;e=(W^g)+b|0;e=f>>>0>>0?e+1|0:e;t=e;b=e;e=Ci(p,l,36);g=W;e=Ci(p,l,30)^e;o=W^g;A=Ci(p,l,25)^e;g=A+((q|x)&p|q&x)|0;e=((i|m)&l|i&m)+(W^o)|0;b=(g>>>0>>0?e+1|0:e)+b|0;e=g;g=f+g|0;b=e>>>0>g>>>0?b+1|0:b;o=b;y[d+8>>2]=g;y[d+12>>2]=b;e=k+t|0;A=f+w|0;e=A>>>0>>0?e+1|0:e;t=e;y[d+40>>2]=A;y[d+44>>2]=e;e=B|56;b=e+c|0;f=y[b>>2];b=s+y[b+4>>2]|0;f=f+v|0;b=f>>>0>>0?b+1|0:b;e=e+38512|0;k=y[e>>2];f=k+f|0;e=y[e+4>>2]+b|0;e=f>>>0>>0?e+1|0:e;b=f;f=j^(h^j)&A;b=b+f|0;e=(n^(r^n)&t)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(A,t,50);k=W;f=Ci(A,t,46)^f;k=W^k;w=Ci(A,t,23)^f;f=w+b|0;b=(W^k)+e|0;b=f>>>0>>0?b+1|0:b;e=Ci(g,o,36);k=W;e=Ci(g,o,30)^e;w=W^k;v=Ci(g,o,25)^e;k=v+((p|x)&g|p&x)|0;e=((i|l)&o|i&l)+(W^w)|0;e=(k>>>0>>0?e+1|0:e)+b|0;w=f+k|0;e=w>>>0>>0?e+1|0:e;k=e;y[d>>2]=w;y[d+4>>2]=e;b=b+m|0;v=f+q|0;b=v>>>0>>0?b+1|0:b;s=b;y[d+32>>2]=v;y[d+36>>2]=b;b=B|64;e=b+c|0;f=y[e>>2];e=n+y[e+4>>2]|0;f=f+j|0;e=f>>>0>>0?e+1|0:e;b=b+38512|0;j=y[b>>2];f=j+f|0;b=y[b+4>>2]+e|0;b=f>>>0>>0?b+1|0:b;e=f;f=h^(h^A)&v;e=e+f|0;b=(r^(r^t)&s)+b|0;b=e>>>0>>0?b+1|0:b;f=Ci(v,s,50);j=W;f=Ci(v,s,46)^f;j=W^j;m=Ci(v,s,23)^f;f=m+e|0;e=(W^j)+b|0;e=f>>>0>>0?e+1|0:e;q=e;b=e;e=Ci(w,k,36);j=W;e=Ci(w,k,30)^e;m=W^j;n=Ci(w,k,25)^e;j=n+((g|p)&w|g&p)|0;e=((l|o)&k|l&o)+(W^m)|0;b=(j>>>0>>0?e+1|0:e)+b|0;m=f+j|0;b=m>>>0>>0?b+1|0:b;j=b;y[d+56>>2]=m;y[d+60>>2]=b;e=i+q|0;i=f+x|0;e=i>>>0>>0?e+1|0:e;n=e;y[d+24>>2]=i;y[d+28>>2]=e;e=B|72;F=e+c|0;b=F;f=y[b>>2];b=r+y[b+4>>2]|0;f=f+h|0;b=f>>>0>>0?b+1|0:b;e=e+38512|0;h=y[e>>2];f=h+f|0;e=y[e+4>>2]+b|0;e=f>>>0>>0?e+1|0:e;b=f;f=A^(v^A)&i;b=b+f|0;e=(t^(s^t)&n)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(i,n,50);h=W;f=Ci(i,n,46)^f;h=W^h;q=Ci(i,n,23)^f;f=q+b|0;b=(W^h)+e|0;b=f>>>0>>0?b+1|0:b;e=Ci(m,j,36);h=W;e=Ci(m,j,30)^e;q=W^h;x=Ci(m,j,25)^e;h=x+((g|w)&m|g&w)|0;e=((o|k)&j|o&k)+(W^q)|0;e=(h>>>0>>0?e+1|0:e)+b|0;q=f+h|0;e=q>>>0>>0?e+1|0:e;h=e;y[d+48>>2]=q;y[d+52>>2]=e;b=b+l|0;l=f+p|0;b=l>>>0>>0?b+1|0:b;r=b;y[d+16>>2]=l;y[d+20>>2]=b;f=B|80;Q=f+c|0;e=Q;p=y[e>>2];b=p+A|0;e=y[e+4>>2]+t|0;e=b>>>0

>>0?e+1|0:e;t=b;b=f+38512|0;p=y[b>>2];f=t+p|0;b=y[b+4>>2]+e|0;b=f>>>0

>>0?b+1|0:b;e=f;f=v^(i^v)&l;e=e+f|0;b=(s^(s^n)&r)+b|0;b=e>>>0>>0?b+1|0:b;f=Ci(l,r,50);p=W;f=Ci(l,r,46)^f;p=W^p;x=Ci(l,r,23)^f;f=x+e|0;e=(W^p)+b|0;e=f>>>0>>0?e+1|0:e;t=e;b=e;e=Ci(q,h,36);p=W;e=Ci(q,h,30)^e;x=W^p;A=Ci(q,h,25)^e;p=A+((m|w)&q|m&w)|0;e=((j|k)&h|j&k)+(W^x)|0;b=(p>>>0>>0?e+1|0:e)+b|0;x=f+p|0;b=x>>>0

>>0?b+1|0:b;p=b;y[d+40>>2]=x;y[d+44>>2]=b;e=o+t|0;o=f+g|0;e=o>>>0>>0?e+1|0:e;t=e;y[d+8>>2]=o;y[d+12>>2]=e;b=B|88;e=b+38512|0;R=b+c|0;b=R;g=y[b>>2];f=y[e>>2]+g|0;b=y[e+4>>2]+y[b+4>>2]|0;e=s+(f>>>0>>0?b+1|0:b)|0;b=f+v|0;e=b>>>0>>0?e+1|0:e;f=i^(i^l)&o;b=f+b|0;e=(n^(r^n)&t)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(o,t,50);g=W;f=Ci(o,t,46)^f;g=W^g;v=Ci(o,t,23)^f;f=v+b|0;b=(W^g)+e|0;b=f>>>0>>0?b+1|0:b;e=Ci(x,p,36);g=W;e=Ci(x,p,30)^e;v=W^g;s=Ci(x,p,25)^e;g=s+((m|q)&x|m&q)|0;e=((h|j)&p|h&j)+(W^v)|0;e=(g>>>0>>0?e+1|0:e)+b|0;s=g;g=f+g|0;e=s>>>0>g>>>0?e+1|0:e;v=e;y[d+32>>2]=g;y[d+36>>2]=e;b=b+k|0;k=f+w|0;b=k>>>0>>0?b+1|0:b;w=b;y[d>>2]=k;y[d+4>>2]=b;b=B|96;e=b+38512|0;S=b+c|0;b=S;s=y[b>>2];f=y[e>>2]+s|0;e=y[e+4>>2]+y[b+4>>2]|0;b=n+(f>>>0>>0?e+1|0:e)|0;e=f+i|0;b=e>>>0>>0?b+1|0:b;i=l^(l^o)&k;f=i+e|0;e=(r^(r^t)&w)+b|0;e=f>>>0>>0?e+1|0:e;b=Ci(k,w,50);i=W;b=Ci(k,w,46)^b;i=W^i;n=f;f=Ci(k,w,23)^b;b=n+f|0;e=(W^i)+e|0;e=b>>>0>>0?e+1|0:e;n=e;f=b;b=Ci(g,v,36);i=W;b=Ci(g,v,30)^b;s=W^i;A=Ci(g,v,25)^b;i=A+((q|x)&g|q&x)|0;b=((h|p)&v|h&p)+(W^s)|0;e=(i>>>0>>0?b+1|0:b)+e|0;s=f+i|0;e=s>>>0>>0?e+1|0:e;i=e;y[d+24>>2]=s;y[d+28>>2]=e;e=j+n|0;m=f+m|0;e=m>>>0>>0?e+1|0:e;j=e;y[d+56>>2]=m;y[d+60>>2]=e;b=B|104;e=b+38512|0;T=b+c|0;b=T;n=y[b>>2];f=y[e>>2]+n|0;b=y[e+4>>2]+y[b+4>>2]|0;e=r+(f>>>0>>0?b+1|0:b)|0;b=f+l|0;e=b>>>0>>0?e+1|0:e;l=o^(o^k)&m;f=l+b|0;b=(t^(t^w)&j)+e|0;b=f>>>0>>0?b+1|0:b;e=Ci(m,j,50);l=W;e=Ci(m,j,46)^e;l=W^l;r=Ci(m,j,23)^e;f=r+f|0;e=(W^l)+b|0;e=f>>>0>>0?e+1|0:e;n=e;b=e;e=Ci(s,i,36);l=W;e=Ci(s,i,30)^e;r=W^l;A=Ci(s,i,25)^e;l=A+((g|x)&s|g&x)|0;e=((p|v)&i|p&v)+(W^r)|0;b=(l>>>0>>0?e+1|0:e)+b|0;r=f+l|0;b=r>>>0>>0?b+1|0:b;l=b;y[d+16>>2]=r;y[d+20>>2]=b;b=h+n|0;q=f+q|0;b=q>>>0>>0?b+1|0:b;h=b;y[d+48>>2]=q;y[d+52>>2]=b;b=B|112;e=b+38512|0;A=b+c|0;f=A;n=y[f>>2];b=y[e>>2]+n|0;e=y[e+4>>2]+y[f+4>>2]|0;e=t+(b>>>0>>0?e+1|0:e)|0;b=b+o|0;e=b>>>0>>0?e+1|0:e;f=k^(k^m)&q;b=f+b|0;e=(w^(j^w)&h)+e|0;e=b>>>0>>0?e+1|0:e;f=Ci(q,h,50);o=W;f=Ci(q,h,46)^f;o=W^o;t=Ci(q,h,23)^f;f=t+b|0;b=(W^o)+e|0;b=f>>>0>>0?b+1|0:b;n=b;e=b;b=Ci(r,l,36);o=W;b=Ci(r,l,30)^b;t=W^o;G=Ci(r,l,25)^b;o=G+((g|s)&r|g&s)|0;b=((i|v)&l|i&v)+(W^t)|0;e=(o>>>0>>0?b+1|0:b)+e|0;t=f+o|0;e=t>>>0>>0?e+1|0:e;o=e;y[d+8>>2]=t;y[d+12>>2]=e;e=p+n|0;p=f+x|0;e=p>>>0>>0?e+1|0:e;f=e;y[d+40>>2]=p;y[d+44>>2]=e;b=B|120;e=b+38512|0;U=b+c|0;b=U;n=y[b>>2];x=y[e>>2]+n|0;e=y[e+4>>2]+y[b+4>>2]|0;b=w+(n>>>0>x>>>0?e+1|0:e)|0;e=k+x|0;b=(j^(h^j)&f)+(e>>>0>>0?b+1|0:b)|0;h=Ci(p,f,50);j=W;h=Ci(p,f,46)^h;j=W^j;k=m^(m^q)&p;e=k+e|0;h=Ci(p,f,23)^h;f=e+h|0;e=(W^j)+(e>>>0>>0?b+1|0:b)|0;e=f>>>0>>0?e+1|0:e;h=f;j=e;b=e;e=Ci(t,o,36);p=W;e=Ci(t,o,30)^e;k=W^p;w=Ci(t,o,25)^e;p=w+((r|s)&t|r&s)|0;e=((i|l)&o|i&l)+(W^k)|0;b=(p>>>0>>0?e+1|0:e)+b|0;f=f+p|0;b=f>>>0

>>0?b+1|0:b;y[d>>2]=f;y[d+4>>2]=b;e=j+v|0;k=g;g=g+h|0;e=k>>>0>g>>>0?e+1|0:e;y[d+32>>2]=g;y[d+36>>2]=e;if((K|0)!=64){K=K+16|0;h=(K<<3)+c|0;g=y[u>>2];i=y[u+4>>2];b=y[F>>2];V=b;e=y[F+4>>2];X=e;f=y[A+4>>2];w=f;F=y[A>>2];f=Ci(F,f,45);j=W;l=((w&63)<<26|F>>>6)^(Ci(F,w,3)^f);f=l+b|0;b=(W^j^w>>>6)+e|0;e=(f>>>0>>0?b+1|0:b)+i|0;b=f+g|0;e=b>>>0>>0?e+1|0:e;f=y[C+4>>2];g=f;j=y[C>>2];f=Ci(j,f,63);i=W;l=((g&127)<<25|j>>>7)^(Ci(j,g,56)^f);f=l+b|0;e=(W^i^g>>>7)+e|0;x=f;y[h>>2]=f;e=f>>>0>>0?e+1|0:e;y[h+4>>2]=e;b=y[u+20>>2];l=b;k=y[u+16>>2];h=b;H=y[u+88>>2];b=y[u+92>>2];G=b;i=b;p=e;b=Ci(f,e,45);v=W;n=Ci(f,e,3)^b;b=e;e=e>>>6|0;m=n^((b&63)<<26|f>>>6);f=m+H|0;b=(e^(W^v))+i|0;e=(f>>>0>>0?b+1|0:b)+h|0;b=f+k|0;e=b>>>0>>0?e+1|0:e;f=y[u+28>>2];h=f;i=y[u+24>>2];f=Ci(i,f,63);o=W;f=((h&127)<<25|i>>>7)^(Ci(i,h,56)^f);m=f+b|0;b=(W^o^h>>>7)+e|0;b=f>>>0>m>>>0?b+1|0:b;o=b;y[u+144>>2]=m;y[u+148>>2]=b;r=y[u+80>>2];b=r+j|0;I=y[u+84>>2];e=I+g|0;v=y[u+120>>2];f=y[u+124>>2];g=Ci(v,f,45);j=W;q=((f&63)<<26|v>>>6)^(Ci(v,f,3)^g);g=q+b|0;e=(W^j^f>>>6)+(b>>>0>>0?e+1|0:e)|0;b=g>>>0>>0?e+1|0:e;e=Ci(k,l,63);j=W;n=g;g=((l&127)<<25|k>>>7)^(Ci(k,l,56)^e);t=n+g|0;b=(W^j^l>>>7)+b|0;b=g>>>0>t>>>0?b+1|0:b;l=b;y[u+136>>2]=t;y[u+140>>2]=b;b=y[u+36>>2];q=b;n=y[u+32>>2];k=n;L=y[u+104>>2];e=y[u+108>>2];M=e;g=e;e=Ci(m,o,45);j=W;e=Ci(m,o,3)^e;s=W^j;A=((o&63)<<26|m>>>6)^e;j=A+L|0;e=(o>>>6^s)+g|0;b=(j>>>0>>0?e+1|0:e)+b|0;e=j+k|0;b=e>>>0>>0?b+1|0:b;g=y[u+44>>2];j=g;k=y[u+40>>2];g=Ci(k,g,63);s=W;g=Ci(k,j,56)^g;A=W^s;g=((j&127)<<25|k>>>7)^g;s=g+e|0;e=(j>>>7^A)+b|0;e=g>>>0>s>>>0?e+1|0:e;g=e;y[u+160>>2]=s;y[u+164>>2]=e;N=y[u+96>>2];b=y[u+100>>2];O=b;e=b;b=Ci(t,l,45);A=W;b=Ci(t,l,3)^b;B=W^A;C=((l&63)<<26|t>>>6)^b;A=C+N|0;e=(l>>>6^B)+e|0;b=(A>>>0>>0?e+1|0:e)+h|0;e=i+A|0;b=e>>>0>>0?b+1|0:b;h=Ci(n,q,63);i=W;h=((q&127)<<25|n>>>7)^(Ci(n,q,56)^h);n=h+e|0;e=(W^i^q>>>7)+b|0;e=h>>>0>n>>>0?e+1|0:e;h=e;y[u+152>>2]=n;y[u+156>>2]=e;b=y[u+52>>2];B=b;C=y[u+48>>2];q=C;e=b;b=Ci(s,g,45);i=W;b=Ci(s,g,3)^b;A=W^i;D=((g&63)<<26|s>>>6)^b;i=D+v|0;b=(g>>>6^A)+f|0;e=(i>>>0>>0?b+1|0:b)+e|0;b=i+q|0;e=b>>>0>>0?e+1|0:e;i=y[u+60>>2];D=i;q=y[u+56>>2];i=Ci(q,i,63);A=W;i=Ci(q,D,56)^i;J=W^A;i=((D&127)<<25|q>>>7)^i;A=i+b|0;e=(D>>>7^J)+e|0;e=i>>>0>A>>>0?e+1|0:e;i=e;y[u+176>>2]=A;y[u+180>>2]=e;P=y[u+112>>2];b=y[u+116>>2];J=b;e=Ci(n,h,45);E=W;e=Ci(n,h,3)^e;Y=W^E;e=((h&63)<<26|n>>>6)^e;E=e+P|0;b=(h>>>6^Y)+b|0;e=(e>>>0>E>>>0?b+1|0:b)+j|0;b=k+E|0;e=b>>>0>>0?e+1|0:e;j=Ci(C,B,63);k=W;E=b;b=B>>>7|0;j=((B&127)<<25|C>>>7)^(Ci(C,B,56)^j);B=E+j|0;e=(b^(W^k))+e|0;e=j>>>0>B>>>0?e+1|0:e;j=e;y[u+168>>2]=B;y[u+172>>2]=e;e=p+D|0;k=q+x|0;b=k>>>0>>0?e+1|0:e;e=Ci(B,j,45);q=W;C=((j&63)<<26|B>>>6)^(Ci(B,j,3)^e);k=C+k|0;b=(W^q^j>>>6)+b|0;b=k>>>0>>0?b+1|0:b;e=u- -64|0;C=y[e>>2];e=y[e+4>>2];D=e;e=Ci(C,e,63);q=W;e=Ci(C,D,56)^e;E=W^q;q=k;k=((D&127)<<25|C>>>7)^e;q=q+k|0;b=(D>>>7^E)+b|0;b=k>>>0>q>>>0?b+1|0:b;k=b;y[u+184>>2]=q;y[u+188>>2]=b;e=l+D|0;b=t+C|0;e=b>>>0>>0?e+1|0:e;l=Ci(A,i,45);t=W;l=Ci(A,i,3)^l;C=W^t;l=((i&63)<<26|A>>>6)^l;t=l+b|0;b=(i>>>6^C)+e|0;C=l>>>0>t>>>0?b+1|0:b;b=y[u+72>>2];e=y[u+76>>2];l=Ci(b,e,63);D=W;E=Ci(b,e,56)^l;l=e;e=e>>>7|0;b=E^((l&127)<<25|b>>>7);t=b+t|0;e=(e^(W^D))+C|0;e=b>>>0>t>>>0?e+1|0:e;l=e;y[u+192>>2]=t;y[u+196>>2]=e;b=Ci(r,I,63);e=W;C=((I&127)<<25|r>>>7)^(Ci(r,I,56)^b);r=C+V|0;e=(W^e^I>>>7)+X|0;b=o+(r>>>0>>0?e+1|0:e)|0;e=m+r|0;b=e>>>0>>0?b+1|0:b;o=Ci(q,k,45);m=W;o=Ci(q,k,3)^o;r=W^m;o=((k&63)<<26|q>>>6)^o;m=o+e|0;e=(k>>>6^r)+b|0;e=o>>>0>m>>>0?e+1|0:e;o=e;y[u+200>>2]=m;y[u+204>>2]=e;C=y[Q>>2];e=y[Q+4>>2];b=Ci(H,G,63);r=W;b=Ci(H,G,56)^b;I=W^r;r=n;n=((G&127)<<25|H>>>7)^b;r=r+n|0;b=(G>>>7^I)+h|0;e=(r>>>0>>0?b+1|0:b)+e|0;b=r+C|0;e=b>>>0>>0?e+1|0:e;h=Ci(t,l,45);r=W;h=Ci(t,l,3)^h;n=W^r;h=((l&63)<<26|t>>>6)^h;r=h+b|0;e=(l>>>6^n)+e|0;e=h>>>0>r>>>0?e+1|0:e;h=e;y[u+208>>2]=r;y[u+212>>2]=e;n=y[R>>2];C=y[R+4>>2];b=Ci(N,O,63);e=W;H=((O&127)<<25|N>>>7)^(Ci(N,O,56)^b);s=H+s|0;b=(W^e^O>>>7)+g|0;e=(s>>>0>>0?b+1|0:b)+C|0;b=s+n|0;e=b>>>0>>0?e+1|0:e;g=Ci(m,o,45);s=W;n=b;b=o>>>6|0;g=((o&63)<<26|m>>>6)^(Ci(m,o,3)^g);o=n+g|0;e=(b^(W^s))+e|0;e=g>>>0>o>>>0?e+1|0:e;g=e;y[u+216>>2]=o;y[u+220>>2]=e;s=y[S>>2];b=y[S+4>>2];e=Ci(L,M,63);m=W;e=Ci(L,M,56)^e;n=W^m;D=B;B=((M&127)<<25|L>>>7)^e;m=D+B|0;e=(M>>>7^n)+j|0;b=(m>>>0>>0?e+1|0:e)+b|0;e=m+s|0;b=e>>>0>>0?b+1|0:b;j=Ci(r,h,45);m=W;n=e;e=h>>>6|0;h=((h&63)<<26|r>>>6)^(Ci(r,h,3)^j);j=n+h|0;e=(e^(W^m))+b|0;e=h>>>0>j>>>0?e+1|0:e;h=e;y[u+224>>2]=j;y[u+228>>2]=e;r=y[T>>2];s=y[T+4>>2];b=Ci(P,J,63);e=W;n=((J&127)<<25|P>>>7)^(Ci(P,J,56)^b);m=n+A|0;e=(W^e^J>>>7)+i|0;b=(m>>>0>>0?e+1|0:e)+s|0;e=m+r|0;b=e>>>0>>0?b+1|0:b;i=Ci(o,g,45);m=W;n=e;e=g>>>6|0;g=((g&63)<<26|o>>>6)^(Ci(o,g,3)^i);i=n+g|0;e=(e^(W^m))+b|0;e=g>>>0>i>>>0?e+1|0:e;g=e;y[u+232>>2]=i;y[u+236>>2]=e;b=Ci(v,f,63);e=W;n=Ci(v,f,56)^b;b=f>>>7|0;o=n^((f&127)<<25|v>>>7);f=o+F|0;b=(b^(W^e))+w|0;e=k+(f>>>0>>0?b+1|0:b)|0;b=f+q|0;e=b>>>0>>0?e+1|0:e;f=Ci(j,h,45);o=W;k=b;b=h>>>6|0;h=((h&63)<<26|j>>>6)^(Ci(j,h,3)^f);f=k+h|0;e=(b^(W^o))+e|0;y[u+240>>2]=f;y[u+244>>2]=f>>>0>>0?e+1|0:e;h=y[U>>2];j=y[U+4>>2];b=Ci(x,p,63);e=W;b=Ci(x,p,56)^b;o=W^e;e=p>>>7|0;p=((p&127)<<25|x>>>7)^b;f=p+t|0;b=(e^o)+l|0;e=(f>>>0

>>0?b+1|0:b)+j|0;b=f+h|0;e=b>>>0>>0?e+1|0:e;f=Ci(i,g,45);h=W;k=b;b=g>>>6|0;g=((g&63)<<26|i>>>6)^(Ci(i,g,3)^f);f=k+g|0;e=(b^(W^h))+e|0;y[u+248>>2]=f;y[u+252>>2]=f>>>0>>0?e+1|0:e;continue}break}e=b+y[a+4>>2]|0;b=f+y[a>>2]|0;e=b>>>0>>0?e+1|0:e;y[a>>2]=b;y[a+4>>2]=e;b=y[a+12>>2]+y[d+12>>2]|0;e=y[d+8>>2];c=e+y[a+8>>2]|0;y[a+8>>2]=c;y[a+12>>2]=c>>>0>>0?b+1|0:b;e=y[a+20>>2]+y[d+20>>2]|0;c=y[d+16>>2];b=c+y[a+16>>2]|0;y[a+16>>2]=b;y[a+20>>2]=b>>>0>>0?e+1|0:e;e=y[a+28>>2]+y[d+28>>2]|0;c=y[d+24>>2];b=c+y[a+24>>2]|0;y[a+24>>2]=b;y[a+28>>2]=b>>>0>>0?e+1|0:e;b=y[a+36>>2]+y[d+36>>2]|0;e=y[d+32>>2];c=e+y[a+32>>2]|0;y[a+32>>2]=c;y[a+36>>2]=c>>>0>>0?b+1|0:b;e=y[a+44>>2]+y[d+44>>2]|0;c=y[d+40>>2];b=c+y[a+40>>2]|0;y[a+40>>2]=b;y[a+44>>2]=b>>>0>>0?e+1|0:e;b=y[a+52>>2]+y[d+52>>2]|0;e=y[d+48>>2];c=e+y[a+48>>2]|0;y[a+48>>2]=c;y[a+52>>2]=c>>>0>>0?b+1|0:b;e=y[a+60>>2]+y[d+60>>2]|0;c=y[d+56>>2];b=c+y[a+56>>2]|0;y[a+56>>2]=b;y[a+60>>2]=b>>>0>>0?e+1|0:e;}function Pb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,A=0,B=0,C=0,D=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=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;B=T-4096|0;T=B;a:{if(!a){break a}b:{c:{f=y[a+36>>2];d:{if((f|0)!=2){ja=y[a+4>>2];g=z[b+8|0];ca=y[b>>2];break d}ja=y[a+4>>2];ca=y[b>>2];g=z[b+8|0];if(ca|g>>>0>=2){break c}ca=0;}o(B+3072|0,0,1024);o(B+2104|0,0,968);y[B+2048>>2]=ca;y[B+2052>>2]=0;K=y[b+4>>2];y[B+2064>>2]=g&255;y[B+2068>>2]=0;y[B+2056>>2]=K;y[B+2060>>2]=0;y[B+2072>>2]=y[a+16>>2];y[B+2076>>2]=0;K=y[a+8>>2];y[B+2088>>2]=f;y[B+2092>>2]=0;y[B+2080>>2]=K;y[B+2084>>2]=0;if(!y[a+20>>2]){break b}K=0;while(1){f=p&127;if(!f){R=R+1|0;K=R?K:K+1|0;y[B+2096>>2]=R;y[B+2100>>2]=K;o(B,0,1024);s=B+1024|0;o(s,0,1024);d=B+3072|0;oc(d,B+2048|0,B);oc(d,B,s);}f=(B+1024|0)+(f<<3)|0;s=y[f+4>>2];d=(p<<3)+ja|0;y[d>>2]=y[f>>2];y[d+4>>2]=s;s=y[a+20>>2];p=p+1|0;if(s>>>0>p>>>0){continue}break}break b}s=y[a+20>>2];la=1;}fa=g&255;f=fa|ca;K=f?0:2;if(K>>>0>=s>>>0){break a}ma=!f;f=y[a+24>>2];ia=y[b+4>>2];R=(E(f,ia)+K|0)+E(s,fa)|0;p=R+((R>>>0)%(f>>>0)|0?-1:f-1|0)|0;na=fa+1|0;while(1){g=y[a+28>>2];f=y[a+24>>2];ka=((R>>>0)%(f>>>0)|0)==1?R-1|0:p;p=la?y[y[a>>2]+4>>2]+(ka<<10)|0:(K<<3)+ja|0;d=y[p>>2];p=y[p+4>>2];y[b+12>>2]=K;g=ma?ia:(p>>>0)%(g>>>0)|0;e:{if(!ca){if(!fa){p=K-1|0;c=0;break e}p=E(s,fa);if((g|0)==(ia|0)){p=(p+K|0)-1|0;c=0;break e}p=p-!K|0;c=0;break e}p=f+((g|0)==(ia|0)?(s^-1)+K|0:(K?0:-1)-s|0)|0;c=0;if((fa|0)==3){break e}c=E(s,na);}s=c;k=y[y[a>>2]+4>>2];j=k+(E(f,g)<<10)|0;g=p-1|0;c=g+s|0;e=g>>>0>c>>>0;Ai(d,0,d,0);Ai(p,0,W,0);p=W;g=c-p|0;s=0;m=0;f:{g:{h:{i:{j:{k:{l:{m:{n:{o:{p=e-(c>>>0

>>0)|0;if(p){if(!f){break o}break n}U=g-E((g>>>0)/(f>>>0)|0,f)|0;V=0;W=0;break f}if(!g){break m}break l}d=f-1|0;if(!(d&f)){break k}d=(H(f)+33|0)-H(p)|0;h=0-d|0;break i}U=0;V=p;W=0;break f}s=32-H(p)|0;if(s>>>0<31){break j}break h}U=d&g;V=0;if((f|0)==1){break g}g=zi(f);f=g&31;if((g&63)>>>0>=32){d=p>>>f|0;}else {s=p>>>f|0;d=0;}W=s;break f}d=s+1|0;h=63-s|0;}s=d&63;c=s&31;if(s>>>0>=32){s=0;e=p>>>c|0;}else {s=p>>>c|0;e=((1<>>c;}h=h&63;c=h&31;if(h>>>0>=32){p=g<>>32-c|p<>>31;s=e<<1|p>>>31;c=i-(n+(s>>>0>h>>>0)|0)>>31;G=c&f;e=s-G|0;s=n-(s>>>0>>0)|0;p=p<<1|g>>>31;g=m|g<<1;m=c&1;d=d-1|0;if(d){continue}break}}U=e;V=s;W=p<<1|g>>>31;break f}U=g;V=p;p=0;}W=p;}W=V;p=(U<<10)+j|0;f=k+(ka<<10)|0;s=k+(R<<10)|0;p:{if(ca){oc(f,p,s);break p}t(B+3072|0,p,1024);g=0;while(1){p=g<<3;d=B+3072|0;c=p+d|0;e=y[c>>2];k=f+p|0;m=y[k>>2];k=y[c+4>>2]^y[k+4>>2];y[c>>2]=e^m;y[c+4>>2]=k;e=p|8;c=e+d|0;k=y[c>>2];e=f+e|0;m=y[e>>2];e=y[c+4>>2]^y[e+4>>2];y[c>>2]=k^m;y[c+4>>2]=e;e=p|16;c=e+d|0;k=y[c>>2];e=f+e|0;m=y[e>>2];e=y[c+4>>2]^y[e+4>>2];y[c>>2]=k^m;y[c+4>>2]=e;c=p|24;p=c+d|0;e=y[p>>2];c=c+f|0;k=y[c>>2];c=y[p+4>>2]^y[c+4>>2];y[p>>2]=e^k;y[p+4>>2]=c;g=g+4|0;if((g|0)!=128){continue}break}t(B+2048|0,d,1024);p=0;g=0;while(1){f=(B+3072|0)+(g<<7)|0;k=y[f+56>>2];c=y[f+24>>2];e=k+c|0;n=y[f+60>>2];d=y[f+28>>2];m=n+d|0;j=Ai(c<<1&-2,(d<<1|c>>>31)&1,k,0);d=j+e|0;c=W+(c>>>0>e>>>0?m+1|0:m)|0;m=d>>>0>>0?c+1|0:c;j=Ci(d^y[f+120>>2],m^y[f+124>>2],32);c=y[f+88>>2];h=j+c|0;u=W;e=y[f+92>>2];i=u+e|0;G=Ai(j,0,c<<1&-2,(e<<1|c>>>31)&1);e=G+h|0;c=W+(c>>>0>h>>>0?i+1|0:i)|0;M=e>>>0>>0?c+1|0:c;F=Ci(k^e,n^M,40);ga=W;c=m+ga|0;i=c+1|0;l=c;c=d+F|0;k=c>>>0>>0?i:l;d=Ai(F,0,d<<1&-2,(m<<1|d>>>31)&1);G=d+c|0;c=W+k|0;X=d>>>0>G>>>0?c+1|0:c;u=Ci(G^j,u^X,48);l=W;C=l;r=y[f+44>>2];d=y[f+12>>2];k=r+d|0;m=y[f+40>>2];c=y[f+8>>2];j=m+c|0;h=Ai(c<<1&-2,(d<<1|c>>>31)&1,m,0);d=j+h|0;c=W+(c>>>0>j>>>0?k+1|0:k)|0;h=d>>>0>>0?c+1|0:c;i=Ci(d^y[f+104>>2],h^y[f+108>>2],32);k=y[f+72>>2];j=i+k|0;v=W;c=y[f+76>>2];n=v+c|0;q=Ai(i,0,k<<1&-2,(c<<1|k>>>31)&1);c=q+j|0;A=m^c;k=W+(k>>>0>j>>>0?n+1|0:n)|0;m=c>>>0>>0?k+1|0:k;j=Ci(A,r^m,40);n=W;k=h+n|0;r=k+1|0;q=k;k=d+j|0;r=k>>>0>>0?r:q;d=Ai(j,0,d<<1&-2,(h<<1|d>>>31)&1);k=d+k|0;h=W+r|0;Y=d>>>0>k>>>0?h+1|0:h;r=Ci(k^i,v^Y,48);ha=W;d=m+ha|0;q=d+1|0;i=d;d=c+r|0;h=d>>>0>>0?q:i;c=Ai(r,0,c<<1&-2,(m<<1|c>>>31)&1);m=d+c|0;d=W+h|0;_=c>>>0>m>>>0?d+1|0:d;v=Ci(j^m,n^_,1);A=W;da=A;D=y[f+36>>2];d=y[f+4>>2];j=D+d|0;h=y[f+32>>2];c=y[f>>2];i=h+c|0;n=Ai(c<<1&-2,(d<<1|c>>>31)&1,h,0);d=i+n|0;c=W+(c>>>0>i>>>0?j+1|0:j)|0;i=d>>>0>>0?c+1|0:c;Q=Ci(d^y[f+96>>2],i^y[f+100>>2],32);S=f- -64|0;j=S;c=y[j>>2];n=Q+c|0;aa=W;j=y[j+4>>2];q=aa+j|0;N=Ai(Q,0,c<<1&-2,(j<<1|c>>>31)&1);j=N+n|0;c=W+(c>>>0>n>>>0?q+1|0:q)|0;N=j>>>0>>0?c+1|0:c;q=Ci(h^j,D^N,40);ba=W;c=i+ba|0;n=c+1|0;h=c;c=d+q|0;h=c>>>0>>0?n:h;i=Ai(q,0,d<<1&-2,(i<<1|d>>>31)&1);d=c+i|0;c=W+h|0;Z=d>>>0>>0?c+1|0:c;c=Z+A|0;h=c+1|0;i=c;c=d+v|0;i=c>>>0>>0?h:i;n=Ai(v,0,d<<1&-2,(Z<<1|d>>>31)&1);h=c+n|0;c=W+i|0;J=h>>>0>>0?c+1|0:c;l=Ci(h^u,J^l,32);O=W;w=y[f+52>>2];c=y[f+20>>2];n=w+c|0;A=y[f+48>>2];i=y[f+16>>2];D=A+i|0;I=Ai(i<<1&-2,(c<<1|i>>>31)&1,A,0);c=D+I|0;i=W+(i>>>0>D>>>0?n+1|0:n)|0;D=c>>>0>>0?i+1|0:i;I=Ci(c^y[f+112>>2],D^y[f+116>>2],32);n=y[f+80>>2];P=I+n|0;ea=W;i=y[f+84>>2];L=ea+i|0;x=Ai(I,0,n<<1&-2,(i<<1|n>>>31)&1);i=x+P|0;n=W+(n>>>0>P>>>0?L+1|0:L)|0;P=i>>>0>>0?n+1|0:n;A=Ci(A^i,w^P,40);w=W;n=D+w|0;x=n+1|0;L=n;n=c+A|0;L=n>>>0>>0?x:L;c=Ai(A,0,c<<1&-2,(D<<1|c>>>31)&1);n=c+n|0;x=n^I;D=W+L|0;I=c>>>0>n>>>0?D+1|0:D;D=Ci(x,ea^I,48);ea=W;c=P+ea|0;x=c+1|0;L=c;c=i+D|0;L=c>>>0>>0?x:L;i=Ai(D,0,i<<1&-2,(P<<1|i>>>31)&1);c=i+c|0;P=W+L|0;P=c>>>0>>0?P+1|0:P;i=P+O|0;x=i+1|0;L=i;i=c+l|0;L=i>>>0>>0?x:L;x=Ai(l,0,c<<1&-2,(P<<1|c>>>31)&1);i=x+i|0;$=v^i;v=W+L|0;L=i>>>0>>0?v+1|0:v;v=Ci($,da^L,40);da=W;x=J+da|0;oa=x+1|0;$=x;x=h+v|0;$=x>>>0>>0?oa:$;J=Ai(v,0,h<<1&-2,(J<<1|h>>>31)&1);h=J+x|0;y[f>>2]=h;x=W+$|0;J=h>>>0>>0?x+1|0:x;y[f+4>>2]=J;h=Ci(h^l,J^O,48);y[f+120>>2]=h;l=W;y[f+124>>2]=l;l=l+L|0;$=l+1|0;x=l;l=h+i|0;J=l>>>0>>0?$:x;i=Ai(h,0,i<<1&-2,(L<<1|i>>>31)&1);h=i+l|0;y[f+80>>2]=h;l=W+J|0;i=h>>>0>>0?l+1|0:l;y[f+84>>2]=i;pa=f,qa=Ci(h^v,i^da,1),y[pa+40>>2]=qa;y[f+44>>2]=W;h=Ci(c^A,w^P,1);A=W;c=Y+A|0;i=c+1|0;l=c;c=h+k|0;i=c>>>0>>0?i:l;v=Ai(h,0,k<<1&-2,(Y<<1|k>>>31)&1);c=c+v|0;k=W+i|0;i=Ci(d^Q,Z^aa,48);v=c>>>0>>0?k+1|0:k;Y=W;k=Ci(i^c,v^Y,32);l=W;Q=l;d=M+C|0;w=d+1|0;C=d;d=e+u|0;Z=d>>>0>>0?w:C;e=Ai(u,0,e<<1&-2,(M<<1|e>>>31)&1);d=e+d|0;u=W+Z|0;u=d>>>0>>0?u+1|0:u;e=u+l|0;C=e+1|0;l=e;e=d+k|0;l=e>>>0>>0?C:l;M=Ai(k,0,d<<1&-2,(u<<1|d>>>31)&1);e=M+e|0;C=h^e;h=W+l|0;l=e>>>0>>0?h+1|0:h;h=Ci(C,A^l,40);A=W;M=v+A|0;w=M+1|0;C=M;M=c+h|0;Z=M>>>0>>0?w:C;v=Ai(h,0,c<<1&-2,(v<<1|c>>>31)&1);c=v+M|0;C=k^c;k=W+Z|0;v=c>>>0>>0?k+1|0:k;k=Ci(C,Q^v,48);y[f+96>>2]=k;M=W;y[f+100>>2]=M;y[f+8>>2]=c;y[f+12>>2]=v;c=l+M|0;w=c+1|0;C=c;c=e+k|0;v=c>>>0>>0?w:C;e=Ai(k,0,e<<1&-2,(l<<1|e>>>31)&1);c=e+c|0;y[f+88>>2]=c;k=W+v|0;e=c>>>0>>0?k+1|0:k;y[f+92>>2]=e;pa=f,qa=Ci(c^h,e^A,1),y[pa+48>>2]=qa;y[f+52>>2]=W;k=Ci(d^F,u^ga,1);F=W;d=I+F|0;e=d+1|0;c=d;d=k+n|0;e=d>>>0>>0?e:c;h=Ai(k,0,n<<1&-2,(I<<1|n>>>31)&1);c=d+h|0;d=W+e|0;n=c>>>0>>0?d+1|0:d;h=Ci(c^r,ha^n,32);e=W;u=e;d=N+Y|0;l=d+1|0;e=d;d=i+j|0;r=d>>>0>>0?l:e;j=Ai(i,0,j<<1&-2,(N<<1|j>>>31)&1);d=j+d|0;e=W+r|0;j=d>>>0>>0?e+1|0:e;e=u+j|0;i=e+1|0;l=e;e=d+h|0;i=e>>>0>>0?i:l;r=Ai(h,0,d<<1&-2,(j<<1|d>>>31)&1);e=e+r|0;l=k^e;k=W+i|0;i=e>>>0>>0?k+1|0:k;k=Ci(l,F^i,40);F=W;r=n+F|0;C=r+1|0;l=r;r=c+k|0;v=r>>>0>>0?C:l;n=Ai(k,0,c<<1&-2,(n<<1|c>>>31)&1);c=n+r|0;l=h^c;h=W+v|0;n=c>>>0>>0?h+1|0:h;h=Ci(l,u^n,48);y[f+104>>2]=h;u=W;y[f+108>>2]=u;y[f+16>>2]=c;y[f+20>>2]=n;c=i+u|0;n=c+1|0;l=c;c=e+h|0;n=c>>>0>>0?n:l;e=Ai(h,0,e<<1&-2,(i<<1|e>>>31)&1);c=e+c|0;y[S>>2]=c;h=W+n|0;e=c>>>0>>0?h+1|0:h;y[S+4>>2]=e;pa=f,qa=Ci(c^k,e^F,1),y[pa+56>>2]=qa;y[f+60>>2]=W;e=Ci(d^q,j^ba,1);c=e+G|0;h=W;k=h+X|0;j=Ai(G<<1&-2,(X<<1|G>>>31)&1,e,0);d=j+c|0;c=W+(c>>>0>>0?k+1|0:k)|0;j=d>>>0>>0?c+1|0:c;k=Ci(d^D,ea^j,32);i=W;c=_+i|0;q=c+1|0;l=c;c=k+m|0;n=c>>>0>>0?q:l;m=Ai(k,0,m<<1&-2,(_<<1|m>>>31)&1);c=c+m|0;l=e^c;e=W+n|0;m=c>>>0>>0?e+1|0:e;e=Ci(l,h^m,40);h=W;n=j+h|0;q=n+1|0;l=n;n=d+e|0;G=n>>>0>>0?q:l;j=Ai(e,0,d<<1&-2,(j<<1|d>>>31)&1);d=j+n|0;l=k^d;k=W+G|0;j=d>>>0>>0?k+1|0:k;k=Ci(l,i^j,48);y[f+112>>2]=k;i=W;y[f+116>>2]=i;y[f+24>>2]=d;y[f+28>>2]=j;d=i+m|0;i=d+1|0;l=d;d=c+k|0;j=d>>>0>>0?i:l;c=Ai(k,0,c<<1&-2,(m<<1|c>>>31)&1);d=c+d|0;y[f+72>>2]=d;k=W+j|0;c=d>>>0>>0?k+1|0:k;y[f+76>>2]=c;pa=f,qa=Ci(d^e,c^h,1),y[pa+32>>2]=qa;y[f+36>>2]=W;g=g+1|0;if((g|0)!=8){continue}break}while(1){f=(B+3072|0)+(p<<4)|0;e=y[f+392>>2];d=y[f+136>>2];c=e+d|0;i=y[f+396>>2];g=y[f+140>>2];k=i+g|0;m=Ai(d<<1&-2,(g<<1|d>>>31)&1,e,0);g=m+c|0;d=W+(d>>>0>c>>>0?k+1|0:k)|0;k=g>>>0>>0?d+1|0:d;m=Ci(g^y[f+904>>2],k^y[f+908>>2],32);d=y[f+648>>2];j=m+d|0;F=W;c=y[f+652>>2];h=F+c|0;n=Ai(m,0,d<<1&-2,(c<<1|d>>>31)&1);c=n+j|0;d=W+(d>>>0>j>>>0?h+1|0:h)|0;D=c>>>0>>0?d+1|0:d;G=Ci(e^c,i^D,40);P=W;d=k+P|0;l=d+1|0;e=d;d=g+G|0;e=d>>>0>>0?l:e;g=Ai(G,0,g<<1&-2,(k<<1|g>>>31)&1);n=g+d|0;d=W+e|0;M=g>>>0>n>>>0?d+1|0:d;F=Ci(n^m,F^M,48);q=W;L=q;u=y[f+268>>2];g=y[f+12>>2];e=u+g|0;k=y[f+264>>2];d=y[f+8>>2];m=k+d|0;j=Ai(d<<1&-2,(g<<1|d>>>31)&1,k,0);g=m+j|0;d=W+(d>>>0>m>>>0?e+1|0:e)|0;j=g>>>0>>0?d+1|0:d;h=Ci(g^y[f+776>>2],j^y[f+780>>2],32);e=y[f+520>>2];m=h+e|0;r=W;d=y[f+524>>2];i=r+d|0;v=Ai(h,0,e<<1&-2,(d<<1|e>>>31)&1);d=v+m|0;l=k^d;e=W+(e>>>0>m>>>0?i+1|0:i)|0;k=d>>>0>>0?e+1|0:e;m=Ci(l,u^k,40);i=W;e=j+i|0;u=e+1|0;l=e;e=g+m|0;u=e>>>0>>0?u:l;g=Ai(m,0,g<<1&-2,(j<<1|g>>>31)&1);e=g+e|0;j=W+u|0;X=e>>>0>>0?j+1|0:j;u=Ci(e^h,r^X,48);ga=W;g=k+ga|0;h=g+1|0;l=g;g=d+u|0;j=g>>>0>>0?h:l;d=Ai(u,0,d<<1&-2,(k<<1|d>>>31)&1);k=g+d|0;g=W+j|0;Y=d>>>0>k>>>0?g+1|0:g;r=Ci(m^k,i^Y,1);l=W;C=l;A=y[f+260>>2];g=y[f+4>>2];m=A+g|0;j=y[f+256>>2];d=y[f>>2];h=j+d|0;i=Ai(d<<1&-2,(g<<1|d>>>31)&1,j,0);g=h+i|0;d=W+(d>>>0>h>>>0?m+1|0:m)|0;h=g>>>0>>0?d+1|0:d;_=Ci(g^y[f+768>>2],h^y[f+772>>2],32);d=y[f+512>>2];i=_+d|0;ha=W;m=y[f+516>>2];v=ha+m|0;Q=Ai(_,0,d<<1&-2,(m<<1|d>>>31)&1);m=Q+i|0;d=W+(d>>>0>i>>>0?v+1|0:v)|0;Q=m>>>0>>0?d+1|0:d;v=Ci(j^m,A^Q,40);da=W;d=h+da|0;j=d+1|0;i=d;d=g+v|0;j=d>>>0>>0?j:i;h=Ai(v,0,g<<1&-2,(h<<1|g>>>31)&1);g=d+h|0;d=W+j|0;S=g>>>0>>0?d+1|0:d;d=S+l|0;i=d+1|0;l=d;d=g+r|0;h=d>>>0>>0?i:l;i=Ai(r,0,g<<1&-2,(S<<1|g>>>31)&1);j=d+i|0;d=W+h|0;N=i>>>0>j>>>0?d+1|0:d;q=Ci(j^F,N^q,32);Z=W;aa=y[f+388>>2];d=y[f+132>>2];i=aa+d|0;l=y[f+384>>2];h=y[f+128>>2];A=l+h|0;J=Ai(h<<1&-2,(d<<1|h>>>31)&1,l,0);d=A+J|0;h=W+(h>>>0>A>>>0?i+1|0:i)|0;A=d>>>0>>0?h+1|0:h;J=Ci(d^y[f+896>>2],A^y[f+900>>2],32);i=y[f+640>>2];O=J+i|0;ba=W;h=y[f+644>>2];I=ba+h|0;w=Ai(J,0,i<<1&-2,(h<<1|i>>>31)&1);h=w+O|0;i=W+(i>>>0>O>>>0?I+1|0:I)|0;O=h>>>0>>0?i+1|0:i;l=Ci(l^h,aa^O,40);aa=W;i=A+aa|0;x=i+1|0;w=i;i=d+l|0;I=i>>>0>>0?x:w;d=Ai(l,0,d<<1&-2,(A<<1|d>>>31)&1);i=d+i|0;w=i^J;A=W+I|0;J=d>>>0>i>>>0?A+1|0:A;A=Ci(w,ba^J,48);ba=W;d=O+ba|0;x=d+1|0;w=d;d=h+A|0;I=d>>>0>>0?x:w;h=Ai(A,0,h<<1&-2,(O<<1|h>>>31)&1);d=h+d|0;O=W+I|0;O=d>>>0>>0?O+1|0:O;h=O+Z|0;x=h+1|0;w=h;h=d+q|0;I=h>>>0>>0?x:w;w=Ai(q,0,d<<1&-2,(O<<1|d>>>31)&1);h=w+h|0;x=r^h;r=W+I|0;I=h>>>0>>0?r+1|0:r;r=Ci(x,C^I,40);C=W;w=N+C|0;$=w+1|0;x=w;w=j+r|0;ea=w>>>0>>0?$:x;N=Ai(r,0,j<<1&-2,(N<<1|j>>>31)&1);j=N+w|0;y[f>>2]=j;w=W+ea|0;N=j>>>0>>0?w+1|0:w;y[f+4>>2]=N;j=Ci(j^q,N^Z,48);y[f+904>>2]=j;q=W;y[f+908>>2]=q;q=q+I|0;x=q+1|0;w=q;q=h+j|0;N=q>>>0>>0?x:w;h=Ai(j,0,h<<1&-2,(I<<1|h>>>31)&1);j=h+q|0;y[f+640>>2]=j;q=W+N|0;h=h>>>0>j>>>0?q+1|0:q;y[f+644>>2]=h;pa=f,qa=Ci(j^r,h^C,1),y[pa+264>>2]=qa;y[f+268>>2]=W;j=Ci(d^l,O^aa,1);l=W;d=X+l|0;h=d+1|0;q=d;d=e+j|0;h=d>>>0>>0?h:q;r=Ai(j,0,e<<1&-2,(X<<1|e>>>31)&1);d=d+r|0;e=W+h|0;h=Ci(g^_,S^ha,48);r=d>>>0>>0?e+1|0:e;X=W;e=Ci(h^d,r^X,32);q=W;_=q;g=D+L|0;w=g+1|0;C=g;g=c+F|0;S=g>>>0>>0?w:C;c=Ai(F,0,c<<1&-2,(D<<1|c>>>31)&1);g=c+g|0;F=W+S|0;F=c>>>0>g>>>0?F+1|0:F;c=F+q|0;C=c+1|0;q=c;c=e+g|0;q=c>>>0>>0?C:q;D=Ai(e,0,g<<1&-2,(F<<1|g>>>31)&1);c=D+c|0;C=j^c;j=W+q|0;q=c>>>0>>0?j+1|0:j;j=Ci(C,l^q,40);l=W;D=r+l|0;w=D+1|0;C=D;D=d+j|0;S=D>>>0>>0?w:C;r=Ai(j,0,d<<1&-2,(r<<1|d>>>31)&1);d=r+D|0;C=e^d;e=W+S|0;r=d>>>0>>0?e+1|0:e;e=Ci(C,_^r,48);y[f+768>>2]=e;D=W;y[f+772>>2]=D;y[f+8>>2]=d;y[f+12>>2]=r;d=q+D|0;r=d+1|0;C=d;d=c+e|0;r=d>>>0>>0?r:C;c=Ai(e,0,c<<1&-2,(q<<1|c>>>31)&1);d=c+d|0;y[f+648>>2]=d;e=W+r|0;c=d>>>0>>0?e+1|0:e;y[f+652>>2]=c;pa=f,qa=Ci(d^j,c^l,1),y[pa+384>>2]=qa;y[f+388>>2]=W;e=Ci(g^G,F^P,1);G=W;g=J+G|0;c=g+1|0;d=g;g=e+i|0;c=g>>>0>>0?c:d;j=Ai(e,0,i<<1&-2,(J<<1|i>>>31)&1);d=g+j|0;g=W+c|0;i=d>>>0>>0?g+1|0:g;j=Ci(d^u,ga^i,32);c=W;F=c;g=Q+X|0;l=g+1|0;c=g;g=h+m|0;u=g>>>0>>0?l:c;m=Ai(h,0,m<<1&-2,(Q<<1|m>>>31)&1);g=m+g|0;c=W+u|0;m=g>>>0>>0?c+1|0:c;c=F+m|0;q=c+1|0;l=c;c=g+j|0;h=c>>>0>>0?q:l;u=Ai(j,0,g<<1&-2,(m<<1|g>>>31)&1);c=c+u|0;l=e^c;e=W+h|0;h=c>>>0>>0?e+1|0:e;e=Ci(l,G^h,40);G=W;u=i+G|0;q=u+1|0;l=u;u=d+e|0;r=u>>>0>>0?q:l;i=Ai(e,0,d<<1&-2,(i<<1|d>>>31)&1);d=i+u|0;l=j^d;j=W+r|0;i=d>>>0>>0?j+1|0:j;j=Ci(l,F^i,48);y[f+776>>2]=j;F=W;y[f+780>>2]=F;y[f+128>>2]=d;y[f+132>>2]=i;d=h+F|0;i=d+1|0;l=d;d=c+j|0;i=d>>>0>>0?i:l;c=Ai(j,0,c<<1&-2,(h<<1|c>>>31)&1);d=c+d|0;y[f+512>>2]=d;j=W+i|0;c=d>>>0>>0?j+1|0:j;y[f+516>>2]=c;pa=f,qa=Ci(d^e,c^G,1),y[pa+392>>2]=qa;y[f+396>>2]=W;c=Ci(g^v,m^da,1);d=c+n|0;j=W;e=j+M|0;m=Ai(n<<1&-2,(M<<1|n>>>31)&1,c,0);g=m+d|0;d=W+(d>>>0>>0?e+1|0:e)|0;m=g>>>0>>0?d+1|0:d;e=Ci(g^A,ba^m,32);h=W;d=Y+h|0;i=d+1|0;l=d;d=e+k|0;i=d>>>0>>0?i:l;k=Ai(e,0,k<<1&-2,(Y<<1|k>>>31)&1);d=d+k|0;l=c^d;c=W+i|0;k=d>>>0>>0?c+1|0:c;c=Ci(l,j^k,40);j=W;i=m+j|0;q=i+1|0;l=i;i=c+g|0;n=i>>>0>>0?q:l;m=Ai(c,0,g<<1&-2,(m<<1|g>>>31)&1);g=m+i|0;l=e^g;e=W+n|0;m=g>>>0>>0?e+1|0:e;e=Ci(l,h^m,48);y[f+896>>2]=e;h=W;y[f+900>>2]=h;y[f+136>>2]=g;y[f+140>>2]=m;g=h+k|0;i=g+1|0;l=g;g=d+e|0;m=g>>>0>>0?i:l;d=Ai(e,0,d<<1&-2,(k<<1|d>>>31)&1);g=d+g|0;y[f+520>>2]=g;e=W+m|0;d=d>>>0>g>>>0?e+1|0:e;y[f+524>>2]=d;pa=f,qa=Ci(c^g,d^j,1),y[pa+256>>2]=qa;y[f+260>>2]=W;p=p+1|0;if((p|0)!=8){continue}break}t(s,B+2048|0,1024);p=0;while(1){f=p<<3;g=f+s|0;c=y[g>>2];d=B+3072|0;e=d+f|0;k=y[e>>2];e=y[g+4>>2]^y[e+4>>2];y[g>>2]=c^k;y[g+4>>2]=e;c=f|8;g=c+s|0;e=y[g>>2];c=d+c|0;k=y[c>>2];c=y[g+4>>2]^y[c+4>>2];y[g>>2]=e^k;y[g+4>>2]=c;c=f|16;g=c+s|0;e=y[g>>2];c=d+c|0;k=y[c>>2];c=y[g+4>>2]^y[c+4>>2];y[g>>2]=e^k;y[g+4>>2]=c;g=f|24;f=g+s|0;c=y[f>>2];g=d+g|0;d=y[g>>2];g=y[f+4>>2]^y[g+4>>2];y[f>>2]=d^c;y[f+4>>2]=g;p=p+4|0;if((p|0)!=128){continue}break}}p=ka+1|0;R=R+1|0;s=y[a+20>>2];K=K+1|0;if(s>>>0>K>>>0){continue}break}}T=B+4096|0;}function Pa(a){var 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,x=0,y=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,X=0,Y=0,Z=0;q=z[a+44|0]|z[a+45|0]<<8|(z[a+46|0]<<16|z[a+47|0]<<24);e=q>>>5&2097151;I=(z[a+60|0]|z[a+61|0]<<8|(z[a+62|0]<<16|z[a+63|0]<<24))>>>3|0;d=Ai(I,0,-683901,-1);b=z[a+44|0];c=b<<16&2031616|(z[a+42|0]|z[a+43|0]<<8);k=d+c|0;b=W;b=c>>>0>k>>>0?b+1|0:b;i=b;b=b-((k>>>0<4293918720)-1|0)|0;n=b;d=b>>21;c=e;g=k- -1048576|0;e=(b&2097151)<<11|g>>>21;b=c+e|0;c=d;c=b>>>0>>0?c+1|0:c;x=c;H=b;o=Ai(b,c,-683901,-1);j=W;J=(z[a+49|0]|z[a+50|0]<<8|(z[a+51|0]<<16|z[a+52|0]<<24))>>>7&2097151;h=Ai(J,0,-997805,-1);b=z[a+27|0];d=0;p=z[a+23|0]|z[a+24|0]<<8|(z[a+25|0]<<16|z[a+26|0]<<24);e=b<<8|p>>>24;b=z[a+28|0];c=0;b=e|b<<16;c=c|d;c=((c&3)<<30|b>>>2)&2097151;d=c+h|0;b=W;b=c>>>0>d>>>0?b+1|0:b;l=z[a+52|0]|z[a+53|0]<<8|(z[a+54|0]<<16|z[a+55|0]<<24);F=l>>>4&2097151;c=Ai(F,0,654183,0);d=c+d|0;b=W+b|0;h=d;d=c>>>0>d>>>0?b+1|0:b;c=z[a+48|0];b=0;f=c<<8|q>>>24;e=z[a+49|0];e=e<<16;q=b|b;c=e|f;K=((q&3)<<30|c>>>2)&2097151;b=Ai(K,0,136657,0);c=b+h|0;d=W+d|0;d=b>>>0>c>>>0?d+1|0:d;L=(z[a+57|0]|z[a+58|0]<<8|(z[a+59|0]<<16|z[a+60|0]<<24))>>>6&2097151;b=Ai(L,0,666643,0);e=b+c|0;c=W+d|0;h=e;d=b>>>0>e>>>0?c+1|0:c;b=z[a+56|0];c=0;f=b<<8|l>>>24;e=z[a+57|0];b=0;e=e<<16;l=b|c;c=e|f;M=((l&1)<<31|c>>>1)&2097151;c=Ai(M,0,470296,0);e=c+h|0;b=W+d|0;d=e;b=d>>>0>>0?b+1|0:b;c=b+j|0;e=d+o|0;c=d>>>0>e>>>0?c+1|0:c;r=d- -1048576|0;d=b-((d>>>0<4293918720)-1|0)|0;y=d;b=r&-2097152;j=e-b|0;o=c-((b>>>0>e>>>0)+d|0)|0;c=Ai(J,0,654183,0);d=c+(p>>>5&2097151)|0;b=W;b=c>>>0>d>>>0?b+1|0:b;c=d;d=Ai(F,0,470296,0);e=c+d|0;c=W+b|0;c=d>>>0>e>>>0?c+1|0:c;b=Ai(K,N,-997805,-1);d=b+e|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=d;d=Ai(M,O,666643,0);e=b+d|0;b=W+c|0;f=e;e=d>>>0>e>>>0?b+1|0:b;d=Ai(J,0,470296,0);b=z[a+23|0];b=b<<16&2031616|(z[a+21|0]|z[a+22|0]<<8);h=d+b|0;d=W;d=b>>>0>h>>>0?d+1|0:d;c=Ai(F,0,666643,0);h=c+h|0;b=W+d|0;d=Ai(K,N,654183,0);p=d+h|0;c=W+(c>>>0>h>>>0?b+1|0:b)|0;c=d>>>0>p>>>0?c+1|0:c;l=c;c=c-((p>>>0<4293918720)-1|0)|0;E=c;b=c>>>21|0;h=p- -1048576|0;c=(c&2097151)<<11|h>>>21;f=c+f|0;b=b+e|0;b=c>>>0>f>>>0?b+1|0:b;d=b;c=b-((f>>>0<4293918720)-1|0)|0;m=c;b=j;e=f- -1048576|0;j=(c&2097151)<<11|e>>>21;s=b+j|0;c=(c>>21)+o|0;c=j>>>0>s>>>0?c+1|0:c;j=c-((s>>>0<4293918720)-1|0)|0;q=j;o=s- -1048576|0;b=o&-2097152;G=s-b|0;P=c-((b>>>0>s>>>0)+j|0)|0;b=Ai(H,x,136657,0);c=b+f|0;d=W+d|0;d=b>>>0>c>>>0?d+1|0:d;b=e&-2097152;v=c-b|0;t=d-((b>>>0>c>>>0)+m|0)|0;b=g&-2097152;s=k-b|0;n=i-((b>>>0>k>>>0)+n|0)|0;i=Ai(I,0,136657,0);b=z[a+40|0];c=0;g=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);e=b<<8|g>>>24;b=z[a+41|0];d=0;b=e|b<<16;d=c|d;c=d>>>3|0;d=(d&7)<<29|b>>>3;e=d+i|0;b=c+W|0;b=d>>>0>e>>>0?b+1|0:b;c=Ai(L,0,-683901,-1);d=c+e|0;b=W+b|0;b=c>>>0>d>>>0?b+1|0:b;f=d;c=Ai(I,0,-997805,-1);e=c+(g>>>6&2097151)|0;d=W;d=c>>>0>e>>>0?d+1|0:d;c=e;e=Ai(L,0,136657,0);g=c+e|0;c=W+d|0;d=Ai(M,O,-683901,-1);A=d+g|0;c=W+(e>>>0>g>>>0?c+1|0:c)|0;c=d>>>0>A>>>0?c+1|0:c;j=c;d=c-((A>>>0<4293918720)-1|0)|0;S=d;c=d>>21;k=A- -1048576|0;d=(d&2097151)<<11|k>>>21;m=d+f|0;b=b+c|0;b=d>>>0>m>>>0?b+1|0:b;g=b;b=b-((m>>>0<4293918720)-1|0)|0;B=b;c=b>>21;f=m- -1048576|0;d=(b&2097151)<<11|f>>>21;b=d+s|0;c=c+n|0;c=b>>>0>>0?c+1|0:c;D=c;C=b;c=Ai(b,c,-683901,-1);d=c+v|0;b=W+t|0;u=d;e=c>>>0>d>>>0?b+1|0:b;b=h&-2097152;s=p-b|0;n=l-((E&4095)+(b>>>0>p>>>0)|0)|0;p=Ai(J,0,666643,0);c=z[a+19|0];b=0;l=z[a+15|0]|z[a+16|0]<<8|(z[a+17|0]<<16|z[a+18|0]<<24);h=c<<8|l>>>24;d=b;b=z[a+20|0];c=0;b=b<<16;d=c|d;c=b|h;c=(d&7)<<29|c>>>3;h=c+p|0;d=W+(d>>>3|0)|0;d=c>>>0>h>>>0?d+1|0:d;b=Ai(K,N,470296,0);h=b+h|0;c=W+d|0;b=b>>>0>h>>>0?c+1|0:c;d=Ai(K,N,666643,0);v=d+(l>>>6&2097151)|0;c=W;c=d>>>0>v>>>0?c+1|0:c;p=c;d=c-((v>>>0<4293918720)-1|0)|0;T=d;c=d>>>21|0;i=v- -1048576|0;d=(d&2097151)<<11|i>>>21;t=d+h|0;b=b+c|0;b=d>>>0>t>>>0?b+1|0:b;l=b;b=b-((t>>>0<4293918720)-1|0)|0;U=b;c=b>>>21|0;h=t- -1048576|0;b=(b&2097151)<<11|h>>>21;d=b+s|0;c=c+n|0;c=b>>>0>d>>>0?c+1|0:c;b=d;d=Ai(H,x,-997805,-1);n=b+d|0;b=W+c|0;b=d>>>0>n>>>0?b+1|0:b;d=f&-2097152;c=m-d|0;E=c;f=g-((d>>>0>m>>>0)+B|0)|0;Q=f;d=Ai(C,D,136657,0);g=d+n|0;b=W+b|0;b=d>>>0>g>>>0?b+1|0:b;d=Ai(c,f,-683901,-1);n=d+g|0;c=W+b|0;c=d>>>0>n>>>0?c+1|0:c;g=c;b=c-((n>>>0<4293918720)-1|0)|0;B=b;f=n- -1048576|0;c=(b&2097151)<<11|f>>>21;m=c+u|0;b=(b>>21)+e|0;b=c>>>0>m>>>0?b+1|0:b;c=b-((m>>>0<4293918720)-1|0)|0;u=c;e=m- -1048576|0;s=(c&2097151)<<11|e>>>21;G=s+G|0;c=(c>>21)+P|0;V=G;s=s>>>0>G>>>0?c+1|0:c;c=e&-2097152;X=m-c|0;Y=b-((c>>>0>m>>>0)+u|0)|0;b=f&-2097152;G=n-b|0;P=g-((b>>>0>n>>>0)+B|0)|0;b=Ai(H,x,654183,0);c=h&-2097152;d=b+(t-c|0)|0;c=W+(l-((U&2147483647)+(c>>>0>t>>>0)|0)|0)|0;c=b>>>0>d>>>0?c+1|0:c;b=Ai(C,D,-997805,-1);d=b+d|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=d;d=Ai(E,Q,136657,0);e=b+d|0;b=W+c|0;u=e;g=d>>>0>e>>>0?b+1|0:b;b=k&-2097152;t=A-b|0;m=j-((b>>>0>A>>>0)+S|0)|0;l=Ai(F,0,-683901,-1);c=z[a+35|0];b=0;h=z[a+31|0]|z[a+32|0]<<8|(z[a+33|0]<<16|z[a+34|0]<<24);e=c<<8|h>>>24;d=b;b=z[a+36|0];c=0;b=b<<16|e;c=c|d;b=((c&1)<<31|b>>>1)&2097151;c=b+l|0;d=W;d=b>>>0>c>>>0?d+1|0:d;b=Ai(I,0,654183,0);e=b+c|0;c=W+d|0;c=b>>>0>e>>>0?c+1|0:c;d=Ai(L,0,-997805,-1);e=d+e|0;b=W+c|0;b=d>>>0>e>>>0?b+1|0:b;c=Ai(M,O,136657,0);d=c+e|0;b=W+b|0;f=d;e=c>>>0>d>>>0?b+1|0:b;b=Ai(J,0,-683901,-1);d=b+(h>>>4&2097151)|0;c=W;c=b>>>0>d>>>0?c+1|0:c;b=Ai(F,0,136657,0);h=b+d|0;d=W+c|0;d=b>>>0>h>>>0?d+1|0:d;b=Ai(I,0,470296,0);h=b+h|0;c=W+d|0;c=b>>>0>h>>>0?c+1|0:c;d=Ai(L,0,654183,0);h=d+h|0;b=W+c|0;c=Ai(M,O,-997805,-1);j=c+h|0;b=W+(d>>>0>h>>>0?b+1|0:b)|0;b=c>>>0>j>>>0?b+1|0:b;l=b;c=b-((j>>>0<4293918720)-1|0)|0;Z=c;b=c>>21;h=j- -1048576|0;c=(c&2097151)<<11|h>>>21;k=c+f|0;d=b+e|0;d=c>>>0>k>>>0?d+1|0:d;c=d-((k>>>0<4293918720)-1|0)|0;n=c;b=c>>21;f=k- -1048576|0;e=(c&2097151)<<11|f>>>21;c=e+t|0;b=b+m|0;b=c>>>0>>0?b+1|0:b;B=b;e=u;u=c;b=Ai(c,b,-683901,-1);e=e+b|0;c=W+g|0;m=e;e=b>>>0>e>>>0?c+1|0:c;b=Ai(H,x,470296,0);c=i&-2097152;g=b+(v-c|0)|0;c=W+(p-((T&2047)+(c>>>0>v>>>0)|0)|0)|0;c=b>>>0>g>>>0?c+1|0:c;b=g;g=Ai(C,D,654183,0);i=b+g|0;b=W+c|0;b=g>>>0>i>>>0?b+1|0:b;g=Ai(E,Q,-997805,-1);i=g+i|0;c=W+b|0;c=g>>>0>i>>>0?c+1|0:c;b=f&-2097152;f=k-b|0;A=f;g=d-((b>>>0>k>>>0)+n|0)|0;R=g;d=Ai(u,B,136657,0);i=d+i|0;b=W+c|0;b=d>>>0>i>>>0?b+1|0:b;d=Ai(f,g,-683901,-1);p=d+i|0;c=W+b|0;c=d>>>0>p>>>0?c+1|0:c;g=c;b=c-((p>>>0<4293918720)-1|0)|0;t=b;f=p- -1048576|0;c=(b&2097151)<<11|f>>>21;i=c+m|0;b=(b>>21)+e|0;b=c>>>0>i>>>0?b+1|0:b;c=b-((i>>>0<4293918720)-1|0)|0;m=c;e=i- -1048576|0;k=(c&2097151)<<11|e>>>21;n=k+G|0;c=(c>>21)+P|0;S=n;n=k>>>0>n>>>0?c+1|0:c;c=e&-2097152;T=i-c|0;U=b-((c>>>0>i>>>0)+m|0)|0;b=f&-2097152;G=p-b|0;P=g-((b>>>0>p>>>0)+t|0)|0;g=Ai(H,x,666643,0);c=z[a+14|0];b=0;m=z[a+10|0]|z[a+11|0]<<8|(z[a+12|0]<<16|z[a+13|0]<<24);e=c<<8|m>>>24;d=b;b=z[a+15|0];c=0;b=b<<16|e;c=c|d;b=((c&1)<<31|b>>>1)&2097151;c=b+g|0;d=W;d=b>>>0>c>>>0?d+1|0:d;b=c;c=Ai(C,D,470296,0);e=b+c|0;b=W+d|0;b=c>>>0>e>>>0?b+1|0:b;c=Ai(E,Q,654183,0);d=c+e|0;b=W+b|0;b=c>>>0>d>>>0?b+1|0:b;c=d;d=Ai(u,B,-997805,-1);e=c+d|0;c=W+b|0;c=d>>>0>e>>>0?c+1|0:c;b=Ai(A,R,136657,0);d=b+e|0;c=W+c|0;p=d;e=b>>>0>d>>>0?c+1|0:c;b=h&-2097152;h=j-b|0;g=l-((b>>>0>j>>>0)+Z|0)|0;d=Ai(J,0,136657,0);b=W;c=(z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24))>>>7&2097151;d=c+d|0;b=c>>>0>d>>>0?b+1|0:b;c=d;d=Ai(F,0,-997805,-1);f=c+d|0;c=W+b|0;c=d>>>0>f>>>0?c+1|0:c;b=Ai(K,N,-683901,-1);d=b+f|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=Ai(I,0,666643,0);f=b+d|0;d=W+c|0;d=b>>>0>f>>>0?d+1|0:d;c=Ai(L,0,470296,0);f=c+f|0;b=W+d|0;b=c>>>0>f>>>0?b+1|0:b;c=Ai(M,O,654183,0);d=c+f|0;b=W+b|0;f=(y&2097151)<<11|r>>>21;r=f+d|0;c=(y>>21)+(c>>>0>d>>>0?b+1|0:b)|0;c=f>>>0>r>>>0?c+1|0:c;k=c;b=c-((r>>>0<4293918720)-1|0)|0;y=b;i=r- -1048576|0;f=(b&2097151)<<11|i>>>21;c=f+h|0;b=(b>>21)+g|0;b=c>>>0>>0?b+1|0:b;v=b;t=c;c=Ai(c,b,-683901,-1);d=c+p|0;b=W+e|0;f=d;e=c>>>0>d>>>0?b+1|0:b;b=Ai(C,D,666643,0);d=b+(m>>>4&2097151)|0;c=W;c=b>>>0>d>>>0?c+1|0:c;b=Ai(E,Q,470296,0);d=b+d|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=Ai(u,B,654183,0);g=b+d|0;d=W+c|0;d=b>>>0>g>>>0?d+1|0:d;c=Ai(A,R,-997805,-1);g=c+g|0;b=W+d|0;b=c>>>0>g>>>0?b+1|0:b;c=Ai(t,v,136657,0);j=c+g|0;b=W+b|0;b=c>>>0>j>>>0?b+1|0:b;l=b;c=b-((j>>>0<4293918720)-1|0)|0;D=c;b=f;h=j- -1048576|0;f=(c&2097151)<<11|h>>>21;d=b+f|0;c=(c>>21)+e|0;c=d>>>0>>0?c+1|0:c;e=c-((d>>>0<4293918720)-1|0)|0;C=e;b=e>>21;g=d- -1048576|0;e=(e&2097151)<<11|g>>>21;f=e+G|0;b=b+P|0;H=f;p=e>>>0>f>>>0?b+1|0:b;f=d;d=c;c=i&-2097152;i=(q&2097151)<<11|o>>>21;e=(r-c|0)+i|0;c=(k-((c>>>0>r>>>0)+y|0)|0)+(q>>21)|0;c=e>>>0>>0?c+1|0:c;m=c;c=c-((e>>>0<4293918720)-1|0)|0;F=c;b=c>>21;o=b;y=e- -1048576|0;x=(c&2097151)<<11|y>>>21;b=Ai(x,b,-683901,-1);c=b+f|0;d=W+d|0;d=b>>>0>c>>>0?d+1|0:d;b=g&-2097152;N=c-b|0;O=d-((b>>>0>c>>>0)+C|0)|0;b=Ai(x,o,136657,0);c=l+W|0;d=b+j|0;c=d>>>0>>0?c+1|0:c;b=h&-2097152;C=d-b|0;r=c-((b>>>0>d>>>0)+D|0)|0;c=Ai(E,Q,666643,0);d=W;b=(z[a+7|0]|z[a+8|0]<<8|(z[a+9|0]<<16|z[a+10|0]<<24))>>>7&2097151;c=b+c|0;d=b>>>0>c>>>0?d+1|0:d;b=Ai(u,B,470296,0);f=b+c|0;c=W+d|0;c=b>>>0>f>>>0?c+1|0:c;b=Ai(A,R,654183,0);d=b+f|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=d;d=Ai(t,v,-997805,-1);f=b+d|0;b=W+c|0;i=f;f=d>>>0>f>>>0?b+1|0:b;l=Ai(u,B,666643,0);c=z[a+6|0];b=0;D=z[a+2|0]|z[a+3|0]<<8|(z[a+4|0]<<16|z[a+5|0]<<24);g=c<<8|D>>>24;d=b;b=z[a+7|0];c=0;b=b<<16|g;c=c|d;c=((c&3)<<30|b>>>2)&2097151;d=c+l|0;b=W;b=c>>>0>d>>>0?b+1|0:b;c=Ai(A,R,470296,0);g=c+d|0;d=W+b|0;d=c>>>0>g>>>0?d+1|0:d;c=Ai(t,v,654183,0);k=c+g|0;b=W+d|0;b=c>>>0>k>>>0?b+1|0:b;l=b;b=b-((k>>>0<4293918720)-1|0)|0;q=b;d=b>>21;h=k- -1048576|0;b=(b&2097151)<<11|h>>>21;g=b+i|0;c=d+f|0;c=b>>>0>g>>>0?c+1|0:c;b=c-((g>>>0<4293918720)-1|0)|0;j=b;f=g- -1048576|0;i=(b&2097151)<<11|f>>>21;u=i+C|0;b=(b>>21)+r|0;C=u;i=i>>>0>u>>>0?b+1|0:b;b=Ai(x,o,-997805,-1);d=b+g|0;c=W+c|0;c=b>>>0>d>>>0?c+1|0:c;b=f&-2097152;E=d-b|0;B=c-((b>>>0>d>>>0)+j|0)|0;c=Ai(x,o,654183,0);b=l+W|0;d=c+k|0;b=d>>>0>>0?b+1|0:b;c=h&-2097152;u=d-c|0;r=b-((c>>>0>d>>>0)+q|0)|0;b=Ai(A,R,666643,0);d=b+(D>>>5&2097151)|0;c=W;c=b>>>0>d>>>0?c+1|0:c;b=Ai(t,v,470296,0);d=b+d|0;c=W+c|0;g=d;d=b>>>0>d>>>0?c+1|0:c;f=Ai(t,v,666643,0);b=z[a+2|0];c=b<<16&2031616|(z[a|0]|z[a+1|0]<<8);j=f+c|0;b=W;b=c>>>0>j>>>0?b+1|0:b;l=b;b=b-((j>>>0<4293918720)-1|0)|0;v=b;h=j- -1048576|0;f=(b&2097151)<<11|h>>>21;k=f+g|0;b=(b>>21)+d|0;b=f>>>0>k>>>0?b+1|0:b;d=b;b=b-((k>>>0<4293918720)-1|0)|0;q=b;g=k- -1048576|0;f=(b&2097151)<<11|g>>>21;t=f+u|0;b=(b>>21)+r|0;f=f>>>0>t>>>0?b+1|0:b;b=Ai(x,o,470296,0);d=d+W|0;c=b+k|0;d=c>>>0>>0?d+1|0:d;b=g&-2097152;k=c-b|0;g=d-((b>>>0>c>>>0)+q|0)|0;c=Ai(x,o,666643,0);d=h&-2097152;r=c+(j-d|0)|0;b=W+(l-((d>>>0>j>>>0)+v|0)|0)|0;b=c>>>0>r>>>0?b+1|0:b;d=b>>21;b=(b&2097151)<<11|r>>>21;q=b+k|0;c=d+g|0;c=b>>>0>q>>>0?c+1|0:c;b=c>>21;c=(c&2097151)<<11|q>>>21;o=c+t|0;b=b+f|0;b=c>>>0>o>>>0?b+1|0:b;c=b>>21;b=(b&2097151)<<11|o>>>21;f=b+E|0;c=c+B|0;c=b>>>0>f>>>0?c+1|0:c;b=c>>21;c=(c&2097151)<<11|f>>>21;j=c+C|0;d=b+i|0;d=c>>>0>j>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|j>>>21;k=d+N|0;b=c+O|0;b=d>>>0>k>>>0?b+1|0:b;d=b>>21;b=(b&2097151)<<11|k>>>21;g=b+H|0;c=d+p|0;p=g;c=b>>>0>g>>>0?c+1|0:c;b=c>>21;c=(c&2097151)<<11|g>>>21;i=c+T|0;b=b+U|0;b=c>>>0>i>>>0?b+1|0:b;c=b>>21;b=(b&2097151)<<11|i>>>21;l=b+S|0;c=c+n|0;c=b>>>0>l>>>0?c+1|0:c;b=c>>21;c=(c&2097151)<<11|l>>>21;h=c+X|0;d=b+Y|0;d=c>>>0>h>>>0?d+1|0:d;c=d>>21;d=(d&2097151)<<11|h>>>21;g=d+V|0;b=c+s|0;c=y&-2097152;n=e-c|0;b=d>>>0>g>>>0?b+1|0:b;y=n+((b&2097151)<<11|g>>>21)|0;b=(m-((c>>>0>e>>>0)+F|0)|0)+(b>>21)|0;b=n>>>0>y>>>0?b+1|0:b;s=(b&2097151)<<11|y>>>21;c=b>>21;m=c;b=Ai(s,c,666643,0);c=r&2097151;r=b+c|0;b=W;b=c>>>0>r>>>0?b+1|0:b;e=b;w[a|0]=r;w[a+1|0]=(b&255)<<24|r>>>8;b=q&2097151;c=Ai(s,m,470296,0)+b|0;d=W;n=(e&2097151)<<11|r>>>21;q=n+c|0;b=(e>>21)+(b>>>0>c>>>0?d+1|0:d)|0;b=n>>>0>q>>>0?b+1|0:b;w[a+4|0]=(b&2047)<<21|q>>>11;c=b;d=q;w[a+3|0]=(b&7)<<29|d>>>3;w[a+2|0]=((e&65535)<<16|r>>>16)&31|d<<5;e=o&2097151;o=Ai(s,m,654183,0)+e|0;b=W;e=e>>>0>o>>>0?b+1|0:b;q=(c&2097151)<<11|d>>>21;o=q+o|0;c=(c>>21)+e|0;c=o>>>0>>0?c+1|0:c;b=c;w[a+6|0]=(b&63)<<26|o>>>6;e=o;w[a+5|0]=e<<2|(d&1572864)>>>19;d=f&2097151;f=Ai(s,m,-997805,-1)+d|0;c=W;c=d>>>0>f>>>0?c+1|0:c;d=b;b=b>>21;o=(d&2097151)<<11|e>>>21;f=o+f|0;d=b+c|0;d=f>>>0>>0?d+1|0:d;w[a+9|0]=(d&511)<<23|f>>>9;w[a+8|0]=(d&1)<<31|f>>>1;w[a+7|0]=f<<7|(e&2080768)>>>14;c=j&2097151;e=Ai(s,m,136657,0)+c|0;b=W;b=c>>>0>e>>>0?b+1|0:b;c=d;d=c>>21;j=(c&2097151)<<11|f>>>21;e=j+e|0;c=b+d|0;c=e>>>0>>0?c+1|0:c;w[a+12|0]=(c&4095)<<20|e>>>12;d=e;w[a+11|0]=(c&15)<<28|d>>>4;w[a+10|0]=d<<4|(f&1966080)>>>17;e=k&2097151;f=Ai(s,m,-683901,-1)+e|0;b=W;b=e>>>0>f>>>0?b+1|0:b;e=c;c=c>>21;u=f;f=(e&2097151)<<11|d>>>21;e=u+f|0;c=b+c|0;c=e>>>0>>0?c+1|0:c;w[a+14|0]=(c&127)<<25|e>>>7;w[a+13|0]=e<<1|(d&1048576)>>>20;b=c>>21;c=(c&2097151)<<11|e>>>21;f=c+(p&2097151)|0;d=c>>>0>f>>>0?b+1|0:b;w[a+17|0]=(d&1023)<<22|f>>>10;w[a+16|0]=(d&3)<<30|f>>>2;w[a+15|0]=f<<6|(e&2064384)>>>15;b=d>>21;c=(d&2097151)<<11|f>>>21;d=c+(i&2097151)|0;b=c>>>0>d>>>0?b+1|0:b;w[a+20|0]=(b&8191)<<19|d>>>13;w[a+19|0]=(b&31)<<27|d>>>5;c=l&2097151;l=(b&2097151)<<11|d>>>21;e=c+l|0;c=b>>21;c=e>>>0>>0?c+1|0:c;l=e;w[a+21|0]=e;w[a+18|0]=d<<3|(f&1835008)>>>18;w[a+22|0]=(c&255)<<24|e>>>8;f=(c&2097151)<<11|e>>>21;e=f+(h&2097151)|0;d=c>>21;d=e>>>0>>0?d+1|0:d;w[a+25|0]=(d&2047)<<21|e>>>11;w[a+24|0]=(d&7)<<29|e>>>3;w[a+23|0]=((c&65535)<<16|l>>>16)&31|e<<5;b=d>>21;c=(d&2097151)<<11|e>>>21;d=c+(g&2097151)|0;b=c>>>0>d>>>0?b+1|0:b;w[a+27|0]=(b&63)<<26|d>>>6;w[a+26|0]=d<<2|(e&1572864)>>>19;c=b;b=b>>21;g=(c&2097151)<<11|d>>>21;f=y&2097151;e=g+f|0;c=e>>>0>>0?b+1|0:b;w[a+31|0]=(c&131071)<<15|e>>>17;b=e;w[a+30|0]=(c&511)<<23|b>>>9;w[a+28|0]=b<<7|(d&2080768)>>>14;w[a+29|0]=g+y>>>1;}function oc(a,b,c){var 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,u=0,v=0,w=0,x=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,U=0,V=0,X=0,Y=0,Z=0;C=T-2048|0;T=C;t(C+1024|0,b,1024);b=0;while(1){f=C+1024|0;d=b<<3;e=f+d|0;j=y[e>>2];g=a+d|0;k=y[g>>2];g=y[e+4>>2]^y[g+4>>2];y[e>>2]=j^k;y[e+4>>2]=g;j=d|8;e=j+f|0;g=y[e>>2];j=a+j|0;k=y[j>>2];j=y[e+4>>2]^y[j+4>>2];y[e>>2]=g^k;y[e+4>>2]=j;j=d|16;e=j+f|0;g=y[e>>2];j=a+j|0;k=y[j>>2];j=y[e+4>>2]^y[j+4>>2];y[e>>2]=g^k;y[e+4>>2]=j;e=d|24;d=e+f|0;j=y[d>>2];e=a+e|0;g=y[e>>2];e=y[d+4>>2]^y[e+4>>2];y[d>>2]=g^j;y[d+4>>2]=e;b=b+4|0;if((b|0)!=128){continue}break}t(C,f,1024);a=0;b=0;while(1){f=b<<3;d=f+C|0;e=y[d>>2];j=c+f|0;g=y[j>>2];j=y[d+4>>2]^y[j+4>>2];y[d>>2]=g^e;y[d+4>>2]=j;e=f|8;d=e+C|0;j=y[d>>2];e=c+e|0;g=y[e>>2];e=y[d+4>>2]^y[e+4>>2];y[d>>2]=g^j;y[d+4>>2]=e;e=f|16;d=e+C|0;j=y[d>>2];e=c+e|0;g=y[e>>2];e=y[d+4>>2]^y[e+4>>2];y[d>>2]=g^j;y[d+4>>2]=e;d=f|24;f=d+C|0;e=y[f>>2];d=c+d|0;j=y[d>>2];d=y[f+4>>2]^y[d+4>>2];y[f>>2]=e^j;y[f+4>>2]=d;b=b+4|0;if((b|0)!=128){continue}break}while(1){f=(C+1024|0)+(a<<7)|0;g=y[f+56>>2];d=y[f+24>>2];k=g+d|0;i=y[f+60>>2];e=y[f+28>>2];b=i+e|0;j=d>>>0>k>>>0?b+1|0:b;e=Ai(d<<1&-2,(e<<1|d>>>31)&1,g,0);d=e+k|0;b=W+j|0;j=d>>>0>>0?b+1|0:b;k=Ci(y[f+120>>2]^d,j^y[f+124>>2],32);e=y[f+88>>2];m=k+e|0;o=W;h=y[f+92>>2];b=o+h|0;l=e>>>0>m>>>0?b+1|0:b;h=Ai(e<<1&-2,(h<<1|e>>>31)&1,k,0);e=h+m|0;b=W+l|0;n=e>>>0>>0?b+1|0:b;L=Ci(g^e,i^n,40);S=W;b=j+S|0;h=d+L|0;g=h>>>0>>0?b+1|0:b;d=Ai(L,0,d<<1&-2,(j<<1|d>>>31)&1);I=d+h|0;b=W+g|0;M=d>>>0>I>>>0?b+1|0:b;D=Ci(k^I,o^M,48);b=W;U=b;p=D;m=b;k=y[f+40>>2];d=y[f+8>>2];h=k+d|0;E=y[f+44>>2];j=y[f+12>>2];b=E+j|0;g=d>>>0>h>>>0?b+1|0:b;j=Ai(d<<1&-2,(j<<1|d>>>31)&1,k,0);d=j+h|0;b=W+g|0;g=d>>>0>>0?b+1|0:b;h=Ci(y[f+104>>2]^d,g^y[f+108>>2],32);j=y[f+72>>2];o=h+j|0;s=W;l=y[f+76>>2];b=s+l|0;i=j>>>0>o>>>0?b+1|0:b;l=Ai(j<<1&-2,(l<<1|j>>>31)&1,h,0);j=l+o|0;b=W+i|0;i=j^k;k=j>>>0>>0?b+1|0:b;l=Ci(i,E^k,40);r=W;b=g+r|0;o=d+l|0;i=o>>>0>>0?b+1|0:b;g=Ai(l,0,d<<1&-2,(g<<1|d>>>31)&1);d=g+o|0;b=W+i|0;o=d>>>0>>0?b+1|0:b;N=Ci(d^h,s^o,48);O=W;b=k+O|0;h=j+N|0;g=h>>>0>>0?b+1|0:b;k=Ai(N,0,j<<1&-2,(k<<1|j>>>31)&1);j=k+h|0;b=W+g|0;E=j>>>0>>0?b+1|0:b;x=Ci(j^l,r^E,1);b=W;P=b;u=x;i=b;l=y[f+32>>2];g=y[f>>2];s=l+g|0;F=y[f+36>>2];k=y[f+4>>2];b=F+k|0;h=g>>>0>s>>>0?b+1|0:b;k=Ai(g<<1&-2,(k<<1|g>>>31)&1,l,0);g=k+s|0;b=W+h|0;h=g>>>0>>0?b+1|0:b;G=Ci(y[f+96>>2]^g,h^y[f+100>>2],32);v=f- -64|0;b=v;k=y[b>>2];q=G+k|0;R=W;s=y[b+4>>2];b=R+s|0;r=k>>>0>q>>>0?b+1|0:b;s=Ai(k<<1&-2,(s<<1|k>>>31)&1,G,0);k=s+q|0;b=W+r|0;s=k>>>0>>0?b+1|0:b;F=Ci(k^l,F^s,40);V=W;b=h+V|0;r=g+F|0;l=r>>>0>>0?b+1|0:b;h=Ai(F,0,g<<1&-2,(h<<1|g>>>31)&1);g=h+r|0;b=W+l|0;r=g>>>0>>0?b+1|0:b;b=r+i|0;h=g+u|0;l=h>>>0>>0?b+1|0:b;i=Ai(u,0,g<<1&-2,(r<<1|g>>>31)&1);h=i+h|0;b=W+l|0;q=h>>>0>>0?b+1|0:b;H=Ci(h^p,q^m,32);b=W;Q=b;z=b;p=y[f+48>>2];l=y[f+16>>2];u=p+l|0;J=y[f+52>>2];m=y[f+20>>2];b=J+m|0;i=l>>>0>u>>>0?b+1|0:b;m=Ai(l<<1&-2,(m<<1|l>>>31)&1,p,0);l=m+u|0;b=W+i|0;i=l>>>0>>0?b+1|0:b;u=Ci(y[f+112>>2]^l,i^y[f+116>>2],32);m=y[f+80>>2];w=u+m|0;K=W;A=y[f+84>>2];b=K+A|0;B=m>>>0>w>>>0?b+1|0:b;A=Ai(m<<1&-2,(A<<1|m>>>31)&1,u,0);m=A+w|0;b=W+B|0;w=m^p;p=m>>>0>>0?b+1|0:b;A=Ci(w,J^p,40);J=W;b=i+J|0;w=l+A|0;B=w>>>0>>0?b+1|0:b;i=Ai(A,0,l<<1&-2,(i<<1|l>>>31)&1);l=i+w|0;b=W+B|0;w=l^u;u=i>>>0>l>>>0?b+1|0:b;B=Ci(w,K^u,48);K=W;b=p+K|0;w=m+B|0;i=w>>>0>>0?b+1|0:b;p=Ai(B,0,m<<1&-2,(p<<1|m>>>31)&1);m=p+w|0;b=W+i|0;p=m>>>0

>>0?b+1|0:b;b=p+z|0;i=m+H|0;z=i>>>0>>0?b+1|0:b;w=Ai(H,0,m<<1&-2,(p<<1|m>>>31)&1);i=w+i|0;b=W+z|0;z=i^x;x=i>>>0>>0?b+1|0:b;z=Ci(z,P^x,40);P=W;b=q+P|0;X=h+z|0;w=X>>>0>>0?b+1|0:b;q=Ai(z,0,h<<1&-2,(q<<1|h>>>31)&1);h=q+X|0;b=W+w|0;y[f>>2]=h;b=h>>>0>>0?b+1|0:b;y[f+4>>2]=b;h=Ci(h^H,b^Q,48);y[f+120>>2]=h;b=W;y[f+124>>2]=b;b=b+x|0;H=h+i|0;q=H>>>0>>0?b+1|0:b;i=Ai(h,0,i<<1&-2,(x<<1|i>>>31)&1);h=i+H|0;b=W+q|0;y[f+80>>2]=h;b=h>>>0>>0?b+1|0:b;y[f+84>>2]=b;Y=f,Z=Ci(h^z,b^P,1),y[Y+40>>2]=Z;y[f+44>>2]=W;b=n+U|0;i=e+D|0;h=i>>>0>>0?b+1|0:b;e=Ai(D,0,e<<1&-2,(n<<1|e>>>31)&1);i=e+i|0;b=W+h|0;b=e>>>0>i>>>0?b+1|0:b;h=b;e=b;m=Ci(m^A,p^J,1);p=W;b=o+p|0;q=d+m|0;n=q>>>0>>0?b+1|0:b;o=Ai(m,0,d<<1&-2,(o<<1|d>>>31)&1);d=o+q|0;b=W+n|0;b=d>>>0>>0?b+1|0:b;o=Ci(g^G,r^R,48);g=b;x=W;n=Ci(o^d,b^x,32);q=n+i|0;D=W;b=D+e|0;r=n>>>0>q>>>0?b+1|0:b;b=q;q=Ai(i<<1&-2,(e<<1|i>>>31)&1,n,0);e=b+q|0;b=W+r|0;r=e^m;m=e>>>0>>0?b+1|0:b;r=Ci(r,p^m,40);p=W;b=g+p|0;G=d+r|0;q=G>>>0>>0?b+1|0:b;d=Ai(r,0,d<<1&-2,(g<<1|d>>>31)&1);g=d+G|0;b=W+q|0;b=d>>>0>g>>>0?b+1|0:b;d=Ci(g^n,D^b,48);y[f+96>>2]=d;n=W;y[f+100>>2]=n;y[f+8>>2]=g;y[f+12>>2]=b;b=m+n|0;n=d+e|0;g=n>>>0>>0?b+1|0:b;e=Ai(d,0,e<<1&-2,(m<<1|e>>>31)&1);d=e+n|0;b=W+g|0;y[f+88>>2]=d;b=d>>>0>>0?b+1|0:b;y[f+92>>2]=b;Y=f,Z=Ci(d^r,b^p,1),y[Y+48>>2]=Z;y[f+52>>2]=W;m=Ci(i^L,h^S,1);n=W;b=u+n|0;d=l+m|0;e=d>>>0>>0?b+1|0:b;g=Ai(m,0,l<<1&-2,(u<<1|l>>>31)&1);d=g+d|0;b=W+e|0;h=d>>>0>>0?b+1|0:b;i=Ci(d^N,O^h,32);b=W;r=b;g=b;b=s+x|0;e=k+o|0;l=e>>>0>>0?b+1|0:b;k=Ai(o,0,k<<1&-2,(s<<1|k>>>31)&1);e=k+e|0;b=W+l|0;k=e>>>0>>0?b+1|0:b;b=k+g|0;g=e+i|0;l=g>>>0>>0?b+1|0:b;o=Ai(i,0,e<<1&-2,(k<<1|e>>>31)&1);g=o+g|0;b=W+l|0;l=g>>>0>>0?b+1|0:b;m=Ci(g^m,n^l,40);o=W;b=h+o|0;s=d+m|0;n=s>>>0>>0?b+1|0:b;d=Ai(m,0,d<<1&-2,(h<<1|d>>>31)&1);h=d+s|0;b=W+n|0;b=d>>>0>h>>>0?b+1|0:b;d=Ci(h^i,r^b,48);y[f+104>>2]=d;i=W;y[f+108>>2]=i;y[f+16>>2]=h;y[f+20>>2]=b;h=v;b=i+l|0;n=d+g|0;i=n>>>0>>0?b+1|0:b;g=Ai(d,0,g<<1&-2,(l<<1|g>>>31)&1);d=g+n|0;b=W+i|0;y[h>>2]=d;b=d>>>0>>0?b+1|0:b;y[h+4>>2]=b;Y=f,Z=Ci(d^m,b^o,1),y[Y+56>>2]=Z;y[f+60>>2]=W;g=Ci(e^F,k^V,1);d=g+I|0;l=W;b=l+M|0;e=d>>>0>>0?b+1|0:b;k=Ai(I<<1&-2,(M<<1|I>>>31)&1,g,0);d=k+d|0;b=W+e|0;e=d>>>0>>0?b+1|0:b;k=Ci(d^B,K^e,32);m=W;b=E+m|0;i=j+k|0;h=i>>>0>>0?b+1|0:b;b=i;i=Ai(k,0,j<<1&-2,(E<<1|j>>>31)&1);j=b+i|0;b=W+h|0;h=g^j;g=i>>>0>j>>>0?b+1|0:b;h=Ci(h,l^g,40);i=W;b=e+i|0;n=d+h|0;l=n>>>0>>0?b+1|0:b;d=Ai(h,0,d<<1&-2,(e<<1|d>>>31)&1);e=d+n|0;b=W+l|0;b=d>>>0>e>>>0?b+1|0:b;d=Ci(e^k,m^b,48);y[f+112>>2]=d;k=W;y[f+116>>2]=k;y[f+24>>2]=e;y[f+28>>2]=b;b=g+k|0;k=d+j|0;e=k>>>0>>0?b+1|0:b;j=Ai(d,0,j<<1&-2,(g<<1|j>>>31)&1);d=j+k|0;b=W+e|0;y[f+72>>2]=d;b=d>>>0>>0?b+1|0:b;y[f+76>>2]=b;Y=f,Z=Ci(d^h,b^i,1),y[Y+32>>2]=Z;y[f+36>>2]=W;a=a+1|0;if((a|0)!=8){continue}break}a=0;while(1){f=(C+1024|0)+(a<<4)|0;g=y[f+392>>2];d=y[f+136>>2];k=g+d|0;i=y[f+396>>2];e=y[f+140>>2];b=i+e|0;j=d>>>0>k>>>0?b+1|0:b;e=Ai(d<<1&-2,(e<<1|d>>>31)&1,g,0);d=e+k|0;b=W+j|0;j=d>>>0>>0?b+1|0:b;k=Ci(y[f+904>>2]^d,j^y[f+908>>2],32);e=y[f+648>>2];m=k+e|0;o=W;h=y[f+652>>2];b=o+h|0;l=e>>>0>m>>>0?b+1|0:b;h=Ai(e<<1&-2,(h<<1|e>>>31)&1,k,0);e=h+m|0;b=W+l|0;n=e>>>0>>0?b+1|0:b;L=Ci(g^e,i^n,40);w=W;b=j+w|0;h=d+L|0;g=h>>>0>>0?b+1|0:b;d=Ai(L,0,d<<1&-2,(j<<1|d>>>31)&1);I=d+h|0;b=W+g|0;M=d>>>0>I>>>0?b+1|0:b;D=Ci(k^I,o^M,48);b=W;S=b;p=D;m=b;k=y[f+264>>2];d=y[f+8>>2];h=k+d|0;E=y[f+268>>2];j=y[f+12>>2];b=E+j|0;g=d>>>0>h>>>0?b+1|0:b;j=Ai(d<<1&-2,(j<<1|d>>>31)&1,k,0);d=j+h|0;b=W+g|0;g=d>>>0>>0?b+1|0:b;h=Ci(y[f+776>>2]^d,g^y[f+780>>2],32);j=y[f+520>>2];o=h+j|0;s=W;l=y[f+524>>2];b=s+l|0;i=j>>>0>o>>>0?b+1|0:b;l=Ai(j<<1&-2,(l<<1|j>>>31)&1,h,0);j=l+o|0;b=W+i|0;i=j^k;k=j>>>0>>0?b+1|0:b;l=Ci(i,E^k,40);r=W;b=g+r|0;o=d+l|0;i=o>>>0>>0?b+1|0:b;g=Ai(l,0,d<<1&-2,(g<<1|d>>>31)&1);d=g+o|0;b=W+i|0;o=d>>>0>>0?b+1|0:b;N=Ci(d^h,s^o,48);U=W;b=k+U|0;h=j+N|0;g=h>>>0>>0?b+1|0:b;k=Ai(N,0,j<<1&-2,(k<<1|j>>>31)&1);j=k+h|0;b=W+g|0;E=j>>>0>>0?b+1|0:b;x=Ci(j^l,r^E,1);b=W;O=b;u=x;i=b;l=y[f+256>>2];g=y[f>>2];s=l+g|0;F=y[f+260>>2];k=y[f+4>>2];b=F+k|0;h=g>>>0>s>>>0?b+1|0:b;k=Ai(g<<1&-2,(k<<1|g>>>31)&1,l,0);g=k+s|0;b=W+h|0;h=g>>>0>>0?b+1|0:b;G=Ci(y[f+768>>2]^g,h^y[f+772>>2],32);k=y[f+512>>2];q=G+k|0;P=W;s=y[f+516>>2];b=P+s|0;r=k>>>0>q>>>0?b+1|0:b;s=Ai(k<<1&-2,(s<<1|k>>>31)&1,G,0);k=s+q|0;b=W+r|0;s=k>>>0>>0?b+1|0:b;F=Ci(k^l,F^s,40);R=W;b=h+R|0;r=g+F|0;l=r>>>0>>0?b+1|0:b;h=Ai(F,0,g<<1&-2,(h<<1|g>>>31)&1);g=h+r|0;b=W+l|0;r=g>>>0>>0?b+1|0:b;b=r+i|0;h=g+u|0;l=h>>>0>>0?b+1|0:b;i=Ai(u,0,g<<1&-2,(r<<1|g>>>31)&1);h=i+h|0;b=W+l|0;q=h>>>0>>0?b+1|0:b;H=Ci(h^p,q^m,32);b=W;V=b;z=b;p=y[f+384>>2];l=y[f+128>>2];u=p+l|0;Q=y[f+388>>2];m=y[f+132>>2];b=Q+m|0;i=l>>>0>u>>>0?b+1|0:b;m=Ai(l<<1&-2,(m<<1|l>>>31)&1,p,0);l=m+u|0;b=W+i|0;i=l>>>0>>0?b+1|0:b;u=Ci(y[f+896>>2]^l,i^y[f+900>>2],32);m=y[f+640>>2];v=u+m|0;J=W;A=y[f+644>>2];b=J+A|0;B=m>>>0>v>>>0?b+1|0:b;A=Ai(m<<1&-2,(A<<1|m>>>31)&1,u,0);m=A+v|0;b=W+B|0;v=m^p;p=m>>>0>>0?b+1|0:b;A=Ci(v,Q^p,40);Q=W;b=i+Q|0;v=l+A|0;B=v>>>0>>0?b+1|0:b;i=Ai(A,0,l<<1&-2,(i<<1|l>>>31)&1);l=i+v|0;b=W+B|0;v=l^u;u=i>>>0>l>>>0?b+1|0:b;B=Ci(v,J^u,48);J=W;b=p+J|0;v=m+B|0;i=v>>>0>>0?b+1|0:b;p=Ai(B,0,m<<1&-2,(p<<1|m>>>31)&1);m=p+v|0;b=W+i|0;p=m>>>0

>>0?b+1|0:b;b=p+z|0;i=m+H|0;z=i>>>0>>0?b+1|0:b;v=Ai(H,0,m<<1&-2,(p<<1|m>>>31)&1);i=v+i|0;b=W+z|0;z=i^x;x=i>>>0>>0?b+1|0:b;z=Ci(z,O^x,40);O=W;b=q+O|0;K=h+z|0;v=K>>>0>>0?b+1|0:b;q=Ai(z,0,h<<1&-2,(q<<1|h>>>31)&1);h=q+K|0;b=W+v|0;y[f>>2]=h;b=h>>>0>>0?b+1|0:b;y[f+4>>2]=b;h=Ci(h^H,b^V,48);y[f+904>>2]=h;b=W;y[f+908>>2]=b;b=b+x|0;H=h+i|0;q=H>>>0>>0?b+1|0:b;i=Ai(h,0,i<<1&-2,(x<<1|i>>>31)&1);h=i+H|0;b=W+q|0;y[f+640>>2]=h;b=h>>>0>>0?b+1|0:b;y[f+644>>2]=b;Y=f,Z=Ci(h^z,b^O,1),y[Y+264>>2]=Z;y[f+268>>2]=W;b=n+S|0;i=e+D|0;h=i>>>0>>0?b+1|0:b;e=Ai(D,0,e<<1&-2,(n<<1|e>>>31)&1);i=e+i|0;b=W+h|0;b=e>>>0>i>>>0?b+1|0:b;h=b;e=b;m=Ci(m^A,p^Q,1);p=W;b=o+p|0;q=d+m|0;n=q>>>0>>0?b+1|0:b;o=Ai(m,0,d<<1&-2,(o<<1|d>>>31)&1);d=o+q|0;b=W+n|0;b=d>>>0>>0?b+1|0:b;o=Ci(g^G,r^P,48);g=b;x=W;n=Ci(o^d,b^x,32);q=n+i|0;D=W;b=D+e|0;r=n>>>0>q>>>0?b+1|0:b;b=q;q=Ai(i<<1&-2,(e<<1|i>>>31)&1,n,0);e=b+q|0;b=W+r|0;r=e^m;m=e>>>0>>0?b+1|0:b;r=Ci(r,p^m,40);p=W;b=g+p|0;G=d+r|0;q=G>>>0>>0?b+1|0:b;d=Ai(r,0,d<<1&-2,(g<<1|d>>>31)&1);g=d+G|0;b=W+q|0;b=d>>>0>g>>>0?b+1|0:b;d=Ci(g^n,D^b,48);y[f+768>>2]=d;n=W;y[f+772>>2]=n;y[f+8>>2]=g;y[f+12>>2]=b;b=m+n|0;n=d+e|0;g=n>>>0>>0?b+1|0:b;e=Ai(d,0,e<<1&-2,(m<<1|e>>>31)&1);d=e+n|0;b=W+g|0;y[f+648>>2]=d;b=d>>>0>>0?b+1|0:b;y[f+652>>2]=b;Y=f,Z=Ci(d^r,b^p,1),y[Y+384>>2]=Z;y[f+388>>2]=W;m=Ci(i^L,h^w,1);n=W;b=u+n|0;d=l+m|0;e=d>>>0>>0?b+1|0:b;g=Ai(m,0,l<<1&-2,(u<<1|l>>>31)&1);d=g+d|0;b=W+e|0;h=d>>>0>>0?b+1|0:b;i=Ci(d^N,U^h,32);b=W;r=b;g=b;b=s+x|0;e=k+o|0;l=e>>>0>>0?b+1|0:b;k=Ai(o,0,k<<1&-2,(s<<1|k>>>31)&1);e=k+e|0;b=W+l|0;k=e>>>0>>0?b+1|0:b;b=k+g|0;g=e+i|0;l=g>>>0>>0?b+1|0:b;o=Ai(i,0,e<<1&-2,(k<<1|e>>>31)&1);g=o+g|0;b=W+l|0;l=g>>>0>>0?b+1|0:b;m=Ci(g^m,n^l,40);o=W;b=h+o|0;s=d+m|0;n=s>>>0>>0?b+1|0:b;d=Ai(m,0,d<<1&-2,(h<<1|d>>>31)&1);h=d+s|0;b=W+n|0;b=d>>>0>h>>>0?b+1|0:b;d=Ci(h^i,r^b,48);y[f+776>>2]=d;i=W;y[f+780>>2]=i;y[f+128>>2]=h;y[f+132>>2]=b;b=i+l|0;i=d+g|0;h=i>>>0>>0?b+1|0:b;g=Ai(d,0,g<<1&-2,(l<<1|g>>>31)&1);d=g+i|0;b=W+h|0;y[f+512>>2]=d;b=d>>>0>>0?b+1|0:b;y[f+516>>2]=b;Y=f,Z=Ci(d^m,b^o,1),y[Y+392>>2]=Z;y[f+396>>2]=W;g=Ci(e^F,k^R,1);d=g+I|0;l=W;b=l+M|0;e=d>>>0>>0?b+1|0:b;k=Ai(I<<1&-2,(M<<1|I>>>31)&1,g,0);d=k+d|0;b=W+e|0;e=d>>>0>>0?b+1|0:b;k=Ci(d^B,J^e,32);m=W;b=E+m|0;i=j+k|0;h=i>>>0>>0?b+1|0:b;b=i;i=Ai(k,0,j<<1&-2,(E<<1|j>>>31)&1);j=b+i|0;b=W+h|0;h=g^j;g=i>>>0>j>>>0?b+1|0:b;h=Ci(h,l^g,40);i=W;b=e+i|0;n=d+h|0;l=n>>>0>>0?b+1|0:b;d=Ai(h,0,d<<1&-2,(e<<1|d>>>31)&1);e=d+n|0;b=W+l|0;b=d>>>0>e>>>0?b+1|0:b;d=Ci(e^k,m^b,48);y[f+896>>2]=d;k=W;y[f+900>>2]=k;y[f+136>>2]=e;y[f+140>>2]=b;b=g+k|0;k=d+j|0;e=k>>>0>>0?b+1|0:b;j=Ai(d,0,j<<1&-2,(g<<1|j>>>31)&1);d=j+k|0;b=W+e|0;y[f+520>>2]=d;b=d>>>0>>0?b+1|0:b;y[f+524>>2]=b;Y=f,Z=Ci(d^h,b^i,1),y[Y+256>>2]=Z;y[f+260>>2]=W;a=a+1|0;if((a|0)!=8){continue}break}t(c,C,1024);a=0;while(1){b=a<<3;f=b+c|0;d=y[f>>2];i=C+1024|0;e=i;j=e+b|0;g=y[j>>2];j=y[f+4>>2]^y[j+4>>2];y[f>>2]=d^g;y[f+4>>2]=j;d=b|8;f=d+c|0;j=y[f>>2];d=d+e|0;e=y[d>>2];d=y[f+4>>2]^y[d+4>>2];y[f>>2]=e^j;y[f+4>>2]=d;d=b|16;f=d+c|0;e=y[f>>2];d=d+i|0;j=y[d>>2];d=y[f+4>>2]^y[d+4>>2];y[f>>2]=e^j;y[f+4>>2]=d;f=b|24;b=f+c|0;d=y[b>>2];f=f+i|0;e=y[f>>2];f=y[b+4>>2]^y[f+4>>2];y[b>>2]=d^e;y[b+4>>2]=f;a=a+4|0;if((a|0)!=128){continue}break}T=C+2048|0;}function Ie(a,b,c){var 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;d=T-800|0;T=d;g=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);i=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);j=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);k=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);l=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);m=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);n=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);p=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);q=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);r=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);s=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);t=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);u=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);v=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);o=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);b=c- -64|0;w=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);y[b>>2]=w^33620224;y[c+56>>2]=1496785429;y[c+60>>2]=1652156816;y[c+48>>2]=33620224;y[c+52>>2]=218629379;y[c+40>>2]=1110511904;y[c+44>>2]=-584534669;y[c+32>>2]=1427652059;y[c+36>>2]=-248528275;o=o^w;y[c>>2]=o;y[c+92>>2]=v^-584534669;y[c+88>>2]=u^1110511904;y[c+84>>2]=t^-248528275;y[c+80>>2]=s^1427652059;y[c+76>>2]=r^1652156816;y[c+72>>2]=q^1496785429;y[c+68>>2]=p^218629379;n=n^v;y[c+28>>2]=n;m=m^u;y[c+24>>2]=m;l=l^t;y[c+20>>2]=l;k=k^s;y[c+16>>2]=k;j=j^r;y[c+12>>2]=j;i=i^q;y[c+8>>2]=i;x=g^p;y[c+4>>2]=x;g=0;while(1){a=y[c+92>>2];y[d+792>>2]=y[c+88>>2];y[d+796>>2]=a;a=y[c+84>>2];y[d+784>>2]=y[c+80>>2];y[d+788>>2]=a;a=y[b+4>>2];y[d+752>>2]=y[b>>2];y[d+756>>2]=a;a=y[b+12>>2];y[d+760>>2]=y[b+8>>2];y[d+764>>2]=a;a=y[c+84>>2];y[d+736>>2]=y[c+80>>2];y[d+740>>2]=a;a=y[c+92>>2];y[d+744>>2]=y[c+88>>2];y[d+748>>2]=a;a=d+768|0;ia(a,d+752|0,d+736|0);e=y[d+780>>2];y[c+88>>2]=y[d+776>>2];y[c+92>>2]=e;e=y[d+772>>2];y[c+80>>2]=y[d+768>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+720>>2]=y[c+48>>2];y[d+724>>2]=e;e=y[c+60>>2];y[d+728>>2]=y[c+56>>2];y[d+732>>2]=e;e=y[b+4>>2];y[d+704>>2]=y[b>>2];y[d+708>>2]=e;e=y[b+12>>2];y[d+712>>2]=y[b+8>>2];y[d+716>>2]=e;ia(a,d+720|0,d+704|0);e=y[d+780>>2];y[b+8>>2]=y[d+776>>2];y[b+12>>2]=e;e=y[d+772>>2];y[b>>2]=y[d+768>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+688>>2]=y[c+32>>2];y[d+692>>2]=e;e=y[c+44>>2];y[d+696>>2]=y[c+40>>2];y[d+700>>2]=e;e=y[c+52>>2];y[d+672>>2]=y[c+48>>2];y[d+676>>2]=e;e=y[c+60>>2];y[d+680>>2]=y[c+56>>2];y[d+684>>2]=e;ia(a,d+688|0,d+672|0);e=y[d+780>>2];y[c+56>>2]=y[d+776>>2];y[c+60>>2]=e;e=y[d+772>>2];y[c+48>>2]=y[d+768>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+656>>2]=y[c+16>>2];y[d+660>>2]=e;e=y[c+28>>2];y[d+664>>2]=y[c+24>>2];y[d+668>>2]=e;e=y[c+36>>2];y[d+640>>2]=y[c+32>>2];y[d+644>>2]=e;e=y[c+44>>2];y[d+648>>2]=y[c+40>>2];y[d+652>>2]=e;ia(a,d+656|0,d+640|0);e=y[d+780>>2];y[c+40>>2]=y[d+776>>2];y[c+44>>2]=e;e=y[d+772>>2];y[c+32>>2]=y[d+768>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+624>>2]=y[c>>2];y[d+628>>2]=e;e=y[c+12>>2];y[d+632>>2]=y[c+8>>2];y[d+636>>2]=e;e=y[c+20>>2];y[d+608>>2]=y[c+16>>2];y[d+612>>2]=e;e=y[c+28>>2];y[d+616>>2]=y[c+24>>2];y[d+620>>2]=e;ia(a,d+624|0,d+608|0);e=y[d+780>>2];y[c+24>>2]=y[d+776>>2];y[c+28>>2]=e;e=y[d+772>>2];y[c+16>>2]=y[d+768>>2];y[c+20>>2]=e;e=y[d+788>>2];y[d+592>>2]=y[d+784>>2];y[d+596>>2]=e;e=y[d+796>>2];y[d+600>>2]=y[d+792>>2];y[d+604>>2]=e;e=y[c+4>>2];y[d+576>>2]=y[c>>2];y[d+580>>2]=e;e=y[c+12>>2];y[d+584>>2]=y[c+8>>2];y[d+588>>2]=e;ia(a,d+592|0,d+576|0);e=y[d+768>>2];f=y[d+772>>2];h=y[d+776>>2];y[c+12>>2]=y[d+780>>2]^r;y[c+8>>2]=h^q;y[c+4>>2]=f^p;y[c>>2]=e^w;e=y[c+92>>2];y[d+792>>2]=y[c+88>>2];y[d+796>>2]=e;e=y[c+84>>2];y[d+784>>2]=y[c+80>>2];y[d+788>>2]=e;e=y[b+4>>2];y[d+560>>2]=y[b>>2];y[d+564>>2]=e;e=y[b+12>>2];y[d+568>>2]=y[b+8>>2];y[d+572>>2]=e;e=y[c+92>>2];y[d+552>>2]=y[c+88>>2];y[d+556>>2]=e;e=y[c+84>>2];y[d+544>>2]=y[c+80>>2];y[d+548>>2]=e;ia(a,d+560|0,d+544|0);e=y[d+780>>2];y[c+88>>2]=y[d+776>>2];y[c+92>>2]=e;e=y[d+772>>2];y[c+80>>2]=y[d+768>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+528>>2]=y[c+48>>2];y[d+532>>2]=e;e=y[c+60>>2];y[d+536>>2]=y[c+56>>2];y[d+540>>2]=e;e=y[b+4>>2];y[d+512>>2]=y[b>>2];y[d+516>>2]=e;e=y[b+12>>2];y[d+520>>2]=y[b+8>>2];y[d+524>>2]=e;ia(a,d+528|0,d+512|0);e=y[d+780>>2];y[b+8>>2]=y[d+776>>2];y[b+12>>2]=e;e=y[d+772>>2];y[b>>2]=y[d+768>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+496>>2]=y[c+32>>2];y[d+500>>2]=e;e=y[c+44>>2];y[d+504>>2]=y[c+40>>2];y[d+508>>2]=e;e=y[c+52>>2];y[d+480>>2]=y[c+48>>2];y[d+484>>2]=e;e=y[c+60>>2];y[d+488>>2]=y[c+56>>2];y[d+492>>2]=e;ia(a,d+496|0,d+480|0);e=y[d+780>>2];y[c+56>>2]=y[d+776>>2];y[c+60>>2]=e;e=y[d+772>>2];y[c+48>>2]=y[d+768>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+464>>2]=y[c+16>>2];y[d+468>>2]=e;e=y[c+28>>2];y[d+472>>2]=y[c+24>>2];y[d+476>>2]=e;e=y[c+36>>2];y[d+448>>2]=y[c+32>>2];y[d+452>>2]=e;e=y[c+44>>2];y[d+456>>2]=y[c+40>>2];y[d+460>>2]=e;ia(a,d+464|0,d+448|0);e=y[d+780>>2];y[c+40>>2]=y[d+776>>2];y[c+44>>2]=e;e=y[d+772>>2];y[c+32>>2]=y[d+768>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+432>>2]=y[c>>2];y[d+436>>2]=e;e=y[c+12>>2];y[d+440>>2]=y[c+8>>2];y[d+444>>2]=e;e=y[c+20>>2];y[d+416>>2]=y[c+16>>2];y[d+420>>2]=e;e=y[c+28>>2];y[d+424>>2]=y[c+24>>2];y[d+428>>2]=e;ia(a,d+432|0,d+416|0);e=y[d+780>>2];y[c+24>>2]=y[d+776>>2];y[c+28>>2]=e;e=y[d+772>>2];y[c+16>>2]=y[d+768>>2];y[c+20>>2]=e;e=y[d+788>>2];y[d+400>>2]=y[d+784>>2];y[d+404>>2]=e;e=y[d+796>>2];y[d+408>>2]=y[d+792>>2];y[d+412>>2]=e;e=y[c+4>>2];y[d+384>>2]=y[c>>2];y[d+388>>2]=e;e=y[c+12>>2];y[d+392>>2]=y[c+8>>2];y[d+396>>2]=e;ia(a,d+400|0,d+384|0);e=y[d+768>>2];f=y[d+772>>2];h=y[d+776>>2];y[c+12>>2]=y[d+780>>2]^v;y[c+8>>2]=h^u;y[c+4>>2]=f^t;y[c>>2]=e^s;e=y[c+92>>2];y[d+792>>2]=y[c+88>>2];y[d+796>>2]=e;e=y[c+84>>2];y[d+784>>2]=y[c+80>>2];y[d+788>>2]=e;e=y[b+4>>2];y[d+368>>2]=y[b>>2];y[d+372>>2]=e;e=y[b+12>>2];y[d+376>>2]=y[b+8>>2];y[d+380>>2]=e;e=y[c+92>>2];y[d+360>>2]=y[c+88>>2];y[d+364>>2]=e;e=y[c+84>>2];y[d+352>>2]=y[c+80>>2];y[d+356>>2]=e;ia(a,d+368|0,d+352|0);e=y[d+780>>2];y[c+88>>2]=y[d+776>>2];y[c+92>>2]=e;e=y[d+772>>2];y[c+80>>2]=y[d+768>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+336>>2]=y[c+48>>2];y[d+340>>2]=e;e=y[c+60>>2];y[d+344>>2]=y[c+56>>2];y[d+348>>2]=e;e=y[b+4>>2];y[d+320>>2]=y[b>>2];y[d+324>>2]=e;e=y[b+12>>2];y[d+328>>2]=y[b+8>>2];y[d+332>>2]=e;ia(a,d+336|0,d+320|0);e=y[d+780>>2];y[b+8>>2]=y[d+776>>2];y[b+12>>2]=e;e=y[d+772>>2];y[b>>2]=y[d+768>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+304>>2]=y[c+32>>2];y[d+308>>2]=e;e=y[c+44>>2];y[d+312>>2]=y[c+40>>2];y[d+316>>2]=e;e=y[c+52>>2];y[d+288>>2]=y[c+48>>2];y[d+292>>2]=e;e=y[c+60>>2];y[d+296>>2]=y[c+56>>2];y[d+300>>2]=e;ia(a,d+304|0,d+288|0);e=y[d+780>>2];y[c+56>>2]=y[d+776>>2];y[c+60>>2]=e;e=y[d+772>>2];y[c+48>>2]=y[d+768>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+272>>2]=y[c+16>>2];y[d+276>>2]=e;e=y[c+28>>2];y[d+280>>2]=y[c+24>>2];y[d+284>>2]=e;e=y[c+36>>2];y[d+256>>2]=y[c+32>>2];y[d+260>>2]=e;e=y[c+44>>2];y[d+264>>2]=y[c+40>>2];y[d+268>>2]=e;ia(a,d+272|0,d+256|0);e=y[d+780>>2];y[c+40>>2]=y[d+776>>2];y[c+44>>2]=e;e=y[d+772>>2];y[c+32>>2]=y[d+768>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+240>>2]=y[c>>2];y[d+244>>2]=e;e=y[c+12>>2];y[d+248>>2]=y[c+8>>2];y[d+252>>2]=e;e=y[c+20>>2];y[d+224>>2]=y[c+16>>2];y[d+228>>2]=e;e=y[c+28>>2];y[d+232>>2]=y[c+24>>2];y[d+236>>2]=e;ia(a,d+240|0,d+224|0);e=y[d+780>>2];y[c+24>>2]=y[d+776>>2];y[c+28>>2]=e;e=y[d+772>>2];y[c+16>>2]=y[d+768>>2];y[c+20>>2]=e;e=y[d+788>>2];y[d+208>>2]=y[d+784>>2];y[d+212>>2]=e;e=y[d+796>>2];y[d+216>>2]=y[d+792>>2];y[d+220>>2]=e;e=y[c+4>>2];y[d+192>>2]=y[c>>2];y[d+196>>2]=e;e=y[c+12>>2];y[d+200>>2]=y[c+8>>2];y[d+204>>2]=e;ia(a,d+208|0,d+192|0);e=y[d+768>>2];f=y[d+772>>2];h=y[d+776>>2];y[c+12>>2]=j^y[d+780>>2];y[c+8>>2]=h^i;y[c+4>>2]=f^x;y[c>>2]=e^o;e=y[c+92>>2];y[d+792>>2]=y[c+88>>2];y[d+796>>2]=e;e=y[c+84>>2];y[d+784>>2]=y[c+80>>2];y[d+788>>2]=e;e=y[b+4>>2];y[d+176>>2]=y[b>>2];y[d+180>>2]=e;e=y[b+12>>2];y[d+184>>2]=y[b+8>>2];y[d+188>>2]=e;e=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=e;e=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=e;ia(a,d+176|0,d+160|0);e=y[d+780>>2];y[c+88>>2]=y[d+776>>2];y[c+92>>2]=e;e=y[d+772>>2];y[c+80>>2]=y[d+768>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=e;e=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=e;e=y[b+4>>2];y[d+128>>2]=y[b>>2];y[d+132>>2]=e;e=y[b+12>>2];y[d+136>>2]=y[b+8>>2];y[d+140>>2]=e;ia(a,d+144|0,d+128|0);e=y[d+780>>2];y[b+8>>2]=y[d+776>>2];y[b+12>>2]=e;e=y[d+772>>2];y[b>>2]=y[d+768>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=e;e=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=e;e=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=e;e=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=e;ia(a,d+112|0,d+96|0);e=y[d+780>>2];y[c+56>>2]=y[d+776>>2];y[c+60>>2]=e;e=y[d+772>>2];y[c+48>>2]=y[d+768>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=e;e=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=e;e=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=e;e=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=e;ia(a,d+80|0,d- -64|0);e=y[d+780>>2];y[c+40>>2]=y[d+776>>2];y[c+44>>2]=e;e=y[d+772>>2];y[c+32>>2]=y[d+768>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=e;e=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=e;e=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=e;ia(a,d+48|0,d+32|0);e=y[d+780>>2];y[c+24>>2]=y[d+776>>2];y[c+28>>2]=e;e=y[d+772>>2];y[c+16>>2]=y[d+768>>2];y[c+20>>2]=e;e=y[d+788>>2];y[d+16>>2]=y[d+784>>2];y[d+20>>2]=e;e=y[d+796>>2];y[d+24>>2]=y[d+792>>2];y[d+28>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;ia(a,d+16|0,d);a=y[d+768>>2];e=y[d+772>>2];f=y[d+776>>2];y[c+12>>2]=n^y[d+780>>2];y[c+8>>2]=f^m;y[c+4>>2]=e^l;y[c>>2]=a^k;g=g+1|0;if((g|0)!=4){continue}break}T=d+800|0;}function Da(a){a=a|0;var 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;k=T-16|0;T=k;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{if(a>>>0<=244){f=y[10173];g=a>>>0<11?16:a+11&504;a=g>>>3|0;b=f>>>a|0;if(b&3){e=a+((b^-1)&1)|0;b=e<<3;a=b+40732|0;c=y[b+40740>>2];d=y[c+8>>2];k:{if((a|0)==(d|0)){m=40692,n=Bi(-2,e)&f,y[m>>2]=n;break k}y[d+12>>2]=a;y[a+8>>2]=d;}a=c+8|0;y[c+4>>2]=b|3;b=b+c|0;y[b+4>>2]=y[b+4>>2]|1;break a}i=y[10175];if(i>>>0>=g>>>0){break j}if(b){c=2<>2];d=y[c+8>>2];l:{if((b|0)==(d|0)){f=Bi(-2,e)&f;y[10173]=f;break l}y[d+12>>2]=b;y[b+8>>2]=d;}y[c+4>>2]=g|3;h=c+g|0;e=a-g|0;y[h+4>>2]=e|1;y[a+c>>2]=e;if(i){a=(i&-8)+40732|0;d=y[10178];b=1<<(i>>>3);m:{if(!(b&f)){y[10173]=b|f;b=a;break m}b=y[a+8>>2];}y[a+8>>2]=d;y[b+12>>2]=d;y[d+12>>2]=a;y[d+8>>2]=b;}a=c+8|0;y[10178]=h;y[10175]=e;break a}l=y[10174];if(!l){break j}b=y[(zi(l)<<2)+40996>>2];e=(y[b+4>>2]&-8)-g|0;c=b;while(1){n:{a=y[b+16>>2];if(!a){a=y[b+20>>2];if(!a){break n}}d=(y[a+4>>2]&-8)-g|0;b=d>>>0>>0;e=b?d:e;c=b?a:c;b=a;continue}break}j=y[c+24>>2];a=y[c+12>>2];if((c|0)!=(a|0)){b=y[c+8>>2];y[b+12>>2]=a;y[a+8>>2]=b;break b}b=y[c+20>>2];if(b){d=c+20|0;}else {b=y[c+16>>2];if(!b){break i}d=c+16|0;}while(1){h=d;a=b;d=a+20|0;b=y[a+20>>2];if(b){continue}d=a+16|0;b=y[a+16>>2];if(b){continue}break}y[h>>2]=0;break b}g=-1;if(a>>>0>4294967231){break j}b=a+11|0;g=b&-8;h=y[10174];if(!h){break j}i=31;e=0-g|0;if(a>>>0<=16777204){a=H(b>>>8|0);i=((g>>>38-a&1)-(a<<1)|0)+62|0;}b=y[(i<<2)+40996>>2];o:{p:{q:{if(!b){a=0;break q}a=0;c=g<<((i|0)!=31?25-(i>>>1|0)|0:0);while(1){r:{f=(y[b+4>>2]&-8)-g|0;if(f>>>0>=e>>>0){break r}d=b;e=f;if(e){break r}e=0;a=b;break p}f=y[b+20>>2];b=y[((c>>>29&4)+b|0)+16>>2];a=f?(f|0)==(b|0)?a:f:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<>2];}if(!a){break o}}while(1){c=(y[a+4>>2]&-8)-g|0;b=c>>>0>>0;e=b?c:e;d=b?a:d;b=y[a+16>>2];if(b){a=b;}else {a=y[a+20>>2];}if(a){continue}break}}if(!d|y[10175]-g>>>0<=e>>>0){break j}i=y[d+24>>2];a=y[d+12>>2];if((d|0)!=(a|0)){b=y[d+8>>2];y[b+12>>2]=a;y[a+8>>2]=b;break c}b=y[d+20>>2];if(b){c=d+20|0;}else {b=y[d+16>>2];if(!b){break h}c=d+16|0;}while(1){f=c;a=b;c=a+20|0;b=y[a+20>>2];if(b){continue}c=a+16|0;b=y[a+16>>2];if(b){continue}break}y[f>>2]=0;break c}d=y[10175];if(d>>>0>=g>>>0){a=y[10178];b=d-g|0;s:{if(b>>>0>=16){c=a+g|0;y[c+4>>2]=b|1;y[a+d>>2]=b;y[a+4>>2]=g|3;break s}y[a+4>>2]=d|3;b=a+d|0;y[b+4>>2]=y[b+4>>2]|1;b=0;c=0;}y[10175]=b;y[10178]=c;a=a+8|0;break a}c=y[10176];if(c>>>0>g>>>0){b=c-g|0;y[10176]=b;a=y[10179];c=a+g|0;y[10179]=c;y[c+4>>2]=b|1;y[a+4>>2]=g|3;a=a+8|0;break a}a=0;e=g+47|0;if(y[10291]){b=y[10293];}else {y[10294]=-1;y[10295]=-1;y[10292]=4096;y[10293]=4096;y[10291]=k+12&-16^1431655768;y[10296]=0;y[10284]=0;b=4096;}f=e+b|0;h=0-b|0;b=f&h;if(b>>>0<=g>>>0){break a}i=y[10283];if(i){j=y[10281];d=j+b|0;if(d>>>0<=j>>>0|d>>>0>i>>>0){break a}}t:{if(!(z[41136]&4)){u:{v:{w:{x:{d=y[10179];if(d){a=41140;while(1){i=y[a>>2];if(i>>>0<=d>>>0&d>>>0>2]>>>0){break x}a=y[a+8>>2];if(a){continue}break}}c=lb(0);if((c|0)==-1){break u}f=b;a=y[10292];d=a-1|0;if(d&c){f=(b-c|0)+(c+d&0-a)|0;}if(f>>>0<=g>>>0){break u}d=y[10283];if(d){h=y[10281];a=h+f|0;if(a>>>0<=h>>>0|a>>>0>d>>>0){break u}}a=lb(f);if((c|0)!=(a|0)){break w}break t}f=h&f-c;c=lb(f);if((c|0)==(y[a>>2]+y[a+4>>2]|0)){break v}a=c;}if((a|0)==-1){break u}if(g+48>>>0<=f>>>0){c=a;break t}c=y[10293];c=c+(e-f|0)&0-c;if((lb(c)|0)==-1){break u}f=c+f|0;c=a;break t}if((c|0)!=-1){break t}}y[10284]=y[10284]|4;}c=lb(b);a=lb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break e}f=a-c|0;if(f>>>0<=g+40>>>0){break e}}a=y[10281]+f|0;y[10281]=a;if(a>>>0>B[10282]){y[10282]=a;}y:{e=y[10179];if(e){a=41140;while(1){b=y[a>>2];d=y[a+4>>2];if((b+d|0)==(c|0)){break y}a=y[a+8>>2];if(a){continue}break}break g}a=y[10177];if(!(a>>>0<=c>>>0?a:0)){y[10177]=c;}a=0;y[10286]=f;y[10285]=c;y[10181]=-1;y[10182]=y[10291];y[10288]=0;while(1){b=a<<3;d=b+40732|0;y[b+40740>>2]=d;y[b+40744>>2]=d;a=a+1|0;if((a|0)!=32){continue}break}a=f-40|0;b=-8-c&7;d=a-b|0;y[10176]=d;b=b+c|0;y[10179]=b;y[b+4>>2]=d|1;y[(a+c|0)+4>>2]=40;y[10180]=y[10295];break f}if(y[a+12>>2]&8|(c>>>0<=e>>>0|b>>>0>e>>>0)){break g}y[a+4>>2]=d+f;a=-8-e&7;b=a+e|0;y[10179]=b;c=y[10176]+f|0;a=c-a|0;y[10176]=a;y[b+4>>2]=a|1;y[(c+e|0)+4>>2]=40;y[10180]=y[10295];break f}a=0;break b}a=0;break c}if(B[10177]>c>>>0){y[10177]=c;}d=c+f|0;a=41140;z:{while(1){b=y[a>>2];if((b|0)!=(d|0)){a=y[a+8>>2];if(a){continue}break z}break}if(!(z[a+12|0]&8)){break d}}a=41140;while(1){A:{b=y[a>>2];if(b>>>0<=e>>>0){d=b+y[a+4>>2]|0;if(d>>>0>e>>>0){break A}}a=y[a+8>>2];continue}break}a=f-40|0;b=-8-c&7;h=a-b|0;y[10176]=h;b=b+c|0;y[10179]=b;y[b+4>>2]=h|1;y[(a+c|0)+4>>2]=40;y[10180]=y[10295];a=(d+(39-d&7)|0)-47|0;b=a>>>0>>0?e:a;y[b+4>>2]=27;a=y[10288];y[b+16>>2]=y[10287];y[b+20>>2]=a;a=y[10286];y[b+8>>2]=y[10285];y[b+12>>2]=a;y[10287]=b+8;y[10286]=f;y[10285]=c;y[10288]=0;a=b+24|0;while(1){y[a+4>>2]=7;c=a+8|0;a=a+4|0;if(c>>>0>>0){continue}break}if((b|0)==(e|0)){break f}y[b+4>>2]=y[b+4>>2]&-2;c=b-e|0;y[e+4>>2]=c|1;y[b>>2]=c;B:{if(c>>>0<=255){a=(c&248)+40732|0;b=y[10173];c=1<<(c>>>3);C:{if(!(b&c)){y[10173]=b|c;b=a;break C}b=y[a+8>>2];}y[a+8>>2]=e;y[b+12>>2]=e;d=8;c=12;break B}a=31;if(c>>>0<=16777215){a=H(c>>>8|0);a=(c>>>38-a&1|a<<1)^62;}y[e+28>>2]=a;y[e+16>>2]=0;y[e+20>>2]=0;b=(a<<2)+40996|0;D:{d=y[10174];f=1<>2]=e;break E}a=c<<((a|0)!=31?25-(a>>>1|0)|0:0);d=y[b>>2];while(1){b=d;if((c|0)==(y[b+4>>2]&-8)){break D}d=a>>>29|0;a=a<<1;f=(d&4)+b|0;d=y[f+16>>2];if(d){continue}break}y[f+16>>2]=e;}y[e+24>>2]=b;b=e;a=b;d=12;c=8;break B}a=y[b+8>>2];y[a+12>>2]=e;y[b+8>>2]=e;y[e+8>>2]=a;a=0;d=12;c=24;}y[e+d>>2]=b;y[c+e>>2]=a;}a=y[10176];if(a>>>0<=g>>>0){break e}b=a-g|0;y[10176]=b;a=y[10179];c=a+g|0;y[10179]=c;y[c+4>>2]=b|1;y[a+4>>2]=g|3;a=a+8|0;break a}y[10172]=48;a=0;break a}y[a>>2]=c;y[a+4>>2]=y[a+4>>2]+f;i=(-8-c&7)+c|0;y[i+4>>2]=g|3;f=b+(-8-b&7)|0;e=g+i|0;h=f-e|0;F:{if(y[10179]==(f|0)){y[10179]=e;a=y[10176]+h|0;y[10176]=a;y[e+4>>2]=a|1;break F}if(y[10178]==(f|0)){y[10178]=e;a=y[10175]+h|0;y[10175]=a;y[e+4>>2]=a|1;y[a+e>>2]=a;break F}a=y[f+4>>2];if((a&3)==1){j=a&-8;c=y[f+12>>2];G:{if(a>>>0<=255){b=y[f+8>>2];if((b|0)==(c|0)){m=40692,n=y[10173]&Bi(-2,a>>>3|0),y[m>>2]=n;break G}y[b+12>>2]=c;y[c+8>>2]=b;break G}g=y[f+24>>2];H:{if((c|0)!=(f|0)){a=y[f+8>>2];y[a+12>>2]=c;y[c+8>>2]=a;break H}I:{a=y[f+20>>2];if(a){b=f+20|0;}else {a=y[f+16>>2];if(!a){break I}b=f+16|0;}while(1){d=b;c=a;b=a+20|0;a=y[a+20>>2];if(a){continue}b=c+16|0;a=y[c+16>>2];if(a){continue}break}y[d>>2]=0;break H}c=0;}if(!g){break G}a=y[f+28>>2];b=a<<2;J:{if(y[b+40996>>2]==(f|0)){y[b+40996>>2]=c;if(c){break J}m=40696,n=y[10174]&Bi(-2,a),y[m>>2]=n;break G}K:{if(y[g+16>>2]==(f|0)){y[g+16>>2]=c;break K}y[g+20>>2]=c;}if(!c){break G}}y[c+24>>2]=g;a=y[f+16>>2];if(a){y[c+16>>2]=a;y[a+24>>2]=c;}a=y[f+20>>2];if(!a){break G}y[c+20>>2]=a;y[a+24>>2]=c;}h=h+j|0;f=f+j|0;a=y[f+4>>2];}y[f+4>>2]=a&-2;y[e+4>>2]=h|1;y[e+h>>2]=h;if(h>>>0<=255){a=(h&248)+40732|0;b=y[10173];c=1<<(h>>>3);L:{if(!(b&c)){y[10173]=b|c;b=a;break L}b=y[a+8>>2];}y[a+8>>2]=e;y[b+12>>2]=e;y[e+12>>2]=a;y[e+8>>2]=b;break F}c=31;if(h>>>0<=16777215){a=H(h>>>8|0);c=(h>>>38-a&1|a<<1)^62;}y[e+28>>2]=c;y[e+16>>2]=0;y[e+20>>2]=0;a=(c<<2)+40996|0;M:{b=y[10174];d=1<>2]=e;break N}c=h<<((c|0)!=31?25-(c>>>1|0)|0:0);b=y[a>>2];while(1){a=b;if((y[a+4>>2]&-8)==(h|0)){break M}b=c>>>29|0;c=c<<1;d=(b&4)+a|0;b=y[d+16>>2];if(b){continue}break}y[d+16>>2]=e;}y[e+24>>2]=a;y[e+12>>2]=e;y[e+8>>2]=e;break F}b=y[a+8>>2];y[b+12>>2]=e;y[a+8>>2]=e;y[e+24>>2]=0;y[e+12>>2]=a;y[e+8>>2]=b;}a=i+8|0;break a}O:{if(!i){break O}b=y[d+28>>2];c=b<<2;P:{if(y[c+40996>>2]==(d|0)){y[c+40996>>2]=a;if(a){break P}h=Bi(-2,b)&h;y[10174]=h;break O}Q:{if(y[i+16>>2]==(d|0)){y[i+16>>2]=a;break Q}y[i+20>>2]=a;}if(!a){break O}}y[a+24>>2]=i;b=y[d+16>>2];if(b){y[a+16>>2]=b;y[b+24>>2]=a;}b=y[d+20>>2];if(!b){break O}y[a+20>>2]=b;y[b+24>>2]=a;}R:{if(e>>>0<=15){a=e+g|0;y[d+4>>2]=a|3;a=a+d|0;y[a+4>>2]=y[a+4>>2]|1;break R}y[d+4>>2]=g|3;f=d+g|0;y[f+4>>2]=e|1;y[e+f>>2]=e;if(e>>>0<=255){a=(e&248)+40732|0;b=y[10173];c=1<<(e>>>3);S:{if(!(b&c)){y[10173]=b|c;b=a;break S}b=y[a+8>>2];}y[a+8>>2]=f;y[b+12>>2]=f;y[f+12>>2]=a;y[f+8>>2]=b;break R}a=31;if(e>>>0<=16777215){a=H(e>>>8|0);a=(e>>>38-a&1|a<<1)^62;}y[f+28>>2]=a;y[f+16>>2]=0;y[f+20>>2]=0;b=(a<<2)+40996|0;T:{c=1<>2]=f;y[f+24>>2]=b;break U}a=e<<((a|0)!=31?25-(a>>>1|0)|0:0);b=y[b>>2];while(1){c=b;if((y[b+4>>2]&-8)==(e|0)){break T}h=a>>>29|0;a=a<<1;h=b+(h&4)|0;b=y[h+16>>2];if(b){continue}break}y[h+16>>2]=f;y[f+24>>2]=c;}y[f+12>>2]=f;y[f+8>>2]=f;break R}a=y[c+8>>2];y[a+12>>2]=f;y[c+8>>2]=f;y[f+24>>2]=0;y[f+12>>2]=c;y[f+8>>2]=a;}a=d+8|0;break a}V:{if(!j){break V}b=y[c+28>>2];d=b<<2;W:{if(y[d+40996>>2]==(c|0)){y[d+40996>>2]=a;if(a){break W}m=40696,n=Bi(-2,b)&l,y[m>>2]=n;break V}X:{if(y[j+16>>2]==(c|0)){y[j+16>>2]=a;break X}y[j+20>>2]=a;}if(!a){break V}}y[a+24>>2]=j;b=y[c+16>>2];if(b){y[a+16>>2]=b;y[b+24>>2]=a;}b=y[c+20>>2];if(!b){break V}y[a+20>>2]=b;y[b+24>>2]=a;}Y:{if(e>>>0<=15){a=e+g|0;y[c+4>>2]=a|3;a=a+c|0;y[a+4>>2]=y[a+4>>2]|1;break Y}y[c+4>>2]=g|3;h=c+g|0;y[h+4>>2]=e|1;y[e+h>>2]=e;if(i){a=(i&-8)+40732|0;d=y[10178];b=1<<(i>>>3);Z:{if(!(b&f)){y[10173]=b|f;b=a;break Z}b=y[a+8>>2];}y[a+8>>2]=d;y[b+12>>2]=d;y[d+12>>2]=a;y[d+8>>2]=b;}y[10178]=h;y[10175]=e;}a=c+8|0;}T=k+16|0;return a|0}function Hc(a,b){var 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,t=0,u=0,v=0,x=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,U=0,V=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;m=T-48|0;T=m;e=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);d=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);w[a+24|0]=d;w[a+25|0]=d>>>8;w[a+26|0]=d>>>16;w[a+27|0]=d>>>24;w[a+28|0]=e;w[a+29|0]=e>>>8;w[a+30|0]=e>>>16;w[a+31|0]=e>>>24;e=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);d=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);w[a+16|0]=d;w[a+17|0]=d>>>8;w[a+18|0]=d>>>16;w[a+19|0]=d>>>24;w[a+20|0]=e;w[a+21|0]=e>>>8;w[a+22|0]=e>>>16;w[a+23|0]=e>>>24;e=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);d=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);w[a+8|0]=d;w[a+9|0]=d>>>8;w[a+10|0]=d>>>16;w[a+11|0]=d>>>24;w[a+12|0]=e;w[a+13|0]=e>>>8;w[a+14|0]=e>>>16;w[a+15|0]=e>>>24;d=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);b=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=d;w[a+5|0]=d>>>8;w[a+6|0]=d>>>16;w[a+7|0]=d>>>24;b=z[a+31|0];w[a+31|0]=b&127;cb(m,a);S=b&128;b=T-960|0;T=b;d=b+304|0;Oc(d,m);y[b+304>>2]=y[b+304>>2]+1;bb(d,d);d=y[b+340>>2];e=Ai(d,d>>31,486662,0);d=W;l=e+16777216|0;j=l>>>0<16777216?d+1|0:d;k=e-(l&-33554432)|0;d=y[b+336>>2];c=Ai(d,d>>31,486662,0);e=W;d=y[b+332>>2];f=Ai(d,d>>31,486662,0);d=W;i=c;h=f+16777216|0;d=h>>>0<16777216?d+1|0:d;c=d>>25;d=(d&33554431)<<7|h>>>25;g=i+d|0;c=c+e|0;d=d>>>0>g>>>0?c+1|0:c;e=g+33554432|0;d=e>>>0<33554432?d+1|0:d;n=((d&67108863)<<6|e>>>26)+k|0;o=0-n|0;y[b+292>>2]=o;p=g-(e&-67108864)|0;q=0-p|0;y[b+288>>2]=q;k=f-(h&-33554432)|0;d=y[b+328>>2];e=Ai(d,d>>31,486662,0);d=W;c=y[b+324>>2];h=Ai(c,c>>31,486662,0);c=W;i=e;g=h+16777216|0;c=g>>>0<16777216?c+1|0:c;e=c>>25;f=(c&33554431)<<7|g>>>25;c=i+f|0;d=d+e|0;d=c>>>0>>0?d+1|0:d;e=c+33554432|0;d=e>>>0<33554432?d+1|0:d;r=((d&67108863)<<6|e>>>26)+k|0;t=0-r|0;y[b+284>>2]=t;u=c-(e&-67108864)|0;v=0-u|0;y[b+280>>2]=v;k=h-(g&-33554432)|0;d=y[b+320>>2];c=Ai(d,d>>31,486662,0);d=W;e=y[b+316>>2];h=Ai(e,e>>31,486662,0);e=W;i=c;g=h+16777216|0;e=g>>>0<16777216?e+1|0:e;c=e>>25;f=(e&33554431)<<7|g>>>25;e=i+f|0;d=c+d|0;d=e>>>0>>0?d+1|0:d;c=d;f=e+33554432|0;c=f>>>0<33554432?c+1|0:c;x=((c&67108863)<<6|f>>>26)+k|0;A=0-x|0;y[b+276>>2]=A;B=e-(f&-67108864)|0;C=0-B|0;y[b+272>>2]=C;i=h-(g&-33554432)|0;d=y[b+312>>2];d=Ai(d,d>>31,486662,0);k=W;e=y[b+308>>2];f=Ai(e,e>>31,486662,0);c=W;h=f+16777216|0;c=h>>>0<16777216?c+1|0:c;e=(c&33554431)<<7|h>>>25;g=e+d|0;c=(c>>25)+k|0;e=e>>>0>g>>>0?c+1|0:c;d=g+33554432|0;e=d>>>0<33554432?e+1|0:e;D=((e&67108863)<<6|d>>>26)+i|0;E=0-D|0;y[b+268>>2]=E;F=g-(d&-67108864)|0;G=0-F|0;y[b+264>>2]=G;g=f-(h&-33554432)|0;e=Ai((j&33554431)<<7|l>>>25,j>>25,19,0);d=W;f=e;c=y[b+304>>2];e=Ai(c,c>>31,486662,0);c=f+e|0;d=W+d|0;e=c>>>0>>0?d+1|0:d;d=c+33554432|0;e=d>>>0<33554432?e+1|0:e;H=((e&67108863)<<6|d>>>26)+g|0;I=0-H|0;y[b+260>>2]=I;J=c-(d&-67108864)|0;K=0-J|0;y[b+256>>2]=K;e=b+208|0;d=b+256|0;fa(e,d);ga(b+160|0,d,e);U=y[b+196>>2];V=y[b+160>>2];M=y[b+208>>2];X=y[b+164>>2];Y=y[b+168>>2];N=y[b+212>>2];O=y[b+216>>2];Z=y[b+172>>2];_=y[b+176>>2];P=y[b+220>>2];Q=y[b+224>>2];$=y[b+180>>2];aa=y[b+184>>2];i=y[b+228>>2];k=y[b+232>>2];ba=y[b+188>>2];ca=y[b+192>>2];d=y[b+244>>2];e=Ai(d,d>>31,486662,0);d=W;l=e+16777216|0;j=l>>>0<16777216?d+1|0:d;da=e-(l&-33554432)|0;d=y[b+240>>2];d=Ai(d,d>>31,486662,0);L=W;e=y[b+236>>2];f=Ai(e,e>>31,486662,0);c=W;e=d;h=f+16777216|0;c=h>>>0<16777216?c+1|0:c;d=(c&33554431)<<7|h>>>25;g=e+d|0;c=(c>>25)+L|0;d=d>>>0>g>>>0?c+1|0:c;e=g+33554432|0;d=e>>>0<33554432?d+1|0:d;c=((d&67108863)<<6|e>>>26)+da|0;y[b+244>>2]=c;y[b+388>>2]=c+(U-n|0);d=g-(e&-67108864)|0;y[b+240>>2]=d;y[b+384>>2]=d+(ca-p|0);L=f-(h&-33554432)|0;d=Ai(k,k>>31,486662,0);f=W;h=Ai(i,i>>31,486662,0);e=W;i=d;g=h+16777216|0;e=g>>>0<16777216?e+1|0:e;d=e>>25;c=(e&33554431)<<7|g>>>25;e=i+c|0;d=d+f|0;d=c>>>0>e>>>0?d+1|0:d;c=d;f=e+33554432|0;c=f>>>0<33554432?c+1|0:c;d=f;f=((c&67108863)<<6|d>>>26)+L|0;y[b+236>>2]=f;y[b+380>>2]=f+(ba-r|0);d=e-(d&-67108864)|0;y[b+232>>2]=d;y[b+376>>2]=d+(aa-u|0);k=h-(g&-33554432)|0;c=Ai(Q,Q>>31,486662,0);e=W;f=Ai(P,P>>31,486662,0);d=W;i=c;h=f+16777216|0;d=h>>>0<16777216?d+1|0:d;c=d>>25;d=(d&33554431)<<7|h>>>25;g=i+d|0;c=c+e|0;e=d>>>0>g>>>0?c+1|0:c;d=g+33554432|0;e=d>>>0<33554432?e+1|0:e;c=((e&67108863)<<6|d>>>26)+k|0;y[b+228>>2]=c;y[b+372>>2]=c+($-x|0);d=g-(d&-67108864)|0;y[b+224>>2]=d;y[b+368>>2]=d+(_-B|0);k=f-(h&-33554432)|0;d=Ai(O,O>>31,486662,0);e=W;h=Ai(N,N>>31,486662,0);c=W;i=d;g=h+16777216|0;c=g>>>0<16777216?c+1|0:c;d=c>>25;f=(c&33554431)<<7|g>>>25;c=i+f|0;e=d+e|0;e=c>>>0>>0?e+1|0:e;d=e;f=c+33554432|0;d=f>>>0<33554432?d+1|0:d;e=f;f=((d&67108863)<<6|e>>>26)+k|0;y[b+220>>2]=f;y[b+364>>2]=f+(Z-D|0);d=c-(e&-67108864)|0;y[b+216>>2]=d;y[b+360>>2]=d+(Y-F|0);g=h-(g&-33554432)|0;e=Ai((j&33554431)<<7|l>>>25,j>>25,19,0);d=W;c=e;e=Ai(M,M>>31,486662,0);c=c+e|0;d=W+d|0;d=c>>>0>>0?d+1|0:d;e=c+33554432|0;d=e>>>0<33554432?d+1|0:d;j=((d&67108863)<<6|e>>>26)+g|0;y[b+212>>2]=j;y[b+356>>2]=j+(X-H|0);d=c-(e&-67108864)|0;y[b+208>>2]=d;y[b+352>>2]=d+(V-J|0);d=b+624|0;e=b+352|0;ga(d,e,e);ga(b,e,d);e=b+784|0;fa(e,b);fa(e,e);d=b+912|0;ga(d,b,e);e=b+576|0;fa(e,d);fa(e,e);fa(e,e);fa(e,e);c=b+528|0;ga(c,d,e);fa(c,c);fa(c,c);ga(c,c,b);d=y[b+564>>2];y[b+512>>2]=y[b+560>>2];y[b+516>>2]=d;d=y[b+556>>2];y[b+504>>2]=y[b+552>>2];y[b+508>>2]=d;d=y[b+548>>2];y[b+496>>2]=y[b+544>>2];y[b+500>>2]=d;d=y[b+540>>2];y[b+488>>2]=y[b+536>>2];y[b+492>>2]=d;d=y[b+532>>2];y[b+480>>2]=y[b+528>>2];y[b+484>>2]=d;fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);d=b+480|0;ga(c,c,d);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(c,c,d);d=y[b+564>>2];y[b+464>>2]=y[b+560>>2];y[b+468>>2]=d;d=y[b+556>>2];y[b+456>>2]=y[b+552>>2];y[b+460>>2]=d;d=y[b+548>>2];y[b+448>>2]=y[b+544>>2];y[b+452>>2]=d;d=y[b+540>>2];y[b+440>>2]=y[b+536>>2];y[b+444>>2]=d;d=y[b+532>>2];y[b+432>>2]=y[b+528>>2];y[b+436>>2]=d;fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);e=b+432|0;ga(c,c,e);d=y[b+564>>2];y[b+464>>2]=y[b+560>>2];y[b+468>>2]=d;d=y[b+556>>2];y[b+456>>2]=y[b+552>>2];y[b+460>>2]=d;d=y[b+548>>2];y[b+448>>2]=y[b+544>>2];y[b+452>>2]=d;d=y[b+540>>2];y[b+440>>2]=y[b+536>>2];y[b+444>>2]=d;d=y[b+532>>2];y[b+432>>2]=y[b+528>>2];y[b+436>>2]=d;fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(c,c,e);d=y[b+564>>2];y[b+464>>2]=y[b+560>>2];y[b+468>>2]=d;d=y[b+556>>2];y[b+456>>2]=y[b+552>>2];y[b+460>>2]=d;d=y[b+548>>2];y[b+448>>2]=y[b+544>>2];y[b+452>>2]=d;d=y[b+540>>2];y[b+440>>2]=y[b+536>>2];y[b+444>>2]=d;d=y[b+532>>2];y[b+432>>2]=y[b+528>>2];y[b+436>>2]=d;while(1){d=b+528|0;fa(d,d);R=R+1|0;if((R|0)!=120){continue}break}ga(d,d,b+432|0);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);ga(d,d,b+480|0);fa(d,d);fa(d,d);fa(d,d);ga(d,d,b);fa(d,d);pa(b+400|0,d);d=0-(w[b+401|0]&1)|0;i=o^d&(n^o);y[b+660>>2]=i;k=q^d&(p^q);y[b+656>>2]=k;l=t^d&(r^t);y[b+652>>2]=l;f=d&(u^v)^v;y[b+648>>2]=f;h=d&(x^A)^A;y[b+644>>2]=h;g=d&(B^C)^C;y[b+640>>2]=g;j=d&(D^E)^E;y[b+636>>2]=j;c=d&(F^G)^G;y[b+632>>2]=c;e=d&(H^I)^I;y[b+628>>2]=e;d=(d&(J^K)^K)-(d&486662)|0;y[b+624>>2]=d+1;y[b+820>>2]=i;y[b+816>>2]=k;y[b+812>>2]=l;y[b+808>>2]=f;y[b+804>>2]=h;y[b+800>>2]=g;y[b+796>>2]=j;y[b+792>>2]=c;y[b+788>>2]=e;y[b+784>>2]=d-1;bb(b,b+624|0);d=b+912|0;ga(d,b+784|0,b);pa(a,d);w[a+31|0]=z[a+31|0]|S;if(ab(b,a)){Ic();s();}d=y[b+36>>2];y[b+816>>2]=y[b+32>>2];y[b+820>>2]=d;d=y[b+28>>2];y[b+808>>2]=y[b+24>>2];y[b+812>>2]=d;d=y[b+20>>2];y[b+800>>2]=y[b+16>>2];y[b+804>>2]=d;d=y[b+12>>2];y[b+792>>2]=y[b+8>>2];y[b+796>>2]=d;d=y[b+4>>2];y[b+784>>2]=y[b>>2];y[b+788>>2]=d;d=y[b+44>>2];y[b+824>>2]=y[b+40>>2];y[b+828>>2]=d;d=y[b+52>>2];y[b+832>>2]=y[b+48>>2];y[b+836>>2]=d;d=y[b+60>>2];y[b+840>>2]=y[b+56>>2];y[b+844>>2]=d;d=y[b+68>>2];y[b+848>>2]=y[b+64>>2];y[b+852>>2]=d;d=y[b+76>>2];y[b+856>>2]=y[b+72>>2];y[b+860>>2]=d;d=y[b+116>>2];y[b+896>>2]=y[b+112>>2];y[b+900>>2]=d;d=y[b+108>>2];y[b+888>>2]=y[b+104>>2];y[b+892>>2]=d;d=y[b+100>>2];y[b+880>>2]=y[b+96>>2];y[b+884>>2]=d;d=y[b+92>>2];y[b+872>>2]=y[b+88>>2];y[b+876>>2]=d;d=y[b+84>>2];y[b+864>>2]=y[b+80>>2];y[b+868>>2]=d;f=b+624|0;h=b+784|0;xa(f,h);g=b+744|0;ga(h,f,g);e=b+824|0;c=b+664|0;j=b+704|0;ga(e,c,j);d=b+864|0;ga(d,j,g);xa(f,h);ga(h,f,g);ga(e,c,j);ga(d,j,g);xa(f,h);ga(b,f,g);e=b+40|0;ga(e,c,j);d=b+80|0;ga(d,j,g);ga(b+120|0,f,c);bb(f,d);ga(h,b,f);d=b+912|0;ga(d,e,f);pa(a,d);pa(b+576|0,h);w[a+31|0]=z[a+31|0]^z[b+576|0]<<7;T=b+960|0;T=m+48|0;}function pc(a,b,c,d,e,f){var 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,x=0,A=0,B=0,C=0,D=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,U=0,V=0,W=0,X=0,Y=0;I=T-592|0;T=I;j=-1;h=a+32|0;a:{if(!Jc(h)){break a}if(yb(a)){break a}if(!dc(e)){break a}if(yb(e)){break a}k=I+128|0;if(Qc(k,e)){break a}j=I+384|0;Za(j);if(f){va(j,39696,34,0);}va(j,a,32,0);va(j,e,32,0);va(j,b,c,d);d=I+320|0;Ca(j,d);Pa(d);j=I+8|0;c=h;e=0;b=0;g=T-2272|0;T=g;while(1){f=g+2016|0;h=z[d+(e>>>3|0)|0];w[f+e|0]=h>>>(e&6)&1;i=f;f=e|1;w[i+f|0]=h>>>(f&7)&1;e=e+2|0;if((e|0)!=256){continue}break}f=254;while(1){d=b;b=d+1|0;e=g+2016|0;n=e+d|0;b:{if(!z[n|0]|d>>>0>254){break b}l=b+e|0;e=w[l|0];c:{if(!e){break c}i=e<<1;h=w[n|0];e=i+h|0;if((e|0)<=15){w[n|0]=e;w[l|0]=0;break c}e=h-i|0;if((e|0)<-15){break b}w[n|0]=e;e=b;while(1){h=(g+2016|0)+e|0;if(!z[h|0]){w[h|0]=1;break c}w[h|0]=0;e=e+1|0;if((e|0)!=256){continue}break}}if(!f){break b}e=d+2|0;r=e+(g+2016|0)|0;h=w[r|0];d:{if(!h){break d}l=h<<2;i=w[n|0];h=l+i|0;if((h|0)>=16){h=i-l|0;if((h|0)<-15){break b}w[n|0]=h;while(1){h=(g+2016|0)+e|0;if(z[h|0]){w[h|0]=0;e=e+1|0;if((e|0)!=256){continue}break d}break}w[h|0]=1;break d}w[n|0]=h;w[r|0]=0;}m=(f>>>0>=5?5:f)+1|0;if((m|0)==2){break b}e=d+3|0;r=e+(g+2016|0)|0;h=w[r|0];e:{if(!h){break e}l=h<<3;i=w[n|0];h=l+i|0;if((h|0)>=16){h=i-l|0;if((h|0)<-15){break b}w[n|0]=h;while(1){h=(g+2016|0)+e|0;if(z[h|0]){w[h|0]=0;e=e+1|0;if((e|0)!=256){continue}break e}break}w[h|0]=1;break e}w[n|0]=h;w[r|0]=0;}if((m|0)==3){break b}e=d+4|0;r=e+(g+2016|0)|0;h=w[r|0];f:{if(!h){break f}l=h<<4;i=w[n|0];h=l+i|0;if((h|0)>=16){h=i-l|0;if((h|0)<-15){break b}w[n|0]=h;while(1){h=(g+2016|0)+e|0;if(z[h|0]){w[h|0]=0;e=e+1|0;if((e|0)!=256){continue}break f}break}w[h|0]=1;break f}w[n|0]=h;w[r|0]=0;}if((m|0)==4){break b}e=d+5|0;r=e+(g+2016|0)|0;h=w[r|0];g:{if(!h){break g}l=h<<5;i=w[n|0];h=l+i|0;if((h|0)>=16){h=i-l|0;if((h|0)<-15){break b}w[n|0]=h;while(1){h=(g+2016|0)+e|0;if(z[h|0]){w[h|0]=0;e=e+1|0;if((e|0)!=256){continue}break g}break}w[h|0]=1;break g}w[n|0]=h;w[r|0]=0;}if((m|0)==5){break b}e=d+6|0;l=e+(g+2016|0)|0;d=w[l|0];if(!d){break b}i=d<<6;h=w[n|0];d=i+h|0;if((d|0)>=16){d=h-i|0;if((d|0)<-15){break b}w[n|0]=d;while(1){d=(g+2016|0)+e|0;if(z[d|0]){w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break b}break}w[d|0]=1;break b}w[n|0]=d;w[l|0]=0;}f=f-1|0;if((b|0)!=256){continue}break}e=0;while(1){b=g+1760|0;d=z[c+(e>>>3|0)|0];w[b+e|0]=d>>>(e&6)&1;f=b;b=e|1;w[f+b|0]=d>>>(b&7)&1;e=e+2|0;if((e|0)!=256){continue}break}b=0;f=254;while(1){c=b;b=b+1|0;d=g+1760|0;m=d+c|0;h:{if(!z[m|0]|c>>>0>254){break h}i=b+d|0;d=w[i|0];i:{if(!d){break i}h=d<<1;e=w[m|0];d=h+e|0;if((d|0)<=15){w[m|0]=d;w[i|0]=0;break i}d=e-h|0;if((d|0)<-15){break h}w[m|0]=d;e=b;while(1){d=(g+1760|0)+e|0;if(!z[d|0]){w[d|0]=1;break i}w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break}}if(!f){break h}e=c+2|0;l=e+(g+1760|0)|0;d=w[l|0];j:{if(!d){break j}i=d<<2;h=w[m|0];d=i+h|0;if((d|0)>=16){d=h-i|0;if((d|0)<-15){break h}w[m|0]=d;while(1){d=(g+1760|0)+e|0;if(z[d|0]){w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break j}break}w[d|0]=1;break j}w[m|0]=d;w[l|0]=0;}r=(f>>>0>=5?5:f)+1|0;if((r|0)==2){break h}e=c+3|0;l=e+(g+1760|0)|0;d=w[l|0];k:{if(!d){break k}i=d<<3;h=w[m|0];d=i+h|0;if((d|0)>=16){d=h-i|0;if((d|0)<-15){break h}w[m|0]=d;while(1){d=(g+1760|0)+e|0;if(z[d|0]){w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break k}break}w[d|0]=1;break k}w[m|0]=d;w[l|0]=0;}if((r|0)==3){break h}e=c+4|0;l=e+(g+1760|0)|0;d=w[l|0];l:{if(!d){break l}i=d<<4;h=w[m|0];d=i+h|0;if((d|0)>=16){d=h-i|0;if((d|0)<-15){break h}w[m|0]=d;while(1){d=(g+1760|0)+e|0;if(z[d|0]){w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break l}break}w[d|0]=1;break l}w[m|0]=d;w[l|0]=0;}if((r|0)==4){break h}e=c+5|0;l=e+(g+1760|0)|0;d=w[l|0];m:{if(!d){break m}i=d<<5;h=w[m|0];d=i+h|0;if((d|0)>=16){d=h-i|0;if((d|0)<-15){break h}w[m|0]=d;while(1){d=(g+1760|0)+e|0;if(z[d|0]){w[d|0]=0;e=e+1|0;if((e|0)!=256){continue}break m}break}w[d|0]=1;break m}w[m|0]=d;w[l|0]=0;}if((r|0)==5){break h}e=c+6|0;i=e+(g+1760|0)|0;c=w[i|0];if(!c){break h}h=c<<6;d=w[m|0];c=h+d|0;if((c|0)>=16){c=d-h|0;if((c|0)<-15){break h}w[m|0]=c;while(1){c=(g+1760|0)+e|0;if(z[c|0]){w[c|0]=0;e=e+1|0;if((e|0)!=256){continue}break h}break}w[c|0]=1;break h}w[m|0]=c;w[i|0]=0;}f=f-1|0;if((b|0)!=256){continue}break}d=g+480|0;qa(d,k);b=y[k+36>>2];y[g+192>>2]=y[k+32>>2];y[g+196>>2]=b;b=y[k+28>>2];y[g+184>>2]=y[k+24>>2];y[g+188>>2]=b;b=y[k+20>>2];y[g+176>>2]=y[k+16>>2];y[g+180>>2]=b;b=y[k+12>>2];y[g+168>>2]=y[k+8>>2];y[g+172>>2]=b;b=y[k+4>>2];y[g+160>>2]=y[k>>2];y[g+164>>2]=b;b=y[k+44>>2];y[g+200>>2]=y[k+40>>2];y[g+204>>2]=b;b=y[k+52>>2];y[g+208>>2]=y[k+48>>2];y[g+212>>2]=b;b=y[k+60>>2];y[g+216>>2]=y[k+56>>2];y[g+220>>2]=b;c=k- -64|0;b=y[c+4>>2];y[g+224>>2]=y[c>>2];y[g+228>>2]=b;b=y[k+76>>2];y[g+232>>2]=y[k+72>>2];y[g+236>>2]=b;b=y[k+84>>2];y[g+240>>2]=y[k+80>>2];y[g+244>>2]=b;b=y[k+92>>2];y[g+248>>2]=y[k+88>>2];y[g+252>>2]=b;b=y[k+100>>2];y[g+256>>2]=y[k+96>>2];y[g+260>>2]=b;b=y[k+108>>2];y[g+264>>2]=y[k+104>>2];y[g+268>>2]=b;b=y[k+116>>2];y[g+272>>2]=y[k+112>>2];y[g+276>>2]=b;e=g+320|0;c=g+160|0;xa(e,c);o=g+440|0;ga(g,e,o);p=g+360|0;q=g+400|0;ga(g+40|0,p,q);ga(g+80|0,q,o);ga(g+120|0,e,p);sa(e,g,d);ga(c,e,o);t=g+200|0;ga(t,p,q);u=g+240|0;ga(u,q,o);s=g+280|0;ga(s,e,p);b=g+640|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);b=g+800|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);b=g+960|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);b=g+1120|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);b=g+1280|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);b=g+1440|0;qa(b,c);sa(e,g,b);ga(c,e,o);ga(t,p,q);ga(u,q,o);ga(s,e,p);qa(g+1600|0,c);y[j+32>>2]=0;y[j+36>>2]=0;y[j+24>>2]=0;y[j+28>>2]=0;y[j+16>>2]=0;y[j+20>>2]=0;y[j+8>>2]=0;y[j+12>>2]=0;y[j>>2]=0;y[j+4>>2]=0;y[j+44>>2]=0;y[j+48>>2]=0;L=j+40|0;y[L>>2]=1;y[j+52>>2]=0;y[j+56>>2]=0;y[j+60>>2]=0;y[j+64>>2]=0;y[j+68>>2]=0;y[j+72>>2]=0;y[j+84>>2]=0;y[j+88>>2]=0;y[j+76>>2]=0;y[j+80>>2]=1;y[j+92>>2]=0;y[j+96>>2]=0;y[j+100>>2]=0;y[j+104>>2]=0;y[j+108>>2]=0;y[j+112>>2]=0;y[j+116>>2]=0;S=j+80|0;f=255;while(1){n:{o:{b=g+2016|0;p:{if(z[b+f|0]){break p}c=g+1760|0;if(z[c+f|0]){break p}d=b;b=f-1|0;if(!(z[d+b|0]|z[b+c|0])){break o}f=b;}if((f|0)<0){break n}while(1){d=g+320|0;xa(d,j);b=f;e=w[b+(g+2016|0)|0];q:{if((e|0)>0){c=g+160|0;ga(c,d,o);ga(t,p,q);ga(u,q,o);ga(s,d,p);sa(d,c,(g+480|0)+E((e&254)>>>1|0,160)|0);break q}if((e|0)>=0){break q}c=g+160|0;d=g+320|0;ga(c,d,o);ga(t,p,q);ga(u,q,o);ga(s,d,p);Hb(d,c,(g+480|0)+E((0-e&254)>>>1|0,160)|0);}J=w[b+(g+1760|0)|0];r:{if((J|0)>0){c=g+160|0;d=g+320|0;ga(c,d,o);ga(t,p,q);ga(u,q,o);ga(s,d,p);fc(d,c,E((J&254)>>>1|0,120)+1728|0);break r}if((J|0)>=0){break r}K=g+320|0;ga(g+160|0,K,o);ga(t,p,q);ga(u,q,o);ga(s,K,p);v=y[g+160>>2];x=y[g+200>>2];A=y[g+164>>2];B=y[g+204>>2];C=y[g+168>>2];D=y[g+208>>2];F=y[g+172>>2];G=y[g+212>>2];H=y[g+176>>2];k=y[g+216>>2];n=y[g+180>>2];m=y[g+220>>2];r=y[g+184>>2];l=y[g+224>>2];i=y[g+188>>2];h=y[g+228>>2];f=y[g+192>>2];e=y[g+232>>2];d=y[g+236>>2];c=y[g+196>>2];y[g+396>>2]=d-c;y[g+392>>2]=e-f;y[g+388>>2]=h-i;y[g+384>>2]=l-r;y[g+380>>2]=m-n;y[g+376>>2]=k-H;y[g+372>>2]=G-F;y[g+368>>2]=D-C;y[g+364>>2]=B-A;y[g+360>>2]=x-v;y[g+356>>2]=c+d;y[g+352>>2]=e+f;y[g+348>>2]=h+i;y[g+344>>2]=l+r;y[g+340>>2]=m+n;y[g+336>>2]=k+H;y[g+332>>2]=F+G;y[g+328>>2]=C+D;y[g+324>>2]=A+B;y[g+320>>2]=v+x;c=E((0-J&254)>>>1|0,120)+1728|0;ga(q,K,c+40|0);ga(p,p,c);ga(o,c+80|0,s);U=y[g+276>>2];V=y[g+272>>2];J=y[g+268>>2];K=y[g+264>>2];r=y[g+260>>2];l=y[g+256>>2];i=y[g+252>>2];h=y[g+248>>2];f=y[g+244>>2];e=y[g+240>>2];M=y[g+360>>2];N=y[g+400>>2];O=y[g+364>>2];P=y[g+404>>2];Q=y[g+368>>2];R=y[g+408>>2];v=y[g+372>>2];x=y[g+412>>2];A=y[g+376>>2];B=y[g+416>>2];C=y[g+380>>2];D=y[g+420>>2];F=y[g+384>>2];G=y[g+424>>2];H=y[g+388>>2];k=y[g+428>>2];n=y[g+392>>2];m=y[g+432>>2];d=y[g+396>>2];c=y[g+436>>2];y[g+396>>2]=d+c;y[g+392>>2]=m+n;y[g+388>>2]=k+H;y[g+384>>2]=F+G;y[g+380>>2]=C+D;y[g+376>>2]=A+B;y[g+372>>2]=v+x;y[g+368>>2]=Q+R;y[g+364>>2]=O+P;y[g+360>>2]=M+N;y[g+356>>2]=c-d;y[g+352>>2]=m-n;y[g+348>>2]=k-H;y[g+344>>2]=G-F;y[g+340>>2]=D-C;y[g+336>>2]=B-A;y[g+332>>2]=x-v;y[g+328>>2]=R-Q;y[g+324>>2]=P-O;y[g+320>>2]=N-M;v=e<<1;x=y[g+440>>2];y[g+400>>2]=v-x;A=f<<1;B=y[g+444>>2];y[g+404>>2]=A-B;C=h<<1;D=y[g+448>>2];y[g+408>>2]=C-D;F=i<<1;G=y[g+452>>2];y[g+412>>2]=F-G;H=l<<1;k=y[g+456>>2];y[g+416>>2]=H-k;n=r<<1;m=y[g+460>>2];y[g+420>>2]=n-m;r=K<<1;l=y[g+464>>2];y[g+424>>2]=r-l;i=J<<1;h=y[g+468>>2];y[g+428>>2]=i-h;f=V<<1;e=y[g+472>>2];y[g+432>>2]=f-e;d=U<<1;c=y[g+476>>2];y[g+436>>2]=d-c;y[g+440>>2]=v+x;y[g+444>>2]=A+B;y[g+448>>2]=C+D;y[g+452>>2]=F+G;y[g+456>>2]=k+H;y[g+460>>2]=m+n;y[g+464>>2]=l+r;y[g+468>>2]=h+i;y[g+472>>2]=e+f;y[g+476>>2]=c+d;}ga(j,g+320|0,o);ga(L,p,q);ga(S,q,o);f=b-1|0;if((b|0)>0){continue}break}break n}f=f-2|0;if(b){continue}}break}T=g+2272|0;b=I+288|0;Wa(b,j);j=(W=-1,X=kb(b,a),Y=(a|0)==(b|0),Y?W:X)|$a(a,b,32);}T=I+592|0;return j}function ph(a,b){a=a|0;b=b|0;var 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,z=0,A=0,B=0,C=0,D=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,U=0,V=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,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;g=T-256|0;T=g;za=-1;a:{if(yb(b)){break a}c=g+96|0;if(Qc(c,b)){break a}if(!ec(c)){break a}za=0;K=y[g+172>>2];y[g+36>>2]=0-K;s=y[g+168>>2];y[g+32>>2]=0-s;L=y[g+164>>2];y[g+28>>2]=0-L;t=y[g+160>>2];y[g+24>>2]=0-t;M=y[g+156>>2];y[g+20>>2]=0-M;u=y[g+152>>2];y[g+16>>2]=0-u;N=y[g+148>>2];y[g+12>>2]=0-N;v=y[g+144>>2];y[g+8>>2]=0-v;O=y[g+140>>2];y[g+4>>2]=0-O;e=y[g+136>>2];y[g>>2]=1-e;bb(g,g);w=y[g+4>>2];H=w>>31;x=M<<1;ba=x>>31;b=Ai(w,H,x,ba);c=W;q=y[g>>2];z=q>>31;A=t>>31;d=Ai(q,z,t,A);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;B=y[g+8>>2];P=B>>31;C=u>>31;f=Ai(B,P,u,C);d=f+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;I=y[g+12>>2];S=I>>31;X=N<<1;ca=X>>31;d=Ai(I,S,X,ca);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;Q=y[g+16>>2];Y=Q>>31;D=v>>31;d=Ai(Q,Y,v,D);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;f=y[g+20>>2];ta=f;da=f>>31;Z=O<<1;ea=Z>>31;o=Ai(f,da,Z,ea);c=o+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;l=y[g+24>>2];ua=l;qa=l>>31;o=e+1|0;F=o>>31;e=Ai(l,qa,o,F);b=e+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;fa=y[g+28>>2];r=E(fa,19);U=r>>31;_=K<<1;ga=_>>31;e=Ai(r,U,_,ga);d=e+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;Aa=y[g+32>>2];i=E(Aa,19);R=i>>31;G=s>>31;d=Ai(i,R,s,G);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;Ba=y[g+36>>2];n=E(Ba,19);J=n>>31;$=L<<1;ha=$>>31;d=Ai(n,J,$,ha);c=d+c|0;b=W+b|0;j=c;e=c>>>0>>0?b+1|0:b;b=Ai(u,C,w,H);c=W;ia=M>>31;h=Ai(q,z,M,ia);b=h+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;ja=N>>31;h=Ai(B,P,N,ja);b=h+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;h=Ai(v,D,I,S);d=h+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;ka=O>>31;d=Ai(Q,Y,O,ka);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(o,F,f,da);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;l=E(l,19);aa=l>>31;la=K>>31;h=Ai(l,aa,K,la);c=h+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;h=Ai(s,G,r,U);b=h+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;ma=L>>31;h=Ai(i,R,L,ma);d=h+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;d=Ai(n,J,t,A);c=c+d|0;b=W+b|0;va=c;V=c>>>0>>0?b+1|0:b;b=Ai(w,H,X,ca);d=W;h=Ai(q,z,u,C);c=h+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;h=Ai(v,D,B,P);c=h+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;h=Ai(I,S,Z,ea);b=h+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;h=Ai(o,F,Q,Y);d=h+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;h=E(f,19);na=h>>31;d=Ai(h,na,_,ga);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(s,G,l,aa);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;f=Ai(r,U,$,ha);c=f+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;f=Ai(i,R,t,A);b=f+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;f=Ai(n,J,x,ba);d=f+b|0;b=W+c|0;Ca=d;b=d>>>0>>0?b+1|0:b;Da=b;d=d+33554432|0;b=d>>>0<33554432?b+1|0:b;Ea=d;Fa=b;d=(b&67108863)<<6|d>>>26;f=d+va|0;b=(b>>26)+V|0;va=f;b=d>>>0>f>>>0?b+1|0:b;f=f+16777216|0;d=f>>>0<16777216?b+1|0:b;Ga=f;c=d>>25;f=(d&33554431)<<7|f>>>25;d=f+j|0;b=c+e|0;b=d>>>0>>0?b+1|0:b;c=d+33554432|0;b=c>>>0<33554432?b+1|0:b;p=c;f=b;y[g+72>>2]=d-(c&-67108864);b=Ai(w,H,Z,ea);c=W;e=Ai(q,z,v,D);b=e+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;e=Ai(o,F,B,P);c=e+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;e=E(I,19);oa=e>>31;d=Ai(e,oa,_,ga);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;V=E(Q,19);ra=V>>31;j=Ai(V,ra,s,G);d=j+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;j=Ai($,ha,h,na);d=j+d|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;j=Ai(t,A,l,aa);c=j+d|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;j=Ai(r,U,x,ba);c=j+c|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(i,R,u,C);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;j=Ai(n,J,X,ca);d=j+c|0;c=W+b|0;m=d;wa=d>>>0>>0?c+1|0:c;b=Ai(o,F,w,H);c=W;j=Ai(q,z,O,ka);d=j+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=E(B,19);j=c;sa=c>>31;k=Ai(c,sa,K,la);c=k+d|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;k=Ai(s,G,e,oa);c=k+c|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(V,ra,L,ma);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;k=Ai(t,A,h,na);d=k+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;k=Ai(l,aa,M,ia);d=k+d|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;k=Ai(u,C,r,U);c=k+d|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;k=Ai(i,R,N,ja);c=k+c|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(n,J,v,D);c=d+c|0;b=W+b|0;xa=c;k=c>>>0>>0?b+1|0:b;b=E(w,19);b=Ai(b,b>>31,_,ga);c=W;d=Ai(q,z,o,F);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;j=Ai(s,G,j,sa);d=j+b|0;b=W+c|0;e=Ai(e,oa,$,ha);c=e+d|0;d=W+(d>>>0>>0?b+1|0:b)|0;d=c>>>0>>0?d+1|0:d;e=Ai(t,A,V,ra);c=e+c|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(x,ba,h,na);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;e=Ai(u,C,l,aa);d=e+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;e=Ai(r,U,X,ca);d=e+d|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;e=Ai(i,R,v,D);c=e+d|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;e=Ai(n,J,Z,ea);c=e+c|0;b=W+d|0;j=c;b=c>>>0>>0?b+1|0:b;oa=b;c=c+33554432|0;b=c>>>0<33554432?b+1|0:b;sa=c;Ha=b;d=b>>26;b=(b&67108863)<<6|c>>>26;e=b+xa|0;c=d+k|0;k=e;c=b>>>0>e>>>0?c+1|0:c;b=c;e=e+16777216|0;b=e>>>0<16777216?b+1|0:b;xa=e;e=(b&33554431)<<7|e>>>25;c=e+m|0;b=(b>>25)+wa|0;b=c>>>0>>0?b+1|0:b;d=c;c=c+33554432|0;b=c>>>0<33554432?b+1|0:b;wa=c;e=b;y[g+56>>2]=d-(c&-67108864);b=Ai(t,A,w,H);d=W;m=Ai(q,z,L,ma);c=m+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(B,P,M,ia);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(u,C,I,S);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;m=Ai(Q,Y,N,ja);c=m+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;m=Ai(v,D,ta,da);b=m+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;m=Ai(O,ka,ua,qa);d=m+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;ya=fa>>31;d=Ai(fa,ya,o,F);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(i,R,K,la);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=c;c=Ai(n,J,s,G);m=d+c|0;d=W+b|0;c=c>>>0>m>>>0?d+1|0:d;b=f>>26;f=(f&67108863)<<6|p>>>26;d=f+m|0;c=b+c|0;p=d;c=d>>>0>>0?c+1|0:c;b=c;d=d+16777216|0;b=d>>>0<16777216?b+1|0:b;m=d;f=b;y[g+76>>2]=p-(d&-33554432);b=Ai(v,D,w,H);c=W;p=Ai(q,z,N,ja);b=p+b|0;d=W+c|0;d=b>>>0

>>0?d+1|0:d;p=Ai(B,P,O,ka);b=p+b|0;c=W+d|0;c=b>>>0

>>0?c+1|0:c;p=Ai(o,F,I,S);d=p+b|0;b=W+c|0;b=d>>>0

>>0?b+1|0:b;c=d;d=Ai(V,ra,K,la);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(s,G,h,na);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;l=Ai(l,aa,L,ma);c=l+c|0;d=W+b|0;r=Ai(t,A,r,U);b=r+c|0;c=W+(c>>>0>>0?d+1|0:d)|0;i=Ai(i,R,M,ia);d=i+b|0;b=W+(b>>>0>>0?c+1|0:c)|0;b=d>>>0>>0?b+1|0:b;c=d;d=Ai(n,J,u,C);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;p=c;c=e>>26;d=(e&67108863)<<6|wa>>>26;e=p+d|0;b=b+c|0;i=e;b=d>>>0>e>>>0?b+1|0:b;c=e+16777216|0;d=c>>>0<16777216?b+1|0:b;r=c;e=d;y[g+60>>2]=i-(c&-33554432);b=Ai(w,H,$,ha);d=W;i=Ai(q,z,s,G);c=i+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(t,A,B,P);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;i=Ai(I,S,x,ba);c=i+c|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;i=Ai(u,C,Q,Y);b=i+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;i=Ai(X,ca,ta,da);d=i+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=d;d=Ai(v,D,ua,qa);c=c+d|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=c;c=Ai(fa,ya,Z,ea);d=d+c|0;b=W+b|0;b=c>>>0>d>>>0?b+1|0:b;c=Aa;i=c;l=c>>31;x=Ai(c,l,o,F);c=x+d|0;d=W+b|0;n=Ai(n,J,_,ga);b=n+c|0;c=W+(c>>>0>>0?d+1|0:d)|0;d=b>>>0>>0?c+1|0:c;c=b;b=f>>25;f=(f&33554431)<<7|m>>>25;c=c+f|0;b=b+d|0;b=c>>>0>>0?b+1|0:b;d=c;c=c+33554432|0;b=c>>>0<33554432?b+1|0:b;n=c;f=b;y[g+80>>2]=d-(c&-67108864);x=va-(Ga&-33554432)|0;c=e>>25;e=(e&33554431)<<7|r>>>25;b=Ea&-67108864;d=e+(Ca-b|0)|0;b=c+(Da-((b>>>0>Ca>>>0)+Fa|0)|0)|0;b=d>>>0>>0?b+1|0:b;c=d+33554432|0;b=c>>>0<33554432?b+1|0:b;b=((b&67108863)<<6|c>>>26)+x|0;y[g+68>>2]=b;y[g+64>>2]=d-(c&-67108864);b=Ai(s,G,w,H);d=W;e=Ai(q,z,K,la);c=e+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;e=Ai(B,P,L,ma);d=e+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;e=Ai(t,A,I,S);b=e+d|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;e=Ai(Q,Y,M,ia);c=e+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=Ai(u,C,ta,da);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;d=Ai(N,ja,ua,qa);c=d+c|0;b=W+b|0;b=c>>>0>>0?b+1|0:b;e=Ai(v,D,fa,ya);d=e+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;b=Ai(i,l,O,ka);e=b+d|0;d=W+c|0;d=b>>>0>e>>>0?d+1|0:d;c=e;b=Ba;e=Ai(b,b>>31,o,F);c=c+e|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;d=c;c=f>>26;f=(f&67108863)<<6|n>>>26;d=d+f|0;b=b+c|0;b=d>>>0>>0?b+1|0:b;c=d+16777216|0;b=c>>>0<16777216?b+1|0:b;y[g+84>>2]=d-(c&-33554432);f=k-(xa&-33554432)|0;d=sa&-67108864;e=j-d|0;q=oa-((d>>>0>j>>>0)+Ha|0)|0;d=b;b=b>>25;b=Ai((d&33554431)<<7|c>>>25,b,19,0);d=b+e|0;c=W+q|0;b=b>>>0>d>>>0?c+1|0:c;c=d+33554432|0;b=c>>>0<33554432?b+1|0:b;b=((b&67108863)<<6|c>>>26)+f|0;y[g+52>>2]=b;y[g+48>>2]=d-(c&-67108864);pa(a,g+48|0);}T=g+256|0;return za|0}function ui(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;j=T-544|0;T=j;Ie(i,h,j+432|0);i=0;if(g>>>0>31){h=32;while(1){He(f+i|0,j+432|0);i=h;h=h+32|0;if(h>>>0<=g>>>0){continue}break}}h=i|16;if(h>>>0<=g>>>0){while(1){i=f+i|0;l=z[i|0]|z[i+1|0]<<8|(z[i+2|0]<<16|z[i+3|0]<<24);m=z[i+4|0]|z[i+5|0]<<8|(z[i+6|0]<<16|z[i+7|0]<<24);p=z[i+8|0]|z[i+9|0]<<8|(z[i+10|0]<<16|z[i+11|0]<<24);n=z[i+12|0]|z[i+13|0]<<8|(z[i+14|0]<<16|z[i+15|0]<<24);i=y[j+524>>2];y[j+392>>2]=y[j+520>>2];y[j+396>>2]=i;i=y[j+516>>2];y[j+384>>2]=y[j+512>>2];y[j+388>>2]=i;i=y[j+500>>2];y[j+368>>2]=y[j+496>>2];y[j+372>>2]=i;i=y[j+508>>2];y[j+376>>2]=y[j+504>>2];y[j+380>>2]=i;i=y[j+516>>2];y[j+352>>2]=y[j+512>>2];y[j+356>>2]=i;i=y[j+524>>2];y[j+360>>2]=y[j+520>>2];y[j+364>>2]=i;i=j+528|0;ia(i,j+368|0,j+352|0);k=y[j+540>>2];y[j+520>>2]=y[j+536>>2];y[j+524>>2]=k;k=y[j+532>>2];y[j+512>>2]=y[j+528>>2];y[j+516>>2]=k;k=y[j+484>>2];y[j+336>>2]=y[j+480>>2];y[j+340>>2]=k;k=y[j+492>>2];y[j+344>>2]=y[j+488>>2];y[j+348>>2]=k;k=y[j+500>>2];y[j+320>>2]=y[j+496>>2];y[j+324>>2]=k;k=y[j+508>>2];y[j+328>>2]=y[j+504>>2];y[j+332>>2]=k;ia(i,j+336|0,j+320|0);k=y[j+540>>2];y[j+504>>2]=y[j+536>>2];y[j+508>>2]=k;k=y[j+532>>2];y[j+496>>2]=y[j+528>>2];y[j+500>>2]=k;k=y[j+468>>2];y[j+304>>2]=y[j+464>>2];y[j+308>>2]=k;k=y[j+476>>2];y[j+312>>2]=y[j+472>>2];y[j+316>>2]=k;k=y[j+484>>2];y[j+288>>2]=y[j+480>>2];y[j+292>>2]=k;k=y[j+492>>2];y[j+296>>2]=y[j+488>>2];y[j+300>>2]=k;ia(i,j+304|0,j+288|0);k=y[j+540>>2];y[j+488>>2]=y[j+536>>2];y[j+492>>2]=k;k=y[j+532>>2];y[j+480>>2]=y[j+528>>2];y[j+484>>2]=k;k=y[j+452>>2];y[j+272>>2]=y[j+448>>2];y[j+276>>2]=k;k=y[j+460>>2];y[j+280>>2]=y[j+456>>2];y[j+284>>2]=k;k=y[j+468>>2];y[j+256>>2]=y[j+464>>2];y[j+260>>2]=k;k=y[j+476>>2];y[j+264>>2]=y[j+472>>2];y[j+268>>2]=k;ia(i,j+272|0,j+256|0);k=y[j+540>>2];y[j+472>>2]=y[j+536>>2];y[j+476>>2]=k;k=y[j+532>>2];y[j+464>>2]=y[j+528>>2];y[j+468>>2]=k;k=y[j+436>>2];y[j+240>>2]=y[j+432>>2];y[j+244>>2]=k;k=y[j+444>>2];y[j+248>>2]=y[j+440>>2];y[j+252>>2]=k;k=y[j+452>>2];y[j+224>>2]=y[j+448>>2];y[j+228>>2]=k;k=y[j+460>>2];y[j+232>>2]=y[j+456>>2];y[j+236>>2]=k;ia(i,j+240|0,j+224|0);k=y[j+540>>2];y[j+456>>2]=y[j+536>>2];y[j+460>>2]=k;k=y[j+532>>2];y[j+448>>2]=y[j+528>>2];y[j+452>>2]=k;k=y[j+388>>2];y[j+208>>2]=y[j+384>>2];y[j+212>>2]=k;k=y[j+396>>2];y[j+216>>2]=y[j+392>>2];y[j+220>>2]=k;k=y[j+436>>2];y[j+192>>2]=y[j+432>>2];y[j+196>>2]=k;k=y[j+444>>2];y[j+200>>2]=y[j+440>>2];y[j+204>>2]=k;ia(i,j+208|0,j+192|0);y[j+444>>2]=n^y[j+540>>2];y[j+440>>2]=p^y[j+536>>2];y[j+436>>2]=m^y[j+532>>2];y[j+432>>2]=l^y[j+528>>2];i=h;h=h+16|0;if(h>>>0<=g>>>0){continue}break}}h=g&15;if(h){l=16-h|0;if(l){o(h|j+416,0,l);}if(h){t(j+416|0,f+i|0,h);}m=y[j+416>>2];p=y[j+420>>2];n=y[j+424>>2];k=y[j+428>>2];h=y[j+524>>2];i=y[j+520>>2];y[j+392>>2]=i;y[j+396>>2]=h;l=y[j+516>>2];f=y[j+512>>2];y[j+384>>2]=f;y[j+388>>2]=l;q=y[j+500>>2];y[j+176>>2]=y[j+496>>2];y[j+180>>2]=q;q=y[j+508>>2];y[j+184>>2]=y[j+504>>2];y[j+188>>2]=q;y[j+160>>2]=f;y[j+164>>2]=l;y[j+168>>2]=i;y[j+172>>2]=h;f=j+528|0;ia(f,j+176|0,j+160|0);h=y[j+540>>2];y[j+520>>2]=y[j+536>>2];y[j+524>>2]=h;h=y[j+532>>2];y[j+512>>2]=y[j+528>>2];y[j+516>>2]=h;h=y[j+484>>2];y[j+144>>2]=y[j+480>>2];y[j+148>>2]=h;h=y[j+492>>2];y[j+152>>2]=y[j+488>>2];y[j+156>>2]=h;h=y[j+500>>2];y[j+128>>2]=y[j+496>>2];y[j+132>>2]=h;h=y[j+508>>2];y[j+136>>2]=y[j+504>>2];y[j+140>>2]=h;ia(f,j+144|0,j+128|0);h=y[j+540>>2];y[j+504>>2]=y[j+536>>2];y[j+508>>2]=h;h=y[j+532>>2];y[j+496>>2]=y[j+528>>2];y[j+500>>2]=h;h=y[j+468>>2];y[j+112>>2]=y[j+464>>2];y[j+116>>2]=h;h=y[j+476>>2];y[j+120>>2]=y[j+472>>2];y[j+124>>2]=h;h=y[j+484>>2];y[j+96>>2]=y[j+480>>2];y[j+100>>2]=h;h=y[j+492>>2];y[j+104>>2]=y[j+488>>2];y[j+108>>2]=h;ia(f,j+112|0,j+96|0);h=y[j+540>>2];y[j+488>>2]=y[j+536>>2];y[j+492>>2]=h;h=y[j+532>>2];y[j+480>>2]=y[j+528>>2];y[j+484>>2]=h;h=y[j+452>>2];y[j+80>>2]=y[j+448>>2];y[j+84>>2]=h;h=y[j+460>>2];y[j+88>>2]=y[j+456>>2];y[j+92>>2]=h;h=y[j+468>>2];y[j+64>>2]=y[j+464>>2];y[j+68>>2]=h;h=y[j+476>>2];y[j+72>>2]=y[j+472>>2];y[j+76>>2]=h;ia(f,j+80|0,j- -64|0);h=y[j+540>>2];y[j+472>>2]=y[j+536>>2];y[j+476>>2]=h;h=y[j+532>>2];y[j+464>>2]=y[j+528>>2];y[j+468>>2]=h;h=y[j+436>>2];y[j+48>>2]=y[j+432>>2];y[j+52>>2]=h;h=y[j+444>>2];y[j+56>>2]=y[j+440>>2];y[j+60>>2]=h;h=y[j+452>>2];y[j+32>>2]=y[j+448>>2];y[j+36>>2]=h;h=y[j+460>>2];y[j+40>>2]=y[j+456>>2];y[j+44>>2]=h;ia(f,j+48|0,j+32|0);h=y[j+540>>2];y[j+456>>2]=y[j+536>>2];y[j+460>>2]=h;h=y[j+532>>2];y[j+448>>2]=y[j+528>>2];y[j+452>>2]=h;h=y[j+388>>2];y[j+16>>2]=y[j+384>>2];y[j+20>>2]=h;h=y[j+396>>2];y[j+24>>2]=y[j+392>>2];y[j+28>>2]=h;h=y[j+436>>2];y[j>>2]=y[j+432>>2];y[j+4>>2]=h;h=y[j+444>>2];y[j+8>>2]=y[j+440>>2];y[j+12>>2]=h;ia(f,j+16|0,j);y[j+444>>2]=k^y[j+540>>2];y[j+440>>2]=n^y[j+536>>2];y[j+436>>2]=p^y[j+532>>2];y[j+432>>2]=m^y[j+528>>2];}a:{if(!a){i=16;h=0;if(c>>>0<16){break a}while(1){Ee(j+528|0,b+h|0,j+432|0);h=i;i=h+16|0;if(i>>>0<=c>>>0){continue}break}break a}i=16;h=0;if(c>>>0<16){break a}while(1){Ee(a+h|0,b+h|0,j+432|0);h=i;i=h+16|0;if(i>>>0<=c>>>0){continue}break}}i=c&15;if(i){p=a?a+h|0:j+528|0;h=b+h|0;f=j+432|0;b=T-240|0;T=b;l=i+(b+192|0)|0;m=16-i|0;n=!m;if(!n){o(l,0,m);}k=!i;if(!k){t(b+192|0,h,i);}q=y[f+16>>2];h=f- -64|0;r=y[h>>2];s=y[f+80>>2];u=y[f+32>>2];v=y[f+48>>2];w=y[f+20>>2];x=y[f+68>>2];A=y[f+84>>2];B=y[f+36>>2];C=y[f+52>>2];D=y[f+24>>2];E=y[f+72>>2];F=y[f+88>>2];G=y[f+40>>2];H=y[f+56>>2];I=y[b+192>>2];J=y[b+196>>2];K=y[b+200>>2];y[b+204>>2]=y[f+44>>2]&y[f+60>>2]^(y[f+28>>2]^(y[f+76>>2]^(y[f+92>>2]^y[b+204>>2])));y[b+200>>2]=G&H^(E^(F^K)^D);y[b+196>>2]=B&C^(A^J^x^w);y[b+192>>2]=u&v^(s^I^r^q);if(!n){o(l,0,m);}if(!k){t(p,b+192|0,i);}l=y[b+192>>2];m=y[b+196>>2];p=y[b+200>>2];n=y[b+204>>2];i=y[f+92>>2];y[b+232>>2]=y[f+88>>2];y[b+236>>2]=i;i=y[f+84>>2];y[b+224>>2]=y[f+80>>2];y[b+228>>2]=i;i=y[h+4>>2];y[b+176>>2]=y[h>>2];y[b+180>>2]=i;i=y[f+76>>2];y[b+184>>2]=y[f+72>>2];y[b+188>>2]=i;i=y[f+84>>2];y[b+160>>2]=y[f+80>>2];y[b+164>>2]=i;i=y[f+92>>2];y[b+168>>2]=y[f+88>>2];y[b+172>>2]=i;i=b+208|0;ia(i,b+176|0,b+160|0);k=y[b+220>>2];y[f+88>>2]=y[b+216>>2];y[f+92>>2]=k;k=y[b+212>>2];y[f+80>>2]=y[b+208>>2];y[f+84>>2]=k;k=y[f+52>>2];y[b+144>>2]=y[f+48>>2];y[b+148>>2]=k;k=y[f+60>>2];y[b+152>>2]=y[f+56>>2];y[b+156>>2]=k;k=y[h+4>>2];y[b+128>>2]=y[h>>2];y[b+132>>2]=k;k=y[f+76>>2];y[b+136>>2]=y[f+72>>2];y[b+140>>2]=k;ia(i,b+144|0,b+128|0);k=y[b+220>>2];y[f+72>>2]=y[b+216>>2];y[f+76>>2]=k;k=y[b+212>>2];y[h>>2]=y[b+208>>2];y[h+4>>2]=k;h=y[f+36>>2];y[b+112>>2]=y[f+32>>2];y[b+116>>2]=h;h=y[f+44>>2];y[b+120>>2]=y[f+40>>2];y[b+124>>2]=h;h=y[f+52>>2];y[b+96>>2]=y[f+48>>2];y[b+100>>2]=h;h=y[f+60>>2];y[b+104>>2]=y[f+56>>2];y[b+108>>2]=h;ia(i,b+112|0,b+96|0);h=y[b+220>>2];y[f+56>>2]=y[b+216>>2];y[f+60>>2]=h;h=y[b+212>>2];y[f+48>>2]=y[b+208>>2];y[f+52>>2]=h;h=y[f+20>>2];y[b+80>>2]=y[f+16>>2];y[b+84>>2]=h;h=y[f+28>>2];y[b+88>>2]=y[f+24>>2];y[b+92>>2]=h;h=y[f+36>>2];y[b+64>>2]=y[f+32>>2];y[b+68>>2]=h;h=y[f+44>>2];y[b+72>>2]=y[f+40>>2];y[b+76>>2]=h;ia(i,b+80|0,b- -64|0);h=y[b+220>>2];y[f+40>>2]=y[b+216>>2];y[f+44>>2]=h;h=y[b+212>>2];y[f+32>>2]=y[b+208>>2];y[f+36>>2]=h;h=y[f+4>>2];y[b+48>>2]=y[f>>2];y[b+52>>2]=h;h=y[f+12>>2];y[b+56>>2]=y[f+8>>2];y[b+60>>2]=h;h=y[f+20>>2];y[b+32>>2]=y[f+16>>2];y[b+36>>2]=h;h=y[f+28>>2];y[b+40>>2]=y[f+24>>2];y[b+44>>2]=h;ia(i,b+48|0,b+32|0);h=y[b+220>>2];y[f+24>>2]=y[b+216>>2];y[f+28>>2]=h;h=y[b+212>>2];y[f+16>>2]=y[b+208>>2];y[f+20>>2]=h;h=y[b+228>>2];y[b+16>>2]=y[b+224>>2];y[b+20>>2]=h;h=y[b+236>>2];y[b+24>>2]=y[b+232>>2];y[b+28>>2]=h;h=y[f+4>>2];y[b>>2]=y[f>>2];y[b+4>>2]=h;h=y[f+12>>2];y[b+8>>2]=y[f+8>>2];y[b+12>>2]=h;ia(i,b+16|0,b);h=y[b+208>>2];i=y[b+212>>2];k=y[b+216>>2];y[f+12>>2]=n^y[b+220>>2];y[f+8>>2]=k^p;y[f+4>>2]=i^m;y[f>>2]=h^l;T=b+240|0;}Fe(j+384|0,e,g,c,j+432|0);h=-1;b:{c:{b=e-16|0;if(b){if((b|0)==16){break c}break b}h=db(j+384|0,d);break b}h=kb(j+384|0,d);}if(!(!c|(!a|!h))){o(a,0,c);}T=j+544|0;return h|0}function ga(a,b,c){var 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,z=0,A=0,B=0,C=0,D=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,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,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;s=y[c+4>>2];D=s>>31;L=y[b+20>>2];F=L<<1;ba=F>>31;d=Ai(s,D,F,ba);f=W;r=y[c>>2];v=r>>31;t=y[b+24>>2];w=t>>31;p=Ai(r,v,t,w);e=p+d|0;d=W+f|0;d=e>>>0

>>0?d+1|0:d;x=y[c+8>>2];I=x>>31;p=y[b+16>>2];z=p>>31;l=Ai(x,I,p,z);e=l+e|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;G=y[c+12>>2];M=G>>31;N=y[b+12>>2];U=N<<1;ca=U>>31;l=Ai(G,M,U,ca);d=l+e|0;e=W+f|0;e=d>>>0>>0?e+1|0:e;J=y[c+16>>2];V=J>>31;l=y[b+8>>2];A=l>>31;q=Ai(J,V,l,A);f=q+d|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;e=f;O=y[c+20>>2];da=O>>31;P=y[b+4>>2];X=P<<1;ea=X>>31;f=Ai(O,da,X,ea);e=e+f|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;j=y[c+24>>2];ta=j;pa=j>>31;q=y[b>>2];B=q>>31;m=Ai(j,pa,q,B);f=m+e|0;e=W+d|0;e=f>>>0>>0?e+1|0:e;fa=y[c+28>>2];o=E(fa,19);Q=o>>31;R=y[b+36>>2];Y=R<<1;ga=Y>>31;m=Ai(o,Q,Y,ga);d=m+f|0;f=W+e|0;f=d>>>0>>0?f+1|0:f;qa=y[c+32>>2];g=E(qa,19);K=g>>31;m=y[b+32>>2];C=m>>31;k=Ai(g,K,m,C);e=k+d|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;ua=y[c+36>>2];k=E(ua,19);H=k>>31;S=y[b+28>>2];Z=S<<1;ha=Z>>31;c=Ai(k,H,Z,ha);b=c+e|0;d=W+d|0;h=b;c=b>>>0>>0?d+1|0:d;b=Ai(p,z,s,D);d=W;ia=L>>31;e=Ai(r,v,L,ia);b=e+b|0;f=W+d|0;f=b>>>0>>0?f+1|0:f;ja=N>>31;d=Ai(x,I,N,ja);b=d+b|0;e=W+f|0;e=b>>>0>>0?e+1|0:e;f=Ai(l,A,G,M);b=f+b|0;d=W+e|0;d=b>>>0>>0?d+1|0:d;ka=P>>31;e=Ai(J,V,P,ka);b=e+b|0;d=W+d|0;d=b>>>0>>0?d+1|0:d;e=Ai(q,B,O,da);b=e+b|0;d=W+d|0;d=b>>>0>>0?d+1|0:d;j=E(j,19);_=j>>31;la=R>>31;e=Ai(j,_,R,la);b=e+b|0;f=W+d|0;f=b>>>0>>0?f+1|0:f;d=Ai(m,C,o,Q);b=d+b|0;e=W+f|0;e=b>>>0>>0?e+1|0:e;ma=S>>31;f=Ai(g,K,S,ma);b=f+b|0;d=W+e|0;d=b>>>0>>0?d+1|0:d;e=Ai(k,H,t,w);b=e+b|0;d=W+d|0;va=b;T=b>>>0>>0?d+1|0:d;b=Ai(s,D,U,ca);d=W;e=Ai(r,v,p,z);b=e+b|0;d=W+d|0;d=b>>>0>>0?d+1|0:d;e=Ai(l,A,x,I);b=e+b|0;f=W+d|0;f=b>>>0>>0?f+1|0:f;d=Ai(G,M,X,ea);b=d+b|0;e=W+f|0;e=b>>>0>>0?e+1|0:e;f=Ai(q,B,J,V);b=f+b|0;d=W+e|0;d=b>>>0>>0?d+1|0:d;$=E(O,19);na=$>>31;e=Ai($,na,Y,ga);b=e+b|0;d=W+d|0;d=b>>>0>>0?d+1|0:d;e=Ai(m,C,j,_);b=e+b|0;d=W+d|0;d=b>>>0>>0?d+1|0:d;e=Ai(o,Q,Z,ha);b=e+b|0;f=W+d|0;f=b>>>0>>0?f+1|0:f;d=Ai(g,K,t,w);b=d+b|0;e=W+f|0;e=b>>>0>>0?e+1|0:e;f=Ai(k,H,F,ba);b=f+b|0;d=W+e|0;ya=b;d=b>>>0>>0?d+1|0:d;za=d;b=b+33554432|0;d=b>>>0<33554432?d+1|0:d;Aa=b;Ba=d;f=(d&67108863)<<6|b>>>26;b=f+va|0;d=(d>>26)+T|0;va=b;d=b>>>0>>0?d+1|0:d;b=b+16777216|0;f=b>>>0<16777216?d+1|0:d;Ca=b;e=f>>25;f=(f&33554431)<<7|b>>>25;b=f+h|0;d=c+e|0;d=b>>>0>>0?d+1|0:d;e=b;c=e+33554432|0;d=c>>>0<33554432?d+1|0:d;aa=c;b=d;y[a+24>>2]=e-(c&-67108864);c=Ai(s,D,X,ea);d=W;e=Ai(r,v,l,A);c=e+c|0;f=W+d|0;f=c>>>0>>0?f+1|0:f;d=c;c=Ai(q,B,x,I);e=d+c|0;d=W+f|0;d=c>>>0>e>>>0?d+1|0:d;c=E(G,19);oa=c>>31;f=Ai(c,oa,Y,ga);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;T=E(J,19);ra=T>>31;h=Ai(m,C,T,ra);f=h+e|0;e=W+d|0;e=f>>>0>>0?e+1|0:e;h=Ai(Z,ha,$,na);f=h+f|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;h=Ai(t,w,j,_);e=h+f|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;h=Ai(o,Q,F,ba);e=h+e|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;f=Ai(g,K,p,z);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;h=Ai(k,H,U,ca);f=h+e|0;e=W+d|0;n=f;wa=f>>>0>>0?e+1|0:e;d=Ai(q,B,s,D);e=W;h=Ai(r,v,P,ka);f=h+d|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;e=E(x,19);h=e;sa=e>>31;i=Ai(e,sa,R,la);e=i+f|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;i=Ai(m,C,c,oa);e=i+e|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;f=Ai(T,ra,S,ma);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;i=Ai(t,w,$,na);f=i+e|0;e=W+d|0;e=f>>>0>>0?e+1|0:e;i=Ai(j,_,L,ia);f=i+f|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;i=Ai(p,z,o,Q);e=i+f|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;i=Ai(g,K,N,ja);e=i+e|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;f=Ai(k,H,l,A);e=f+e|0;d=W+d|0;xa=e;i=e>>>0>>0?d+1|0:d;d=E(s,19);d=Ai(d,d>>31,Y,ga);e=W;f=Ai(r,v,q,B);d=f+d|0;e=W+e|0;e=d>>>0>>0?e+1|0:e;h=Ai(m,C,h,sa);f=h+d|0;d=W+e|0;e=Ai(c,oa,Z,ha);c=e+f|0;f=W+(f>>>0>>0?d+1|0:d)|0;f=c>>>0>>0?f+1|0:f;e=Ai(t,w,T,ra);c=e+c|0;d=W+f|0;d=c>>>0>>0?d+1|0:d;e=Ai(F,ba,$,na);c=e+c|0;d=W+d|0;d=c>>>0>>0?d+1|0:d;f=Ai(p,z,j,_);c=f+c|0;e=W+d|0;e=c>>>0>>0?e+1|0:e;f=Ai(o,Q,U,ca);c=f+c|0;d=W+e|0;d=c>>>0>>0?d+1|0:d;e=Ai(g,K,l,A);c=e+c|0;f=W+d|0;f=c>>>0>>0?f+1|0:f;e=Ai(k,H,X,ea);c=e+c|0;d=W+f|0;h=c;d=c>>>0>>0?d+1|0:d;oa=d;c=c+33554432|0;d=c>>>0<33554432?d+1|0:d;sa=c;Da=d;f=d>>26;d=(d&67108863)<<6|c>>>26;c=d+xa|0;e=f+i|0;i=c;d=c>>>0>>0?e+1|0:e;c=c+16777216|0;d=c>>>0<16777216?d+1|0:d;xa=c;e=(d&33554431)<<7|c>>>25;c=e+n|0;d=(d>>25)+wa|0;d=c>>>0>>0?d+1|0:d;f=c;e=f+33554432|0;d=e>>>0<33554432?d+1|0:d;wa=e;c=d;y[a+8>>2]=f-(e&-67108864);d=Ai(t,w,s,D);f=W;n=Ai(r,v,S,ma);e=n+d|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;f=Ai(x,I,L,ia);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;f=Ai(p,z,G,M);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;n=Ai(J,V,N,ja);e=n+e|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;n=Ai(l,A,O,da);d=n+e|0;e=W+f|0;e=d>>>0>>0?e+1|0:e;n=Ai(P,ka,ta,pa);f=n+d|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;e=f;n=fa>>31;f=Ai(q,B,fa,n);e=e+f|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;f=Ai(g,K,R,la);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;u=Ai(k,H,m,C);e=u+e|0;f=W+d|0;d=b>>26;aa=(b&67108863)<<6|aa>>>26;b=aa+e|0;e=d+(e>>>0>>0?f+1|0:f)|0;f=b;d=f>>>0>>0?e+1|0:e;e=f+16777216|0;d=e>>>0<16777216?d+1|0:d;aa=e;b=d;y[a+28>>2]=f-(e&-33554432);d=Ai(l,A,s,D);e=W;u=Ai(r,v,N,ja);d=u+d|0;f=W+e|0;f=d>>>0>>0?f+1|0:f;u=Ai(x,I,P,ka);d=u+d|0;e=W+f|0;e=d>>>0>>0?e+1|0:e;u=Ai(q,B,G,M);f=u+d|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;e=f;f=Ai(T,ra,R,la);e=e+f|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;f=Ai(m,C,$,na);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;j=Ai(j,_,S,ma);e=j+e|0;f=W+d|0;o=Ai(t,w,o,Q);d=o+e|0;e=W+(e>>>0>>0?f+1|0:f)|0;g=Ai(g,K,L,ia);f=g+d|0;d=W+(d>>>0>>0?e+1|0:e)|0;d=f>>>0>>0?d+1|0:d;e=f;f=Ai(k,H,p,z);e=e+f|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;g=e;e=c>>26;f=(c&67108863)<<6|wa>>>26;c=g+f|0;d=d+e|0;g=c;d=c>>>0>>0?d+1|0:d;e=c+16777216|0;f=e>>>0<16777216?d+1|0:d;o=e;c=f;y[a+12>>2]=g-(e&-33554432);d=Ai(s,D,Z,ha);f=W;g=Ai(r,v,m,C);e=g+d|0;d=W+f|0;d=e>>>0>>0?d+1|0:d;f=Ai(t,w,x,I);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;g=Ai(G,M,F,ba);e=g+e|0;f=W+d|0;f=e>>>0>>0?f+1|0:f;g=Ai(p,z,J,V);d=g+e|0;e=W+f|0;e=d>>>0>>0?e+1|0:e;g=Ai(U,ca,O,da);f=g+d|0;d=W+e|0;d=f>>>0>>0?d+1|0:d;e=f;f=Ai(l,A,ta,pa);e=e+f|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;f=Ai(fa,n,X,ea);e=f+e|0;d=W+d|0;d=e>>>0>>0?d+1|0:d;g=qa;j=g>>31;F=Ai(q,B,g,j);e=F+e|0;f=W+d|0;k=Ai(k,H,Y,ga);d=k+e|0;e=W+(e>>>0>>0?f+1|0:f)|0;e=d>>>0>>0?e+1|0:e;qa=d;d=b>>25;f=(b&33554431)<<7|aa>>>25;b=qa+f|0;d=d+e|0;d=b>>>0>>0?d+1|0:d;f=b;e=f+33554432|0;d=e>>>0<33554432?d+1|0:d;k=e;b=d;y[a+32>>2]=f-(e&-67108864);f=va-(Ca&-33554432)|0;e=c>>25;o=(c&33554431)<<7|o>>>25;d=Aa&-67108864;c=o+(ya-d|0)|0;d=e+(za-((d>>>0>ya>>>0)+Ba|0)|0)|0;d=c>>>0>>0?d+1|0:d;e=c;c=e+33554432|0;d=c>>>0<33554432?d+1|0:d;d=((d&67108863)<<6|c>>>26)+f|0;y[a+20>>2]=d;y[a+16>>2]=e-(c&-67108864);c=Ai(m,C,s,D);d=W;e=Ai(r,v,R,la);c=e+c|0;d=W+d|0;d=c>>>0>>0?d+1|0:d;f=Ai(x,I,S,ma);c=f+c|0;e=W+d|0;e=c>>>0>>0?e+1|0:e;d=Ai(t,w,G,M);c=d+c|0;f=W+e|0;f=c>>>0>>0?f+1|0:f;e=Ai(J,V,L,ia);c=e+c|0;d=W+f|0;d=c>>>0>>0?d+1|0:d;e=Ai(p,z,O,da);c=e+c|0;d=W+d|0;d=c>>>0>>0?d+1|0:d;e=Ai(N,ja,ta,pa);c=e+c|0;d=W+d|0;d=c>>>0>>0?d+1|0:d;f=Ai(l,A,fa,n);c=f+c|0;e=W+d|0;e=c>>>0>>0?e+1|0:e;d=Ai(g,j,P,ka);c=d+c|0;f=W+e|0;f=c>>>0>>0?f+1|0:f;e=Ai(q,B,ua,ua>>31);c=e+c|0;d=W+f|0;d=c>>>0>>0?d+1|0:d;e=b>>26;f=c;c=(b&67108863)<<6|k>>>26;b=f+c|0;d=d+e|0;d=b>>>0>>0?d+1|0:d;c=b;b=c+16777216|0;d=b>>>0<16777216?d+1|0:d;y[a+36>>2]=c-(b&-33554432);f=i-(xa&-33554432)|0;c=sa&-67108864;e=h-c|0;r=oa-((c>>>0>h>>>0)+Da|0)|0;c=d;d=d>>25;c=Ai((c&33554431)<<7|b>>>25,d,19,0);b=c+e|0;e=W+r|0;d=b>>>0>>0?e+1|0:e;c=b;b=c+33554432|0;d=b>>>0<33554432?d+1|0:d;d=((d&67108863)<<6|b>>>26)+f|0;y[a+4>>2]=d;y[a>>2]=c-(b&-67108864);}function Ue(a,b,c){a=a|0;b=b|0;c=c|0;var 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,x=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,U=0,V=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,ha=0,ia=0,ka=0,la=0,ma=0,na=0,oa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0;d=T-368|0;T=d;while(1){e=z[c+B|0];j=B+34112|0;p=e^z[j|0]|p;q=e^z[j+192|0]|q;o=e^z[j+160|0]|o;i=e^z[j+128|0]|i;h=e^z[j+96|0]|h;g=e^z[j- -64|0]|g;f=e^z[j+32|0]|f;B=B+1|0;if((B|0)!=31){continue}break}e=-1;l=z[c+31|0]&127;j=l^127;if(!((((j|q)&255)-1|(((j|o)&255)-1|(((i|j)&255)-1|(((l^87|h)&255)-1|(((g|l)&255)-1|(((f|l)&255)-1|((l|p)&255)-1))))))&256)){e=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);f=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[d+336>>2]=f;y[d+340>>2]=e;e=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[d+360>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[d+364>>2]=e;e=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[d+352>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[d+356>>2]=e;e=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[d+344>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[d+348>>2]=e;w[d+336|0]=f&248;w[d+367|0]=z[d+367|0]&63|64;cb(d+288|0,c);y[d+244>>2]=0;y[d+248>>2]=0;y[d+240>>2]=1;y[d+252>>2]=0;y[d+256>>2]=0;y[d+260>>2]=0;y[d+264>>2]=0;y[d+268>>2]=0;y[d+272>>2]=0;y[d+276>>2]=0;y[d+192>>2]=0;y[d+196>>2]=0;y[d+200>>2]=0;y[d+204>>2]=0;y[d+208>>2]=0;y[d+212>>2]=0;y[d+216>>2]=0;y[d+220>>2]=0;y[d+224>>2]=0;y[d+228>>2]=0;b=y[d+292>>2];y[d+144>>2]=y[d+288>>2];y[d+148>>2]=b;b=y[d+300>>2];y[d+152>>2]=y[d+296>>2];y[d+156>>2]=b;b=y[d+308>>2];y[d+160>>2]=y[d+304>>2];y[d+164>>2]=b;b=y[d+316>>2];y[d+168>>2]=y[d+312>>2];y[d+172>>2]=b;b=y[d+324>>2];y[d+176>>2]=y[d+320>>2];y[d+180>>2]=b;y[d+100>>2]=0;y[d+104>>2]=0;y[d+96>>2]=1;y[d+108>>2]=0;y[d+112>>2]=0;y[d+116>>2]=0;y[d+120>>2]=0;y[d+124>>2]=0;y[d+128>>2]=0;y[d+132>>2]=0;c=254;B=0;while(1){P=y[d+144>>2];Q=y[d+240>>2];R=y[d+96>>2];S=y[d+192>>2];U=y[d+148>>2];V=y[d+244>>2];X=y[d+100>>2];Y=y[d+196>>2];Z=y[d+152>>2];_=y[d+248>>2];$=y[d+104>>2];aa=y[d+200>>2];ba=y[d+156>>2];ca=y[d+252>>2];da=y[d+108>>2];ea=y[d+204>>2];ha=y[d+160>>2];F=y[d+256>>2];ia=y[d+112>>2];k=y[d+208>>2];ka=y[d+164>>2];r=y[d+260>>2];la=y[d+116>>2];v=y[d+212>>2];ma=y[d+168>>2];x=y[d+264>>2];H=y[d+120>>2];n=y[d+216>>2];t=y[d+172>>2];s=y[d+268>>2];m=y[d+124>>2];l=y[d+220>>2];f=y[d+176>>2];j=y[d+272>>2];p=y[d+128>>2];q=y[d+224>>2];b=B;na=c;oa=d+336|0;B=z[oa+(c>>>3|0)|0]>>>(c&7)&1;u=0-(b^B)|0;e=y[d+180>>2];h=y[d+276>>2];o=u&(e^h);b=y[d+132>>2];g=y[d+228>>2];i=u&(b^g);qa=e^o;ra=b^i;y[d+84>>2]=qa-ra;b=f;f=u&(f^j);sa=b^f;e=u&(p^q);ta=e^p;y[d+80>>2]=sa-ta;c=u&(s^t);ua=c^t;b=u&(l^m);A=b^m;y[d+76>>2]=ua-A;C=h^o;G=g^i;y[d+36>>2]=C-G;J=f^j;K=e^q;y[d+32>>2]=J-K;va=c^s;wa=b^l;y[d+28>>2]=va-wa;I=u&(x^ma);L=I^x;i=u&(n^H);M=i^n;y[d+24>>2]=L-M;D=u&(r^ka);N=D^r;h=u&(v^la);O=h^v;y[d+20>>2]=N-O;E=u&(F^ha);F=E^F;g=u&(k^ia);k=g^k;y[d+16>>2]=F-k;r=u&(ba^ca);v=ca^r;f=u&(da^ea);x=ea^f;y[d+12>>2]=v-x;n=u&(Z^_);t=_^n;e=u&($^aa);s=aa^e;y[d+8>>2]=t-s;m=u&(U^V);l=V^m;c=u&(X^Y);j=Y^c;y[d+4>>2]=l-j;p=u&(P^Q);q=Q^p;b=u&(R^S);o=S^b;y[d>>2]=q-o;H=i^H;y[d+120>>2]=H;i=I^ma;y[d+72>>2]=i-H;I=h^la;y[d+116>>2]=I;h=D^ka;y[d+68>>2]=h-I;D=g^ia;y[d+112>>2]=D;g=E^ha;y[d+64>>2]=g-D;E=f^da;y[d+108>>2]=E;f=r^ba;y[d+60>>2]=f-E;r=e^$;y[d+104>>2]=r;e=n^Z;y[d+56>>2]=e-r;n=c^X;y[d+100>>2]=n;c=m^U;y[d+52>>2]=c-n;m=b^R;y[d+96>>2]=m;b=p^P;y[d+48>>2]=b-m;y[d+276>>2]=C+G;y[d+272>>2]=J+K;y[d+268>>2]=va+wa;y[d+264>>2]=L+M;y[d+260>>2]=N+O;y[d+256>>2]=k+F;y[d+252>>2]=v+x;y[d+248>>2]=s+t;y[d+244>>2]=j+l;y[d+240>>2]=o+q;y[d+228>>2]=qa+ra;y[d+224>>2]=sa+ta;y[d+220>>2]=A+ua;y[d+216>>2]=i+H;y[d+212>>2]=h+I;y[d+208>>2]=g+D;y[d+200>>2]=e+r;y[d+196>>2]=c+n;y[d+192>>2]=b+m;y[d+204>>2]=f+E;K=d+96|0;G=d+48|0;C=d+240|0;ga(K,G,C);A=d+192|0;ga(A,A,d);fa(G,d);fa(d,C);k=y[d+192>>2];r=y[d+96>>2];v=y[d+196>>2];x=y[d+100>>2];n=y[d+200>>2];t=y[d+104>>2];s=y[d+204>>2];m=y[d+108>>2];l=y[d+208>>2];j=y[d+112>>2];p=y[d+212>>2];q=y[d+116>>2];o=y[d+216>>2];i=y[d+120>>2];h=y[d+220>>2];g=y[d+124>>2];f=y[d+224>>2];e=y[d+128>>2];c=y[d+228>>2];b=y[d+132>>2];y[d+180>>2]=c+b;y[d+176>>2]=e+f;y[d+172>>2]=g+h;y[d+168>>2]=i+o;y[d+164>>2]=p+q;y[d+160>>2]=j+l;y[d+156>>2]=m+s;y[d+152>>2]=n+t;y[d+148>>2]=v+x;y[d+144>>2]=k+r;y[d+228>>2]=b-c;y[d+224>>2]=e-f;y[d+220>>2]=g-h;y[d+216>>2]=i-o;y[d+212>>2]=q-p;y[d+208>>2]=j-l;y[d+204>>2]=m-s;y[d+200>>2]=t-n;y[d+196>>2]=x-v;y[d+192>>2]=r-k;ga(C,d,G);m=y[d+72>>2];n=y[d+24>>2];L=y[d+68>>2];t=y[d+20>>2];l=y[d+64>>2];s=y[d+16>>2];M=y[d+60>>2];o=y[d+12>>2];j=y[d+56>>2];i=y[d+8>>2];D=y[d+52>>2];h=y[d+4>>2];N=y[d+84>>2];g=y[d+36>>2];J=y[d+48>>2];e=y[d>>2];O=y[d+76>>2];b=y[d+28>>2];f=y[d+80>>2];c=y[d+32>>2]-f|0;y[d+32>>2]=c;b=b-O|0;y[d+28>>2]=b;r=e-J|0;y[d>>2]=r;v=g-N|0;y[d+36>>2]=v;p=h-D|0;y[d+4>>2]=p;q=i-j|0;y[d+8>>2]=q;o=o-M|0;y[d+12>>2]=o;i=s-l|0;y[d+16>>2]=i;h=t-L|0;y[d+20>>2]=h;g=n-m|0;y[d+24>>2]=g;fa(A,A);e=d+144|0;fa(e,e);e=Ai(c,c>>31,121666,0);s=W;c=Ai(b,b>>31,121666,0);b=W;E=c;x=c+16777216|0;b=x>>>0<16777216?b+1|0:b;c=(b&33554431)<<7|x>>>25;e=c+e|0;b=(b>>25)+s|0;b=c>>>0>e>>>0?b+1|0:b;n=e+33554432|0;c=n>>>0<33554432?b+1|0:b;y[d+80>>2]=(e-(n&-67108864)|0)+f;f=m;g=Ai(g,g>>31,121666,0);m=W;e=Ai(h,h>>31,121666,0);b=W;h=g;F=e;t=e+16777216|0;b=t>>>0<16777216?b+1|0:b;g=(b&33554431)<<7|t>>>25;e=h+g|0;b=(b>>25)+m|0;b=e>>>0>>0?b+1|0:b;s=e+33554432|0;g=s>>>0<33554432?b+1|0:b;y[d+72>>2]=(e-(s&-67108864)|0)+f;h=l;f=Ai(i,i>>31,121666,0);i=W;e=Ai(o,o>>31,121666,0);b=W;l=f;k=e;m=e+16777216|0;b=m>>>0<16777216?b+1|0:b;f=(b&33554431)<<7|m>>>25;e=l+f|0;b=(b>>25)+i|0;b=e>>>0>>0?b+1|0:b;l=e+33554432|0;f=l>>>0<33554432?b+1|0:b;y[d+64>>2]=(e-(l&-67108864)|0)+h;i=j;e=Ai(q,q>>31,121666,0);o=W;j=Ai(p,p>>31,121666,0);b=W;h=e;p=j+16777216|0;b=p>>>0<16777216?b+1|0:b;e=(b&33554431)<<7|p>>>25;h=h+e|0;b=(b>>25)+o|0;b=e>>>0>h>>>0?b+1|0:b;q=h+33554432|0;e=q>>>0<33554432?b+1|0:b;y[d+56>>2]=(h-(q&-67108864)|0)+i;o=N;i=c;c=Ai(v,v>>31,121666,0);i=(i&67108863)<<6|n>>>26;n=c+i|0;h=W;b=h;i=c+16777216|0;c=i>>>0<16777216?b+1|0:b;y[d+84>>2]=(n-(i&-33554432)|0)+o;h=O;g=E+((g&67108863)<<6|s>>>26)|0;y[d+76>>2]=(g-(x&-33554432)|0)+h;g=L;f=F+((f&67108863)<<6|l>>>26)|0;y[d+68>>2]=(f-(t&-33554432)|0)+g;f=M;e=k+((e&67108863)<<6|q>>>26)|0;y[d+60>>2]=(e-(m&-33554432)|0)+f;f=D;g=j-(p&-33554432)|0;c=Ai((c&33554431)<<7|i>>>25,c>>25,19,0);b=W;e=c;c=Ai(r,r>>31,121666,0);e=e+c|0;b=W+b|0;b=c>>>0>e>>>0?b+1|0:b;c=e+33554432|0;b=c>>>0<33554432?b+1|0:b;g=((b&67108863)<<6|c>>>26)+g|0;y[d+52>>2]=f+g;y[d+48>>2]=(e-(c&-67108864)|0)+J;c=na-1|0;ga(K,d+288|0,A);ga(A,d,G);if(na){continue}break}p=y[d+144>>2];r=y[d+240>>2];q=y[d+148>>2];v=y[d+244>>2];o=y[d+152>>2];x=y[d+248>>2];i=y[d+156>>2];n=y[d+252>>2];h=y[d+160>>2];t=y[d+256>>2];g=y[d+164>>2];s=y[d+260>>2];f=y[d+168>>2];m=y[d+264>>2];e=y[d+172>>2];l=y[d+268>>2];c=y[d+176>>2];j=y[d+272>>2];k=0-B|0;b=y[d+276>>2];y[d+276>>2]=k&(b^y[d+180>>2])^b;y[d+272>>2]=j^k&(c^j);y[d+268>>2]=l^k&(e^l);y[d+264>>2]=m^k&(f^m);y[d+260>>2]=s^k&(g^s);y[d+256>>2]=t^k&(h^t);y[d+252>>2]=n^k&(i^n);y[d+248>>2]=x^k&(o^x);y[d+244>>2]=v^k&(q^v);y[d+240>>2]=r^k&(p^r);r=y[d+192>>2];p=y[d+96>>2];v=y[d+196>>2];q=y[d+100>>2];x=y[d+200>>2];o=y[d+104>>2];n=y[d+204>>2];i=y[d+108>>2];t=y[d+208>>2];h=y[d+112>>2];s=y[d+212>>2];g=y[d+116>>2];m=y[d+216>>2];f=y[d+120>>2];l=y[d+220>>2];e=y[d+124>>2];j=y[d+224>>2];c=y[d+128>>2];b=y[d+228>>2];y[d+228>>2]=k&(b^y[d+132>>2])^b;y[d+224>>2]=j^k&(c^j);y[d+220>>2]=l^k&(e^l);y[d+216>>2]=m^k&(f^m);y[d+212>>2]=s^k&(g^s);y[d+208>>2]=t^k&(h^t);y[d+204>>2]=n^k&(i^n);y[d+200>>2]=x^k&(o^x);y[d+196>>2]=v^k&(q^v);y[d+192>>2]=r^k&(p^r);bb(A,A);ga(C,C,A);pa(a,C);ja(oa,32);e=0;}T=d+368|0;return e|0}function Nc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=T-4032|0;T=d;qa(d+160|0,c);f=y[c+36>>2];y[d+3840>>2]=y[c+32>>2];y[d+3844>>2]=f;f=y[c+28>>2];y[d+3832>>2]=y[c+24>>2];y[d+3836>>2]=f;f=y[c+20>>2];y[d+3824>>2]=y[c+16>>2];y[d+3828>>2]=f;f=y[c+12>>2];y[d+3816>>2]=y[c+8>>2];y[d+3820>>2]=f;f=y[c+4>>2];y[d+3808>>2]=y[c>>2];y[d+3812>>2]=f;f=y[c+44>>2];y[d+3848>>2]=y[c+40>>2];y[d+3852>>2]=f;f=y[c+52>>2];y[d+3856>>2]=y[c+48>>2];y[d+3860>>2]=f;f=y[c+60>>2];y[d+3864>>2]=y[c+56>>2];y[d+3868>>2]=f;f=c- -64|0;e=y[f+4>>2];y[d+3872>>2]=y[f>>2];y[d+3876>>2]=e;f=y[c+76>>2];y[d+3880>>2]=y[c+72>>2];y[d+3884>>2]=f;f=y[c+84>>2];y[d+3888>>2]=y[c+80>>2];y[d+3892>>2]=f;f=y[c+92>>2];y[d+3896>>2]=y[c+88>>2];y[d+3900>>2]=f;f=y[c+100>>2];y[d+3904>>2]=y[c+96>>2];y[d+3908>>2]=f;f=y[c+108>>2];y[d+3912>>2]=y[c+104>>2];y[d+3916>>2]=f;f=y[c+116>>2];y[d+3920>>2]=y[c+112>>2];y[d+3924>>2]=f;e=d+3528|0;f=d+3808|0;xa(e,f);h=d+2408|0;g=d+3648|0;ga(h,e,g);i=d+3568|0;j=d+3608|0;ga(d+2448|0,i,j);ga(d+2488|0,j,g);ga(d+2528|0,e,i);g=d+320|0;qa(g,h);e=d+3368|0;sa(e,c,g);h=d+2248|0;g=d+3488|0;ga(h,e,g);i=d+3408|0;j=d+3448|0;ga(d+2288|0,i,j);ga(d+2328|0,j,g);ga(d+2368|0,e,i);qa(d+480|0,h);e=y[d+2444>>2];y[d+3840>>2]=y[d+2440>>2];y[d+3844>>2]=e;e=y[d+2436>>2];y[d+3832>>2]=y[d+2432>>2];y[d+3836>>2]=e;e=y[d+2428>>2];y[d+3824>>2]=y[d+2424>>2];y[d+3828>>2]=e;e=y[d+2420>>2];y[d+3816>>2]=y[d+2416>>2];y[d+3820>>2]=e;e=y[d+2412>>2];y[d+3808>>2]=y[d+2408>>2];y[d+3812>>2]=e;e=y[d+2452>>2];y[d+3848>>2]=y[d+2448>>2];y[d+3852>>2]=e;e=y[d+2460>>2];y[d+3856>>2]=y[d+2456>>2];y[d+3860>>2]=e;e=y[d+2468>>2];y[d+3864>>2]=y[d+2464>>2];y[d+3868>>2]=e;e=y[d+2476>>2];y[d+3872>>2]=y[d+2472>>2];y[d+3876>>2]=e;e=y[d+2484>>2];y[d+3880>>2]=y[d+2480>>2];y[d+3884>>2]=e;e=y[d+2524>>2];y[d+3920>>2]=y[d+2520>>2];y[d+3924>>2]=e;e=y[d+2516>>2];y[d+3912>>2]=y[d+2512>>2];y[d+3916>>2]=e;e=y[d+2508>>2];y[d+3904>>2]=y[d+2504>>2];y[d+3908>>2]=e;e=y[d+2500>>2];y[d+3896>>2]=y[d+2496>>2];y[d+3900>>2]=e;e=y[d+2492>>2];y[d+3888>>2]=y[d+2488>>2];y[d+3892>>2]=e;e=d+3208|0;xa(e,f);h=d+2088|0;g=d+3328|0;ga(h,e,g);i=d+3248|0;j=d+3288|0;ga(d+2128|0,i,j);ga(d+2168|0,j,g);ga(d+2208|0,e,i);g=d+640|0;qa(g,h);e=d+3048|0;sa(e,c,g);h=d+1928|0;g=d+3168|0;ga(h,e,g);i=d+3088|0;j=d+3128|0;ga(d+1968|0,i,j);ga(d+2008|0,j,g);ga(d+2048|0,e,i);qa(d+800|0,h);e=y[d+2284>>2];y[d+3840>>2]=y[d+2280>>2];y[d+3844>>2]=e;e=y[d+2276>>2];y[d+3832>>2]=y[d+2272>>2];y[d+3836>>2]=e;e=y[d+2268>>2];y[d+3824>>2]=y[d+2264>>2];y[d+3828>>2]=e;e=y[d+2260>>2];y[d+3816>>2]=y[d+2256>>2];y[d+3820>>2]=e;e=y[d+2252>>2];y[d+3808>>2]=y[d+2248>>2];y[d+3812>>2]=e;e=y[d+2292>>2];y[d+3848>>2]=y[d+2288>>2];y[d+3852>>2]=e;e=y[d+2300>>2];y[d+3856>>2]=y[d+2296>>2];y[d+3860>>2]=e;e=y[d+2308>>2];y[d+3864>>2]=y[d+2304>>2];y[d+3868>>2]=e;e=y[d+2316>>2];y[d+3872>>2]=y[d+2312>>2];y[d+3876>>2]=e;e=y[d+2324>>2];y[d+3880>>2]=y[d+2320>>2];y[d+3884>>2]=e;e=y[d+2364>>2];y[d+3920>>2]=y[d+2360>>2];y[d+3924>>2]=e;e=y[d+2356>>2];y[d+3912>>2]=y[d+2352>>2];y[d+3916>>2]=e;e=y[d+2348>>2];y[d+3904>>2]=y[d+2344>>2];y[d+3908>>2]=e;e=y[d+2340>>2];y[d+3896>>2]=y[d+2336>>2];y[d+3900>>2]=e;e=y[d+2332>>2];y[d+3888>>2]=y[d+2328>>2];y[d+3892>>2]=e;e=d+2888|0;xa(e,f);h=d+1768|0;g=d+3008|0;ga(h,e,g);i=d+2928|0;j=d+2968|0;ga(d+1808|0,i,j);ga(d+1848|0,j,g);ga(d+1888|0,e,i);g=d+960|0;qa(g,h);e=d+2728|0;sa(e,c,g);c=d+1608|0;h=d+2848|0;ga(c,e,h);g=d+2768|0;i=d+2808|0;ga(d+1648|0,g,i);ga(d+1688|0,i,h);ga(d+1728|0,e,g);qa(d+1120|0,c);c=y[d+2124>>2];y[d+3840>>2]=y[d+2120>>2];y[d+3844>>2]=c;c=y[d+2116>>2];y[d+3832>>2]=y[d+2112>>2];y[d+3836>>2]=c;c=y[d+2108>>2];y[d+3824>>2]=y[d+2104>>2];y[d+3828>>2]=c;c=y[d+2100>>2];y[d+3816>>2]=y[d+2096>>2];y[d+3820>>2]=c;c=y[d+2092>>2];y[d+3808>>2]=y[d+2088>>2];y[d+3812>>2]=c;c=y[d+2132>>2];y[d+3848>>2]=y[d+2128>>2];y[d+3852>>2]=c;c=y[d+2140>>2];y[d+3856>>2]=y[d+2136>>2];y[d+3860>>2]=c;c=y[d+2148>>2];y[d+3864>>2]=y[d+2144>>2];y[d+3868>>2]=c;c=y[d+2156>>2];y[d+3872>>2]=y[d+2152>>2];y[d+3876>>2]=c;c=y[d+2164>>2];y[d+3880>>2]=y[d+2160>>2];y[d+3884>>2]=c;c=y[d+2204>>2];y[d+3920>>2]=y[d+2200>>2];y[d+3924>>2]=c;c=y[d+2196>>2];y[d+3912>>2]=y[d+2192>>2];y[d+3916>>2]=c;c=y[d+2188>>2];y[d+3904>>2]=y[d+2184>>2];y[d+3908>>2]=c;c=y[d+2180>>2];y[d+3896>>2]=y[d+2176>>2];y[d+3900>>2]=c;c=y[d+2172>>2];y[d+3888>>2]=y[d+2168>>2];y[d+3892>>2]=c;c=d+2568|0;xa(c,f);f=d+1448|0;e=d+2688|0;ga(f,c,e);h=d+2608|0;g=d+2648|0;ga(d+1488|0,h,g);ga(d+1528|0,g,e);ga(d+1568|0,c,h);qa(d+1280|0,f);c=z[b|0];w[d+3969|0]=c>>>4;w[d+3968|0]=c&15;c=z[b+1|0];w[d+3971|0]=c>>>4;w[d+3970|0]=c&15;c=z[b+2|0];w[d+3973|0]=c>>>4;w[d+3972|0]=c&15;c=z[b+3|0];w[d+3975|0]=c>>>4;w[d+3974|0]=c&15;c=z[b+4|0];w[d+3977|0]=c>>>4;w[d+3976|0]=c&15;c=z[b+5|0];w[d+3979|0]=c>>>4;w[d+3978|0]=c&15;c=z[b+6|0];w[d+3981|0]=c>>>4;w[d+3980|0]=c&15;c=z[b+7|0];w[d+3983|0]=c>>>4;w[d+3982|0]=c&15;c=z[b+8|0];w[d+3985|0]=c>>>4;w[d+3984|0]=c&15;c=z[b+9|0];w[d+3987|0]=c>>>4;w[d+3986|0]=c&15;c=z[b+10|0];w[d+3989|0]=c>>>4;w[d+3988|0]=c&15;c=z[b+11|0];w[d+3991|0]=c>>>4;w[d+3990|0]=c&15;c=z[b+12|0];w[d+3993|0]=c>>>4;w[d+3992|0]=c&15;c=z[b+13|0];w[d+3995|0]=c>>>4;w[d+3994|0]=c&15;c=z[b+14|0];w[d+3997|0]=c>>>4;w[d+3996|0]=c&15;c=z[b+15|0];w[d+3999|0]=c>>>4;w[d+3998|0]=c&15;c=z[b+16|0];w[d+4001|0]=c>>>4;w[d+4e3|0]=c&15;c=z[b+17|0];w[d+4003|0]=c>>>4;w[d+4002|0]=c&15;c=z[b+18|0];w[d+4005|0]=c>>>4;w[d+4004|0]=c&15;c=z[b+19|0];w[d+4007|0]=c>>>4;w[d+4006|0]=c&15;c=z[b+20|0];w[d+4009|0]=c>>>4;w[d+4008|0]=c&15;c=z[b+21|0];w[d+4011|0]=c>>>4;w[d+4010|0]=c&15;c=z[b+22|0];w[d+4013|0]=c>>>4;w[d+4012|0]=c&15;c=z[b+23|0];w[d+4015|0]=c>>>4;w[d+4014|0]=c&15;c=z[b+24|0];w[d+4017|0]=c>>>4;w[d+4016|0]=c&15;c=z[b+25|0];w[d+4019|0]=c>>>4;w[d+4018|0]=c&15;c=z[b+26|0];w[d+4021|0]=c>>>4;w[d+4020|0]=c&15;c=z[b+27|0];w[d+4023|0]=c>>>4;w[d+4022|0]=c&15;c=z[b+28|0];w[d+4025|0]=c>>>4;w[d+4024|0]=c&15;c=z[b+29|0];w[d+4027|0]=c>>>4;w[d+4026|0]=c&15;c=z[b+30|0];w[d+4029|0]=c>>>4;w[d+4028|0]=c&15;b=z[b+31|0];w[d+4031|0]=b>>>4;w[d+4030|0]=b&15;b=0;c=0;while(1){e=b;b=(d+3968|0)+c|0;e=e+z[b|0]|0;f=e+8|0;w[b|0]=e-(f&240);e=z[b+1|0]+(f<<24>>24>>4)|0;f=e+8|0;w[b+1|0]=e-(f&240);e=z[b+2|0]+(f<<24>>24>>4)|0;f=e+8|0;w[b+2|0]=e-(f&240);b=f<<24>>24>>4;c=c+3|0;if((c|0)!=63){continue}break}w[d+4031|0]=z[d+4031|0]+b;y[a+32>>2]=0;y[a+36>>2]=0;y[a+24>>2]=0;y[a+28>>2]=0;y[a+16>>2]=0;y[a+20>>2]=0;y[a+8>>2]=0;y[a+12>>2]=0;y[a>>2]=0;y[a+4>>2]=0;y[a+44>>2]=0;y[a+48>>2]=0;k=a+40|0;y[k>>2]=1;y[a+52>>2]=0;y[a+56>>2]=0;y[a+60>>2]=0;y[a+64>>2]=0;y[a+68>>2]=0;y[a+72>>2]=0;y[a+76>>2]=0;y[a+80>>2]=1;o(a+84|0,0,76);l=a+120|0;m=a+80|0;g=d+3768|0;c=d+3888|0;e=d+3848|0;i=d+3728|0;f=d+3928|0;j=63;while(1){n=d+160|0;Mc(d,n,w[(d+3968|0)+j|0]);b=d+3808|0;sa(b,a,d);h=d+3688|0;ga(h,b,f);ga(i,e,c);ga(g,c,f);xa(b,h);ga(h,b,f);ga(i,e,c);ga(g,c,f);xa(b,h);ga(h,b,f);ga(i,e,c);ga(g,c,f);xa(b,h);ga(h,b,f);ga(i,e,c);ga(g,c,f);xa(b,h);ga(a,b,f);ga(k,e,c);ga(m,c,f);ga(l,b,e);j=j-1|0;if(j){continue}break}Mc(d,n,w[d+3968|0]);sa(b,a,d);ga(a,b,f);ga(k,e,c);ga(m,c,f);ga(l,b,e);T=d+4032|0;}function Tb(a,b,c,d){var 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,A=0,B=0,C=0,D=0,E=0;e=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D>>2]=E;e=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+4>>2]=E;e=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+8>>2]=E;e=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+12>>2]=E;e=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+16>>2]=E;e=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+20>>2]=E;e=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+24>>2]=E;e=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+28>>2]=E;e=z[b+32|0]|z[b+33|0]<<8|(z[b+34|0]<<16|z[b+35|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+32>>2]=E;e=z[b+36|0]|z[b+37|0]<<8|(z[b+38|0]<<16|z[b+39|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+36>>2]=E;e=z[b+40|0]|z[b+41|0]<<8|(z[b+42|0]<<16|z[b+43|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+40>>2]=E;e=z[b+44|0]|z[b+45|0]<<8|(z[b+46|0]<<16|z[b+47|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+44>>2]=E;e=z[b+48|0]|z[b+49|0]<<8|(z[b+50|0]<<16|z[b+51|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+48>>2]=E;e=z[b+52|0]|z[b+53|0]<<8|(z[b+54|0]<<16|z[b+55|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+52>>2]=E;e=z[b+56|0]|z[b+57|0]<<8|(z[b+58|0]<<16|z[b+59|0]<<24);D=c,E=Di(e&16711935,8)|Di(e,24)&16711935,y[D+56>>2]=E;b=z[b+60|0]|z[b+61|0]<<8|(z[b+62|0]<<16|z[b+63|0]<<24);D=c,E=Di(b&16711935,8)|Di(b,24)&16711935,y[D+60>>2]=E;b=y[a+28>>2];y[d+24>>2]=y[a+24>>2];y[d+28>>2]=b;b=y[a+20>>2];y[d+16>>2]=y[a+16>>2];y[d+20>>2]=b;b=y[a+12>>2];y[d+8>>2]=y[a+8>>2];y[d+12>>2]=b;b=y[a+4>>2];y[d>>2]=y[a>>2];y[d+4>>2]=b;while(1){h=y[d+28>>2];e=s<<2;b=e+c|0;i=y[d+16>>2];g=y[b>>2]+(Bi(i,26)^Bi(i,21)^Bi(i,7))|0;f=y[e+39360>>2]+g|0;g=y[d+24>>2];n=y[d+20>>2];h=(f+(i&(g^n)^g)|0)+h|0;k=h+y[d+12>>2]|0;y[d+12>>2]=k;f=y[d>>2];l=h+(Bi(f,30)^Bi(f,19)^Bi(f,10))|0;m=y[d+8>>2];j=y[d+4>>2];h=l+(f&(m|j)|j&m)|0;y[d+28>>2]=h;l=m;m=e|4;q=m+c|0;g=(y[q>>2]+((g+(n^k&(i^n))|0)+(Bi(k,26)^Bi(k,21)^Bi(k,7))|0)|0)+y[m+39360>>2]|0;m=l+g|0;y[d+8>>2]=m;g=(g+(h&(f|j)|f&j)|0)+(Bi(h,30)^Bi(h,19)^Bi(h,10))|0;y[d+24>>2]=g;l=j;j=e|8;j=(((n+y[j+c>>2]|0)+y[j+39360>>2]|0)+(i^m&(i^k))|0)+(Bi(m,26)^Bi(m,21)^Bi(m,7))|0;n=l+j|0;y[d+4>>2]=n;j=j+((g&(f|h)|f&h)+(Bi(g,30)^Bi(g,19)^Bi(g,10))|0)|0;y[d+20>>2]=j;l=f;f=e|12;f=(((i+y[f+c>>2]|0)+y[f+39360>>2]|0)+(k^n&(m^k))|0)+(Bi(n,26)^Bi(n,21)^Bi(n,7))|0;i=l+f|0;y[d>>2]=i;f=f+((j&(g|h)|g&h)+(Bi(j,30)^Bi(j,19)^Bi(j,10))|0)|0;y[d+16>>2]=f;l=k;k=e|16;l=(((l+y[k+c>>2]|0)+y[k+39360>>2]|0)+(m^i&(m^n))|0)+(Bi(i,26)^Bi(i,21)^Bi(i,7))|0;k=l+((f&(g|j)|g&j)+(Bi(f,30)^Bi(f,19)^Bi(f,10))|0)|0;y[d+12>>2]=k;l=h+l|0;y[d+28>>2]=l;h=e|20;m=(((m+y[h+c>>2]|0)+y[h+39360>>2]|0)+(n^l&(i^n))|0)+(Bi(l,26)^Bi(l,21)^Bi(l,7))|0;h=m+((k&(f|j)|f&j)+(Bi(k,30)^Bi(k,19)^Bi(k,10))|0)|0;y[d+8>>2]=h;m=g+m|0;y[d+24>>2]=m;g=e|24;n=(((n+y[g+c>>2]|0)+y[g+39360>>2]|0)+(i^m&(i^l))|0)+(Bi(m,26)^Bi(m,21)^Bi(m,7))|0;g=n+((h&(f|k)|f&k)+(Bi(h,30)^Bi(h,19)^Bi(h,10))|0)|0;y[d+4>>2]=g;n=j+n|0;y[d+20>>2]=n;j=e|28;i=(((i+y[j+c>>2]|0)+y[j+39360>>2]|0)+(l^n&(m^l))|0)+(Bi(n,26)^Bi(n,21)^Bi(n,7))|0;j=i+((g&(h|k)|h&k)+(Bi(g,30)^Bi(g,19)^Bi(g,10))|0)|0;y[d>>2]=j;i=f+i|0;y[d+16>>2]=i;f=e|32;l=(((l+y[f+c>>2]|0)+y[f+39360>>2]|0)+(m^i&(m^n))|0)+(Bi(i,26)^Bi(i,21)^Bi(i,7))|0;f=l+((j&(g|h)|g&h)+(Bi(j,30)^Bi(j,19)^Bi(j,10))|0)|0;y[d+28>>2]=f;l=k+l|0;y[d+12>>2]=l;k=e|36;r=k+c|0;m=(((m+y[r>>2]|0)+y[k+39360>>2]|0)+(n^l&(i^n))|0)+(Bi(l,26)^Bi(l,21)^Bi(l,7))|0;k=m+((f&(g|j)|g&j)+(Bi(f,30)^Bi(f,19)^Bi(f,10))|0)|0;y[d+24>>2]=k;m=h+m|0;y[d+8>>2]=m;h=e|40;v=h+c|0;n=(((n+y[v>>2]|0)+y[h+39360>>2]|0)+(i^m&(i^l))|0)+(Bi(m,26)^Bi(m,21)^Bi(m,7))|0;h=n+((k&(f|j)|f&j)+(Bi(k,30)^Bi(k,19)^Bi(k,10))|0)|0;y[d+20>>2]=h;n=g+n|0;y[d+4>>2]=n;g=e|44;w=g+c|0;i=((i+(y[g+39360>>2]+y[w>>2]|0)|0)+(l^n&(m^l))|0)+(Bi(n,26)^Bi(n,21)^Bi(n,7))|0;g=i+((h&(f|k)|f&k)+(Bi(h,30)^Bi(h,19)^Bi(h,10))|0)|0;y[d+16>>2]=g;j=i+j|0;y[d>>2]=j;i=e|48;x=i+c|0;l=((l+(y[i+39360>>2]+y[x>>2]|0)|0)+(m^j&(m^n))|0)+(Bi(j,26)^Bi(j,21)^Bi(j,7))|0;i=l+((g&(h|k)|h&k)+(Bi(g,30)^Bi(g,19)^Bi(g,10))|0)|0;y[d+12>>2]=i;f=f+l|0;y[d+28>>2]=f;l=e|52;A=l+c|0;l=(((y[l+39360>>2]+y[A>>2]|0)+m|0)+(n^f&(j^n))|0)+(Bi(f,26)^Bi(f,21)^Bi(f,7))|0;m=l+((i&(g|h)|g&h)+(Bi(i,30)^Bi(i,19)^Bi(i,10))|0)|0;y[d+8>>2]=m;k=k+l|0;y[d+24>>2]=k;o=e|56;l=o+c|0;o=(((y[o+39360>>2]+y[l>>2]|0)+n|0)+(j^k&(f^j))|0)+(Bi(k,26)^Bi(k,21)^Bi(k,7))|0;n=o+((m&(g|i)|g&i)+(Bi(m,30)^Bi(m,19)^Bi(m,10))|0)|0;y[d+4>>2]=n;h=h+o|0;y[d+20>>2]=h;e=e|60;B=e+c|0;e=((j+(y[e+39360>>2]+y[B>>2]|0)|0)+(f^h&(f^k))|0)+(Bi(h,26)^Bi(h,21)^Bi(h,7))|0;h=e+((n&(i|m)|i&m)+(Bi(n,30)^Bi(n,19)^Bi(n,10))|0)|0;y[d>>2]=h;y[d+16>>2]=e+g;if((s|0)!=48){s=s+16|0;C=y[r>>2];r=y[l>>2];f=y[b>>2]+(C+(Bi(r,15)^Bi(r,13)^r>>>10)|0)|0;h=y[q>>2];e=f+(Bi(h,25)^Bi(h,14)^h>>>3)|0;y[(s<<2)+c>>2]=e;g=y[b+8>>2];j=y[b+44>>2];f=g+(j+(Bi(e,15)^Bi(e,13)^e>>>10)|0)|0;i=y[b+12>>2];f=f+(Bi(i,25)^Bi(i,14)^i>>>3)|0;y[b+72>>2]=f;q=y[b+40>>2];k=q+h|0;h=y[b+60>>2];g=(k+(Bi(h,15)^Bi(h,13)^h>>>10)|0)+(Bi(g,25)^Bi(g,14)^g>>>3)|0;y[b+68>>2]=g;k=y[b+16>>2];m=y[b+52>>2];l=k+(m+(Bi(f,15)^Bi(f,13)^f>>>10)|0)|0;o=y[b+20>>2];n=l+(Bi(o,25)^Bi(o,14)^o>>>3)|0;y[b+80>>2]=n;t=y[b+48>>2];k=(i+(t+(Bi(g,15)^Bi(g,13)^g>>>10)|0)|0)+(Bi(k,25)^Bi(k,14)^k>>>3)|0;y[b+76>>2]=k;i=y[b+24>>2];l=i+(h+(Bi(n,15)^Bi(n,13)^n>>>10)|0)|0;p=y[b+28>>2];l=l+(Bi(p,25)^Bi(p,14)^p>>>3)|0;y[b+88>>2]=l;u=y[b+56>>2];i=(o+(u+(Bi(k,15)^Bi(k,13)^k>>>10)|0)|0)+(Bi(i,25)^Bi(i,14)^i>>>3)|0;y[b+84>>2]=i;o=(e+p|0)+(Bi(i,15)^Bi(i,13)^i>>>10)|0;p=y[b+32>>2];o=o+(Bi(p,25)^Bi(p,14)^p>>>3)|0;y[b+92>>2]=o;p=(g+p|0)+(Bi(l,15)^Bi(l,13)^l>>>10)|0;g=y[b+36>>2];g=p+(Bi(g,25)^Bi(g,14)^g>>>3)|0;y[b+96>>2]=g;f=(f+((Bi(q,25)^Bi(q,14)^q>>>3)+C|0)|0)+(Bi(o,15)^Bi(o,13)^o>>>10)|0;y[b+100>>2]=f;j=(y[v>>2]+(k+(Bi(j,25)^Bi(j,14)^j>>>3)|0)|0)+(Bi(g,15)^Bi(g,13)^g>>>10)|0;y[b+104>>2]=j;f=(y[w>>2]+(n+(Bi(t,25)^Bi(t,14)^t>>>3)|0)|0)+(Bi(f,15)^Bi(f,13)^f>>>10)|0;y[b+108>>2]=f;j=(y[x>>2]+(i+(Bi(m,25)^Bi(m,14)^m>>>3)|0)|0)+(Bi(j,15)^Bi(j,13)^j>>>10)|0;y[b+112>>2]=j;f=(y[A>>2]+(l+(Bi(u,25)^Bi(u,14)^u>>>3)|0)|0)+(Bi(f,15)^Bi(f,13)^f>>>10)|0;y[b+116>>2]=f;D=b,E=(o+(r+(Bi(h,25)^Bi(h,14)^h>>>3)|0)|0)+(Bi(j,15)^Bi(j,13)^j>>>10)|0,y[D+120>>2]=E;D=b,E=(y[B>>2]+(g+(Bi(e,25)^Bi(e,14)^e>>>3)|0)|0)+(Bi(f,15)^Bi(f,13)^f>>>10)|0,y[D+124>>2]=E;continue}break}y[a>>2]=h+y[a>>2];y[a+4>>2]=y[a+4>>2]+y[d+4>>2];y[a+8>>2]=y[a+8>>2]+y[d+8>>2];y[a+12>>2]=y[a+12>>2]+y[d+12>>2];y[a+16>>2]=y[a+16>>2]+y[d+16>>2];y[a+20>>2]=y[a+20>>2]+y[d+20>>2];y[a+24>>2]=y[a+24>>2]+y[d+24>>2];y[a+28>>2]=y[a+28>>2]+y[d+28>>2];}function Pe(a,b){var 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;c=T-544|0;T=c;g=z[a+60|0]|z[a+61|0]<<8|(z[a+62|0]<<16|z[a+63|0]<<24);h=z[a+56|0]|z[a+57|0]<<8|(z[a+58|0]<<16|z[a+59|0]<<24);i=z[a+52|0]|z[a+53|0]<<8|(z[a+54|0]<<16|z[a+55|0]<<24);j=z[a+48|0]|z[a+49|0]<<8|(z[a+50|0]<<16|z[a+51|0]<<24);k=z[a+32|0]|z[a+33|0]<<8|(z[a+34|0]<<16|z[a+35|0]<<24);l=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);m=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);n=z[a+44|0]|z[a+45|0]<<8|(z[a+46|0]<<16|z[a+47|0]<<24);d=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);o=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);p=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);q=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);r=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);s=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);t=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);u=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);a=y[b+124>>2];y[c+536>>2]=y[b+120>>2];y[c+540>>2]=a;a=y[b+116>>2];y[c+528>>2]=y[b+112>>2];y[c+532>>2]=a;a=y[b+100>>2];y[c+496>>2]=y[b+96>>2];y[c+500>>2]=a;a=y[b+108>>2];y[c+504>>2]=y[b+104>>2];y[c+508>>2]=a;a=y[b+116>>2];y[c+480>>2]=y[b+112>>2];y[c+484>>2]=a;a=y[b+124>>2];y[c+488>>2]=y[b+120>>2];y[c+492>>2]=a;a=c+512|0;ia(a,c+496|0,c+480|0);f=y[c+524>>2];y[b+120>>2]=y[c+520>>2];y[b+124>>2]=f;f=y[c+516>>2];y[b+112>>2]=y[c+512>>2];y[b+116>>2]=f;f=y[b+84>>2];y[c+464>>2]=y[b+80>>2];y[c+468>>2]=f;f=y[b+92>>2];y[c+472>>2]=y[b+88>>2];y[c+476>>2]=f;f=y[b+100>>2];y[c+448>>2]=y[b+96>>2];y[c+452>>2]=f;f=y[b+108>>2];y[c+456>>2]=y[b+104>>2];y[c+460>>2]=f;ia(a,c+464|0,c+448|0);f=y[c+524>>2];y[b+104>>2]=y[c+520>>2];y[b+108>>2]=f;f=y[c+516>>2];y[b+96>>2]=y[c+512>>2];y[b+100>>2]=f;f=b- -64|0;e=y[f+4>>2];y[c+432>>2]=y[f>>2];y[c+436>>2]=e;e=y[b+76>>2];y[c+440>>2]=y[b+72>>2];y[c+444>>2]=e;e=y[b+84>>2];y[c+416>>2]=y[b+80>>2];y[c+420>>2]=e;e=y[b+92>>2];y[c+424>>2]=y[b+88>>2];y[c+428>>2]=e;ia(a,c+432|0,c+416|0);e=y[c+524>>2];y[b+88>>2]=y[c+520>>2];y[b+92>>2]=e;e=y[c+516>>2];y[b+80>>2]=y[c+512>>2];y[b+84>>2]=e;e=y[b+52>>2];y[c+400>>2]=y[b+48>>2];y[c+404>>2]=e;e=y[b+60>>2];y[c+408>>2]=y[b+56>>2];y[c+412>>2]=e;e=y[f+4>>2];y[c+384>>2]=y[f>>2];y[c+388>>2]=e;e=y[b+76>>2];y[c+392>>2]=y[b+72>>2];y[c+396>>2]=e;ia(a,c+400|0,c+384|0);e=y[c+524>>2];y[b+72>>2]=y[c+520>>2];y[b+76>>2]=e;e=y[c+516>>2];y[f>>2]=y[c+512>>2];y[f+4>>2]=e;e=y[b+36>>2];y[c+368>>2]=y[b+32>>2];y[c+372>>2]=e;e=y[b+44>>2];y[c+376>>2]=y[b+40>>2];y[c+380>>2]=e;e=y[b+52>>2];y[c+352>>2]=y[b+48>>2];y[c+356>>2]=e;e=y[b+60>>2];y[c+360>>2]=y[b+56>>2];y[c+364>>2]=e;ia(a,c+368|0,c+352|0);e=y[c+524>>2];y[b+56>>2]=y[c+520>>2];y[b+60>>2]=e;e=y[c+516>>2];y[b+48>>2]=y[c+512>>2];y[b+52>>2]=e;e=y[b+20>>2];y[c+336>>2]=y[b+16>>2];y[c+340>>2]=e;e=y[b+28>>2];y[c+344>>2]=y[b+24>>2];y[c+348>>2]=e;e=y[b+36>>2];y[c+320>>2]=y[b+32>>2];y[c+324>>2]=e;e=y[b+44>>2];y[c+328>>2]=y[b+40>>2];y[c+332>>2]=e;ia(a,c+336|0,c+320|0);e=y[c+524>>2];y[b+40>>2]=y[c+520>>2];y[b+44>>2]=e;e=y[c+516>>2];y[b+32>>2]=y[c+512>>2];y[b+36>>2]=e;e=y[b+4>>2];y[c+304>>2]=y[b>>2];y[c+308>>2]=e;e=y[b+12>>2];y[c+312>>2]=y[b+8>>2];y[c+316>>2]=e;e=y[b+20>>2];y[c+288>>2]=y[b+16>>2];y[c+292>>2]=e;e=y[b+28>>2];y[c+296>>2]=y[b+24>>2];y[c+300>>2]=e;ia(a,c+304|0,c+288|0);e=y[c+524>>2];y[b+24>>2]=y[c+520>>2];y[b+28>>2]=e;e=y[c+516>>2];y[b+16>>2]=y[c+512>>2];y[b+20>>2]=e;e=y[c+532>>2];y[c+272>>2]=y[c+528>>2];y[c+276>>2]=e;e=y[c+540>>2];y[c+280>>2]=y[c+536>>2];y[c+284>>2]=e;e=y[b+4>>2];y[c+256>>2]=y[b>>2];y[c+260>>2]=e;e=y[b+12>>2];y[c+264>>2]=y[b+8>>2];y[c+268>>2]=e;ia(a,c+272|0,c+256|0);e=y[c+524>>2];y[b+8>>2]=y[c+520>>2];y[b+12>>2]=e;e=y[c+516>>2];y[b>>2]=y[c+512>>2];y[b+4>>2]=e;y[b+12>>2]=y[b+12>>2]^t;y[b+8>>2]=y[b+8>>2]^s;y[b+4>>2]=y[b+4>>2]^r;y[b>>2]=y[b>>2]^u;y[f>>2]=y[f>>2]^q;y[b+68>>2]=y[b+68>>2]^p;y[b+72>>2]=y[b+72>>2]^o;y[b+76>>2]=y[b+76>>2]^d;d=y[b+124>>2];y[c+536>>2]=y[b+120>>2];y[c+540>>2]=d;d=y[b+116>>2];y[c+528>>2]=y[b+112>>2];y[c+532>>2]=d;d=y[b+100>>2];y[c+240>>2]=y[b+96>>2];y[c+244>>2]=d;d=y[b+108>>2];y[c+248>>2]=y[b+104>>2];y[c+252>>2]=d;d=y[b+116>>2];y[c+224>>2]=y[b+112>>2];y[c+228>>2]=d;d=y[b+124>>2];y[c+232>>2]=y[b+120>>2];y[c+236>>2]=d;ia(a,c+240|0,c+224|0);d=y[c+524>>2];y[b+120>>2]=y[c+520>>2];y[b+124>>2]=d;d=y[c+516>>2];y[b+112>>2]=y[c+512>>2];y[b+116>>2]=d;d=y[b+84>>2];y[c+208>>2]=y[b+80>>2];y[c+212>>2]=d;d=y[b+92>>2];y[c+216>>2]=y[b+88>>2];y[c+220>>2]=d;d=y[b+100>>2];y[c+192>>2]=y[b+96>>2];y[c+196>>2]=d;d=y[b+108>>2];y[c+200>>2]=y[b+104>>2];y[c+204>>2]=d;ia(a,c+208|0,c+192|0);d=y[c+524>>2];y[b+104>>2]=y[c+520>>2];y[b+108>>2]=d;d=y[c+516>>2];y[b+96>>2]=y[c+512>>2];y[b+100>>2]=d;d=y[f+4>>2];y[c+176>>2]=y[f>>2];y[c+180>>2]=d;d=y[b+76>>2];y[c+184>>2]=y[b+72>>2];y[c+188>>2]=d;d=y[b+84>>2];y[c+160>>2]=y[b+80>>2];y[c+164>>2]=d;d=y[b+92>>2];y[c+168>>2]=y[b+88>>2];y[c+172>>2]=d;ia(a,c+176|0,c+160|0);d=y[c+524>>2];y[b+88>>2]=y[c+520>>2];y[b+92>>2]=d;d=y[c+516>>2];y[b+80>>2]=y[c+512>>2];y[b+84>>2]=d;d=y[b+52>>2];y[c+144>>2]=y[b+48>>2];y[c+148>>2]=d;d=y[b+60>>2];y[c+152>>2]=y[b+56>>2];y[c+156>>2]=d;d=y[f+4>>2];y[c+128>>2]=y[f>>2];y[c+132>>2]=d;d=y[b+76>>2];y[c+136>>2]=y[b+72>>2];y[c+140>>2]=d;ia(a,c+144|0,c+128|0);d=y[c+524>>2];y[b+72>>2]=y[c+520>>2];y[b+76>>2]=d;d=y[c+516>>2];y[f>>2]=y[c+512>>2];y[f+4>>2]=d;d=y[b+36>>2];y[c+112>>2]=y[b+32>>2];y[c+116>>2]=d;d=y[b+44>>2];y[c+120>>2]=y[b+40>>2];y[c+124>>2]=d;d=y[b+52>>2];y[c+96>>2]=y[b+48>>2];y[c+100>>2]=d;d=y[b+60>>2];y[c+104>>2]=y[b+56>>2];y[c+108>>2]=d;ia(a,c+112|0,c+96|0);d=y[c+524>>2];y[b+56>>2]=y[c+520>>2];y[b+60>>2]=d;d=y[c+516>>2];y[b+48>>2]=y[c+512>>2];y[b+52>>2]=d;d=y[b+20>>2];y[c+80>>2]=y[b+16>>2];y[c+84>>2]=d;d=y[b+28>>2];y[c+88>>2]=y[b+24>>2];y[c+92>>2]=d;d=y[b+36>>2];y[c+64>>2]=y[b+32>>2];y[c+68>>2]=d;d=y[b+44>>2];y[c+72>>2]=y[b+40>>2];y[c+76>>2]=d;ia(a,c+80|0,c- -64|0);d=y[c+524>>2];y[b+40>>2]=y[c+520>>2];y[b+44>>2]=d;d=y[c+516>>2];y[b+32>>2]=y[c+512>>2];y[b+36>>2]=d;d=y[b+4>>2];y[c+48>>2]=y[b>>2];y[c+52>>2]=d;d=y[b+12>>2];y[c+56>>2]=y[b+8>>2];y[c+60>>2]=d;d=y[b+20>>2];y[c+32>>2]=y[b+16>>2];y[c+36>>2]=d;d=y[b+28>>2];y[c+40>>2]=y[b+24>>2];y[c+44>>2]=d;ia(a,c+48|0,c+32|0);d=y[c+524>>2];y[b+24>>2]=y[c+520>>2];y[b+28>>2]=d;d=y[c+516>>2];y[b+16>>2]=y[c+512>>2];y[b+20>>2]=d;d=y[c+532>>2];y[c+16>>2]=y[c+528>>2];y[c+20>>2]=d;d=y[c+540>>2];y[c+24>>2]=y[c+536>>2];y[c+28>>2]=d;d=y[b+4>>2];y[c>>2]=y[b>>2];y[c+4>>2]=d;d=y[b+12>>2];y[c+8>>2]=y[b+8>>2];y[c+12>>2]=d;ia(a,c+16|0,c);a=y[c+524>>2];y[b+8>>2]=y[c+520>>2];y[b+12>>2]=a;a=y[c+516>>2];y[b>>2]=y[c+512>>2];y[b+4>>2]=a;y[b+12>>2]=y[b+12>>2]^n;y[b+8>>2]=y[b+8>>2]^m;y[b+4>>2]=y[b+4>>2]^l;y[b>>2]=y[b>>2]^k;y[f>>2]=y[f>>2]^j;y[b+68>>2]=y[b+68>>2]^i;y[b+72>>2]=y[b+72>>2]^h;y[b+76>>2]=y[b+76>>2]^g;T=c+544|0;}function Oc(a,b){var 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,z=0,A=0,B=0,C=0,D=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,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;K=y[b+12>>2];u=K<<1;z=u>>31;f=y[b+4>>2];o=f<<1;v=o>>31;c=Ai(u,z,o,v);e=W;l=y[b+8>>2];R=l;L=l>>31;m=Ai(l,L,l,L);d=m+c|0;c=W+e|0;c=d>>>0>>0?c+1|0:c;h=y[b+16>>2];A=h>>31;g=y[b>>2];m=g<<1;w=m>>31;e=Ai(h,A,m,w);d=e+d|0;c=W+c|0;c=d>>>0>>0?c+1|0:c;G=y[b+28>>2];B=E(G,38);M=B>>31;S=G>>31;e=Ai(B,M,G,S);d=e+d|0;c=W+c|0;c=d>>>0>>0?c+1|0:c;e=d;H=y[b+32>>2];j=E(H,19);C=j>>31;p=y[b+24>>2];d=p<<1;i=Ai(j,C,d,d>>31);e=e+i|0;d=W+c|0;d=e>>>0>>0?d+1|0:d;$=y[b+36>>2];i=E($,38);x=i>>31;D=y[b+20>>2];q=D<<1;I=q>>31;c=Ai(i,x,q,I);e=c+e|0;b=W+d|0;c=(c>>>0>e>>>0?b+1|0:b)<<1|e>>>31;ba=c;T=e<<1;d=T+33554432|0;c=d>>>0<33554432?c+1|0:c;ca=d;da=c;b=c>>26;n=(c&67108863)<<6|d>>>26;c=Ai(o,v,h,A);e=W;l=l<<1;J=l>>31;U=K>>31;r=Ai(l,J,K,U);d=r+c|0;c=W+e|0;c=d>>>0>>0?c+1|0:c;O=D>>31;r=Ai(D,O,m,w);e=r+d|0;d=W+c|0;d=e>>>0>>0?d+1|0:d;r=G<<1;V=r>>31;P=Ai(j,C,r,V);e=P+e|0;c=W+d|0;c=e>>>0

>>0?c+1|0:c;F=p>>31;d=Ai(i,x,p,F);e=d+e|0;c=W+c|0;d=(d>>>0>e>>>0?c+1|0:c)<<1|e>>>31;c=e<<1;e=c+n|0;b=b+d|0;P=e;b=c>>>0>e>>>0?b+1|0:b;c=b;e=e+16777216|0;c=e>>>0<16777216?c+1|0:c;ea=e;n=(c&33554431)<<7|e>>>25;e=c>>25;b=Ai(u,z,K,U);c=W;d=Ai(h,A,l,J);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(o,v,q,I);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;s=Ai(m,w,p,F);d=s+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;Q=H>>31;s=Ai(j,C,H,Q);d=s+d|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;s=Ai(i,x,r,V);b=s+d|0;d=W+c|0;c=b;b=(c>>>0>>0?d+1|0:d)<<1|c>>>31;d=n;n=c<<1;d=d+n|0;c=b+e|0;c=d>>>0>>0?c+1|0:c;b=d+33554432|0;c=b>>>0<33554432?c+1|0:c;s=b;e=c;y[a+24>>2]=d-(b&-67108864);b=E(D,38);d=Ai(b,b>>31,D,O);n=W;b=g;c=b>>31;c=Ai(b,c,b,c);b=c+d|0;d=W+n|0;d=b>>>0>>0?d+1|0:d;g=E(p,19);X=g>>31;n=h<<1;Y=n>>31;t=Ai(g,X,n,Y);b=t+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;d=Ai(u,z,B,M);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;t=Ai(j,C,l,J);d=t+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;t=Ai(o,v,i,x);d=t+d|0;c=W+b|0;Z=d<<1;c=(d>>>0>>0?c+1|0:c)<<1|d>>>31;t=c;b=Z+33554432|0;d=b>>>0<33554432?c+1|0:c;fa=b;ga=d;N=(d&67108863)<<6|b>>>26;_=d>>26;b=Ai(g,X,q,I);c=W;aa=f>>31;d=Ai(m,w,f,aa);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;k=Ai(h,A,B,M);d=k+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;k=Ai(j,C,u,z);d=k+d|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;b=Ai(i,x,R,L);k=b+d|0;d=W+c|0;b=(b>>>0>k>>>0?d+1|0:d)<<1|k>>>31;k=k<<1;d=k+N|0;c=b+_|0;c=d>>>0>>0?c+1|0:c;_=d;d=d+16777216|0;c=d>>>0<16777216?c+1|0:c;k=d;ha=(c&33554431)<<7|d>>>25;N=c>>25;b=Ai(m,w,R,L);c=W;d=Ai(o,v,f,aa);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;f=Ai(g,X,p,F);b=f+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;f=Ai(q,I,B,M);b=f+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;d=Ai(j,C,n,Y);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;f=Ai(i,x,u,z);d=f+b|0;b=W+c|0;c=(d>>>0>>0?b+1|0:b)<<1|d>>>31;d=d<<1;b=d+ha|0;c=c+N|0;g=b;c=b>>>0>>0?c+1|0:c;b=b+33554432|0;d=b>>>0<33554432?c+1|0:c;N=b;f=d;y[a+8>>2]=g-(b&-67108864);b=Ai(l,J,D,O);d=W;g=Ai(h,A,u,z);c=g+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;g=Ai(o,v,p,F);d=g+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;g=Ai(m,w,G,S);b=g+d|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;g=Ai(i,x,H,Q);b=g+b|0;c=W+d|0;c=(b>>>0>>0?c+1|0:c)<<1|b>>>31;d=e>>26;g=b<<1;b=(e&67108863)<<6|s>>>26;e=g+b|0;c=c+d|0;d=e;b=d>>>0>>0?c+1|0:c;c=d+16777216|0;b=c>>>0<16777216?b+1|0:b;g=c;e=b;y[a+28>>2]=d-(c&-33554432);b=Ai(m,w,K,U);c=W;d=Ai(o,v,R,L);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(p,F,B,M);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;j=Ai(j,C,q,I);d=j+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;j=Ai(i,x,h,A);c=j+d|0;d=W+b|0;b=c;c=(c>>>0>>0?d+1|0:d)<<1|c>>>31;d=b<<1;b=f>>26;f=(f&67108863)<<6|N>>>26;d=d+f|0;c=b+c|0;c=d>>>0>>0?c+1|0:c;b=d+16777216|0;c=b>>>0<16777216?c+1|0:c;j=b;f=c;y[a+12>>2]=d-(b&-33554432);b=Ai(p,F,l,J);c=W;d=Ai(h,A,h,A);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(u,z,q,I);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(o,v,r,V);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;h=Ai(m,w,H,Q);d=h+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;c=i;i=$;q=i>>31;h=Ai(c,x,i,q);c=h+d|0;d=W+b|0;b=c;c=(c>>>0>>0?d+1|0:d)<<1|c>>>31;d=b<<1;b=e>>25;e=(e&33554431)<<7|g>>>25;d=d+e|0;c=b+c|0;c=d>>>0>>0?c+1|0:c;b=d+33554432|0;c=b>>>0<33554432?c+1|0:c;h=b;e=c;y[a+32>>2]=d-(b&-67108864);B=P-(ea&-33554432)|0;c=f>>25;f=(f&33554431)<<7|j>>>25;b=ca&-67108864;d=f+(T-b|0)|0;b=c+(ba-((b>>>0>T>>>0)+da|0)|0)|0;b=d>>>0>>0?b+1|0:b;f=d;c=b;d=d+33554432|0;c=d>>>0<33554432?c+1|0:c;b=((c&67108863)<<6|d>>>26)+B|0;y[a+20>>2]=b;y[a+16>>2]=f-(d&-67108864);b=Ai(u,z,p,F);d=W;f=Ai(D,O,n,Y);c=f+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;f=Ai(l,J,G,S);d=f+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;f=Ai(o,v,H,Q);b=f+d|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;f=Ai(m,w,i,q);b=f+b|0;c=W+d|0;c=(b>>>0>>0?c+1|0:c)<<1|b>>>31;d=e>>26;f=b<<1;b=(e&67108863)<<6|h>>>26;e=f+b|0;c=c+d|0;b=b>>>0>e>>>0?c+1|0:c;c=e+16777216|0;b=c>>>0<16777216?b+1|0:b;y[a+36>>2]=e-(c&-33554432);f=_-(k&-33554432)|0;d=fa&-67108864;e=Z-d|0;o=t-((d>>>0>Z>>>0)+ga|0)|0;b=Ai((b&33554431)<<7|c>>>25,b>>25,19,0);c=b+e|0;d=W+o|0;e=c;b=b>>>0>c>>>0?d+1|0:d;c=c+33554432|0;b=c>>>0<33554432?b+1|0:b;b=((b&67108863)<<6|c>>>26)+f|0;y[a+4>>2]=b;y[a>>2]=e-(c&-67108864);}function vi(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,p=0,q=0;j=T-528|0;T=j;Ie(i,h,j+400|0);i=0;if(g>>>0>31){h=32;while(1){He(f+i|0,j+400|0);i=h;h=h+32|0;if(h>>>0<=g>>>0){continue}break}}h=i|16;if(h>>>0<=g>>>0){while(1){i=f+i|0;l=z[i|0]|z[i+1|0]<<8|(z[i+2|0]<<16|z[i+3|0]<<24);m=z[i+4|0]|z[i+5|0]<<8|(z[i+6|0]<<16|z[i+7|0]<<24);n=z[i+8|0]|z[i+9|0]<<8|(z[i+10|0]<<16|z[i+11|0]<<24);p=z[i+12|0]|z[i+13|0]<<8|(z[i+14|0]<<16|z[i+15|0]<<24);i=y[j+492>>2];y[j+520>>2]=y[j+488>>2];y[j+524>>2]=i;i=y[j+484>>2];y[j+512>>2]=y[j+480>>2];y[j+516>>2]=i;i=y[j+468>>2];y[j+368>>2]=y[j+464>>2];y[j+372>>2]=i;i=y[j+476>>2];y[j+376>>2]=y[j+472>>2];y[j+380>>2]=i;i=y[j+484>>2];y[j+352>>2]=y[j+480>>2];y[j+356>>2]=i;i=y[j+492>>2];y[j+360>>2]=y[j+488>>2];y[j+364>>2]=i;i=j+496|0;ia(i,j+368|0,j+352|0);k=y[j+508>>2];y[j+488>>2]=y[j+504>>2];y[j+492>>2]=k;k=y[j+500>>2];y[j+480>>2]=y[j+496>>2];y[j+484>>2]=k;k=y[j+452>>2];y[j+336>>2]=y[j+448>>2];y[j+340>>2]=k;k=y[j+460>>2];y[j+344>>2]=y[j+456>>2];y[j+348>>2]=k;k=y[j+468>>2];y[j+320>>2]=y[j+464>>2];y[j+324>>2]=k;k=y[j+476>>2];y[j+328>>2]=y[j+472>>2];y[j+332>>2]=k;ia(i,j+336|0,j+320|0);k=y[j+508>>2];y[j+472>>2]=y[j+504>>2];y[j+476>>2]=k;k=y[j+500>>2];y[j+464>>2]=y[j+496>>2];y[j+468>>2]=k;k=y[j+436>>2];y[j+304>>2]=y[j+432>>2];y[j+308>>2]=k;k=y[j+444>>2];y[j+312>>2]=y[j+440>>2];y[j+316>>2]=k;k=y[j+452>>2];y[j+288>>2]=y[j+448>>2];y[j+292>>2]=k;k=y[j+460>>2];y[j+296>>2]=y[j+456>>2];y[j+300>>2]=k;ia(i,j+304|0,j+288|0);k=y[j+508>>2];y[j+456>>2]=y[j+504>>2];y[j+460>>2]=k;k=y[j+500>>2];y[j+448>>2]=y[j+496>>2];y[j+452>>2]=k;k=y[j+420>>2];y[j+272>>2]=y[j+416>>2];y[j+276>>2]=k;k=y[j+428>>2];y[j+280>>2]=y[j+424>>2];y[j+284>>2]=k;k=y[j+436>>2];y[j+256>>2]=y[j+432>>2];y[j+260>>2]=k;k=y[j+444>>2];y[j+264>>2]=y[j+440>>2];y[j+268>>2]=k;ia(i,j+272|0,j+256|0);k=y[j+508>>2];y[j+440>>2]=y[j+504>>2];y[j+444>>2]=k;k=y[j+500>>2];y[j+432>>2]=y[j+496>>2];y[j+436>>2]=k;k=y[j+404>>2];y[j+240>>2]=y[j+400>>2];y[j+244>>2]=k;k=y[j+412>>2];y[j+248>>2]=y[j+408>>2];y[j+252>>2]=k;k=y[j+420>>2];y[j+224>>2]=y[j+416>>2];y[j+228>>2]=k;k=y[j+428>>2];y[j+232>>2]=y[j+424>>2];y[j+236>>2]=k;ia(i,j+240|0,j+224|0);k=y[j+508>>2];y[j+424>>2]=y[j+504>>2];y[j+428>>2]=k;k=y[j+500>>2];y[j+416>>2]=y[j+496>>2];y[j+420>>2]=k;k=y[j+516>>2];y[j+208>>2]=y[j+512>>2];y[j+212>>2]=k;k=y[j+524>>2];y[j+216>>2]=y[j+520>>2];y[j+220>>2]=k;k=y[j+404>>2];y[j+192>>2]=y[j+400>>2];y[j+196>>2]=k;k=y[j+412>>2];y[j+200>>2]=y[j+408>>2];y[j+204>>2]=k;ia(i,j+208|0,j+192|0);y[j+412>>2]=p^y[j+508>>2];y[j+408>>2]=y[j+504>>2]^n;y[j+404>>2]=y[j+500>>2]^m;y[j+400>>2]=l^y[j+496>>2];i=h;h=h+16|0;if(h>>>0<=g>>>0){continue}break}}h=g&15;if(h){l=16-h|0;if(l){o(h|j+384,0,l);}if(h){t(j+384|0,f+i|0,h);}m=y[j+384>>2];n=y[j+388>>2];p=y[j+392>>2];k=y[j+396>>2];i=y[j+492>>2];f=y[j+488>>2];y[j+520>>2]=f;y[j+524>>2]=i;l=y[j+484>>2];h=y[j+480>>2];y[j+512>>2]=h;y[j+516>>2]=l;q=y[j+468>>2];y[j+176>>2]=y[j+464>>2];y[j+180>>2]=q;q=y[j+476>>2];y[j+184>>2]=y[j+472>>2];y[j+188>>2]=q;y[j+160>>2]=h;y[j+164>>2]=l;y[j+168>>2]=f;y[j+172>>2]=i;f=j+496|0;ia(f,j+176|0,j+160|0);h=y[j+508>>2];y[j+488>>2]=y[j+504>>2];y[j+492>>2]=h;h=y[j+500>>2];y[j+480>>2]=y[j+496>>2];y[j+484>>2]=h;h=y[j+452>>2];y[j+144>>2]=y[j+448>>2];y[j+148>>2]=h;h=y[j+460>>2];y[j+152>>2]=y[j+456>>2];y[j+156>>2]=h;h=y[j+468>>2];y[j+128>>2]=y[j+464>>2];y[j+132>>2]=h;h=y[j+476>>2];y[j+136>>2]=y[j+472>>2];y[j+140>>2]=h;ia(f,j+144|0,j+128|0);h=y[j+508>>2];y[j+472>>2]=y[j+504>>2];y[j+476>>2]=h;h=y[j+500>>2];y[j+464>>2]=y[j+496>>2];y[j+468>>2]=h;h=y[j+436>>2];y[j+112>>2]=y[j+432>>2];y[j+116>>2]=h;h=y[j+444>>2];y[j+120>>2]=y[j+440>>2];y[j+124>>2]=h;h=y[j+452>>2];y[j+96>>2]=y[j+448>>2];y[j+100>>2]=h;h=y[j+460>>2];y[j+104>>2]=y[j+456>>2];y[j+108>>2]=h;ia(f,j+112|0,j+96|0);h=y[j+508>>2];y[j+456>>2]=y[j+504>>2];y[j+460>>2]=h;h=y[j+500>>2];y[j+448>>2]=y[j+496>>2];y[j+452>>2]=h;h=y[j+420>>2];y[j+80>>2]=y[j+416>>2];y[j+84>>2]=h;h=y[j+428>>2];y[j+88>>2]=y[j+424>>2];y[j+92>>2]=h;h=y[j+436>>2];y[j+64>>2]=y[j+432>>2];y[j+68>>2]=h;h=y[j+444>>2];y[j+72>>2]=y[j+440>>2];y[j+76>>2]=h;ia(f,j+80|0,j- -64|0);h=y[j+508>>2];y[j+440>>2]=y[j+504>>2];y[j+444>>2]=h;h=y[j+500>>2];y[j+432>>2]=y[j+496>>2];y[j+436>>2]=h;h=y[j+404>>2];y[j+48>>2]=y[j+400>>2];y[j+52>>2]=h;h=y[j+412>>2];y[j+56>>2]=y[j+408>>2];y[j+60>>2]=h;h=y[j+420>>2];y[j+32>>2]=y[j+416>>2];y[j+36>>2]=h;h=y[j+428>>2];y[j+40>>2]=y[j+424>>2];y[j+44>>2]=h;ia(f,j+48|0,j+32|0);h=y[j+508>>2];y[j+424>>2]=y[j+504>>2];y[j+428>>2]=h;h=y[j+500>>2];y[j+416>>2]=y[j+496>>2];y[j+420>>2]=h;h=y[j+516>>2];y[j+16>>2]=y[j+512>>2];y[j+20>>2]=h;h=y[j+524>>2];y[j+24>>2]=y[j+520>>2];y[j+28>>2]=h;h=y[j+404>>2];y[j>>2]=y[j+400>>2];y[j+4>>2]=h;h=y[j+412>>2];y[j+8>>2]=y[j+408>>2];y[j+12>>2]=h;ia(f,j+16|0,j);y[j+412>>2]=k^y[j+508>>2];y[j+408>>2]=p^y[j+504>>2];y[j+404>>2]=n^y[j+500>>2];y[j+400>>2]=m^y[j+496>>2];}i=16;h=0;if(e>>>0>=16){while(1){Ge(a+h|0,d+h|0,j+400|0);h=i;i=h+16|0;if(i>>>0<=e>>>0){continue}break}}f=e&15;a:{if(!f){break a}i=16-f|0;if(i){o(f|j+384,0,i);}i=!f;if(!i){t(j+384|0,d+h|0,f);}d=j+512|0;Ge(d,j+384|0,j+400|0);if(i){break a}t(a+h|0,d,f);}Fe(b,c,g,e,j+400|0);T=j+528|0;return 0}function fa(a,b){var 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,z=0,A=0,B=0,C=0,D=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,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0;M=y[b+12>>2];q=M<<1;u=q>>31;S=M>>31;c=Ai(q,u,M,S);e=W;g=y[b+16>>2];v=g>>31;f=y[b+8>>2];x=f<<1;D=x>>31;k=Ai(g,v,x,D);d=k+c|0;c=W+e|0;c=d>>>0>>0?c+1|0:c;z=y[b+20>>2];o=z<<1;F=o>>31;h=y[b+4>>2];k=h<<1;r=k>>31;l=Ai(o,F,k,r);e=l+d|0;d=W+c|0;d=e>>>0>>0?d+1|0:d;p=y[b+24>>2];A=p>>31;G=y[b>>2];l=G<<1;s=l>>31;i=Ai(p,A,l,s);e=i+e|0;c=W+d|0;c=e>>>0>>0?c+1|0:c;d=e;H=y[b+32>>2];m=E(H,19);B=m>>31;P=H>>31;e=Ai(m,B,H,P);d=d+e|0;c=W+c|0;c=d>>>0>>0?c+1|0:c;_=y[b+36>>2];i=E(_,38);t=i>>31;I=y[b+28>>2];Q=I<<1;T=Q>>31;e=Ai(i,t,Q,T);d=e+d|0;b=W+c|0;C=d;e=d>>>0>>0?b+1|0:b;b=Ai(k,r,g,v);c=W;d=Ai(x,D,M,S);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;R=z>>31;j=Ai(z,R,l,s);b=j+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;j=Ai(m,B,Q,T);b=j+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;d=Ai(i,t,p,A);b=d+b|0;c=W+c|0;U=b;n=b>>>0>>0?c+1|0:c;c=Ai(k,r,q,u);d=W;b=f;w=b>>31;V=b;f=Ai(b,w,b,w);c=f+c|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;f=Ai(l,s,g,v);d=f+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;j=E(I,38);N=j>>31;X=I>>31;f=Ai(j,N,I,X);b=f+d|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;c=b;b=p<<1;f=Ai(m,B,b,b>>31);b=c+f|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;d=b;b=Ai(i,t,o,F);d=d+b|0;c=W+c|0;$=d;c=b>>>0>d>>>0?c+1|0:c;aa=c;b=c;d=d+33554432|0;b=d>>>0<33554432?b+1|0:b;ba=d;ca=b;c=b>>26;d=(b&67108863)<<6|d>>>26;b=d+U|0;c=c+n|0;U=b;c=b>>>0>>0?c+1|0:c;b=b+16777216|0;d=b>>>0<16777216?c+1|0:c;da=b;c=d>>25;b=(d&33554431)<<7|b>>>25;d=b+C|0;c=c+e|0;b=b>>>0>d>>>0?c+1|0:c;c=d+33554432|0;b=c>>>0<33554432?b+1|0:b;C=c;f=b;y[a+24>>2]=d-(c&-67108864);b=Ai(l,s,V,w);c=W;J=h>>31;e=Ai(k,r,h,J);b=e+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;e=E(p,19);O=e>>31;n=Ai(e,O,p,A);b=n+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;n=Ai(o,F,j,N);d=n+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;n=g<<1;Y=n>>31;K=Ai(m,B,n,Y);d=K+d|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;b=d;d=Ai(i,t,q,u);b=b+d|0;c=W+c|0;L=b;K=b>>>0>>0?c+1|0:c;b=Ai(o,F,e,O);c=W;h=Ai(l,s,h,J);b=h+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;h=Ai(g,v,j,N);b=h+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;h=Ai(m,B,q,u);d=h+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;h=Ai(i,t,V,w);d=h+d|0;c=W+b|0;Z=d;J=d>>>0>>0?c+1|0:c;b=E(z,38);d=Ai(b,b>>31,z,R);h=W;b=G;c=b>>31;G=d;d=Ai(b,c,b,c);b=G+d|0;c=W+h|0;c=b>>>0>>0?c+1|0:c;e=Ai(e,O,n,Y);b=e+b|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;e=Ai(q,u,j,N);b=e+b|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;e=Ai(m,B,x,D);d=e+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;e=Ai(k,r,i,t);d=e+d|0;c=W+b|0;h=d;c=d>>>0>>0?c+1|0:c;G=c;d=d+33554432|0;c=d>>>0<33554432?c+1|0:c;O=d;ea=c;b=c>>26;c=(c&67108863)<<6|d>>>26;e=c+Z|0;d=b+J|0;J=e;c=c>>>0>e>>>0?d+1|0:d;d=e+16777216|0;c=d>>>0<16777216?c+1|0:c;Z=d;e=(c&33554431)<<7|d>>>25;d=e+L|0;c=(c>>25)+K|0;c=d>>>0>>0?c+1|0:c;b=d+33554432|0;c=b>>>0<33554432?c+1|0:c;K=b;e=c;y[a+8>>2]=d-(b&-67108864);b=Ai(x,D,z,R);c=W;d=Ai(g,v,q,u);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(k,r,p,A);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(l,s,I,X);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(i,t,H,P);L=d+b|0;b=W+c|0;d=d>>>0>L>>>0?b+1|0:b;c=f>>26;f=(f&67108863)<<6|C>>>26;b=f+L|0;d=c+d|0;C=b;c=b>>>0>>0?d+1|0:d;b=b+16777216|0;c=b>>>0<16777216?c+1|0:c;L=b;f=c;y[a+28>>2]=C-(b&-33554432);b=Ai(l,s,M,S);d=W;w=Ai(k,r,V,w);c=w+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;j=Ai(p,A,j,N);c=j+c|0;d=W+b|0;m=Ai(m,B,o,F);b=m+c|0;c=W+(c>>>0>>0?d+1|0:d)|0;c=b>>>0>>0?c+1|0:c;d=Ai(i,t,g,v);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=e>>26;C=b;b=(e&67108863)<<6|K>>>26;e=C+b|0;c=c+d|0;d=e;b=d>>>0>>0?c+1|0:c;c=d+16777216|0;b=c>>>0<16777216?b+1|0:b;m=c;e=b;y[a+12>>2]=d-(c&-33554432);b=Ai(p,A,x,D);c=W;d=Ai(g,v,g,v);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;d=Ai(q,u,o,F);b=d+b|0;c=W+c|0;c=b>>>0>>0?c+1|0:c;g=Ai(k,r,Q,T);d=g+b|0;b=W+c|0;b=d>>>0>>0?b+1|0:b;g=Ai(l,s,H,P);c=g+d|0;d=W+b|0;d=c>>>0>>0?d+1|0:d;b=i;i=_;o=i>>31;g=Ai(b,t,i,o);b=g+c|0;c=W+d|0;c=b>>>0>>0?c+1|0:c;d=b;b=f>>25;f=(f&33554431)<<7|L>>>25;d=d+f|0;c=b+c|0;c=d>>>0>>0?c+1|0:c;b=d+33554432|0;c=b>>>0<33554432?c+1|0:c;g=b;f=c;y[a+32>>2]=d-(b&-67108864);j=U-(da&-33554432)|0;c=e>>25;e=(e&33554431)<<7|m>>>25;b=ba&-67108864;d=e+($-b|0)|0;b=c+(aa-((b>>>0>$>>>0)+ca|0)|0)|0;b=d>>>0>>0?b+1|0:b;e=d;d=d+33554432|0;c=d>>>0<33554432?b+1|0:b;b=((c&67108863)<<6|d>>>26)+j|0;y[a+20>>2]=b;y[a+16>>2]=e-(d&-67108864);b=Ai(q,u,p,A);d=W;e=Ai(z,R,n,Y);c=e+b|0;b=W+d|0;b=c>>>0>>0?b+1|0:b;e=Ai(x,D,I,X);d=e+c|0;c=W+b|0;c=d>>>0>>0?c+1|0:c;e=Ai(k,r,H,P);b=e+d|0;d=W+c|0;d=b>>>0>>0?d+1|0:d;c=b;b=Ai(l,s,i,o);e=c+b|0;c=W+d|0;b=b>>>0>e>>>0?c+1|0:c;c=f>>26;f=(f&67108863)<<6|g>>>26;d=f+e|0;c=b+c|0;b=d>>>0>>0?c+1|0:c;c=d+16777216|0;b=c>>>0<16777216?b+1|0:b;y[a+36>>2]=d-(c&-33554432);f=J-(Z&-33554432)|0;d=O&-67108864;e=h-d|0;k=G-((d>>>0>h>>>0)+ea|0)|0;b=Ai((b&33554431)<<7|c>>>25,b>>25,19,0);d=b+e|0;c=W+k|0;b=b>>>0>d>>>0?c+1|0:c;c=d+33554432|0;b=c>>>0<33554432?b+1|0:b;b=((b&67108863)<<6|c>>>26)+f|0;y[a+4>>2]=b;y[a>>2]=d-(c&-67108864);}function af(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var 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;f=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);s=f^1886610805;g=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);q=g^1936682341;f=f^1852142177;h=g^1819895653;o=c;v=c&7;g=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);t=g^1852075907;c=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);r=c^1685025377;i=g^2037671283;g=c^1952801890;c=o&-8;if(c){n=b+c|0;while(1){u=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);p=g^u;c=p+h|0;k=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);d=i^k;e=f+d|0;i=e;c=e>>>0>>0?c+1|0:c;l=c;c=q+r|0;h=s+t|0;c=h>>>0>>0?c+1|0:c;f=Ci(t,r,13)^h;j=i+f|0;g=c;e=c^W;c=l+e|0;c=f>>>0>j>>>0?c+1|0:c;f=Ci(f,e,17)^j;m=c;e=c^W;r=Ci(f,e,13);q=W;c=Ci(d,p,16);d=l^W;p=c^i;g=Ci(h,g,32);h=p+g|0;c=W+d|0;g=g>>>0>h>>>0?c+1|0:c;c=g+e|0;i=f+h|0;c=i>>>0>>0?c+1|0:c;f=i^r;l=c;e=c^q;r=Ci(f,e,17);q=W;c=Ci(p,d,21);d=g^W;p=c^h;g=Ci(j,m,32);h=p+g|0;c=W+d|0;g=g>>>0>h>>>0?c+1|0:c;c=g+e|0;f=f+h|0;c=f>>>0>>0?c+1|0:c;t=f^r;e=c;r=c^q;c=Ci(p,d,16);g=g^W;j=g;c=c^h;m=Ci(c,g,21);h=W;g=Ci(i,l,32);l=g+c|0;c=W+j|0;i=m^l;c=g>>>0>l>>>0?c+1|0:c;g=c^h;f=Ci(f,e,32);h=W;s=k^l;q=c^u;b=b+8|0;if((n|0)!=(b|0)){continue}break}b=n;}j=0;d=o<<24;a:{switch(v-1|0){case 6:d=d|z[b+6|0]<<16;case 5:d=d|z[b+5|0]<<8;case 4:d=d|z[b+4|0];case 3:e=z[b+3|0];c=0;j=j|e<<24;d=c|d;case 2:e=z[b+2|0];c=0;j=j|e<<16;d=c|d;case 1:e=z[b+1|0];c=0;j=j|e<<8;d=c|d;case 0:j=z[b|0]|j;break;default:break a}}m=d;b=d^g;d=b;e=j^i;c=Ci(e,b,16);b=W;d=d+h|0;i=e+f|0;d=i>>>0>>0?d+1|0:d;e=c^i;l=d;d=d^b;k=Ci(e,d,21);g=W;c=q+r|0;f=s+t|0;c=f>>>0>>0?c+1|0:c;b=c;h=e;e=Ci(f,c,32);h=h+e|0;c=W+d|0;c=e>>>0>h>>>0?c+1|0:c;e=h^k;d=g;g=c;d=d^c;q=Ci(e,d,16);o=W;c=i;n=Ci(t,r,13)^f;i=n;f=c+i|0;k=W^b;c=k+l|0;l=e;b=f;c=b>>>0>>0?c+1|0:c;e=Ci(b,c,32);i=l+e|0;d=W+d|0;f=e>>>0>i>>>0?d+1|0:d;e=f^o;p=e;o=i^q;l=o;k=Ci(n,k,17)^b;b=k;d=b+h|0;h=W^c;c=h+g|0;c=b>>>0>d>>>0?c+1|0:c;b=c;g=Ci(d,c,32);l=g+l|0;c=W+e|0;j=j^l;g=g>>>0>l>>>0?c+1|0:c;m=g^m;c=Ci(k,h,13);b=b^W;h=b;e=c^d;c=Ci(e,b,17);b=W;d=f+h|0;f=e+i|0;d=f>>>0>>0?d+1|0:d;e=c^f;i=e+j|0;b=b^d;c=b+m|0;c=e>>>0>i>>>0?c+1|0:c;e=Ci(e,b,13)^i;h=c;b=c^W;n=Ci(e,b,17);j=W;m=Ci(o,p,21);o=g^W;k=m^l;d=Ci(f,d,32)^238;f=k+d|0;c=W+o|0;d=d>>>0>f>>>0?c+1|0:c;c=d+b|0;l=e+f|0;c=l>>>0>>0?c+1|0:c;e=l^n;g=c;b=c^j;j=Ci(e,b,13);m=W;c=Ci(k,o,16);n=d^W;k=c^f;c=Ci(i,h,32);f=k+c|0;d=W+n|0;d=c>>>0>f>>>0?d+1|0:d;c=d+b|0;i=e+f|0;c=i>>>0>>0?c+1|0:c;e=j^i;h=c;b=c^m;j=Ci(e,b,17);m=W;c=Ci(k,n,21);n=d^W;k=c^f;d=Ci(l,g,32);f=k+d|0;c=W+n|0;d=d>>>0>f>>>0?c+1|0:c;c=d+b|0;l=e+f|0;c=l>>>0>>0?c+1|0:c;e=j^l;g=c;b=c^m;j=Ci(e,b,13);m=W;c=Ci(k,n,16);n=d^W;k=c^f;d=Ci(i,h,32);f=k+d|0;c=W+n|0;d=d>>>0>f>>>0?c+1|0:c;c=d+b|0;i=e+f|0;c=i>>>0>>0?c+1|0:c;e=j^i;h=c;b=c^m;j=Ci(e,b,17);m=W;c=Ci(k,n,21);n=d^W;k=c^f;d=Ci(l,g,32);f=k+d|0;c=W+n|0;c=d>>>0>f>>>0?c+1|0:c;d=c+b|0;l=e+f|0;d=l>>>0>>0?d+1|0:d;e=j^l;g=d;b=d^m;j=Ci(e,b,13);m=W;d=Ci(k,n,16);n=c^W;k=d^f;d=Ci(i,h,32);f=k+d|0;c=W+n|0;d=d>>>0>f>>>0?c+1|0:c;c=d+b|0;i=e+f|0;c=i>>>0>>0?c+1|0:c;e=j^i;h=c;b=c^m;j=Ci(e,b,17);m=W;c=Ci(k,n,21);n=d^W;k=c^f;c=Ci(l,g,32);g=k+c|0;d=W+n|0;f=c>>>0>g>>>0?d+1|0:d;c=f+b|0;e=e+g|0;b=e>>>0>>0?c+1|0:c;d=b^m;l=d;j=e^j;c=Ci(k,n,16);k=f^W;g=c^g;f=Ci(i,h,32);h=g+f|0;c=W+k|0;b=Ci(e,b,32);i=W;c=f>>>0>h>>>0?c+1|0:c;e=c;f=a;g=Ci(g,k,21)^h;m=g^(b^(h^j));w[f|0]=m;w[f+1|0]=m>>>8;w[f+2|0]=m>>>16;w[f+3|0]=m>>>24;k=i^(c^d);d=c^W;c=k^d;w[f+4|0]=c;w[f+5|0]=c>>>8;w[f+6|0]=c>>>16;w[f+7|0]=c>>>24;c=d+i|0;f=b;b=b+g|0;c=f>>>0>b>>>0?c+1|0:c;m=b;f=Ci(g,d,16)^b;g=c;d=c^W;k=d;b=e;e=l;c=b+e|0;b=h;j=j^221;h=j;b=b+h|0;c=b>>>0>>0?c+1|0:c;h=Ci(b,c,32);i=h+f|0;d=W+d|0;f=Ci(f,k,21)^i;h=h>>>0>i>>>0?d+1|0:d;d=h^W;o=Ci(f,d,16);k=W;e=Ci(j,e,13);n=c^W;c=g+n|0;j=b^e;e=m+j|0;c=e>>>0>>0?c+1|0:c;b=c;g=f;f=Ci(e,c,32);l=g+f|0;c=W+d|0;g=f>>>0>l>>>0?c+1|0:c;c=g^k;k=c;o=l^o;m=Ci(o,c,21);f=W;c=Ci(j,n,17);n=b^W;d=h+n|0;j=c^e;e=i+j|0;d=e>>>0>>0?d+1|0:d;b=Ci(e,d,32);c=k+W|0;h=f;b=b+o|0;f=b>>>0>>0?c+1|0:c;c=h^f;k=c;h=b;o=m^b;m=Ci(o,c,16);i=W;b=Ci(j,n,13);n=d^W;c=g+n|0;j=b^e;e=l+j|0;c=e>>>0>>0?c+1|0:c;d=c;b=Ci(e,c,32);c=k+W|0;b=b+o|0;g=b>>>0>>0?c+1|0:c;c=g^i;k=c;l=b;o=m^b;m=Ci(o,c,21);i=W;b=Ci(j,n,17);n=d^W;c=f+n|0;j=b^e;e=h+j|0;c=e>>>0>>0?c+1|0:c;d=c;b=Ci(e,c,32);c=k+W|0;b=b+o|0;f=b>>>0>>0?c+1|0:c;c=f^i;k=c;h=b;o=m^b;m=Ci(o,c,16);i=W;b=Ci(j,n,13);j=d^W;c=g+j|0;g=b^e;e=l+g|0;c=e>>>0>>0?c+1|0:c;b=Ci(e,c,32);d=k+W|0;b=b+o|0;d=b>>>0>>0?d+1|0:d;m=Ci(b^m,d^i,21);i=W;e=Ci(g,j,17)^e;c=c^W;l=Ci(e,c,13);c=c+f|0;e=e+h|0;c=W^(e>>>0>>0?c+1|0:c);g=e^l;f=Ci(g,c,17)^m;e=W^i;c=c+d|0;d=b;b=b+g|0;c=d>>>0>b>>>0?c+1|0:c;b=Ci(b,c,32)^f^b;w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=c^(W^e);w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;return 0}function Ne(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,x=0,z=0,A=0,B=0,C=0;f=T-288|0;T=f;i=y[e+44>>2]^d>>>29;j=y[e+40>>2]^d<<3;k=y[e+36>>2]^c>>>29;d=y[e+32>>2]^c<<3;g=e- -64|0;while(1){c=y[e+124>>2];y[f+280>>2]=y[e+120>>2];y[f+284>>2]=c;c=y[e+116>>2];y[f+272>>2]=y[e+112>>2];y[f+276>>2]=c;c=y[e+100>>2];y[f+240>>2]=y[e+96>>2];y[f+244>>2]=c;c=y[e+108>>2];y[f+248>>2]=y[e+104>>2];y[f+252>>2]=c;c=y[e+116>>2];y[f+224>>2]=y[e+112>>2];y[f+228>>2]=c;c=y[e+124>>2];y[f+232>>2]=y[e+120>>2];y[f+236>>2]=c;h=f+256|0;ia(h,f+240|0,f+224|0);c=y[f+268>>2];y[e+120>>2]=y[f+264>>2];y[e+124>>2]=c;c=y[f+260>>2];y[e+112>>2]=y[f+256>>2];y[e+116>>2]=c;c=y[e+84>>2];y[f+208>>2]=y[e+80>>2];y[f+212>>2]=c;c=y[e+92>>2];y[f+216>>2]=y[e+88>>2];y[f+220>>2]=c;c=y[e+100>>2];y[f+192>>2]=y[e+96>>2];y[f+196>>2]=c;c=y[e+108>>2];y[f+200>>2]=y[e+104>>2];y[f+204>>2]=c;ia(h,f+208|0,f+192|0);c=y[f+268>>2];y[e+104>>2]=y[f+264>>2];y[e+108>>2]=c;c=y[f+260>>2];y[e+96>>2]=y[f+256>>2];y[e+100>>2]=c;c=y[g+4>>2];y[f+176>>2]=y[g>>2];y[f+180>>2]=c;c=y[g+12>>2];y[f+184>>2]=y[g+8>>2];y[f+188>>2]=c;c=y[e+84>>2];y[f+160>>2]=y[e+80>>2];y[f+164>>2]=c;c=y[e+92>>2];y[f+168>>2]=y[e+88>>2];y[f+172>>2]=c;ia(h,f+176|0,f+160|0);c=y[f+268>>2];y[e+88>>2]=y[f+264>>2];y[e+92>>2]=c;c=y[f+260>>2];y[e+80>>2]=y[f+256>>2];y[e+84>>2]=c;c=y[e+52>>2];y[f+144>>2]=y[e+48>>2];y[f+148>>2]=c;c=y[e+60>>2];y[f+152>>2]=y[e+56>>2];y[f+156>>2]=c;c=y[g+4>>2];y[f+128>>2]=y[g>>2];y[f+132>>2]=c;c=y[g+12>>2];y[f+136>>2]=y[g+8>>2];y[f+140>>2]=c;ia(h,f+144|0,f+128|0);c=y[f+268>>2];y[g+8>>2]=y[f+264>>2];y[g+12>>2]=c;c=y[f+260>>2];y[g>>2]=y[f+256>>2];y[g+4>>2]=c;c=y[e+36>>2];y[f+112>>2]=y[e+32>>2];y[f+116>>2]=c;c=y[e+44>>2];y[f+120>>2]=y[e+40>>2];y[f+124>>2]=c;c=y[e+52>>2];y[f+96>>2]=y[e+48>>2];y[f+100>>2]=c;c=y[e+60>>2];y[f+104>>2]=y[e+56>>2];y[f+108>>2]=c;ia(h,f+112|0,f+96|0);c=y[f+268>>2];y[e+56>>2]=y[f+264>>2];y[e+60>>2]=c;c=y[f+260>>2];y[e+48>>2]=y[f+256>>2];y[e+52>>2]=c;c=y[e+20>>2];y[f+80>>2]=y[e+16>>2];y[f+84>>2]=c;c=y[e+28>>2];y[f+88>>2]=y[e+24>>2];y[f+92>>2]=c;c=y[e+36>>2];y[f+64>>2]=y[e+32>>2];y[f+68>>2]=c;c=y[e+44>>2];y[f+72>>2]=y[e+40>>2];y[f+76>>2]=c;ia(h,f+80|0,f- -64|0);c=y[f+268>>2];y[e+40>>2]=y[f+264>>2];y[e+44>>2]=c;c=y[f+260>>2];y[e+32>>2]=y[f+256>>2];y[e+36>>2]=c;c=y[e+4>>2];y[f+48>>2]=y[e>>2];y[f+52>>2]=c;c=y[e+12>>2];y[f+56>>2]=y[e+8>>2];y[f+60>>2]=c;c=y[e+20>>2];y[f+32>>2]=y[e+16>>2];y[f+36>>2]=c;c=y[e+28>>2];y[f+40>>2]=y[e+24>>2];y[f+44>>2]=c;ia(h,f+48|0,f+32|0);c=y[f+268>>2];y[e+24>>2]=y[f+264>>2];y[e+28>>2]=c;c=y[f+260>>2];y[e+16>>2]=y[f+256>>2];y[e+20>>2]=c;c=y[f+276>>2];y[f+16>>2]=y[f+272>>2];y[f+20>>2]=c;c=y[f+284>>2];y[f+24>>2]=y[f+280>>2];y[f+28>>2]=c;c=y[e+4>>2];y[f>>2]=y[e>>2];y[f+4>>2]=c;c=y[e+12>>2];y[f+8>>2]=y[e+8>>2];y[f+12>>2]=c;ia(h,f+16|0,f);c=y[f+268>>2];y[e+8>>2]=y[f+264>>2];y[e+12>>2]=c;c=y[f+260>>2];y[e>>2]=y[f+256>>2];y[e+4>>2]=c;n=i^y[e+12>>2];y[e+12>>2]=n;p=j^y[e+8>>2];y[e+8>>2]=p;q=k^y[e+4>>2];y[e+4>>2]=q;r=d^y[e>>2];y[e>>2]=r;u=d^y[g>>2];y[g>>2]=u;v=k^y[e+68>>2];y[e+68>>2]=v;x=j^y[e+72>>2];y[e+72>>2]=x;z=i^y[e+76>>2];y[e+76>>2]=z;l=l+1|0;if((l|0)!=7){continue}break}a:{b:{c:{c=b-16|0;if(c){if((c|0)==16){break c}break b}A=y[e+16>>2];B=y[e+48>>2];C=y[e+32>>2];s=y[e+96>>2];t=y[e+80>>2];m=y[e+20>>2];g=y[e+52>>2];h=y[e+36>>2];i=y[e+100>>2];j=y[e+84>>2];k=y[e+24>>2];l=y[e+56>>2];d=y[e+40>>2];c=y[e+104>>2];b=y[e+88>>2];e=n^(y[e+28>>2]^(y[e+60>>2]^(y[e+44>>2]^(y[e+92>>2]^y[e+108>>2])))^z);w[a+12|0]=e;w[a+13|0]=e>>>8;w[a+14|0]=e>>>16;w[a+15|0]=e>>>24;b=p^(b^c^d^l^k^x);w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=q^(v^(m^(g^(i^j^h))));w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=r^(u^(A^(B^(C^(s^t)))));w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;break a}g=y[e+16>>2];h=y[e+48>>2];i=y[e+32>>2];j=y[e+20>>2];k=y[e+52>>2];l=y[e+36>>2];d=y[e+24>>2];c=y[e+56>>2];b=y[e+40>>2];m=n^(y[e+28>>2]^(y[e+60>>2]^y[e+44>>2]));w[a+12|0]=m;w[a+13|0]=m>>>8;w[a+14|0]=m>>>16;w[a+15|0]=m>>>24;b=p^(d^(b^c));w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=q^(j^(k^l));w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=r^(g^(h^i));w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;s=y[e+80>>2];t=y[e- -64>>2];m=y[e+112>>2];g=y[e+96>>2];h=y[e+84>>2];i=y[e+68>>2];j=y[e+116>>2];k=y[e+100>>2];l=y[e+88>>2];d=y[e+72>>2];c=y[e+120>>2];b=y[e+104>>2];e=y[e+92>>2]^(y[e+76>>2]^(y[e+124>>2]^y[e+108>>2]));w[a+28|0]=e;w[a+29|0]=e>>>8;w[a+30|0]=e>>>16;w[a+31|0]=e>>>24;b=l^(d^(b^c));w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;b=h^(i^(j^k));w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=s^(t^(g^m));w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;break a}if(!b){break a}o(a,0,b);}T=f+288|0;}function wi(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=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,U=0,V=0;k=T;z=k;k=k-224&-32;T=k;Qe(i,h,k+96|0);h=0;if(g>>>0>63){i=64;while(1){Pe(f+h|0,k+96|0);h=i;i=h- -64|0;if(i>>>0<=g>>>0){continue}break}}i=h|32;if(i>>>0<=g>>>0){while(1){$b(f+h|0,k+96|0);h=i;i=h+32|0;if(i>>>0<=g>>>0){continue}break}}i=g&31;if(i){l=32-i|0;if(l){o(i|k- -64,0,l);}if(i){t(k- -64|0,f+h|0,i);}$b(k- -64|0,k+96|0);}a:{if(!a){f=32;h=0;if(c>>>0<32){break a}while(1){Me(k+32|0,b+h|0,k+96|0);h=f;f=f+32|0;if(f>>>0<=c>>>0){continue}break}break a}f=32;h=0;if(c>>>0<32){break a}while(1){Me(a+h|0,b+h|0,k+96|0);h=f;f=f+32|0;if(f>>>0<=c>>>0){continue}break}}i=c&31;if(i){u=a?a+h|0:k+32|0;m=b+h|0;f=k+96|0;b=T-320|0;T=b;h=i+(b+256|0)|0;l=32-i|0;j=!l;if(!j){o(h,0,l);}v=!i;if(!v){t(b+256|0,m,i);}A=y[f+16>>2];B=y[f+48>>2];C=y[f+20>>2];D=y[f+52>>2];E=y[f+24>>2];F=y[f+56>>2];G=y[f+28>>2];H=y[f+60>>2];m=y[f+32>>2];I=y[f+80>>2];J=y[f+112>>2];n=y[f+96>>2];p=y[f+36>>2];K=y[f+84>>2];L=y[f+116>>2];q=y[f+100>>2];r=y[f+40>>2];M=y[f+88>>2];N=y[f+120>>2];s=y[f+104>>2];O=y[b+256>>2];P=y[b+260>>2];Q=y[b+264>>2];R=y[b+268>>2];S=y[b+272>>2];U=y[b+276>>2];V=y[b+280>>2];w=y[f+44>>2];x=y[f+108>>2];y[b+284>>2]=w^(x&y[f+124>>2]^(y[f+92>>2]^y[b+284>>2]));y[b+280>>2]=s&N^(M^V)^r;y[b+276>>2]=q&L^(K^U)^p;y[b+272>>2]=n&J^(I^S)^m;y[b+268>>2]=x^(H&w^(G^R));y[b+264>>2]=r&F^(E^Q)^s;y[b+260>>2]=p&D^(C^P)^q;y[b+256>>2]=m&B^(A^O)^n;if(!j){o(h,0,l);}if(!v){t(u,b+256|0,i);}l=y[b+284>>2];m=y[b+280>>2];n=y[b+276>>2];p=y[b+272>>2];q=y[b+256>>2];r=y[b+260>>2];s=y[b+264>>2];u=y[b+268>>2];h=y[f+124>>2];y[b+312>>2]=y[f+120>>2];y[b+316>>2]=h;h=y[f+116>>2];y[b+304>>2]=y[f+112>>2];y[b+308>>2]=h;h=y[f+100>>2];y[b+240>>2]=y[f+96>>2];y[b+244>>2]=h;h=y[f+108>>2];y[b+248>>2]=y[f+104>>2];y[b+252>>2]=h;h=y[f+116>>2];y[b+224>>2]=y[f+112>>2];y[b+228>>2]=h;h=y[f+124>>2];y[b+232>>2]=y[f+120>>2];y[b+236>>2]=h;h=b+288|0;ia(h,b+240|0,b+224|0);i=y[b+300>>2];y[f+120>>2]=y[b+296>>2];y[f+124>>2]=i;i=y[b+292>>2];y[f+112>>2]=y[b+288>>2];y[f+116>>2]=i;i=y[f+84>>2];y[b+208>>2]=y[f+80>>2];y[b+212>>2]=i;i=y[f+92>>2];y[b+216>>2]=y[f+88>>2];y[b+220>>2]=i;i=y[f+100>>2];y[b+192>>2]=y[f+96>>2];y[b+196>>2]=i;i=y[f+108>>2];y[b+200>>2]=y[f+104>>2];y[b+204>>2]=i;ia(h,b+208|0,b+192|0);i=y[b+300>>2];y[f+104>>2]=y[b+296>>2];y[f+108>>2]=i;i=y[b+292>>2];y[f+96>>2]=y[b+288>>2];y[f+100>>2]=i;i=f- -64|0;j=y[i+4>>2];y[b+176>>2]=y[i>>2];y[b+180>>2]=j;j=y[f+76>>2];y[b+184>>2]=y[f+72>>2];y[b+188>>2]=j;j=y[f+84>>2];y[b+160>>2]=y[f+80>>2];y[b+164>>2]=j;j=y[f+92>>2];y[b+168>>2]=y[f+88>>2];y[b+172>>2]=j;ia(h,b+176|0,b+160|0);j=y[b+300>>2];y[f+88>>2]=y[b+296>>2];y[f+92>>2]=j;j=y[b+292>>2];y[f+80>>2]=y[b+288>>2];y[f+84>>2]=j;j=y[f+52>>2];y[b+144>>2]=y[f+48>>2];y[b+148>>2]=j;j=y[f+60>>2];y[b+152>>2]=y[f+56>>2];y[b+156>>2]=j;j=y[i+4>>2];y[b+128>>2]=y[i>>2];y[b+132>>2]=j;j=y[f+76>>2];y[b+136>>2]=y[f+72>>2];y[b+140>>2]=j;ia(h,b+144|0,b+128|0);j=y[b+300>>2];y[f+72>>2]=y[b+296>>2];y[f+76>>2]=j;j=y[b+292>>2];y[i>>2]=y[b+288>>2];y[i+4>>2]=j;j=y[f+36>>2];y[b+112>>2]=y[f+32>>2];y[b+116>>2]=j;j=y[f+44>>2];y[b+120>>2]=y[f+40>>2];y[b+124>>2]=j;j=y[f+52>>2];y[b+96>>2]=y[f+48>>2];y[b+100>>2]=j;j=y[f+60>>2];y[b+104>>2]=y[f+56>>2];y[b+108>>2]=j;ia(h,b+112|0,b+96|0);j=y[b+300>>2];y[f+56>>2]=y[b+296>>2];y[f+60>>2]=j;j=y[b+292>>2];y[f+48>>2]=y[b+288>>2];y[f+52>>2]=j;j=y[f+20>>2];y[b+80>>2]=y[f+16>>2];y[b+84>>2]=j;j=y[f+28>>2];y[b+88>>2]=y[f+24>>2];y[b+92>>2]=j;j=y[f+36>>2];y[b+64>>2]=y[f+32>>2];y[b+68>>2]=j;j=y[f+44>>2];y[b+72>>2]=y[f+40>>2];y[b+76>>2]=j;ia(h,b+80|0,b- -64|0);j=y[b+300>>2];y[f+40>>2]=y[b+296>>2];y[f+44>>2]=j;j=y[b+292>>2];y[f+32>>2]=y[b+288>>2];y[f+36>>2]=j;j=y[f+4>>2];y[b+48>>2]=y[f>>2];y[b+52>>2]=j;j=y[f+12>>2];y[b+56>>2]=y[f+8>>2];y[b+60>>2]=j;j=y[f+20>>2];y[b+32>>2]=y[f+16>>2];y[b+36>>2]=j;j=y[f+28>>2];y[b+40>>2]=y[f+24>>2];y[b+44>>2]=j;ia(h,b+48|0,b+32|0);j=y[b+300>>2];y[f+24>>2]=y[b+296>>2];y[f+28>>2]=j;j=y[b+292>>2];y[f+16>>2]=y[b+288>>2];y[f+20>>2]=j;j=y[b+308>>2];y[b+16>>2]=y[b+304>>2];y[b+20>>2]=j;j=y[b+316>>2];y[b+24>>2]=y[b+312>>2];y[b+28>>2]=j;j=y[f+4>>2];y[b>>2]=y[f>>2];y[b+4>>2]=j;j=y[f+12>>2];y[b+8>>2]=y[f+8>>2];y[b+12>>2]=j;ia(h,b+16|0,b);h=y[b+300>>2];y[f+8>>2]=y[b+296>>2];y[f+12>>2]=h;h=y[b+292>>2];y[f>>2]=y[b+288>>2];y[f+4>>2]=h;y[f+12>>2]=u^y[f+12>>2];y[f+8>>2]=s^y[f+8>>2];y[f+4>>2]=r^y[f+4>>2];y[f>>2]=q^y[f>>2];y[i>>2]=p^y[i>>2];y[f+68>>2]=n^y[f+68>>2];y[f+72>>2]=m^y[f+72>>2];y[f+76>>2]=l^y[f+76>>2];T=b+320|0;}Ne(k,e,g,c,k+96|0);h=-1;b:{c:{b=e-16|0;if(b){if((b|0)==16){break c}break b}h=db(k,d);break b}h=kb(k,d);}if(!(!c|(!a|!h))){o(a,0,c);}T=z;return h|0}function He(a,b){var 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;c=T-416|0;T=c;g=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);h=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);i=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);j=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);f=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);k=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);l=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);m=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);a=y[b+92>>2];y[c+408>>2]=y[b+88>>2];y[c+412>>2]=a;a=y[b+84>>2];y[c+400>>2]=y[b+80>>2];y[c+404>>2]=a;e=b- -64|0;a=e;d=y[a+4>>2];y[c+368>>2]=y[a>>2];y[c+372>>2]=d;a=y[b+76>>2];y[c+376>>2]=y[b+72>>2];y[c+380>>2]=a;a=y[b+84>>2];y[c+352>>2]=y[b+80>>2];y[c+356>>2]=a;a=y[b+92>>2];y[c+360>>2]=y[b+88>>2];y[c+364>>2]=a;a=c+384|0;ia(a,c+368|0,c+352|0);d=y[c+396>>2];y[b+88>>2]=y[c+392>>2];y[b+92>>2]=d;d=y[c+388>>2];y[b+80>>2]=y[c+384>>2];y[b+84>>2]=d;d=y[b+52>>2];y[c+336>>2]=y[b+48>>2];y[c+340>>2]=d;d=y[b+60>>2];y[c+344>>2]=y[b+56>>2];y[c+348>>2]=d;d=y[e+4>>2];y[c+320>>2]=y[e>>2];y[c+324>>2]=d;d=y[b+76>>2];y[c+328>>2]=y[b+72>>2];y[c+332>>2]=d;ia(a,c+336|0,c+320|0);d=y[c+396>>2];y[b+72>>2]=y[c+392>>2];y[b+76>>2]=d;d=y[c+388>>2];y[e>>2]=y[c+384>>2];y[e+4>>2]=d;d=y[b+36>>2];y[c+304>>2]=y[b+32>>2];y[c+308>>2]=d;d=y[b+44>>2];y[c+312>>2]=y[b+40>>2];y[c+316>>2]=d;d=y[b+52>>2];y[c+288>>2]=y[b+48>>2];y[c+292>>2]=d;d=y[b+60>>2];y[c+296>>2]=y[b+56>>2];y[c+300>>2]=d;ia(a,c+304|0,c+288|0);d=y[c+396>>2];y[b+56>>2]=y[c+392>>2];y[b+60>>2]=d;d=y[c+388>>2];y[b+48>>2]=y[c+384>>2];y[b+52>>2]=d;d=y[b+20>>2];y[c+272>>2]=y[b+16>>2];y[c+276>>2]=d;d=y[b+28>>2];y[c+280>>2]=y[b+24>>2];y[c+284>>2]=d;d=y[b+36>>2];y[c+256>>2]=y[b+32>>2];y[c+260>>2]=d;d=y[b+44>>2];y[c+264>>2]=y[b+40>>2];y[c+268>>2]=d;ia(a,c+272|0,c+256|0);d=y[c+396>>2];y[b+40>>2]=y[c+392>>2];y[b+44>>2]=d;d=y[c+388>>2];y[b+32>>2]=y[c+384>>2];y[b+36>>2]=d;d=y[b+4>>2];y[c+240>>2]=y[b>>2];y[c+244>>2]=d;d=y[b+12>>2];y[c+248>>2]=y[b+8>>2];y[c+252>>2]=d;d=y[b+20>>2];y[c+224>>2]=y[b+16>>2];y[c+228>>2]=d;d=y[b+28>>2];y[c+232>>2]=y[b+24>>2];y[c+236>>2]=d;ia(a,c+240|0,c+224|0);d=y[c+396>>2];y[b+24>>2]=y[c+392>>2];y[b+28>>2]=d;d=y[c+388>>2];y[b+16>>2]=y[c+384>>2];y[b+20>>2]=d;d=y[c+404>>2];y[c+208>>2]=y[c+400>>2];y[c+212>>2]=d;d=y[c+412>>2];y[c+216>>2]=y[c+408>>2];y[c+220>>2]=d;d=y[b+4>>2];y[c+192>>2]=y[b>>2];y[c+196>>2]=d;d=y[b+12>>2];y[c+200>>2]=y[b+8>>2];y[c+204>>2]=d;ia(a,c+208|0,c+192|0);d=y[c+384>>2];n=y[c+388>>2];o=y[c+392>>2];y[b+12>>2]=y[c+396>>2]^l;y[b+8>>2]=k^o;y[b+4>>2]=f^n;y[b>>2]=d^m;f=y[b+92>>2];y[c+408>>2]=y[b+88>>2];y[c+412>>2]=f;f=y[b+84>>2];y[c+400>>2]=y[b+80>>2];y[c+404>>2]=f;f=y[e+4>>2];y[c+176>>2]=y[e>>2];y[c+180>>2]=f;f=y[b+76>>2];y[c+184>>2]=y[b+72>>2];y[c+188>>2]=f;f=y[b+84>>2];y[c+160>>2]=y[b+80>>2];y[c+164>>2]=f;f=y[b+92>>2];y[c+168>>2]=y[b+88>>2];y[c+172>>2]=f;ia(a,c+176|0,c+160|0);f=y[c+396>>2];y[b+88>>2]=y[c+392>>2];y[b+92>>2]=f;f=y[c+388>>2];y[b+80>>2]=y[c+384>>2];y[b+84>>2]=f;f=y[b+52>>2];y[c+144>>2]=y[b+48>>2];y[c+148>>2]=f;f=y[b+60>>2];y[c+152>>2]=y[b+56>>2];y[c+156>>2]=f;f=y[e+4>>2];y[c+128>>2]=y[e>>2];y[c+132>>2]=f;f=y[b+76>>2];y[c+136>>2]=y[b+72>>2];y[c+140>>2]=f;ia(a,c+144|0,c+128|0);f=y[c+396>>2];y[b+72>>2]=y[c+392>>2];y[b+76>>2]=f;f=y[c+388>>2];y[e>>2]=y[c+384>>2];y[e+4>>2]=f;e=y[b+36>>2];y[c+112>>2]=y[b+32>>2];y[c+116>>2]=e;e=y[b+44>>2];y[c+120>>2]=y[b+40>>2];y[c+124>>2]=e;e=y[b+52>>2];y[c+96>>2]=y[b+48>>2];y[c+100>>2]=e;e=y[b+60>>2];y[c+104>>2]=y[b+56>>2];y[c+108>>2]=e;ia(a,c+112|0,c+96|0);e=y[c+396>>2];y[b+56>>2]=y[c+392>>2];y[b+60>>2]=e;e=y[c+388>>2];y[b+48>>2]=y[c+384>>2];y[b+52>>2]=e;e=y[b+20>>2];y[c+80>>2]=y[b+16>>2];y[c+84>>2]=e;e=y[b+28>>2];y[c+88>>2]=y[b+24>>2];y[c+92>>2]=e;e=y[b+36>>2];y[c+64>>2]=y[b+32>>2];y[c+68>>2]=e;e=y[b+44>>2];y[c+72>>2]=y[b+40>>2];y[c+76>>2]=e;ia(a,c+80|0,c- -64|0);e=y[c+396>>2];y[b+40>>2]=y[c+392>>2];y[b+44>>2]=e;e=y[c+388>>2];y[b+32>>2]=y[c+384>>2];y[b+36>>2]=e;e=y[b+4>>2];y[c+48>>2]=y[b>>2];y[c+52>>2]=e;e=y[b+12>>2];y[c+56>>2]=y[b+8>>2];y[c+60>>2]=e;e=y[b+20>>2];y[c+32>>2]=y[b+16>>2];y[c+36>>2]=e;e=y[b+28>>2];y[c+40>>2]=y[b+24>>2];y[c+44>>2]=e;ia(a,c+48|0,c+32|0);e=y[c+396>>2];y[b+24>>2]=y[c+392>>2];y[b+28>>2]=e;e=y[c+388>>2];y[b+16>>2]=y[c+384>>2];y[b+20>>2]=e;e=y[c+404>>2];y[c+16>>2]=y[c+400>>2];y[c+20>>2]=e;e=y[c+412>>2];y[c+24>>2]=y[c+408>>2];y[c+28>>2]=e;e=y[b+4>>2];y[c>>2]=y[b>>2];y[c+4>>2]=e;e=y[b+12>>2];y[c+8>>2]=y[b+8>>2];y[c+12>>2]=e;ia(a,c+16|0,c);a=y[c+384>>2];e=y[c+388>>2];f=y[c+392>>2];y[b+12>>2]=y[c+396>>2]^j;y[b+8>>2]=f^i;y[b+4>>2]=e^h;y[b>>2]=a^g;T=c+416|0;}function Me(a,b,c){var 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,x=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;d=T-288|0;T=d;r=y[c+16>>2];s=y[c+48>>2];t=y[c+20>>2];u=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);v=y[c+52>>2];x=y[c+24>>2];A=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);B=y[c+56>>2];i=y[c+28>>2];C=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);D=y[c+60>>2];f=y[c+32>>2];j=y[c+80>>2];E=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);F=y[c+112>>2];e=y[c+96>>2];g=y[c+36>>2];k=y[c+84>>2];G=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);H=y[c+116>>2];n=y[c+100>>2];h=y[c+40>>2];l=y[c+88>>2];I=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);J=y[c+120>>2];o=y[c+104>>2];K=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);p=y[c+44>>2];q=y[c+108>>2];m=p^(q&y[c+124>>2]^(y[c+92>>2]^(z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24))));w[a+28|0]=m;w[a+29|0]=m>>>8;w[a+30|0]=m>>>16;w[a+31|0]=m>>>24;l=h^(o&J^(l^I));w[a+24|0]=l;w[a+25|0]=l>>>8;w[a+26|0]=l>>>16;w[a+27|0]=l>>>24;k=g^(n&H^(k^G));w[a+20|0]=k;w[a+21|0]=k>>>8;w[a+22|0]=k>>>16;w[a+23|0]=k>>>24;j=f^(e&F^(j^E));w[a+16|0]=j;w[a+17|0]=j>>>8;w[a+18|0]=j>>>16;w[a+19|0]=j>>>24;i=D&p^(i^C)^q;w[a+12|0]=i;w[a+13|0]=i>>>8;w[a+14|0]=i>>>16;w[a+15|0]=i>>>24;h=h&B^(x^A)^o;w[a+8|0]=h;w[a+9|0]=h>>>8;w[a+10|0]=h>>>16;w[a+11|0]=h>>>24;g=g&v^(t^u)^n;w[a+4|0]=g;w[a+5|0]=g>>>8;w[a+6|0]=g>>>16;w[a+7|0]=g>>>24;f=e^(f&s^(r^K));w[a|0]=f;w[a+1|0]=f>>>8;w[a+2|0]=f>>>16;w[a+3|0]=f>>>24;a=y[c+124>>2];y[d+280>>2]=y[c+120>>2];y[d+284>>2]=a;a=y[c+116>>2];y[d+272>>2]=y[c+112>>2];y[d+276>>2]=a;a=y[c+100>>2];y[d+240>>2]=y[c+96>>2];y[d+244>>2]=a;a=y[c+108>>2];y[d+248>>2]=y[c+104>>2];y[d+252>>2]=a;a=y[c+116>>2];y[d+224>>2]=y[c+112>>2];y[d+228>>2]=a;a=y[c+124>>2];y[d+232>>2]=y[c+120>>2];y[d+236>>2]=a;a=d+256|0;ia(a,d+240|0,d+224|0);b=y[d+268>>2];y[c+120>>2]=y[d+264>>2];y[c+124>>2]=b;b=y[d+260>>2];y[c+112>>2]=y[d+256>>2];y[c+116>>2]=b;b=y[c+84>>2];y[d+208>>2]=y[c+80>>2];y[d+212>>2]=b;b=y[c+92>>2];y[d+216>>2]=y[c+88>>2];y[d+220>>2]=b;b=y[c+100>>2];y[d+192>>2]=y[c+96>>2];y[d+196>>2]=b;b=y[c+108>>2];y[d+200>>2]=y[c+104>>2];y[d+204>>2]=b;ia(a,d+208|0,d+192|0);b=y[d+268>>2];y[c+104>>2]=y[d+264>>2];y[c+108>>2]=b;b=y[d+260>>2];y[c+96>>2]=y[d+256>>2];y[c+100>>2]=b;b=c- -64|0;e=y[b+4>>2];y[d+176>>2]=y[b>>2];y[d+180>>2]=e;e=y[c+76>>2];y[d+184>>2]=y[c+72>>2];y[d+188>>2]=e;e=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=e;e=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=e;ia(a,d+176|0,d+160|0);e=y[d+268>>2];y[c+88>>2]=y[d+264>>2];y[c+92>>2]=e;e=y[d+260>>2];y[c+80>>2]=y[d+256>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=e;e=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=e;e=y[b+4>>2];y[d+128>>2]=y[b>>2];y[d+132>>2]=e;e=y[c+76>>2];y[d+136>>2]=y[c+72>>2];y[d+140>>2]=e;ia(a,d+144|0,d+128|0);e=y[d+268>>2];y[c+72>>2]=y[d+264>>2];y[c+76>>2]=e;e=y[d+260>>2];y[b>>2]=y[d+256>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=e;e=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=e;e=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=e;e=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=e;ia(a,d+112|0,d+96|0);e=y[d+268>>2];y[c+56>>2]=y[d+264>>2];y[c+60>>2]=e;e=y[d+260>>2];y[c+48>>2]=y[d+256>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=e;e=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=e;e=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=e;e=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=e;ia(a,d+80|0,d- -64|0);e=y[d+268>>2];y[c+40>>2]=y[d+264>>2];y[c+44>>2]=e;e=y[d+260>>2];y[c+32>>2]=y[d+256>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=e;e=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=e;e=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=e;ia(a,d+48|0,d+32|0);e=y[d+268>>2];y[c+24>>2]=y[d+264>>2];y[c+28>>2]=e;e=y[d+260>>2];y[c+16>>2]=y[d+256>>2];y[c+20>>2]=e;e=y[d+276>>2];y[d+16>>2]=y[d+272>>2];y[d+20>>2]=e;e=y[d+284>>2];y[d+24>>2]=y[d+280>>2];y[d+28>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;ia(a,d+16|0,d);a=y[d+268>>2];y[c+8>>2]=y[d+264>>2];y[c+12>>2]=a;a=y[d+260>>2];y[c>>2]=y[d+256>>2];y[c+4>>2]=a;y[c+12>>2]=i^y[c+12>>2];y[c+8>>2]=h^y[c+8>>2];y[c+4>>2]=g^y[c+4>>2];y[c>>2]=f^y[c>>2];y[b>>2]=j^y[b>>2];y[c+68>>2]=k^y[c+68>>2];y[c+72>>2]=l^y[c+72>>2];y[c+76>>2]=m^y[c+76>>2];T=d+288|0;}function Oe(a,b,c){var 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,x=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;d=T-288|0;T=d;u=y[c+16>>2];v=y[c+48>>2];f=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);x=y[c+20>>2];A=y[c+52>>2];g=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);B=y[c+24>>2];C=y[c+56>>2];h=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);D=y[c+28>>2];E=y[c+60>>2];e=y[c+32>>2];i=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);F=y[c+80>>2];G=y[c+112>>2];j=y[c+96>>2];k=y[c+36>>2];l=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);H=y[c+84>>2];I=y[c+116>>2];m=y[c+100>>2];n=y[c+40>>2];o=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);J=y[c+88>>2];K=y[c+120>>2];p=y[c+104>>2];q=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);r=y[c+44>>2];s=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);t=y[c+108>>2];b=r^(s^(y[c+92>>2]^t&y[c+124>>2]));w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=p&K^J^o^n;w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;b=m&I^H^l^k;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=e^(j&G^F^i);w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;b=E&r^D^h^t;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=n&C^B^g^p;w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=k&A^x^f^m;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=e&v^u^q^j;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;a=y[c+124>>2];y[d+280>>2]=y[c+120>>2];y[d+284>>2]=a;a=y[c+116>>2];y[d+272>>2]=y[c+112>>2];y[d+276>>2]=a;a=y[c+100>>2];y[d+240>>2]=y[c+96>>2];y[d+244>>2]=a;a=y[c+108>>2];y[d+248>>2]=y[c+104>>2];y[d+252>>2]=a;a=y[c+116>>2];y[d+224>>2]=y[c+112>>2];y[d+228>>2]=a;a=y[c+124>>2];y[d+232>>2]=y[c+120>>2];y[d+236>>2]=a;a=d+256|0;ia(a,d+240|0,d+224|0);b=y[d+268>>2];y[c+120>>2]=y[d+264>>2];y[c+124>>2]=b;b=y[d+260>>2];y[c+112>>2]=y[d+256>>2];y[c+116>>2]=b;b=y[c+84>>2];y[d+208>>2]=y[c+80>>2];y[d+212>>2]=b;b=y[c+92>>2];y[d+216>>2]=y[c+88>>2];y[d+220>>2]=b;b=y[c+100>>2];y[d+192>>2]=y[c+96>>2];y[d+196>>2]=b;b=y[c+108>>2];y[d+200>>2]=y[c+104>>2];y[d+204>>2]=b;ia(a,d+208|0,d+192|0);b=y[d+268>>2];y[c+104>>2]=y[d+264>>2];y[c+108>>2]=b;b=y[d+260>>2];y[c+96>>2]=y[d+256>>2];y[c+100>>2]=b;b=c- -64|0;e=y[b+4>>2];y[d+176>>2]=y[b>>2];y[d+180>>2]=e;e=y[c+76>>2];y[d+184>>2]=y[c+72>>2];y[d+188>>2]=e;e=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=e;e=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=e;ia(a,d+176|0,d+160|0);e=y[d+268>>2];y[c+88>>2]=y[d+264>>2];y[c+92>>2]=e;e=y[d+260>>2];y[c+80>>2]=y[d+256>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=e;e=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=e;e=y[b+4>>2];y[d+128>>2]=y[b>>2];y[d+132>>2]=e;e=y[c+76>>2];y[d+136>>2]=y[c+72>>2];y[d+140>>2]=e;ia(a,d+144|0,d+128|0);e=y[d+268>>2];y[c+72>>2]=y[d+264>>2];y[c+76>>2]=e;e=y[d+260>>2];y[b>>2]=y[d+256>>2];y[b+4>>2]=e;e=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=e;e=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=e;e=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=e;e=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=e;ia(a,d+112|0,d+96|0);e=y[d+268>>2];y[c+56>>2]=y[d+264>>2];y[c+60>>2]=e;e=y[d+260>>2];y[c+48>>2]=y[d+256>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=e;e=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=e;e=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=e;e=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=e;ia(a,d+80|0,d- -64|0);e=y[d+268>>2];y[c+40>>2]=y[d+264>>2];y[c+44>>2]=e;e=y[d+260>>2];y[c+32>>2]=y[d+256>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=e;e=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=e;e=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=e;ia(a,d+48|0,d+32|0);e=y[d+268>>2];y[c+24>>2]=y[d+264>>2];y[c+28>>2]=e;e=y[d+260>>2];y[c+16>>2]=y[d+256>>2];y[c+20>>2]=e;e=y[d+276>>2];y[d+16>>2]=y[d+272>>2];y[d+20>>2]=e;e=y[d+284>>2];y[d+24>>2]=y[d+280>>2];y[d+28>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;ia(a,d+16|0,d);a=y[d+268>>2];y[c+8>>2]=y[d+264>>2];y[c+12>>2]=a;a=y[d+260>>2];y[c>>2]=y[d+256>>2];y[c+4>>2]=a;y[c+12>>2]=y[c+12>>2]^h;y[c+8>>2]=y[c+8>>2]^g;y[c+4>>2]=y[c+4>>2]^f;y[c>>2]=y[c>>2]^q;y[b>>2]=y[b>>2]^i;y[c+68>>2]=y[c+68>>2]^l;y[c+72>>2]=y[c+72>>2]^o;y[c+76>>2]=s^y[c+76>>2];T=d+288|0;}function Sb(a,b){var 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;l=T-48|0;T=l;c=nc(a);a:{if(c){break a}c=-26;if(b-3>>>0<4294967294){break a}e=y[a+44>>2];c=y[a+48>>2];y[l+4>>2]=0;d=y[a+40>>2];y[l+32>>2]=c;y[l+16>>2]=-1;y[l+12>>2]=d;d=c<<3;i=d>>>0>>0?e:d;e=c<<2;c=(i>>>0)/(e>>>0)|0;y[l+24>>2]=c;y[l+28>>2]=c<<2;y[l+20>>2]=E(c,e);c=y[a+52>>2];y[l+40>>2]=b;y[l+36>>2]=c;b=T;k=b;c=b-1152&-64;T=c;e=l+4|0;b=-25;b:{c:{if(!e|!a){break c}d=Da(y[e+20>>2]<<3);y[e+4>>2]=d;b=-22;if(!d){break c}d:{b=y[e+16>>2];e:{if(!b){break e}d=b<<10;if(((d>>>0)/(b>>>0)|0)!=1024){break e}b=Da(12);y[e>>2]=b;if(!b){break e}y[b>>2]=0;y[b+4>>2]=0;b=Pc(c+128|0,d);y[10172]=b;f:{if(b){y[c+128>>2]=0;break f}b=y[c+128>>2];if(b){break d}}ta(y[e>>2]);y[e>>2]=0;}Rd(e,y[a+56>>2]);T=k;b=-22;break b}y[y[e>>2]>>2]=b;y[y[e>>2]+4>>2]=b;y[y[e>>2]+8>>2]=d;m=y[e+36>>2];b=c+128|0;Ja(b,0,0,64);y[c+124>>2]=y[a+48>>2];d=c+124|0;oa(b,d,4,0);y[c+124>>2]=y[a+4>>2];oa(b,d,4,0);y[c+124>>2]=y[a+44>>2];oa(b,d,4,0);y[c+124>>2]=y[a+40>>2];oa(b,d,4,0);y[c+124>>2]=19;oa(b,d,4,0);y[c+124>>2]=m;oa(b,d,4,0);y[c+124>>2]=y[a+12>>2];oa(b,d,4,0);d=y[a+8>>2];g:{if(!d){break g}oa(b,d,y[a+12>>2],0);if(!(w[a+56|0]&1)){break g}ja(y[a+8>>2],y[a+12>>2]);y[a+12>>2]=0;}y[c+124>>2]=y[a+20>>2];b=c+128|0;oa(b,c+124|0,4,0);d=y[a+16>>2];if(d){oa(b,d,y[a+20>>2],0);}y[c+124>>2]=y[a+28>>2];b=c+128|0;oa(b,c+124|0,4,0);d=y[a+24>>2];h:{if(!d){break h}oa(b,d,y[a+28>>2],0);if(!(z[a+56|0]&2)){break h}ja(y[a+24>>2],y[a+28>>2]);y[a+28>>2]=0;}y[c+124>>2]=y[a+36>>2];b=c+128|0;oa(b,c+124|0,4,0);d=y[a+32>>2];if(d){oa(b,d,y[a+36>>2],0);}Ia(c+128|0,c+48|0,64);ja(c+112|0,8);if(y[e+28>>2]){d=0;while(1){y[c+112>>2]=0;y[c+116>>2]=d;sc(c+128|0,1024,c+48|0,72);m=y[y[e>>2]+4>>2]+(E(y[e+24>>2],d)<<10)|0;b=0;while(1){h=b<<3;f=h+m|0;i=c+128|0;j=i+h|0;g=y[j+4>>2];y[f>>2]=y[j>>2];y[f+4>>2]=g;f=h|8;j=f+m|0;f=f+i|0;g=y[f+4>>2];y[j>>2]=y[f>>2];y[j+4>>2]=g;f=h|16;j=f+m|0;f=f+i|0;g=y[f+4>>2];y[j>>2]=y[f>>2];y[j+4>>2]=g;h=h|24;f=h+m|0;h=h+i|0;j=y[h+4>>2];y[f>>2]=y[h>>2];y[f+4>>2]=j;b=b+4|0;if((b|0)!=128){continue}break}y[c+112>>2]=1;sc(i,1024,c+48|0,72);m=(y[y[e>>2]+4>>2]+(E(y[e+24>>2],d)<<10)|0)+1024|0;b=0;while(1){h=b<<3;f=h+m|0;i=c+128|0;j=i+h|0;g=y[j+4>>2];y[f>>2]=y[j>>2];y[f+4>>2]=g;f=h|8;j=f+m|0;f=f+i|0;g=y[f+4>>2];y[j>>2]=y[f>>2];y[j+4>>2]=g;f=h|16;j=f+m|0;f=f+i|0;g=y[f+4>>2];y[j>>2]=y[f>>2];y[j+4>>2]=g;h=h|24;f=h+m|0;h=h+i|0;i=y[h+4>>2];y[f>>2]=y[h>>2];y[f+4>>2]=i;b=b+4|0;if((b|0)!=128){continue}break}d=d+1|0;if(d>>>0>2]){continue}break}}ja(c+128|0,1024);ja(c+48|0,72);b=0;}T=k;}c=b;if(b){break a}if(y[l+12>>2]){while(1){b=T-80|0;T=b;e=l+4|0;i:{if(!e|!y[e+28>>2]){break i}w[b+72|0]=0;y[b+64>>2]=o;c=0;while(1){y[b+76>>2]=0;y[b+68>>2]=c;d=y[b+68>>2];y[b+48>>2]=y[b+64>>2];y[b+52>>2]=d;d=y[b+76>>2];y[b+56>>2]=y[b+72>>2];y[b+60>>2]=d;Pb(e,b+48|0);c=c+1|0;d=y[e+28>>2];if(c>>>0>>0){continue}break}w[b+72|0]=1;if(!d){break i}c=0;while(1){y[b+76>>2]=0;y[b+68>>2]=c;d=y[b+68>>2];y[b+32>>2]=y[b+64>>2];y[b+36>>2]=d;d=y[b+76>>2];y[b+40>>2]=y[b+72>>2];y[b+44>>2]=d;Pb(e,b+32|0);c=c+1|0;d=y[e+28>>2];if(c>>>0>>0){continue}break}w[b+72|0]=2;if(!d){break i}c=0;while(1){y[b+76>>2]=0;y[b+68>>2]=c;d=y[b+68>>2];y[b+16>>2]=y[b+64>>2];y[b+20>>2]=d;d=y[b+76>>2];y[b+24>>2]=y[b+72>>2];y[b+28>>2]=d;Pb(e,b+16|0);c=c+1|0;d=y[e+28>>2];if(c>>>0>>0){continue}break}w[b+72|0]=3;if(!d){break i}c=0;while(1){y[b+76>>2]=0;y[b+68>>2]=c;d=y[b+68>>2];y[b>>2]=y[b+64>>2];y[b+4>>2]=d;d=y[b+76>>2];y[b+8>>2]=y[b+72>>2];y[b+12>>2]=d;Pb(e,b);c=c+1|0;if(c>>>0>2]){continue}break}}T=b+80|0;o=o+1|0;if(o>>>0>2]){continue}break}}b=T-2048|0;T=b;c=l+4|0;if(!(!a|!c)){o=y[c+24>>2];f=y[y[c>>2]+4>>2]+(o<<10)|0;t(b+1024|0,f-1024|0,1024);j=y[c+28>>2];if(j>>>0>=2){m=1;while(1){e=(f+(E(m,o)<<10)|0)-1024|0;h=0;while(1){d=h<<3;i=b+1024|0;k=d+i|0;g=y[k>>2];n=d+e|0;p=y[n>>2];n=y[k+4>>2]^y[n+4>>2];y[k>>2]=g^p;y[k+4>>2]=n;g=d|8;k=g+i|0;n=y[k>>2];g=e+g|0;p=y[g>>2];g=y[k+4>>2]^y[g+4>>2];y[k>>2]=n^p;y[k+4>>2]=g;g=d|16;k=g+i|0;n=y[k>>2];g=e+g|0;p=y[g>>2];g=y[k+4>>2]^y[g+4>>2];y[k>>2]=n^p;y[k+4>>2]=g;k=i;i=d|24;d=k+i|0;k=y[d>>2];i=e+i|0;g=y[i>>2];i=y[d+4>>2]^y[i+4>>2];y[d>>2]=g^k;y[d+4>>2]=i;h=h+4|0;if((h|0)!=128){continue}break}m=m+1|0;if((j|0)!=(m|0)){continue}break}}e=b+1024|0;t(b,e,1024);sc(y[a>>2],y[a+4>>2],b,1024);ja(e,1024);ja(b,1024);Rd(c,y[a+56>>2]);}T=b+2048|0;c=0;}T=l+48|0;return c}function Qe(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=T-288|0;T=d;k=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);l=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);m=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);g=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);h=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);i=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);n=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);j=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);a=j^33620224;y[c+112>>2]=a;y[c+96>>2]=j^1427652059;y[c+80>>2]=a;a=c- -64|0;b=j^n;y[a>>2]=b;y[c+56>>2]=1110511904;y[c+60>>2]=-584534669;y[c+48>>2]=1427652059;y[c+52>>2]=-248528275;y[c+40>>2]=1496785429;y[c+44>>2]=1652156816;y[c+32>>2]=33620224;y[c+36>>2]=218629379;y[c+24>>2]=1110511904;y[c+28>>2]=-584534669;y[c+16>>2]=1427652059;y[c+20>>2]=-248528275;y[c>>2]=b;b=i^1652156816;y[c+124>>2]=b;f=h^1496785429;y[c+120>>2]=f;e=g^218629379;y[c+116>>2]=e;y[c+108>>2]=i^-584534669;y[c+104>>2]=h^1110511904;y[c+100>>2]=g^-248528275;y[c+92>>2]=b;y[c+88>>2]=f;y[c+84>>2]=e;b=i^m;y[c+76>>2]=b;f=h^l;y[c+72>>2]=f;e=g^k;y[c+68>>2]=e;y[c+12>>2]=b;y[c+8>>2]=f;y[c+4>>2]=e;f=0;while(1){b=y[c+124>>2];y[d+280>>2]=y[c+120>>2];y[d+284>>2]=b;b=y[c+116>>2];y[d+272>>2]=y[c+112>>2];y[d+276>>2]=b;b=y[c+100>>2];y[d+240>>2]=y[c+96>>2];y[d+244>>2]=b;b=y[c+108>>2];y[d+248>>2]=y[c+104>>2];y[d+252>>2]=b;b=y[c+116>>2];y[d+224>>2]=y[c+112>>2];y[d+228>>2]=b;b=y[c+124>>2];y[d+232>>2]=y[c+120>>2];y[d+236>>2]=b;b=d+256|0;ia(b,d+240|0,d+224|0);e=y[d+268>>2];y[c+120>>2]=y[d+264>>2];y[c+124>>2]=e;e=y[d+260>>2];y[c+112>>2]=y[d+256>>2];y[c+116>>2]=e;e=y[c+84>>2];y[d+208>>2]=y[c+80>>2];y[d+212>>2]=e;e=y[c+92>>2];y[d+216>>2]=y[c+88>>2];y[d+220>>2]=e;e=y[c+100>>2];y[d+192>>2]=y[c+96>>2];y[d+196>>2]=e;e=y[c+108>>2];y[d+200>>2]=y[c+104>>2];y[d+204>>2]=e;ia(b,d+208|0,d+192|0);e=y[d+268>>2];y[c+104>>2]=y[d+264>>2];y[c+108>>2]=e;e=y[d+260>>2];y[c+96>>2]=y[d+256>>2];y[c+100>>2]=e;e=y[a+4>>2];y[d+176>>2]=y[a>>2];y[d+180>>2]=e;e=y[a+12>>2];y[d+184>>2]=y[a+8>>2];y[d+188>>2]=e;e=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=e;e=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=e;ia(b,d+176|0,d+160|0);e=y[d+268>>2];y[c+88>>2]=y[d+264>>2];y[c+92>>2]=e;e=y[d+260>>2];y[c+80>>2]=y[d+256>>2];y[c+84>>2]=e;e=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=e;e=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=e;e=y[a+4>>2];y[d+128>>2]=y[a>>2];y[d+132>>2]=e;e=y[a+12>>2];y[d+136>>2]=y[a+8>>2];y[d+140>>2]=e;ia(b,d+144|0,d+128|0);e=y[d+268>>2];y[a+8>>2]=y[d+264>>2];y[a+12>>2]=e;e=y[d+260>>2];y[a>>2]=y[d+256>>2];y[a+4>>2]=e;e=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=e;e=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=e;e=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=e;e=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=e;ia(b,d+112|0,d+96|0);e=y[d+268>>2];y[c+56>>2]=y[d+264>>2];y[c+60>>2]=e;e=y[d+260>>2];y[c+48>>2]=y[d+256>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=e;e=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=e;e=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=e;e=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=e;ia(b,d+80|0,d- -64|0);e=y[d+268>>2];y[c+40>>2]=y[d+264>>2];y[c+44>>2]=e;e=y[d+260>>2];y[c+32>>2]=y[d+256>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=e;e=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=e;e=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=e;ia(b,d+48|0,d+32|0);e=y[d+268>>2];y[c+24>>2]=y[d+264>>2];y[c+28>>2]=e;e=y[d+260>>2];y[c+16>>2]=y[d+256>>2];y[c+20>>2]=e;e=y[d+276>>2];y[d+16>>2]=y[d+272>>2];y[d+20>>2]=e;e=y[d+284>>2];y[d+24>>2]=y[d+280>>2];y[d+28>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;ia(b,d+16|0,d);b=y[d+268>>2];y[c+8>>2]=y[d+264>>2];y[c+12>>2]=b;b=y[d+260>>2];y[c>>2]=y[d+256>>2];y[c+4>>2]=b;y[c+12>>2]=y[c+12>>2]^m;y[c+8>>2]=y[c+8>>2]^l;y[c+4>>2]=y[c+4>>2]^k;y[c>>2]=y[c>>2]^n;y[a>>2]=j^y[a>>2];y[c+68>>2]=y[c+68>>2]^g;y[c+72>>2]=y[c+72>>2]^h;y[c+76>>2]=y[c+76>>2]^i;f=f+1|0;if((f|0)!=10){continue}break}T=d+288|0;}function _b(a,b,c,d,e){var 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,x=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,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0;j=T+-64|0;H=y[a+60>>2];I=y[a+56>>2];C=y[a+52>>2];B=y[a+48>>2];J=y[a+44>>2];K=y[a+40>>2];L=y[a+36>>2];M=y[a+32>>2];N=y[a+28>>2];O=y[a+24>>2];P=y[a+20>>2];Q=y[a+16>>2];R=y[a+12>>2];S=y[a+8>>2];U=y[a+4>>2];V=y[a>>2];while(1){a:{if(!e&d>>>0>63|e){f=c;break a}y[j+56>>2]=0;y[j+60>>2]=0;y[j+48>>2]=0;y[j+52>>2]=0;y[j+40>>2]=0;y[j+44>>2]=0;y[j+32>>2]=0;y[j+36>>2]=0;y[j+24>>2]=0;y[j+28>>2]=0;y[j+16>>2]=0;y[j+20>>2]=0;y[j+8>>2]=0;y[j+12>>2]=0;y[j>>2]=0;y[j+4>>2]=0;h=0;while(1){w[h+j|0]=z[b+h|0];h=h+1|0;if(!e&d>>>0>h>>>0|e){continue}break}f=j;b=f;W=c;}D=20;g=V;p=U;q=S;t=R;h=Q;c=P;k=O;l=N;m=M;v=L;r=K;i=H;x=I;u=C;s=B;n=J;while(1){o=h;h=g+h|0;g=Bi(h^s,16);m=g+m|0;s=Bi(o^m,12);o=s;A=h+s|0;s=Bi(A^g,8);m=s+m|0;h=Bi(o^m,7);g=l+t|0;i=Bi(g^i,16);n=i+n|0;l=Bi(n^l,12);q=k+q|0;t=Bi(q^x,16);r=t+r|0;k=Bi(r^k,12);E=g+l|0;x=E+h|0;q=k+q|0;F=Bi(q^t,8);g=Bi(x^F,16);p=c+p|0;t=Bi(p^u,16);v=t+v|0;c=Bi(v^c,12);o=h;p=c+p|0;u=Bi(p^t,8);G=u+v|0;h=G+g|0;o=Bi(o^h,12);t=o+x|0;x=Bi(g^t,8);v=x+h|0;h=Bi(v^o,7);o=m;m=q;g=Bi(i^E,8);i=g+n|0;q=Bi(i^l,7);m=m+q|0;u=Bi(m^u,16);l=o+u|0;n=Bi(l^q,12);q=n+m|0;u=Bi(u^q,8);m=l+u|0;l=Bi(m^n,7);n=i;i=p;r=r+F|0;p=Bi(r^k,7);i=i+p|0;s=Bi(i^s,16);k=n+s|0;n=i;i=Bi(k^p,12);p=n+i|0;s=Bi(s^p,8);n=k+s|0;k=Bi(n^i,7);o=r;i=g;g=Bi(c^G,7);r=g+A|0;i=Bi(i^r,16);c=o+i|0;A=Bi(c^g,12);g=A+r|0;i=Bi(i^g,8);r=c+i|0;c=Bi(r^A,7);D=D-2|0;if(D){continue}break}D=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);A=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);E=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);F=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);G=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);o=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);X=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);Y=z[b+32|0]|z[b+33|0]<<8|(z[b+34|0]<<16|z[b+35|0]<<24);Z=z[b+36|0]|z[b+37|0]<<8|(z[b+38|0]<<16|z[b+39|0]<<24);_=z[b+40|0]|z[b+41|0]<<8|(z[b+42|0]<<16|z[b+43|0]<<24);$=z[b+44|0]|z[b+45|0]<<8|(z[b+46|0]<<16|z[b+47|0]<<24);aa=z[b+48|0]|z[b+49|0]<<8|(z[b+50|0]<<16|z[b+51|0]<<24);ba=z[b+52|0]|z[b+53|0]<<8|(z[b+54|0]<<16|z[b+55|0]<<24);ca=z[b+56|0]|z[b+57|0]<<8|(z[b+58|0]<<16|z[b+59|0]<<24);da=z[b+60|0]|z[b+61|0]<<8|(z[b+62|0]<<16|z[b+63|0]<<24);g=g+V^(z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24));w[f|0]=g;w[f+1|0]=g>>>8;w[f+2|0]=g>>>16;w[f+3|0]=g>>>24;g=i+H^da;w[f+60|0]=g;w[f+61|0]=g>>>8;w[f+62|0]=g>>>16;w[f+63|0]=g>>>24;g=x+I^ca;w[f+56|0]=g;w[f+57|0]=g>>>8;w[f+58|0]=g>>>16;w[f+59|0]=g>>>24;g=u+C^ba;w[f+52|0]=g;w[f+53|0]=g>>>8;w[f+54|0]=g>>>16;w[f+55|0]=g>>>24;g=s+B^aa;w[f+48|0]=g;w[f+49|0]=g>>>8;w[f+50|0]=g>>>16;w[f+51|0]=g>>>24;g=n+J^$;w[f+44|0]=g;w[f+45|0]=g>>>8;w[f+46|0]=g>>>16;w[f+47|0]=g>>>24;g=r+K^_;w[f+40|0]=g;w[f+41|0]=g>>>8;w[f+42|0]=g>>>16;w[f+43|0]=g>>>24;g=v+L^Z;w[f+36|0]=g;w[f+37|0]=g>>>8;w[f+38|0]=g>>>16;w[f+39|0]=g>>>24;g=m+M^Y;w[f+32|0]=g;w[f+33|0]=g>>>8;w[f+34|0]=g>>>16;w[f+35|0]=g>>>24;l=l+N^X;w[f+28|0]=l;w[f+29|0]=l>>>8;w[f+30|0]=l>>>16;w[f+31|0]=l>>>24;k=o^k+O;w[f+24|0]=k;w[f+25|0]=k>>>8;w[f+26|0]=k>>>16;w[f+27|0]=k>>>24;c=G^c+P;w[f+20|0]=c;w[f+21|0]=c>>>8;w[f+22|0]=c>>>16;w[f+23|0]=c>>>24;c=F^h+Q;w[f+16|0]=c;w[f+17|0]=c>>>8;w[f+18|0]=c>>>16;w[f+19|0]=c>>>24;c=E^t+R;w[f+12|0]=c;w[f+13|0]=c>>>8;w[f+14|0]=c>>>16;w[f+15|0]=c>>>24;c=A^q+S;w[f+8|0]=c;w[f+9|0]=c>>>8;w[f+10|0]=c>>>16;w[f+11|0]=c>>>24;c=D^p+U;w[f+4|0]=c;w[f+5|0]=c>>>8;w[f+6|0]=c>>>16;w[f+7|0]=c>>>24;B=B+1|0;C=!B+C|0;if(!e&d>>>0<=64){if(!e&d>>>0<=63){h=0;while(1){w[h+W|0]=z[f+h|0];h=h+1|0;if(d>>>0>h>>>0){continue}break}}y[a+52>>2]=C;y[a+48>>2]=B;}else {b=b- -64|0;c=f- -64|0;e=e-1|0;d=d+-64|0;e=d>>>0<4294967232?e+1|0:e;continue}break}}function xb(a,b){var 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,x=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,U=0,V=0,W=0,X=0;c=T-800|0;T=c;e=b+40|0;d=y[e>>2];f=y[b+80>>2];g=y[b+44>>2];h=y[b+84>>2];i=y[b+48>>2];n=y[b+88>>2];j=y[b+52>>2];q=y[b+92>>2];o=y[b+56>>2];r=y[b+96>>2];s=y[b+60>>2];t=y[b+100>>2];k=b- -64|0;u=y[k>>2];v=y[b+104>>2];x=y[b+68>>2];A=y[b+108>>2];B=y[b+72>>2];C=y[b+112>>2];l=y[b+76>>2];m=y[b+116>>2];y[c+324>>2]=l+m;y[c+320>>2]=B+C;y[c+316>>2]=x+A;y[c+312>>2]=u+v;y[c+308>>2]=s+t;y[c+304>>2]=o+r;y[c+300>>2]=j+q;y[c+296>>2]=i+n;y[c+292>>2]=g+h;y[c+288>>2]=d+f;y[c+36>>2]=m-l;y[c+32>>2]=C-B;y[c+28>>2]=A-x;y[c+24>>2]=v-u;y[c+20>>2]=t-s;y[c+16>>2]=r-o;y[c+12>>2]=q-j;y[c+8>>2]=n-i;y[c+4>>2]=h-g;y[c>>2]=f-d;d=c+288|0;ga(d,d,c);g=c+240|0;ga(g,b,e);f=c+192|0;fa(f,g);ga(f,d,f);y[c+436>>2]=0;y[c+440>>2]=0;y[c+444>>2]=0;y[c+448>>2]=0;y[c+452>>2]=0;y[c+456>>2]=0;y[c+460>>2]=0;y[c+464>>2]=0;y[c+468>>2]=0;y[c+432>>2]=1;h=c+576|0;cc(h,c+432|0,f);f=c+720|0;ga(f,h,d);q=c+672|0;ga(q,h,g);j=c+48|0;ga(j,f,q);d=b+120|0;ga(j,j,d);ga(c+528|0,b,1632);ga(c+480|0,e,1632);ga(c+624|0,f,2944);f=c+336|0;ga(f,d,j);n=c+384|0;pa(n,f);F=z[c+384|0];f=y[b+36>>2];d=y[b+32>>2];y[c+176>>2]=d;y[c+180>>2]=f;g=y[b+28>>2];f=y[b+24>>2];y[c+168>>2]=f;y[c+172>>2]=g;h=y[b+20>>2];g=y[b+16>>2];y[c+160>>2]=g;y[c+164>>2]=h;i=y[b+12>>2];h=y[b+8>>2];y[c+152>>2]=h;y[c+156>>2]=i;o=y[b+4>>2];i=y[b>>2];y[c+144>>2]=i;y[c+148>>2]=o;o=y[e>>2];r=y[b+44>>2];s=y[b+48>>2];t=y[b+52>>2];u=y[b+56>>2];v=y[b+60>>2];x=y[k>>2];A=y[b+68>>2];B=y[b+72>>2];C=y[b+76>>2];G=y[c+484>>2];k=y[c+148>>2];H=y[c+492>>2];l=y[c+156>>2];I=y[c+500>>2];m=y[c+164>>2];J=y[c+508>>2];p=y[c+172>>2];K=y[c+516>>2];E=y[c+180>>2];L=y[c+480>>2];M=y[c+488>>2];N=y[c+496>>2];D=y[c+504>>2];e=0-(F&1)|0;y[c+176>>2]=d^e&(d^y[c+512>>2]);y[c+168>>2]=f^e&(f^D);y[c+160>>2]=g^e&(g^N);y[c+152>>2]=h^e&(h^M);y[c+144>>2]=i^e&(i^L);y[c+180>>2]=E^e&(E^K);y[c+172>>2]=p^e&(p^J);y[c+164>>2]=m^e&(m^I);y[c+156>>2]=l^e&(l^H);y[c+148>>2]=k^e&(k^G);E=y[c+528>>2];F=y[c+532>>2];G=y[c+536>>2];H=y[c+540>>2];I=y[c+544>>2];J=y[c+548>>2];K=y[c+552>>2];L=y[c+556>>2];M=y[c+560>>2];N=y[c+564>>2];d=y[c+672>>2];D=y[c+624>>2];f=y[c+676>>2];P=y[c+628>>2];g=y[c+680>>2];Q=y[c+632>>2];h=y[c+684>>2];R=y[c+636>>2];i=y[c+688>>2];S=y[c+640>>2];k=y[c+692>>2];U=y[c+644>>2];l=y[c+696>>2];V=y[c+648>>2];m=y[c+700>>2];W=y[c+652>>2];p=y[c+704>>2];X=y[c+656>>2];O=y[c+708>>2];y[c+708>>2]=O^e&(y[c+660>>2]^O);y[c+704>>2]=p^e&(p^X);y[c+700>>2]=m^e&(m^W);y[c+696>>2]=l^e&(l^V);y[c+692>>2]=k^e&(k^U);y[c+688>>2]=i^e&(i^S);y[c+684>>2]=h^e&(h^R);y[c+680>>2]=g^e&(g^Q);y[c+676>>2]=f^e&(f^P);y[c+672>>2]=d^e&(d^D);d=c+96|0;ga(d,c+144|0,j);pa(n,d);f=y[b+80>>2];g=y[b+84>>2];h=y[b+88>>2];i=y[b+92>>2];j=y[b+96>>2];k=y[b+100>>2];l=y[b+104>>2];m=y[b+108>>2];p=y[b+112>>2];D=y[b+116>>2];b=0-(w[c+384|0]&1)|0;d=C^e&(C^N);y[c+420>>2]=D-(b&(0-d^d)^d);d=B^e&(B^M);y[c+416>>2]=p-(b&(0-d^d)^d);d=A^e&(A^L);y[c+412>>2]=m-(b&(0-d^d)^d);d=x^e&(x^K);y[c+408>>2]=l-(b&(0-d^d)^d);d=v^e&(v^J);y[c+404>>2]=k-(b&(0-d^d)^d);d=u^e&(u^I);y[c+400>>2]=j-(b&(0-d^d)^d);d=t^e&(t^H);y[c+396>>2]=i-(b&(0-d^d)^d);d=s^e&(s^G);y[c+392>>2]=h-(b&(0-d^d)^d);d=r^e&(r^F);y[c+388>>2]=g-(b&(0-d^d)^d);d=b;b=o^e&(o^E);y[c+384>>2]=f-(d&(0-b^b)^b);ga(n,q,n);pa(c+768|0,n);b=0-(w[c+768|0]&1)|0;d=y[c+384>>2];y[c+384>>2]=b&(0-d^d)^d;d=y[c+388>>2];y[c+388>>2]=b&(0-d^d)^d;d=y[c+392>>2];y[c+392>>2]=b&(0-d^d)^d;d=y[c+396>>2];y[c+396>>2]=b&(0-d^d)^d;d=y[c+400>>2];y[c+400>>2]=b&(0-d^d)^d;d=y[c+404>>2];y[c+404>>2]=b&(0-d^d)^d;d=y[c+408>>2];y[c+408>>2]=b&(0-d^d)^d;d=y[c+412>>2];y[c+412>>2]=b&(0-d^d)^d;d=y[c+416>>2];y[c+416>>2]=b&(0-d^d)^d;d=b;b=y[c+420>>2];y[c+420>>2]=d&(0-b^b)^b;pa(a,n);T=c+800|0;}function Fe(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,x=0;f=T-224|0;T=f;l=y[e+60>>2]^d>>>29;m=y[e+56>>2]^d<<3;h=y[e+52>>2]^c>>>29;j=y[e+48>>2]^c<<3;g=e- -64|0;while(1){c=y[e+92>>2];y[f+216>>2]=y[e+88>>2];y[f+220>>2]=c;c=y[e+84>>2];y[f+208>>2]=y[e+80>>2];y[f+212>>2]=c;c=y[g+4>>2];y[f+176>>2]=y[g>>2];y[f+180>>2]=c;c=y[g+12>>2];y[f+184>>2]=y[g+8>>2];y[f+188>>2]=c;c=y[e+84>>2];y[f+160>>2]=y[e+80>>2];y[f+164>>2]=c;c=y[e+92>>2];y[f+168>>2]=y[e+88>>2];y[f+172>>2]=c;d=f+192|0;ia(d,f+176|0,f+160|0);c=y[f+204>>2];y[e+88>>2]=y[f+200>>2];y[e+92>>2]=c;c=y[f+196>>2];y[e+80>>2]=y[f+192>>2];y[e+84>>2]=c;c=y[e+52>>2];y[f+144>>2]=y[e+48>>2];y[f+148>>2]=c;c=y[e+60>>2];y[f+152>>2]=y[e+56>>2];y[f+156>>2]=c;c=y[g+4>>2];y[f+128>>2]=y[g>>2];y[f+132>>2]=c;c=y[g+12>>2];y[f+136>>2]=y[g+8>>2];y[f+140>>2]=c;ia(d,f+144|0,f+128|0);c=y[f+204>>2];y[g+8>>2]=y[f+200>>2];y[g+12>>2]=c;c=y[f+196>>2];y[g>>2]=y[f+192>>2];y[g+4>>2]=c;c=y[e+36>>2];y[f+112>>2]=y[e+32>>2];y[f+116>>2]=c;c=y[e+44>>2];y[f+120>>2]=y[e+40>>2];y[f+124>>2]=c;c=y[e+52>>2];y[f+96>>2]=y[e+48>>2];y[f+100>>2]=c;c=y[e+60>>2];y[f+104>>2]=y[e+56>>2];y[f+108>>2]=c;ia(d,f+112|0,f+96|0);c=y[f+204>>2];y[e+56>>2]=y[f+200>>2];y[e+60>>2]=c;c=y[f+196>>2];y[e+48>>2]=y[f+192>>2];y[e+52>>2]=c;c=y[e+20>>2];y[f+80>>2]=y[e+16>>2];y[f+84>>2]=c;c=y[e+28>>2];y[f+88>>2]=y[e+24>>2];y[f+92>>2]=c;c=y[e+36>>2];y[f+64>>2]=y[e+32>>2];y[f+68>>2]=c;c=y[e+44>>2];y[f+72>>2]=y[e+40>>2];y[f+76>>2]=c;ia(d,f+80|0,f- -64|0);c=y[f+204>>2];y[e+40>>2]=y[f+200>>2];y[e+44>>2]=c;c=y[f+196>>2];y[e+32>>2]=y[f+192>>2];y[e+36>>2]=c;c=y[e+4>>2];y[f+48>>2]=y[e>>2];y[f+52>>2]=c;c=y[e+12>>2];y[f+56>>2]=y[e+8>>2];y[f+60>>2]=c;c=y[e+20>>2];y[f+32>>2]=y[e+16>>2];y[f+36>>2]=c;c=y[e+28>>2];y[f+40>>2]=y[e+24>>2];y[f+44>>2]=c;ia(d,f+48|0,f+32|0);c=y[f+204>>2];y[e+24>>2]=y[f+200>>2];y[e+28>>2]=c;c=y[f+196>>2];y[e+16>>2]=y[f+192>>2];y[e+20>>2]=c;c=y[f+212>>2];y[f+16>>2]=y[f+208>>2];y[f+20>>2]=c;c=y[f+220>>2];y[f+24>>2]=y[f+216>>2];y[f+28>>2]=c;c=y[e+4>>2];y[f>>2]=y[e>>2];y[f+4>>2]=c;c=y[e+12>>2];y[f+8>>2]=y[e+8>>2];y[f+12>>2]=c;ia(d,f+16|0,f);k=y[f+192>>2];d=y[f+196>>2];c=y[f+200>>2];n=l^y[f+204>>2];y[e+12>>2]=n;p=c^m;y[e+8>>2]=p;q=d^h;y[e+4>>2]=q;r=j^k;y[e>>2]=r;i=i+1|0;if((i|0)!=7){continue}break}a:{b:{c:{c=b-16|0;if(c){if((c|0)==16){break c}break b}s=y[e+16>>2];t=y[e+48>>2];u=y[e+32>>2];v=y[e+80>>2];x=y[e- -64>>2];g=y[e+20>>2];l=y[e+52>>2];m=y[e+36>>2];h=y[e+84>>2];j=y[e+68>>2];k=y[e+24>>2];i=y[e+56>>2];d=y[e+40>>2];c=y[e+88>>2];b=y[e+72>>2];e=n^(y[e+28>>2]^(y[e+60>>2]^(y[e+44>>2]^(y[e+92>>2]^y[e+76>>2]))));w[a+12|0]=e;w[a+13|0]=e>>>8;w[a+14|0]=e>>>16;w[a+15|0]=e>>>24;b=p^(b^c^d^i^k);w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=q^(g^(l^(h^j^m)));w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=r^(s^(t^(u^(v^x))));w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;break a}j=y[e+32>>2];k=y[e+16>>2];i=y[e+36>>2];d=y[e+20>>2];c=y[e+40>>2];b=y[e+24>>2];h=n^(y[e+44>>2]^y[e+28>>2]);w[a+12|0]=h;w[a+13|0]=h>>>8;w[a+14|0]=h>>>16;w[a+15|0]=h>>>24;b=p^(b^c);w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=q^(d^i);w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=r^(j^k);w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;l=y[e+48>>2];m=y[e+80>>2];h=y[e- -64>>2];j=y[e+52>>2];k=y[e+84>>2];i=y[e+68>>2];d=y[e+56>>2];c=y[e+88>>2];b=y[e+72>>2];e=y[e+60>>2]^(y[e+92>>2]^y[e+76>>2]);w[a+28|0]=e;w[a+29|0]=e>>>8;w[a+30|0]=e>>>16;w[a+31|0]=e>>>24;b=d^(b^c);w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;b=j^(k^i);w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=l^(h^m);w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;break a}if(!b){break a}o(a,0,b);}T=f+224|0;}function xh(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,i=0,j=0,k=0,l=0,m=0;g=-1;h=d-65|0;if(!(h>>>0<4294967232|c>>>0>64)){a:{if(!(c?b:0)){if((h&255)>>>0>191){b:{if(!e){i=725511199;h=-1694144372;c=-1377402159;b=1359893119;break b}i=(z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24))^725511199;h=(z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24))^-1694144372;c=(z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24))^-1377402159;b=(z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24))^1359893119;}c:{if(!f){j=327033209;f=1541459225;g=-79577749;e=528734635;break c}e=f;j=(z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24))^327033209;f=(z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24))^1541459225;g=(z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24))^-79577749;e=(z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24))^528734635;}o(a- -64|0,0,293);w[a+56|0]=j;w[a+57|0]=j>>>8;w[a+58|0]=j>>>16;w[a+59|0]=j>>>24;w[a+60|0]=f;w[a+61|0]=f>>>8;w[a+62|0]=f>>>16;w[a+63|0]=f>>>24;w[a+48|0]=g;w[a+49|0]=g>>>8;w[a+50|0]=g>>>16;w[a+51|0]=g>>>24;w[a+52|0]=e;w[a+53|0]=e>>>8;w[a+54|0]=e>>>16;w[a+55|0]=e>>>24;w[a+40|0]=i;w[a+41|0]=i>>>8;w[a+42|0]=i>>>16;w[a+43|0]=i>>>24;w[a+44|0]=h;w[a+45|0]=h>>>8;w[a+46|0]=h>>>16;w[a+47|0]=h>>>24;w[a+32|0]=c;w[a+33|0]=c>>>8;w[a+34|0]=c>>>16;w[a+35|0]=c>>>24;w[a+36|0]=b;w[a+37|0]=b>>>8;w[a+38|0]=b>>>16;w[a+39|0]=b>>>24;w[a+24|0]=241;w[a+25|0]=54;w[a+26|0]=29;w[a+27|0]=95;w[a+28|0]=58;w[a+29|0]=245;w[a+30|0]=79;w[a+31|0]=165;w[a+16|0]=43;w[a+17|0]=248;w[a+18|0]=148;w[a+19|0]=254;w[a+20|0]=114;w[a+21|0]=243;w[a+22|0]=110;w[a+23|0]=60;w[a+8|0]=59;w[a+9|0]=167;w[a+10|0]=202;w[a+11|0]=132;w[a+12|0]=133;w[a+13|0]=174;w[a+14|0]=103;w[a+15|0]=187;b=d^-222443256;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=103;w[a+5|0]=230;w[a+6|0]=9;w[a+7|0]=106;break a}na();s();}k=T-128|0;T=k;d:{if(!(!b|(d-65&255)>>>0<=191|(c-65&255)>>>0<=191)){e:{if(!e){i=725511199;h=-1694144372;g=-1377402159;e=1359893119;break e}i=(z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24))^725511199;h=(z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24))^-1694144372;g=(z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24))^-1377402159;e=(z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24))^1359893119;}m=g;f:{if(!f){j=327033209;f=1541459225;l=-79577749;g=528734635;break f}g=f;j=(z[g+8|0]|z[g+9|0]<<8|(z[g+10|0]<<16|z[g+11|0]<<24))^327033209;f=(z[g+12|0]|z[g+13|0]<<8|(z[g+14|0]<<16|z[g+15|0]<<24))^1541459225;l=(z[g|0]|z[g+1|0]<<8|(z[g+2|0]<<16|z[g+3|0]<<24))^-79577749;g=(z[g+4|0]|z[g+5|0]<<8|(z[g+6|0]<<16|z[g+7|0]<<24))^528734635;}o(a- -64|0,0,293);w[a+56|0]=j;w[a+57|0]=j>>>8;w[a+58|0]=j>>>16;w[a+59|0]=j>>>24;w[a+60|0]=f;w[a+61|0]=f>>>8;w[a+62|0]=f>>>16;w[a+63|0]=f>>>24;w[a+48|0]=l;w[a+49|0]=l>>>8;w[a+50|0]=l>>>16;w[a+51|0]=l>>>24;w[a+52|0]=g;w[a+53|0]=g>>>8;w[a+54|0]=g>>>16;w[a+55|0]=g>>>24;w[a+40|0]=i;w[a+41|0]=i>>>8;w[a+42|0]=i>>>16;w[a+43|0]=i>>>24;w[a+44|0]=h;w[a+45|0]=h>>>8;w[a+46|0]=h>>>16;w[a+47|0]=h>>>24;w[a+32|0]=m;w[a+33|0]=m>>>8;w[a+34|0]=m>>>16;w[a+35|0]=m>>>24;w[a+36|0]=e;w[a+37|0]=e>>>8;w[a+38|0]=e>>>16;w[a+39|0]=e>>>24;w[a+24|0]=241;w[a+25|0]=54;w[a+26|0]=29;w[a+27|0]=95;w[a+28|0]=58;w[a+29|0]=245;w[a+30|0]=79;w[a+31|0]=165;w[a+16|0]=43;w[a+17|0]=248;w[a+18|0]=148;w[a+19|0]=254;w[a+20|0]=114;w[a+21|0]=243;w[a+22|0]=110;w[a+23|0]=60;w[a+8|0]=59;w[a+9|0]=167;w[a+10|0]=202;w[a+11|0]=132;w[a+12|0]=133;w[a+13|0]=174;w[a+14|0]=103;w[a+15|0]=187;e=(c<<8|d)^-222443256;w[a|0]=e;w[a+1|0]=e>>>8;w[a+2|0]=e>>>16;w[a+3|0]=e>>>24;d=c>>>24^1779033703;w[a+4|0]=d;w[a+5|0]=d>>>8;w[a+6|0]=d>>>16;w[a+7|0]=d>>>24;o(k,0,128);if(c){t(k,b,c);}t(a+96|0,k,128);w[a+352|0]=128;w[a+353|0]=0;w[a+354|0]=0;w[a+355|0]=0;ja(k,128);T=k+128|0;break d}na();s();}}g=0;}return g|0}function Ca(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=T-704|0;T=j;g=a+80|0;e=y[a+72>>2]>>>3&127;c=g+e|0;a:{if(e>>>0>=112){e=128-e|0;if(e){t(c,39152,e);}Xb(a,g,j,j+640|0);o(g,0,112);break a}e=112-e|0;if(!e){break a}t(c,39152,e);}e=a- -64|0;d=y[e>>2];c=y[e+4>>2];i=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;k=f<<24;h=d&-16777216;f=h>>>24|0;y[a+192>>2]=k|h<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));c=e|f|i;y[a+196>>2]=c;d=y[a+72>>2];i=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+76>>2];k=f<<24;h=d&-16777216;f=h>>>24|0;y[a+200>>2]=k|h<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));c=e|f|i;y[a+204>>2]=c;Xb(a,g,j,j+640|0);d=y[a>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+4>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b|0]=c;w[b+1|0]=c>>>8;w[b+2|0]=c>>>16;w[b+3|0]=c>>>24;c=e|f|h;e=c|0;w[b+4|0]=e;w[b+5|0]=e>>>8;w[b+6|0]=e>>>16;w[b+7|0]=e>>>24;d=y[a+8>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+12>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+8|0]=c;w[b+9|0]=c>>>8;w[b+10|0]=c>>>16;w[b+11|0]=c>>>24;c=e|f|h;e=c|0;w[b+12|0]=e;w[b+13|0]=e>>>8;w[b+14|0]=e>>>16;w[b+15|0]=e>>>24;d=y[a+16>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+20>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+16|0]=c;w[b+17|0]=c>>>8;w[b+18|0]=c>>>16;w[b+19|0]=c>>>24;c=e|f|h;e=c|0;w[b+20|0]=e;w[b+21|0]=e>>>8;w[b+22|0]=e>>>16;w[b+23|0]=e>>>24;d=y[a+24>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+28>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+24|0]=c;w[b+25|0]=c>>>8;w[b+26|0]=c>>>16;w[b+27|0]=c>>>24;c=e|f|h;e=c|0;w[b+28|0]=e;w[b+29|0]=e>>>8;w[b+30|0]=e>>>16;w[b+31|0]=e>>>24;d=y[a+32>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+36>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+32|0]=c;w[b+33|0]=c>>>8;w[b+34|0]=c>>>16;w[b+35|0]=c>>>24;c=e|f|h;e=c|0;w[b+36|0]=e;w[b+37|0]=e>>>8;w[b+38|0]=e>>>16;w[b+39|0]=e>>>24;d=y[a+40>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+44>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+40|0]=c;w[b+41|0]=c>>>8;w[b+42|0]=c>>>16;w[b+43|0]=c>>>24;c=e|f|h;e=c|0;w[b+44|0]=e;w[b+45|0]=e>>>8;w[b+46|0]=e>>>16;w[b+47|0]=e>>>24;d=y[a+48>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=y[a+52>>2];i=f<<24;g=d&-16777216;f=g>>>24|0;c=i|g<<8|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));w[b+48|0]=c;w[b+49|0]=c>>>8;w[b+50|0]=c>>>16;w[b+51|0]=c>>>24;c=e|f|h;e=c|0;w[b+52|0]=e;w[b+53|0]=e>>>8;w[b+54|0]=e>>>16;w[b+55|0]=e>>>24;d=y[a+56>>2];h=d<<24|(d&65280)<<8;f=d&16711680;e=f>>>8|0;c=b;i=f<<24;g=d&-16777216;f=g>>>24|0;b=y[a+60>>2];b=i|g<<8|(((b&255)<<24|d>>>8)&-16777216|((b&16777215)<<8|d>>>24)&16711680|(b>>>8&65280|b>>>24));w[c+56|0]=b;w[c+57|0]=b>>>8;w[c+58|0]=b>>>16;w[c+59|0]=b>>>24;b=e|f|h;b=b|0;w[c+60|0]=b;w[c+61|0]=b>>>8;w[c+62|0]=b>>>16;w[c+63|0]=b>>>24;ja(j,704);ja(a,208);T=j+704|0;return 0}function ec(a){var 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,p=0,q=0,r=0,s=0,t=0,u=0;b=T-2048|0;T=b;i=b+640|0;qa(i,a);c=y[a+36>>2];y[b+352>>2]=y[a+32>>2];y[b+356>>2]=c;c=y[a+28>>2];y[b+344>>2]=y[a+24>>2];y[b+348>>2]=c;c=y[a+20>>2];y[b+336>>2]=y[a+16>>2];y[b+340>>2]=c;c=y[a+12>>2];y[b+328>>2]=y[a+8>>2];y[b+332>>2]=c;c=y[a+4>>2];y[b+320>>2]=y[a>>2];y[b+324>>2]=c;c=y[a+44>>2];y[b+360>>2]=y[a+40>>2];y[b+364>>2]=c;c=y[a+52>>2];y[b+368>>2]=y[a+48>>2];y[b+372>>2]=c;c=y[a+60>>2];y[b+376>>2]=y[a+56>>2];y[b+380>>2]=c;d=a- -64|0;c=y[d+4>>2];y[b+384>>2]=y[d>>2];y[b+388>>2]=c;c=y[a+76>>2];y[b+392>>2]=y[a+72>>2];y[b+396>>2]=c;c=y[a+84>>2];y[b+400>>2]=y[a+80>>2];y[b+404>>2]=c;c=y[a+92>>2];y[b+408>>2]=y[a+88>>2];y[b+412>>2]=c;c=y[a+100>>2];y[b+416>>2]=y[a+96>>2];y[b+420>>2]=c;c=y[a+108>>2];y[b+424>>2]=y[a+104>>2];y[b+428>>2]=c;c=y[a+116>>2];y[b+432>>2]=y[a+112>>2];y[b+436>>2]=c;e=b+480|0;d=b+320|0;xa(e,d);c=b+160|0;f=b+600|0;ga(c,e,f);g=b+520|0;h=b+560|0;ga(b+200|0,g,h);ga(b+240|0,h,f);ga(b+280|0,e,g);sa(e,c,i);ga(d,e,f);l=b+360|0;ga(l,g,h);m=b+400|0;ga(m,h,f);n=b+440|0;ga(n,e,g);a=b+800|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);a=b+960|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);a=b+1120|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);a=b+1280|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);a=b+1440|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);a=b+1600|0;qa(a,d);sa(e,c,a);ga(d,e,f);ga(l,g,h);ga(m,h,f);ga(n,e,g);qa(b+1760|0,d);y[b+32>>2]=0;y[b+36>>2]=0;y[b+24>>2]=0;y[b+28>>2]=0;y[b+16>>2]=0;y[b+20>>2]=0;y[b+8>>2]=0;y[b+12>>2]=0;y[b>>2]=0;y[b+4>>2]=0;y[b+44>>2]=0;y[b+48>>2]=0;y[b+40>>2]=1;y[b+52>>2]=0;y[b+56>>2]=0;y[b+60>>2]=0;y[b+64>>2]=0;y[b+68>>2]=0;y[b+72>>2]=0;y[b+76>>2]=0;y[b+80>>2]=1;o(b+84|0,0,76);e=b+120|0;j=b+2008|0;k=b+1968|0;i=b+80|0;d=b+40|0;a=252;while(1){c=y[b+36>>2];y[b+1960>>2]=y[b+32>>2];y[b+1964>>2]=c;c=y[b+28>>2];y[b+1952>>2]=y[b+24>>2];y[b+1956>>2]=c;c=y[b+20>>2];y[b+1944>>2]=y[b+16>>2];y[b+1948>>2]=c;c=y[b+12>>2];y[b+1936>>2]=y[b+8>>2];y[b+1940>>2]=c;c=y[b+4>>2];y[b+1928>>2]=y[b>>2];y[b+1932>>2]=c;c=y[d+36>>2];y[k+32>>2]=y[d+32>>2];y[k+36>>2]=c;c=y[d+28>>2];y[k+24>>2]=y[d+24>>2];y[k+28>>2]=c;c=y[d+20>>2];y[k+16>>2]=y[d+16>>2];y[k+20>>2]=c;c=y[d+12>>2];y[k+8>>2]=y[d+8>>2];y[k+12>>2]=c;c=y[d+4>>2];y[k>>2]=y[d>>2];y[k+4>>2]=c;c=y[i+36>>2];y[j+32>>2]=y[i+32>>2];y[j+36>>2]=c;c=y[i+28>>2];y[j+24>>2]=y[i+24>>2];y[j+28>>2]=c;c=y[i+20>>2];y[j+16>>2]=y[i+16>>2];y[j+20>>2]=c;c=y[i+12>>2];y[j+8>>2]=y[i+8>>2];y[j+12>>2]=c;c=y[i+4>>2];y[j>>2]=y[i>>2];y[j+4>>2]=c;c=a;q=w[a+33712|0];p=b+480|0;xa(p,b+1928|0);a:{if((q|0)>0){a=b+320|0;ga(a,p,f);ga(l,g,h);ga(m,h,f);ga(n,p,g);sa(p,a,(b+640|0)+E((q&254)>>>1|0,160)|0);break a}if((q|0)>=0){break a}a=b+320|0;p=b+480|0;ga(a,p,f);ga(l,g,h);ga(m,h,f);ga(n,p,g);Hb(p,a,(b+640|0)+E((0-q&254)>>>1|0,160)|0);}r=b+480|0;ga(b,r,f);ga(d,g,h);ga(i,h,f);ga(e,r,g);a=c-1|0;if(c){continue}break}s=y[b+40>>2];t=y[b+80>>2];u=y[b+44>>2];f=y[b+84>>2];g=y[b+48>>2];h=y[b+88>>2];j=y[b+52>>2];k=y[b+92>>2];l=y[b+56>>2];m=y[b+96>>2];n=y[b+60>>2];q=y[b+100>>2];p=y[b+64>>2];e=y[b+104>>2];i=y[b+68>>2];d=y[b+108>>2];c=y[b+72>>2];a=y[b+112>>2];y[b+676>>2]=y[b+76>>2]-y[b+116>>2];y[b+672>>2]=c-a;y[b+668>>2]=i-d;y[b+664>>2]=p-e;y[b+660>>2]=n-q;y[b+656>>2]=l-m;y[b+652>>2]=j-k;y[b+648>>2]=g-h;y[b+644>>2]=u-f;y[b+640>>2]=s-t;pa(r,b);c=ya(r,32);pa(r,b+640|0);a=ya(r,32);T=b+2048|0;return a&c}function $b(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=T-288|0;T=c;f=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);g=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);h=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);i=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);j=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);k=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);l=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);m=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);a=y[b+124>>2];y[c+280>>2]=y[b+120>>2];y[c+284>>2]=a;a=y[b+116>>2];y[c+272>>2]=y[b+112>>2];y[c+276>>2]=a;a=y[b+100>>2];y[c+240>>2]=y[b+96>>2];y[c+244>>2]=a;a=y[b+108>>2];y[c+248>>2]=y[b+104>>2];y[c+252>>2]=a;a=y[b+116>>2];y[c+224>>2]=y[b+112>>2];y[c+228>>2]=a;a=y[b+124>>2];y[c+232>>2]=y[b+120>>2];y[c+236>>2]=a;a=c+256|0;ia(a,c+240|0,c+224|0);e=y[c+268>>2];y[b+120>>2]=y[c+264>>2];y[b+124>>2]=e;e=y[c+260>>2];y[b+112>>2]=y[c+256>>2];y[b+116>>2]=e;e=y[b+84>>2];y[c+208>>2]=y[b+80>>2];y[c+212>>2]=e;e=y[b+92>>2];y[c+216>>2]=y[b+88>>2];y[c+220>>2]=e;e=y[b+100>>2];y[c+192>>2]=y[b+96>>2];y[c+196>>2]=e;e=y[b+108>>2];y[c+200>>2]=y[b+104>>2];y[c+204>>2]=e;ia(a,c+208|0,c+192|0);e=y[c+268>>2];y[b+104>>2]=y[c+264>>2];y[b+108>>2]=e;e=y[c+260>>2];y[b+96>>2]=y[c+256>>2];y[b+100>>2]=e;e=b- -64|0;d=y[e+4>>2];y[c+176>>2]=y[e>>2];y[c+180>>2]=d;d=y[b+76>>2];y[c+184>>2]=y[b+72>>2];y[c+188>>2]=d;d=y[b+84>>2];y[c+160>>2]=y[b+80>>2];y[c+164>>2]=d;d=y[b+92>>2];y[c+168>>2]=y[b+88>>2];y[c+172>>2]=d;ia(a,c+176|0,c+160|0);d=y[c+268>>2];y[b+88>>2]=y[c+264>>2];y[b+92>>2]=d;d=y[c+260>>2];y[b+80>>2]=y[c+256>>2];y[b+84>>2]=d;d=y[b+52>>2];y[c+144>>2]=y[b+48>>2];y[c+148>>2]=d;d=y[b+60>>2];y[c+152>>2]=y[b+56>>2];y[c+156>>2]=d;d=y[e+4>>2];y[c+128>>2]=y[e>>2];y[c+132>>2]=d;d=y[b+76>>2];y[c+136>>2]=y[b+72>>2];y[c+140>>2]=d;ia(a,c+144|0,c+128|0);d=y[c+268>>2];y[b+72>>2]=y[c+264>>2];y[b+76>>2]=d;d=y[c+260>>2];y[e>>2]=y[c+256>>2];y[e+4>>2]=d;d=y[b+36>>2];y[c+112>>2]=y[b+32>>2];y[c+116>>2]=d;d=y[b+44>>2];y[c+120>>2]=y[b+40>>2];y[c+124>>2]=d;d=y[b+52>>2];y[c+96>>2]=y[b+48>>2];y[c+100>>2]=d;d=y[b+60>>2];y[c+104>>2]=y[b+56>>2];y[c+108>>2]=d;ia(a,c+112|0,c+96|0);d=y[c+268>>2];y[b+56>>2]=y[c+264>>2];y[b+60>>2]=d;d=y[c+260>>2];y[b+48>>2]=y[c+256>>2];y[b+52>>2]=d;d=y[b+20>>2];y[c+80>>2]=y[b+16>>2];y[c+84>>2]=d;d=y[b+28>>2];y[c+88>>2]=y[b+24>>2];y[c+92>>2]=d;d=y[b+36>>2];y[c+64>>2]=y[b+32>>2];y[c+68>>2]=d;d=y[b+44>>2];y[c+72>>2]=y[b+40>>2];y[c+76>>2]=d;ia(a,c+80|0,c- -64|0);d=y[c+268>>2];y[b+40>>2]=y[c+264>>2];y[b+44>>2]=d;d=y[c+260>>2];y[b+32>>2]=y[c+256>>2];y[b+36>>2]=d;d=y[b+4>>2];y[c+48>>2]=y[b>>2];y[c+52>>2]=d;d=y[b+12>>2];y[c+56>>2]=y[b+8>>2];y[c+60>>2]=d;d=y[b+20>>2];y[c+32>>2]=y[b+16>>2];y[c+36>>2]=d;d=y[b+28>>2];y[c+40>>2]=y[b+24>>2];y[c+44>>2]=d;ia(a,c+48|0,c+32|0);d=y[c+268>>2];y[b+24>>2]=y[c+264>>2];y[b+28>>2]=d;d=y[c+260>>2];y[b+16>>2]=y[c+256>>2];y[b+20>>2]=d;d=y[c+276>>2];y[c+16>>2]=y[c+272>>2];y[c+20>>2]=d;d=y[c+284>>2];y[c+24>>2]=y[c+280>>2];y[c+28>>2]=d;d=y[b+4>>2];y[c>>2]=y[b>>2];y[c+4>>2]=d;d=y[b+12>>2];y[c+8>>2]=y[b+8>>2];y[c+12>>2]=d;ia(a,c+16|0,c);a=y[c+268>>2];y[b+8>>2]=y[c+264>>2];y[b+12>>2]=a;a=y[c+260>>2];y[b>>2]=y[c+256>>2];y[b+4>>2]=a;y[b+12>>2]=y[b+12>>2]^l;y[b+8>>2]=y[b+8>>2]^k;y[b+4>>2]=y[b+4>>2]^j;y[b>>2]=y[b>>2]^m;y[e>>2]=y[e>>2]^i;y[b+68>>2]=y[b+68>>2]^h;y[b+72>>2]=y[b+72>>2]^g;y[b+76>>2]=y[b+76>>2]^f;T=c+288|0;}function jb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=T-480|0;T=d;c=z[b|0];w[d+289|0]=c>>>4;w[d+288|0]=c&15;c=z[b+1|0];w[d+291|0]=c>>>4;w[d+290|0]=c&15;c=z[b+2|0];w[d+293|0]=c>>>4;w[d+292|0]=c&15;c=z[b+3|0];w[d+295|0]=c>>>4;w[d+294|0]=c&15;c=z[b+4|0];w[d+297|0]=c>>>4;w[d+296|0]=c&15;c=z[b+5|0];w[d+299|0]=c>>>4;w[d+298|0]=c&15;c=z[b+6|0];w[d+301|0]=c>>>4;w[d+300|0]=c&15;c=z[b+7|0];w[d+303|0]=c>>>4;w[d+302|0]=c&15;c=z[b+8|0];w[d+305|0]=c>>>4;w[d+304|0]=c&15;c=z[b+9|0];w[d+307|0]=c>>>4;w[d+306|0]=c&15;c=z[b+10|0];w[d+309|0]=c>>>4;w[d+308|0]=c&15;c=z[b+11|0];w[d+311|0]=c>>>4;w[d+310|0]=c&15;c=z[b+12|0];w[d+313|0]=c>>>4;w[d+312|0]=c&15;c=z[b+13|0];w[d+315|0]=c>>>4;w[d+314|0]=c&15;c=z[b+14|0];w[d+317|0]=c>>>4;w[d+316|0]=c&15;c=z[b+15|0];w[d+319|0]=c>>>4;w[d+318|0]=c&15;c=z[b+16|0];w[d+321|0]=c>>>4;w[d+320|0]=c&15;c=z[b+17|0];w[d+323|0]=c>>>4;w[d+322|0]=c&15;c=z[b+18|0];w[d+325|0]=c>>>4;w[d+324|0]=c&15;c=z[b+19|0];w[d+327|0]=c>>>4;w[d+326|0]=c&15;c=z[b+20|0];w[d+329|0]=c>>>4;w[d+328|0]=c&15;c=z[b+21|0];w[d+331|0]=c>>>4;w[d+330|0]=c&15;c=z[b+22|0];w[d+333|0]=c>>>4;w[d+332|0]=c&15;c=z[b+23|0];w[d+335|0]=c>>>4;w[d+334|0]=c&15;c=z[b+24|0];w[d+337|0]=c>>>4;w[d+336|0]=c&15;c=z[b+25|0];w[d+339|0]=c>>>4;w[d+338|0]=c&15;c=z[b+26|0];w[d+341|0]=c>>>4;w[d+340|0]=c&15;c=z[b+27|0];w[d+343|0]=c>>>4;w[d+342|0]=c&15;c=z[b+28|0];w[d+345|0]=c>>>4;w[d+344|0]=c&15;c=z[b+29|0];w[d+347|0]=c>>>4;w[d+346|0]=c&15;c=z[b+30|0];w[d+349|0]=c>>>4;w[d+348|0]=c&15;b=z[b+31|0];w[d+351|0]=b>>>4;w[d+350|0]=b&15;b=0;while(1){e=(d+288|0)+f|0;b=z[e|0]+b|0;c=b+8|0;w[e|0]=b-(c&240);b=z[e+1|0]+(c<<24>>24>>4)|0;c=b+8|0;w[e+1|0]=b-(c&240);b=z[e+2|0]+(c<<24>>24>>4)|0;c=b+8|0;w[e+2|0]=b-(c&240);b=c<<24>>24>>4;f=f+3|0;if((f|0)!=63){continue}break}w[d+351|0]=z[d+351|0]+b;y[a+32>>2]=0;y[a+36>>2]=0;y[a+24>>2]=0;y[a+28>>2]=0;y[a+16>>2]=0;y[a+20>>2]=0;y[a+8>>2]=0;y[a+12>>2]=0;y[a>>2]=0;y[a+4>>2]=0;y[a+44>>2]=0;y[a+48>>2]=0;f=a+40|0;y[f>>2]=1;y[a+52>>2]=0;y[a+56>>2]=0;y[a+60>>2]=0;y[a+64>>2]=0;y[a+68>>2]=0;y[a+72>>2]=0;y[a+76>>2]=0;y[a+80>>2]=1;o(a+84|0,0,76);l=a+120|0;c=a+80|0;g=d+208|0;k=d+168|0;h=d+248|0;b=1;while(1){e=d+8|0;Kc(e,b>>>1|0,w[(d+288|0)+b|0]);i=d+128|0;fc(i,a,e);ga(a,i,h);ga(f,k,g);ga(c,g,h);ga(l,i,k);e=b>>>0<62;b=b+2|0;if(e){continue}break}b=y[a+36>>2];y[d+392>>2]=y[a+32>>2];y[d+396>>2]=b;b=y[a+28>>2];y[d+384>>2]=y[a+24>>2];y[d+388>>2]=b;b=y[a+20>>2];y[d+376>>2]=y[a+16>>2];y[d+380>>2]=b;b=y[a+12>>2];y[d+368>>2]=y[a+8>>2];y[d+372>>2]=b;b=y[a+4>>2];y[d+360>>2]=y[a>>2];y[d+364>>2]=b;b=y[f+4>>2];y[d+400>>2]=y[f>>2];y[d+404>>2]=b;b=y[f+12>>2];y[d+408>>2]=y[f+8>>2];y[d+412>>2]=b;b=y[f+20>>2];y[d+416>>2]=y[f+16>>2];y[d+420>>2]=b;b=y[f+28>>2];y[d+424>>2]=y[f+24>>2];y[d+428>>2]=b;b=y[f+36>>2];y[d+432>>2]=y[f+32>>2];y[d+436>>2]=b;b=y[c+4>>2];y[d+440>>2]=y[c>>2];y[d+444>>2]=b;b=y[c+12>>2];y[d+448>>2]=y[c+8>>2];y[d+452>>2]=b;b=y[c+20>>2];y[d+456>>2]=y[c+16>>2];y[d+460>>2]=b;b=y[c+28>>2];y[d+464>>2]=y[c+24>>2];y[d+468>>2]=b;b=y[c+36>>2];y[d+472>>2]=y[c+32>>2];y[d+476>>2]=b;j=d+360|0;xa(i,j);ga(j,i,h);e=d+400|0;ga(e,k,g);b=d+440|0;ga(b,g,h);xa(i,j);ga(j,i,h);ga(e,k,g);ga(b,g,h);xa(i,j);ga(j,i,h);ga(e,k,g);ga(b,g,h);xa(i,j);ga(a,i,h);ga(f,k,g);ga(c,g,h);ga(l,i,k);b=0;while(1){e=d+8|0;Kc(e,b>>>1|0,w[(d+288|0)+b|0]);j=d+128|0;fc(j,a,e);ga(a,j,h);ga(f,k,g);ga(c,g,h);ga(l,j,k);e=b>>>0<62;b=b+2|0;if(e){continue}break}T=d+480|0;}function gd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var 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;d=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);h=d^1886610805;f=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);g=f^1936682341;i=d^1852142177;j=f^1819895653;d=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);f=d^1852075885;e=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);l=e^1685025377;k=d^2037671283;m=e^1952801890;d=c&-8;if(d){d=b+d|0;while(1){p=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);e=k^p;i=i+e|0;t=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);m=m^t;j=j+m|0;j=e>>>0>i>>>0?j+1|0:j;g=g+l|0;o=g+1|0;k=g;g=f+h|0;k=h>>>0>g>>>0?o:k;f=Ci(f,l,13)^g;h=i+f|0;n=W^k;l=j+n|0;n=Ci(f,n,17)^h;l=f>>>0>h>>>0?l+1|0:l;q=l^W;s=Ci(n,q,13);r=W;e=Ci(e,m,16);f=j^W;j=e^i;i=Ci(g,k,32);e=j+i|0;g=W+f|0;k=e>>>0>>0?g+1|0:g;i=q+k|0;o=i+1|0;g=i;i=e+n|0;g=i>>>0>>0?o:g;m=i^s;n=g^r;q=Ci(m,n,17);s=W;f=Ci(j,f,21);j=k^W;k=e^f;h=Ci(h,l,32);e=k+h|0;f=W+j|0;r=e>>>0>>0?f+1|0:f;h=r+n|0;o=h+1|0;f=h;h=e+m|0;n=h>>>0>>0?o:f;f=h^q;l=n^s;j=Ci(k,j,16);k=r^W;m=k;e=e^j;j=Ci(e,k,21);q=W;i=Ci(i,g,32);e=i+e|0;k=e^j;g=W+m|0;g=e>>>0>>0?g+1|0:g;m=g^q;i=Ci(h,n,32);j=W;h=e^p;g=g^t;b=b+8|0;if((d|0)!=(b|0)){continue}break}b=d;}e=c<<24;d=0;a:{switch((c&7)-1|0){case 6:e=e|z[b+6|0]<<16;case 5:e=e|z[b+5|0]<<8;case 4:e=e|z[b+4|0];case 3:d=z[b+3|0]<<24;case 2:d=d|z[b+2|0]<<16;case 1:d=d|z[b+1|0]<<8;case 0:d=z[b|0]|d;break;default:break a}}b=d^k;c=e^m;k=Ci(b,c,16);c=c+j|0;b=b+i|0;c=b>>>0>>0?c+1|0:c;j=b^k;k=c^W;m=Ci(j,k,21);n=W;i=g+l|0;o=i+1|0;g=i;i=f+h|0;h=h>>>0>i>>>0?o:g;g=h;p=Ci(i,h,32);h=j+p|0;j=m^h;k=W+k|0;k=h>>>0

>>0?k+1|0:k;m=n^k;n=Ci(j,m,16);p=W;f=Ci(f,l,13)^i;b=b+f|0;l=W^g;c=l+c|0;i=b>>>0>>0?c+1|0:c;g=Ci(b,i,32);c=j+g|0;j=n^c;m=W+m|0;g=c>>>0>>0?m+1|0:m;m=g^p;n=Ci(j,m,21);p=W;l=Ci(f,l,17)^b;f=l;b=h+f|0;i=W^i;h=i+k|0;h=b>>>0>>0?h+1|0:h;k=h;f=n;n=Ci(b,h,32);h=j+n|0;f=f^h;j=W+m|0;j=h>>>0>>0?j+1|0:j;m=j^p;n=Ci(f,m,16);p=W;o=c;i=Ci(l,i,13)^b;c=i;b=o+c|0;o=g;g=k^W;l=o+g|0;c=b>>>0>>0?l+1|0:l;k=c;c=Ci(b,c,32);l=m+W|0;c=f+(c^255)|0;m=c>>>0>>0?l+1|0:l;f=p^m;l=c^n;n=Ci(l,f,21);p=W;i=Ci(i,g,17)^b;d=d^h;b=i+d|0;g=k^W;e=g+(e^j)|0;d=b>>>0>>0?e+1|0:e;j=d;d=Ci(b,d,32);e=f+W|0;d=d+l|0;f=d>>>0>>0?e+1|0:e;e=f^p;h=d^n;l=Ci(h,e,16);k=W;i=Ci(i,g,13)^b;b=c+i|0;g=W^j;j=m+g|0;c=b>>>0>>0?j+1|0:j;j=c;c=Ci(b,c,32);o=k;e=e+W|0;c=c+h|0;k=c>>>0>>0?e+1|0:e;e=o^k;h=c^l;l=Ci(h,e,21);m=W;i=Ci(i,g,17);g=j^W;f=f+g|0;n=f+1|0;o=f;j=d;f=b^i;d=d+f|0;b=j>>>0>d>>>0?n:o;i=b;b=Ci(d,b,32);e=e+W|0;b=b+h|0;j=b>>>0>>0?e+1|0:e;e=j^m;h=b^l;l=Ci(h,e,16);m=W;f=Ci(f,g,13);i=i^W;g=k+i|0;f=d^f;d=c+f|0;c=d>>>0>>0?g+1|0:g;g=c;c=Ci(d,c,32);e=e+W|0;c=c+h|0;k=c>>>0>>0?e+1|0:e;e=k^m;h=c^l;l=Ci(h,e,21);m=W;f=Ci(f,i,17);i=g^W;g=j+i|0;o=g+1|0;j=g;g=d^f;d=b+g|0;f=d>>>0>>0?o:j;b=Ci(d,f,32);e=e+W|0;b=b+h|0;j=b>>>0>>0?e+1|0:e;e=j^m;h=b^l;l=Ci(h,e,16);m=W;i=Ci(g,i,13);f=f^W;g=k+f|0;i=d^i;d=c+i|0;c=d>>>0>>0?g+1|0:g;g=c;c=Ci(d,c,32);e=e+W|0;c=c+h|0;e=c>>>0>>0?e+1|0:e;h=Ci(c^l,e^m,21);l=W;d=Ci(i,f,17)^d;f=g^W;i=Ci(d,f,13);f=f+j|0;d=b+d|0;b=W^(b>>>0>d>>>0?f+1|0:f);d=d^i;h=Ci(d,b,17)^h;f=W^l;b=b+e|0;g=b+1|0;e=b;b=c+d|0;c=c>>>0>b>>>0?g:e;b=Ci(b,c,32)^h^b;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;b=c^(W^f);w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;return 0}function Fc(a,b){var 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,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;c=T-624|0;T=c;d=c+480|0;fa(d,b);ga(d,1632,d);f=y[c+516>>2];y[c+276>>2]=f;g=y[c+512>>2];y[c+272>>2]=g;h=y[c+508>>2];y[c+268>>2]=h;i=y[c+504>>2];y[c+264>>2]=i;j=y[c+500>>2];y[c+260>>2]=j;k=y[c+496>>2];y[c+256>>2]=k;l=y[c+492>>2];y[c+252>>2]=l;m=y[c+488>>2];y[c+248>>2]=m;n=y[c+484>>2];y[c+244>>2]=n;p=y[c+480>>2];y[c+240>>2]=p+1;e=c+240|0;ga(e,e,33968);y[c+468>>2]=f-12055116;y[c+464>>2]=g-18696448;y[c+460>>2]=h-3247719;y[c+456>>2]=i-6275908;y[c+452>>2]=j-8787816;y[c+448>>2]=k+114729;y[c+444>>2]=l+6949391;y[c+440>>2]=m-15372611;y[c+436>>2]=n+13857413;y[c+432>>2]=p-10913610;o=c+192|0;ga(o,d,1584);y[c+228>>2]=0-y[c+228>>2];y[c+224>>2]=0-y[c+224>>2];y[c+220>>2]=0-y[c+220>>2];y[c+216>>2]=0-y[c+216>>2];y[c+212>>2]=0-y[c+212>>2];y[c+208>>2]=0-y[c+208>>2];y[c+204>>2]=0-y[c+204>>2];y[c+200>>2]=0-y[c+200>>2];y[c+196>>2]=0-y[c+196>>2];y[c+192>>2]=y[c+192>>2]^-1;ga(o,o,c+432|0);K=c+384|0;d=cc(K,e,o);e=c+336|0;ga(e,K,b);L=c+576|0;pa(L,e);N=z[c+576|0];B=y[c+420>>2];e=y[c+372>>2];C=y[c+416>>2];q=y[c+368>>2];D=y[c+412>>2];r=y[c+364>>2];E=y[c+408>>2];s=y[c+360>>2];F=y[c+404>>2];t=y[c+356>>2];G=y[c+400>>2];u=y[c+352>>2];H=y[c+396>>2];v=y[c+348>>2];I=y[c+392>>2];w=y[c+344>>2];J=y[c+388>>2];x=y[c+340>>2];M=y[c+384>>2];A=y[c+336>>2];b=d-1|0;y[c+612>>2]=b&f;y[c+608>>2]=b&g;y[c+604>>2]=b&h;y[c+600>>2]=b&i;y[c+596>>2]=b&j;y[c+592>>2]=b&k;y[c+588>>2]=b&l;y[c+584>>2]=b&m;y[c+580>>2]=b&n;y[c+576>>2]=p|0-d;d=0-(N&1)|0;A=b&(0-(A^d&(A^0-A))^M)^M;y[c+384>>2]=A;x=J^b&(J^0-(x^d&(x^0-x)));y[c+388>>2]=x;w=I^b&(I^0-(w^d&(w^0-w)));y[c+392>>2]=w;v=H^b&(H^0-(v^d&(v^0-v)));y[c+396>>2]=v;u=G^b&(G^0-(u^d&(u^0-u)));y[c+400>>2]=u;t=F^b&(F^0-(t^d&(t^0-t)));y[c+404>>2]=t;s=E^b&(E^0-(s^d&(s^0-s)));y[c+408>>2]=s;r=D^b&(D^0-(r^d&(r^0-r)));y[c+412>>2]=r;q=C^b&(C^0-(q^d&(q^0-q)));y[c+416>>2]=q;d=B^b&(B^0-(e^d&(e^0-e)));y[c+420>>2]=d;y[c+564>>2]=f;y[c+560>>2]=g;y[c+556>>2]=h;y[c+552>>2]=i;y[c+548>>2]=j;y[c+544>>2]=k;y[c+540>>2]=l;y[c+536>>2]=m;y[c+532>>2]=n;y[c+528>>2]=p-1;b=c+528|0;ga(b,b,L);ga(b,b,34016);f=y[c+192>>2];g=y[c+528>>2];h=y[c+196>>2];i=y[c+532>>2];j=y[c+200>>2];k=y[c+536>>2];l=y[c+204>>2];m=y[c+540>>2];n=y[c+208>>2];p=y[c+544>>2];e=y[c+212>>2];B=y[c+548>>2];C=y[c+216>>2];D=y[c+552>>2];E=y[c+220>>2];F=y[c+556>>2];G=y[c+224>>2];H=y[c+560>>2];I=y[c+228>>2];J=y[c+564>>2];y[c+180>>2]=d<<1;y[c+176>>2]=q<<1;y[c+172>>2]=r<<1;y[c+168>>2]=s<<1;y[c+164>>2]=t<<1;y[c+160>>2]=u<<1;y[c+156>>2]=v<<1;y[c+152>>2]=w<<1;y[c+148>>2]=x<<1;y[c+144>>2]=A<<1;y[c+564>>2]=J-I;y[c+560>>2]=H-G;y[c+556>>2]=F-E;y[c+552>>2]=D-C;y[c+548>>2]=B-e;y[c+544>>2]=p-n;y[c+540>>2]=m-l;y[c+536>>2]=k-j;y[c+532>>2]=i-h;y[c+528>>2]=g-f;d=c+144|0;ga(d,d,o);o=c+96|0;ga(o,b,34064);fa(c+288|0,K);b=y[c+324>>2];y[c+84>>2]=0-b;f=y[c+320>>2];y[c+80>>2]=0-f;g=y[c+316>>2];y[c+76>>2]=0-g;h=y[c+312>>2];y[c+72>>2]=0-h;i=y[c+308>>2];y[c+68>>2]=0-i;j=y[c+304>>2];y[c+64>>2]=0-j;k=y[c+300>>2];y[c+60>>2]=0-k;l=y[c+296>>2];y[c+56>>2]=0-l;m=y[c+292>>2];y[c+52>>2]=0-m;n=y[c+288>>2];y[c+48>>2]=1-n;y[c+36>>2]=b;y[c+32>>2]=f;y[c+28>>2]=g;y[c+24>>2]=h;y[c+20>>2]=i;y[c+16>>2]=j;y[c+12>>2]=k;y[c+8>>2]=l;y[c+4>>2]=m;y[c>>2]=n+1;ga(a,d,c);b=c+48|0;ga(a+40|0,b,o);ga(a+80|0,o,c);ga(a+120|0,d,b);T=c+624|0;}function Cc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=T+-64|0;T=g;a:{if((c-65&255)>>>0>191){f=-1;if(!(z[a+80|0]|z[a+81|0]<<8|(z[a+82|0]<<16|z[a+83|0]<<24)|(z[a+84|0]|z[a+85|0]<<8|(z[a+86|0]<<16|z[a+87|0]<<24)))){h=z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24);if(h>>>0>=129){d=a- -64|0;e=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);f=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);i=f;h=e+128|0;f=h>>>0<128?f+1|0:f;w[d|0]=h;w[d+1|0]=h>>>8;w[d+2|0]=h>>>16;w[d+3|0]=h>>>24;w[d+4|0]=f;w[d+5|0]=f>>>8;w[d+6|0]=f>>>16;w[d+7|0]=f>>>24;f=z[a+76|0]|z[a+77|0]<<8|(z[a+78|0]<<16|z[a+79|0]<<24);d=(i|0)==-1&e>>>0>4294967167;e=d+(z[a+72|0]|z[a+73|0]<<8|(z[a+74|0]<<16|z[a+75|0]<<24))|0;f=d>>>0>e>>>0?f+1|0:f;w[a+72|0]=e;w[a+73|0]=e>>>8;w[a+74|0]=e>>>16;w[a+75|0]=e>>>24;w[a+76|0]=f;w[a+77|0]=f>>>8;w[a+78|0]=f>>>16;w[a+79|0]=f>>>24;f=a+96|0;Eb(a,f);d=(z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24))-128|0;w[a+352|0]=d;w[a+353|0]=d>>>8;w[a+354|0]=d>>>16;w[a+355|0]=d>>>24;if(d>>>0>=129){break a}if(d){t(f,a+224|0,d);}h=z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24);}d=a- -64|0;f=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);j=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);e=j;i=f+h|0;e=i>>>0>>0?e+1|0:e;w[d|0]=i;w[d+1|0]=i>>>8;w[d+2|0]=i>>>16;w[d+3|0]=i>>>24;w[d+4|0]=e;w[d+5|0]=e>>>8;w[d+6|0]=e>>>16;w[d+7|0]=e>>>24;d=(e|0)==(j|0)&f>>>0>i>>>0|e>>>0>>0;f=z[a+76|0]|z[a+77|0]<<8|(z[a+78|0]<<16|z[a+79|0]<<24);e=d+(z[a+72|0]|z[a+73|0]<<8|(z[a+74|0]<<16|z[a+75|0]<<24))|0;f=e>>>0>>0?f+1|0:f;w[a+72|0]=e;w[a+73|0]=e>>>8;w[a+74|0]=e>>>16;w[a+75|0]=e>>>24;w[a+76|0]=f;w[a+77|0]=f>>>8;w[a+78|0]=f>>>16;w[a+79|0]=f>>>24;if(z[a+356|0]){w[a+88|0]=255;w[a+89|0]=255;w[a+90|0]=255;w[a+91|0]=255;w[a+92|0]=255;w[a+93|0]=255;w[a+94|0]=255;w[a+95|0]=255;}w[a+80|0]=255;w[a+81|0]=255;w[a+82|0]=255;w[a+83|0]=255;w[a+84|0]=255;w[a+85|0]=255;w[a+86|0]=255;w[a+87|0]=255;d=a+96|0;f=0;e=256-h|0;if(e){o(d+h|0,0,e);}Eb(a,d);e=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);y[g>>2]=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);y[g+4>>2]=e;e=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);y[g+8>>2]=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);y[g+12>>2]=e;e=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);y[g+16>>2]=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);y[g+20>>2]=e;e=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);y[g+24>>2]=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);y[g+28>>2]=e;e=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);y[g+32>>2]=z[a+32|0]|z[a+33|0]<<8|(z[a+34|0]<<16|z[a+35|0]<<24);y[g+36>>2]=e;e=z[a+44|0]|z[a+45|0]<<8|(z[a+46|0]<<16|z[a+47|0]<<24);y[g+40>>2]=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);y[g+44>>2]=e;e=z[a+52|0]|z[a+53|0]<<8|(z[a+54|0]<<16|z[a+55|0]<<24);y[g+48>>2]=z[a+48|0]|z[a+49|0]<<8|(z[a+50|0]<<16|z[a+51|0]<<24);y[g+52>>2]=e;e=z[a+60|0]|z[a+61|0]<<8|(z[a+62|0]<<16|z[a+63|0]<<24);y[g+56>>2]=z[a+56|0]|z[a+57|0]<<8|(z[a+58|0]<<16|z[a+59|0]<<24);y[g+60>>2]=e;if(c){t(b,g,c);}ja(a,64);ja(d,256);}T=g- -64|0;return f}na();s();}Q(1386,1234,306,1142);s();}function se(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=T-192|0;T=d;y[d+128>>2]=0;y[d+132>>2]=0;y[d+136>>2]=0;y[d+140>>2]=0;y[d+144>>2]=0;y[d+148>>2]=0;y[d+152>>2]=0;y[d+156>>2]=0;y[d+96>>2]=0;y[d+100>>2]=0;y[d+104>>2]=0;y[d+108>>2]=0;y[d+112>>2]=0;y[d+116>>2]=0;y[d+120>>2]=0;y[d+124>>2]=0;e=y[9821];y[d+160>>2]=y[9820];y[d+164>>2]=e;e=y[9823];y[d+168>>2]=y[9822];y[d+172>>2]=e;e=y[9825];y[d+176>>2]=y[9824];y[d+180>>2]=e;e=y[9827];y[d+184>>2]=y[9826];y[d+188>>2]=e;e=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);y[d+64>>2]=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);y[d+68>>2]=e;e=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);y[d+72>>2]=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);y[d+76>>2]=e;e=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);y[d+80>>2]=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);y[d+84>>2]=e;e=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);y[d+88>>2]=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);y[d+92>>2]=e;f=d+128|0;e=d- -64|0;Ec(f,e);Pa(f);c=y[d+156>>2];y[d+24>>2]=y[d+152>>2];y[d+28>>2]=c;c=y[d+148>>2];y[d+16>>2]=y[d+144>>2];y[d+20>>2]=c;c=y[d+140>>2];y[d+8>>2]=y[d+136>>2];y[d+12>>2]=c;c=y[d+132>>2];y[d>>2]=y[d+128>>2];y[d+4>>2]=c;y[d+120>>2]=0;y[d+124>>2]=0;y[d+112>>2]=0;y[d+116>>2]=0;y[d+104>>2]=0;y[d+108>>2]=0;y[d+96>>2]=0;y[d+100>>2]=0;c=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);y[d+64>>2]=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[d+68>>2]=c;c=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[d+72>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[d+76>>2]=c;c=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[d+80>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[d+84>>2]=c;c=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[d+88>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[d+92>>2]=c;y[d+56>>2]=0;y[d+60>>2]=0;y[d+48>>2]=0;y[d+52>>2]=0;y[d+40>>2]=0;y[d+44>>2]=0;y[d+32>>2]=0;y[d+36>>2]=0;De(e,d);b=y[d+124>>2];y[d+184>>2]=y[d+120>>2];y[d+188>>2]=b;b=y[d+116>>2];y[d+176>>2]=y[d+112>>2];y[d+180>>2]=b;b=y[d+108>>2];y[d+168>>2]=y[d+104>>2];y[d+172>>2]=b;b=y[d+100>>2];y[d+160>>2]=y[d+96>>2];y[d+164>>2]=b;b=y[d+92>>2];y[d+152>>2]=y[d+88>>2];y[d+156>>2]=b;b=y[d+84>>2];y[d+144>>2]=y[d+80>>2];y[d+148>>2]=b;b=y[d+76>>2];y[d+136>>2]=y[d+72>>2];y[d+140>>2]=b;b=y[d+68>>2];y[d+128>>2]=y[d+64>>2];y[d+132>>2]=b;Pa(f);c=y[d+156>>2];b=y[d+152>>2];w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;w[a+28|0]=c;w[a+29|0]=c>>>8;w[a+30|0]=c>>>16;w[a+31|0]=c>>>24;c=y[d+148>>2];b=y[d+144>>2];w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;w[a+20|0]=c;w[a+21|0]=c>>>8;w[a+22|0]=c>>>16;w[a+23|0]=c>>>24;c=y[d+140>>2];b=y[d+136>>2];w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;w[a+12|0]=c;w[a+13|0]=c>>>8;w[a+14|0]=c>>>16;w[a+15|0]=c>>>24;c=y[d+132>>2];b=y[d+128>>2];w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=c;w[a+5|0]=c>>>8;w[a+6|0]=c>>>16;w[a+7|0]=c>>>24;ja(f,64);T=d+192|0;}function ta(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;a:{if(!a){break a}d=a-8|0;b=y[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&2)){break a}b=y[d>>2];d=d-b|0;if(d>>>0>2];if(b>>>0<=255){e=y[d+8>>2];if((e|0)!=(c|0)){break e}j=40692,k=y[10173]&Bi(-2,b>>>3|0),y[j>>2]=k;break b}h=y[d+24>>2];if((c|0)!=(d|0)){b=y[d+8>>2];y[b+12>>2]=c;y[c+8>>2]=b;break c}e=y[d+20>>2];if(e){b=d+20|0;}else {e=y[d+16>>2];if(!e){break d}b=d+16|0;}while(1){g=b;c=e;b=c+20|0;e=y[c+20>>2];if(e){continue}b=c+16|0;e=y[c+16>>2];if(e){continue}break}y[g>>2]=0;break c}b=y[f+4>>2];if((b&3)!=3){break b}y[10175]=a;y[f+4>>2]=b&-2;y[d+4>>2]=a|1;y[f>>2]=a;return}y[e+12>>2]=c;y[c+8>>2]=e;break b}c=0;}if(!h){break b}b=y[d+28>>2];e=b<<2;f:{if(y[e+40996>>2]==(d|0)){y[e+40996>>2]=c;if(c){break f}j=40696,k=y[10174]&Bi(-2,b),y[j>>2]=k;break b}g:{if(y[h+16>>2]==(d|0)){y[h+16>>2]=c;break g}y[h+20>>2]=c;}if(!c){break b}}y[c+24>>2]=h;b=y[d+16>>2];if(b){y[c+16>>2]=b;y[b+24>>2]=c;}b=y[d+20>>2];if(!b){break b}y[c+20>>2]=b;y[b+24>>2]=c;}if(d>>>0>=f>>>0){break a}b=y[f+4>>2];if(!(b&1)){break a}h:{i:{j:{k:{if(!(b&2)){if(y[10179]==(f|0)){y[10179]=d;a=y[10176]+a|0;y[10176]=a;y[d+4>>2]=a|1;if(y[10178]!=(d|0)){break a}y[10175]=0;y[10178]=0;return}i=y[10178];if((i|0)==(f|0)){y[10178]=d;a=y[10175]+a|0;y[10175]=a;y[d+4>>2]=a|1;y[a+d>>2]=a;return}a=(b&-8)+a|0;c=y[f+12>>2];if(b>>>0<=255){e=y[f+8>>2];if((e|0)==(c|0)){j=40692,k=y[10173]&Bi(-2,b>>>3|0),y[j>>2]=k;break i}y[e+12>>2]=c;y[c+8>>2]=e;break i}h=y[f+24>>2];if((c|0)!=(f|0)){b=y[f+8>>2];y[b+12>>2]=c;y[c+8>>2]=b;break j}e=y[f+20>>2];if(e){b=f+20|0;}else {e=y[f+16>>2];if(!e){break k}b=f+16|0;}while(1){g=b;c=e;b=c+20|0;e=y[c+20>>2];if(e){continue}b=c+16|0;e=y[c+16>>2];if(e){continue}break}y[g>>2]=0;break j}y[f+4>>2]=b&-2;y[d+4>>2]=a|1;y[a+d>>2]=a;break h}c=0;}if(!h){break i}b=y[f+28>>2];e=b<<2;l:{if(y[e+40996>>2]==(f|0)){y[e+40996>>2]=c;if(c){break l}j=40696,k=y[10174]&Bi(-2,b),y[j>>2]=k;break i}m:{if(y[h+16>>2]==(f|0)){y[h+16>>2]=c;break m}y[h+20>>2]=c;}if(!c){break i}}y[c+24>>2]=h;b=y[f+16>>2];if(b){y[c+16>>2]=b;y[b+24>>2]=c;}b=y[f+20>>2];if(!b){break i}y[c+20>>2]=b;y[b+24>>2]=c;}y[d+4>>2]=a|1;y[a+d>>2]=a;if((d|0)!=(i|0)){break h}y[10175]=a;return}if(a>>>0<=255){b=(a&248)+40732|0;e=y[10173];a=1<<(a>>>3);n:{if(!(e&a)){y[10173]=a|e;a=b;break n}a=y[b+8>>2];}y[b+8>>2]=d;y[a+12>>2]=d;y[d+12>>2]=b;y[d+8>>2]=a;return}c=31;if(a>>>0<=16777215){b=H(a>>>8|0);c=(a>>>38-b&1|b<<1)^62;}y[d+28>>2]=c;y[d+16>>2]=0;y[d+20>>2]=0;b=(c<<2)+40996|0;o:{p:{e=y[10174];g=1<>2]=d;c=24;break q}c=a<<((c|0)!=31?25-(c>>>1|0)|0:0);b=y[b>>2];while(1){e=b;if((y[b+4>>2]&-8)==(a|0)){break p}b=c>>>29|0;c=c<<1;g=(b&4)+e|0;b=y[g+16>>2];if(b){continue}break}y[g+16>>2]=d;b=e;c=24;}e=d;g=d;a=8;break o}b=y[e+8>>2];y[b+12>>2]=d;y[e+8>>2]=d;c=8;g=0;a=24;}y[c+d>>2]=b;y[d+12>>2]=e;y[a+d>>2]=g;a=y[10181]-1|0;y[10181]=a?a:-1;}}function Ge(a,b,c){var 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,x=0,A=0;d=T-224|0;T=d;j=y[c+16>>2];e=c- -64|0;k=y[e>>2];l=y[c+80>>2];m=y[c+32>>2];n=y[c+48>>2];f=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);o=y[c+20>>2];p=y[c+68>>2];q=y[c+84>>2];r=y[c+36>>2];s=y[c+52>>2];g=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);t=y[c+24>>2];u=y[c+72>>2];v=y[c+88>>2];x=y[c+40>>2];A=y[c+56>>2];h=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);i=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);b=i^(y[c+44>>2]&y[c+60>>2]^(y[c+28>>2]^(y[c+92>>2]^y[c+76>>2])));w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=x&A^(u^v^t)^g;w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=r&s^(p^q^o)^f;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=m&n^(j^(k^l))^h;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;a=y[c+92>>2];y[d+216>>2]=y[c+88>>2];y[d+220>>2]=a;a=y[c+84>>2];y[d+208>>2]=y[c+80>>2];y[d+212>>2]=a;a=y[e+4>>2];y[d+176>>2]=y[e>>2];y[d+180>>2]=a;a=y[c+76>>2];y[d+184>>2]=y[c+72>>2];y[d+188>>2]=a;a=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=a;a=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=a;a=d+192|0;ia(a,d+176|0,d+160|0);b=y[d+204>>2];y[c+88>>2]=y[d+200>>2];y[c+92>>2]=b;b=y[d+196>>2];y[c+80>>2]=y[d+192>>2];y[c+84>>2]=b;b=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=b;b=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=b;b=y[e+4>>2];y[d+128>>2]=y[e>>2];y[d+132>>2]=b;b=y[c+76>>2];y[d+136>>2]=y[c+72>>2];y[d+140>>2]=b;ia(a,d+144|0,d+128|0);b=y[d+204>>2];y[c+72>>2]=y[d+200>>2];y[c+76>>2]=b;b=y[d+196>>2];y[e>>2]=y[d+192>>2];y[e+4>>2]=b;b=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=b;b=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=b;b=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=b;b=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=b;ia(a,d+112|0,d+96|0);b=y[d+204>>2];y[c+56>>2]=y[d+200>>2];y[c+60>>2]=b;b=y[d+196>>2];y[c+48>>2]=y[d+192>>2];y[c+52>>2]=b;b=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=b;b=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=b;b=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=b;b=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=b;ia(a,d+80|0,d- -64|0);b=y[d+204>>2];y[c+40>>2]=y[d+200>>2];y[c+44>>2]=b;b=y[d+196>>2];y[c+32>>2]=y[d+192>>2];y[c+36>>2]=b;b=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=b;b=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=b;b=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=b;b=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=b;ia(a,d+48|0,d+32|0);b=y[d+204>>2];y[c+24>>2]=y[d+200>>2];y[c+28>>2]=b;b=y[d+196>>2];y[c+16>>2]=y[d+192>>2];y[c+20>>2]=b;b=y[d+212>>2];y[d+16>>2]=y[d+208>>2];y[d+20>>2]=b;b=y[d+220>>2];y[d+24>>2]=y[d+216>>2];y[d+28>>2]=b;b=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=b;b=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=b;ia(a,d+16|0,d);a=y[d+192>>2];b=y[d+196>>2];e=y[d+200>>2];y[c+12>>2]=i^y[d+204>>2];y[c+8>>2]=e^g;y[c+4>>2]=b^f;y[c>>2]=a^h;T=d+224|0;}function Ee(a,b,c){var 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,x=0;d=T-224|0;T=d;g=y[c+16>>2];e=c- -64|0;f=y[e>>2];j=y[c+80>>2];k=y[c+32>>2];l=y[c+48>>2];h=y[c+20>>2];m=y[c+68>>2];n=y[c+84>>2];o=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);p=y[c+36>>2];q=y[c+52>>2];i=y[c+24>>2];r=y[c+72>>2];s=y[c+88>>2];t=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);u=y[c+40>>2];v=y[c+56>>2];x=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);b=y[c+44>>2]&y[c+60>>2]^(y[c+28>>2]^(y[c+76>>2]^(y[c+92>>2]^(z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24)))));w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;i=u&v^(i^(s^t^r));w[a+8|0]=i;w[a+9|0]=i>>>8;w[a+10|0]=i>>>16;w[a+11|0]=i>>>24;h=p&q^(h^(n^o^m));w[a+4|0]=h;w[a+5|0]=h>>>8;w[a+6|0]=h>>>16;w[a+7|0]=h>>>24;g=k&l^(g^(f^(j^x)));w[a|0]=g;w[a+1|0]=g>>>8;w[a+2|0]=g>>>16;w[a+3|0]=g>>>24;a=y[c+92>>2];y[d+216>>2]=y[c+88>>2];y[d+220>>2]=a;a=y[c+84>>2];y[d+208>>2]=y[c+80>>2];y[d+212>>2]=a;a=y[e+4>>2];y[d+176>>2]=y[e>>2];y[d+180>>2]=a;a=y[c+76>>2];y[d+184>>2]=y[c+72>>2];y[d+188>>2]=a;a=y[c+84>>2];y[d+160>>2]=y[c+80>>2];y[d+164>>2]=a;a=y[c+92>>2];y[d+168>>2]=y[c+88>>2];y[d+172>>2]=a;a=d+192|0;ia(a,d+176|0,d+160|0);f=y[d+204>>2];y[c+88>>2]=y[d+200>>2];y[c+92>>2]=f;f=y[d+196>>2];y[c+80>>2]=y[d+192>>2];y[c+84>>2]=f;f=y[c+52>>2];y[d+144>>2]=y[c+48>>2];y[d+148>>2]=f;f=y[c+60>>2];y[d+152>>2]=y[c+56>>2];y[d+156>>2]=f;f=y[e+4>>2];y[d+128>>2]=y[e>>2];y[d+132>>2]=f;f=y[c+76>>2];y[d+136>>2]=y[c+72>>2];y[d+140>>2]=f;ia(a,d+144|0,d+128|0);f=y[d+204>>2];y[c+72>>2]=y[d+200>>2];y[c+76>>2]=f;f=y[d+196>>2];y[e>>2]=y[d+192>>2];y[e+4>>2]=f;e=y[c+36>>2];y[d+112>>2]=y[c+32>>2];y[d+116>>2]=e;e=y[c+44>>2];y[d+120>>2]=y[c+40>>2];y[d+124>>2]=e;e=y[c+52>>2];y[d+96>>2]=y[c+48>>2];y[d+100>>2]=e;e=y[c+60>>2];y[d+104>>2]=y[c+56>>2];y[d+108>>2]=e;ia(a,d+112|0,d+96|0);e=y[d+204>>2];y[c+56>>2]=y[d+200>>2];y[c+60>>2]=e;e=y[d+196>>2];y[c+48>>2]=y[d+192>>2];y[c+52>>2]=e;e=y[c+20>>2];y[d+80>>2]=y[c+16>>2];y[d+84>>2]=e;e=y[c+28>>2];y[d+88>>2]=y[c+24>>2];y[d+92>>2]=e;e=y[c+36>>2];y[d+64>>2]=y[c+32>>2];y[d+68>>2]=e;e=y[c+44>>2];y[d+72>>2]=y[c+40>>2];y[d+76>>2]=e;ia(a,d+80|0,d- -64|0);e=y[d+204>>2];y[c+40>>2]=y[d+200>>2];y[c+44>>2]=e;e=y[d+196>>2];y[c+32>>2]=y[d+192>>2];y[c+36>>2]=e;e=y[c+4>>2];y[d+48>>2]=y[c>>2];y[d+52>>2]=e;e=y[c+12>>2];y[d+56>>2]=y[c+8>>2];y[d+60>>2]=e;e=y[c+20>>2];y[d+32>>2]=y[c+16>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+40>>2]=y[c+24>>2];y[d+44>>2]=e;ia(a,d+48|0,d+32|0);e=y[d+204>>2];y[c+24>>2]=y[d+200>>2];y[c+28>>2]=e;e=y[d+196>>2];y[c+16>>2]=y[d+192>>2];y[c+20>>2]=e;e=y[d+212>>2];y[d+16>>2]=y[d+208>>2];y[d+20>>2]=e;e=y[d+220>>2];y[d+24>>2]=y[d+216>>2];y[d+28>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;ia(a,d+16|0,d);a=y[d+192>>2];e=y[d+196>>2];f=y[d+200>>2];y[c+12>>2]=b^y[d+204>>2];y[c+8>>2]=f^i;y[c+4>>2]=e^h;y[c>>2]=a^g;T=d+224|0;}function bc(a,b,c,d,e){var 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,x=0,y=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;a:{if(!d){x=1634760805;y=2036477234;A=857760878;B=1797285236;break a}y=z[d+8|0]|z[d+9|0]<<8|(z[d+10|0]<<16|z[d+11|0]<<24);A=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);x=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);B=z[d+12|0]|z[d+13|0]<<8|(z[d+14|0]<<16|z[d+15|0]<<24);}d=x;E=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);k=E;F=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);o=F;G=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);g=G;H=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);f=H;h=A;I=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);l=I;J=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);i=J;K=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);p=K;L=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);m=L;b=y;M=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);n=M;q=B;N=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);s=N;O=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);r=O;P=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);c=P;while(1){t=Bi(h+k|0,7)^m;C=Bi(t+h|0,9)^r;u=Bi(c+d|0,7)^f;D=Bi(u+d|0,9)^p;Q=Bi(D+u|0,13)^c;v=Bi(n+q|0,7)^g;i=Bi(v+q|0,9)^i;g=Bi(i+v|0,13)^n;f=Bi(i+g|0,18)^q;j=Bi(b+l|0,7)^s;c=Q^Bi(f+j|0,7);r=C^Bi(c+f|0,9);s=Bi(c+r|0,13)^j;q=Bi(r+s|0,18)^f;m=j;j=Bi(b+j|0,9)^o;f=Bi(m+j|0,13)^l;b=Bi(f+j|0,18)^b;n=Bi(b+t|0,7)^g;p=Bi(n+b|0,9)^D;m=Bi(n+p|0,13)^t;b=Bi(p+m|0,18)^b;g=Bi(t+C|0,13)^k;h=Bi(g+C|0,18)^h;l=Bi(h+u|0,7)^f;i=Bi(l+h|0,9)^i;f=Bi(i+l|0,13)^u;h=Bi(i+f|0,18)^h;d=Bi(D+Q|0,18)^d;k=Bi(d+v|0,7)^g;o=Bi(k+d|0,9)^j;g=Bi(k+o|0,13)^v;d=Bi(o+g|0,18)^d;R=R+2|0;if(R>>>0>>0){continue}break}e=q+B|0;w[a+60|0]=e;w[a+61|0]=e>>>8;w[a+62|0]=e>>>16;w[a+63|0]=e>>>24;e=s+N|0;w[a+56|0]=e;w[a+57|0]=e>>>8;w[a+58|0]=e>>>16;w[a+59|0]=e>>>24;e=r+O|0;w[a+52|0]=e;w[a+53|0]=e>>>8;w[a+54|0]=e>>>16;w[a+55|0]=e>>>24;c=c+P|0;w[a+48|0]=c;w[a+49|0]=c>>>8;w[a+50|0]=c>>>16;w[a+51|0]=c>>>24;c=n+M|0;w[a+44|0]=c;w[a+45|0]=c>>>8;w[a+46|0]=c>>>16;w[a+47|0]=c>>>24;b=b+y|0;w[a+40|0]=b;w[a+41|0]=b>>>8;w[a+42|0]=b>>>16;w[a+43|0]=b>>>24;b=m+L|0;w[a+36|0]=b;w[a+37|0]=b>>>8;w[a+38|0]=b>>>16;w[a+39|0]=b>>>24;b=p+K|0;w[a+32|0]=b;w[a+33|0]=b>>>8;w[a+34|0]=b>>>16;w[a+35|0]=b>>>24;b=i+J|0;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=l+I|0;w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;b=h+A|0;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=f+H|0;w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;b=g+G|0;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=o+F|0;w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;b=k+E|0;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=d+x|0;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;}function qe(a,b,c,d,e,f,g,h,i){var j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0;if(b-65>>>0<4294967232|g>>>0>64){a=-1;}else {j=T;r=j;j=j-512&-64;T=j;a:{b:{if(!(!(d|e)|c)|(!a|(b-65&255)>>>0<=191)|(!(g?f:1)|g>>>0>=65)){break b}c:{if(g){if(!f){break b}d:{if(!h){m=725511199;n=-1694144372;l=-1377402159;h=1359893119;break d}m=(z[h+8|0]|z[h+9|0]<<8|(z[h+10|0]<<16|z[h+11|0]<<24))^725511199;n=(z[h+12|0]|z[h+13|0]<<8|(z[h+14|0]<<16|z[h+15|0]<<24))^-1694144372;l=(z[h|0]|z[h+1|0]<<8|(z[h+2|0]<<16|z[h+3|0]<<24))^-1377402159;h=(z[h+4|0]|z[h+5|0]<<8|(z[h+6|0]<<16|z[h+7|0]<<24))^1359893119;}e:{if(!i){k=327033209;p=1541459225;q=-79577749;i=528734635;break e}k=(z[i+8|0]|z[i+9|0]<<8|(z[i+10|0]<<16|z[i+11|0]<<24))^327033209;p=(z[i+12|0]|z[i+13|0]<<8|(z[i+14|0]<<16|z[i+15|0]<<24))^1541459225;q=(z[i|0]|z[i+1|0]<<8|(z[i+2|0]<<16|z[i+3|0]<<24))^-79577749;i=(z[i+4|0]|z[i+5|0]<<8|(z[i+6|0]<<16|z[i+7|0]<<24))^528734635;}o(j- -64|0,0,293);y[j+56>>2]=k;y[j+60>>2]=p;y[j+48>>2]=q;y[j+52>>2]=i;y[j+40>>2]=m;y[j+44>>2]=n;y[j+32>>2]=l;y[j+36>>2]=h;y[j+24>>2]=1595750129;y[j+28>>2]=-1521486534;y[j+16>>2]=-23791573;y[j+20>>2]=1013904242;y[j+8>>2]=-2067093701;y[j+12>>2]=-1150833019;y[j>>2]=(g<<8|b)^-222443256;y[j+4>>2]=g>>>24^1779033703;h=128;i=128-g|0;if(i){o((j+384|0)+g|0,0,i);}if(g){t(j+384|0,f,g);}f=j+384|0;t(j+96|0,f,128);y[j+352>>2]=128;ja(f,128);break c}f:{if(!h){m=725511199;n=-1694144372;g=1359893119;f=-1377402159;break f}m=(z[h+8|0]|z[h+9|0]<<8|(z[h+10|0]<<16|z[h+11|0]<<24))^725511199;n=(z[h+12|0]|z[h+13|0]<<8|(z[h+14|0]<<16|z[h+15|0]<<24))^-1694144372;g=(z[h+4|0]|z[h+5|0]<<8|(z[h+6|0]<<16|z[h+7|0]<<24))^1359893119;f=(z[h|0]|z[h+1|0]<<8|(z[h+2|0]<<16|z[h+3|0]<<24))^-1377402159;}g:{if(!i){k=327033209;p=1541459225;l=-79577749;i=528734635;break g}k=(z[i+8|0]|z[i+9|0]<<8|(z[i+10|0]<<16|z[i+11|0]<<24))^327033209;p=(z[i+12|0]|z[i+13|0]<<8|(z[i+14|0]<<16|z[i+15|0]<<24))^1541459225;l=(z[i|0]|z[i+1|0]<<8|(z[i+2|0]<<16|z[i+3|0]<<24))^-79577749;i=(z[i+4|0]|z[i+5|0]<<8|(z[i+6|0]<<16|z[i+7|0]<<24))^528734635;}h=0;o(j- -64|0,0,293);y[j+56>>2]=k;y[j+60>>2]=p;y[j+48>>2]=l;y[j+52>>2]=i;y[j+40>>2]=m;y[j+44>>2]=n;y[j+32>>2]=f;y[j+36>>2]=g;y[j+24>>2]=1595750129;y[j+28>>2]=-1521486534;y[j+16>>2]=-23791573;y[j+20>>2]=1013904242;y[j+8>>2]=-2067093701;y[j+12>>2]=-1150833019;y[j>>2]=b^-222443256;y[j+4>>2]=1779033703;}if(d|e){l=j+96|0;f=256-h|0;m=f;if(!e&d>>>0>f>>>0|e){n=j+224|0;while(1){if(f){t(h+l|0,c,f);}y[j+352>>2]=y[j+352>>2]+f;g=y[j+68>>2];i=g;h=y[j+64>>2];k=h+128|0;g=k>>>0<128?i+1|0:i;y[j+64>>2]=k;y[j+68>>2]=g;g=y[j+76>>2];h=(i|0)==-1&h>>>0>4294967167;i=h;h=h+y[j+72>>2]|0;g=i>>>0>h>>>0?g+1|0:g;y[j+72>>2]=h;y[j+76>>2]=g;Eb(j,l);t(l,n,128);k=y[j+352>>2];h=k-128|0;y[j+352>>2]=h;c=c+f|0;g=m;i=d-g|0;f=384-k|0;m=f;e=e-(d>>>0>>0)|0;d=i;if(!e&i>>>0>f>>>0|e){continue}break}}if(d){t(h+l|0,c,d);}y[j+352>>2]=d+y[j+352>>2];}Cc(j,a,b);T=r;break a}na();s();}a=0;}return a}function Lc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=a+b|0;c=y[a+4>>2];a:{b:{if(c&1){break b}if(!(c&2)){break a}c=y[a>>2];b=c+b|0;c:{d:{e:{a=a-c|0;if((a|0)!=y[10178]){d=y[a+12>>2];if(c>>>0<=255){e=y[a+8>>2];if((e|0)!=(d|0)){break e}j=40692,k=y[10173]&Bi(-2,c>>>3|0),y[j>>2]=k;break b}g=y[a+24>>2];if((a|0)!=(d|0)){c=y[a+8>>2];y[c+12>>2]=d;y[d+8>>2]=c;break c}e=y[a+20>>2];if(e){c=a+20|0;}else {e=y[a+16>>2];if(!e){break d}c=a+16|0;}while(1){h=c;d=e;c=d+20|0;e=y[d+20>>2];if(e){continue}c=d+16|0;e=y[d+16>>2];if(e){continue}break}y[h>>2]=0;break c}c=y[f+4>>2];if((c&3)!=3){break b}y[10175]=b;y[f+4>>2]=c&-2;y[a+4>>2]=b|1;y[f>>2]=b;return}y[e+12>>2]=d;y[d+8>>2]=e;break b}d=0;}if(!g){break b}c=y[a+28>>2];e=c<<2;f:{if(y[e+40996>>2]==(a|0)){y[e+40996>>2]=d;if(d){break f}j=40696,k=y[10174]&Bi(-2,c),y[j>>2]=k;break b}g:{if(y[g+16>>2]==(a|0)){y[g+16>>2]=d;break g}y[g+20>>2]=d;}if(!d){break b}}y[d+24>>2]=g;c=y[a+16>>2];if(c){y[d+16>>2]=c;y[c+24>>2]=d;}c=y[a+20>>2];if(!c){break b}y[d+20>>2]=c;y[c+24>>2]=d;}h:{i:{j:{k:{c=y[f+4>>2];if(!(c&2)){if(y[10179]==(f|0)){y[10179]=a;b=y[10176]+b|0;y[10176]=b;y[a+4>>2]=b|1;if(y[10178]!=(a|0)){break a}y[10175]=0;y[10178]=0;return}i=y[10178];if((i|0)==(f|0)){y[10178]=a;b=y[10175]+b|0;y[10175]=b;y[a+4>>2]=b|1;y[a+b>>2]=b;return}b=(c&-8)+b|0;d=y[f+12>>2];if(c>>>0<=255){e=y[f+8>>2];if((e|0)==(d|0)){j=40692,k=y[10173]&Bi(-2,c>>>3|0),y[j>>2]=k;break i}y[e+12>>2]=d;y[d+8>>2]=e;break i}g=y[f+24>>2];if((d|0)!=(f|0)){c=y[f+8>>2];y[c+12>>2]=d;y[d+8>>2]=c;break j}e=y[f+20>>2];if(e){c=f+20|0;}else {e=y[f+16>>2];if(!e){break k}c=f+16|0;}while(1){h=c;d=e;c=d+20|0;e=y[d+20>>2];if(e){continue}c=d+16|0;e=y[d+16>>2];if(e){continue}break}y[h>>2]=0;break j}y[f+4>>2]=c&-2;y[a+4>>2]=b|1;y[a+b>>2]=b;break h}d=0;}if(!g){break i}c=y[f+28>>2];e=c<<2;l:{if(y[e+40996>>2]==(f|0)){y[e+40996>>2]=d;if(d){break l}j=40696,k=y[10174]&Bi(-2,c),y[j>>2]=k;break i}m:{if(y[g+16>>2]==(f|0)){y[g+16>>2]=d;break m}y[g+20>>2]=d;}if(!d){break i}}y[d+24>>2]=g;c=y[f+16>>2];if(c){y[d+16>>2]=c;y[c+24>>2]=d;}c=y[f+20>>2];if(!c){break i}y[d+20>>2]=c;y[c+24>>2]=d;}y[a+4>>2]=b|1;y[a+b>>2]=b;if((a|0)!=(i|0)){break h}y[10175]=b;return}if(b>>>0<=255){c=(b&248)+40732|0;d=y[10173];b=1<<(b>>>3);n:{if(!(d&b)){y[10173]=b|d;b=c;break n}b=y[c+8>>2];}y[c+8>>2]=a;y[b+12>>2]=a;y[a+12>>2]=c;y[a+8>>2]=b;return}d=31;if(b>>>0<=16777215){c=H(b>>>8|0);d=(b>>>38-c&1|c<<1)^62;}y[a+28>>2]=d;y[a+16>>2]=0;y[a+20>>2]=0;c=(d<<2)+40996|0;o:{e=y[10174];h=1<>2]=a;y[a+24>>2]=c;break p}d=b<<((d|0)!=31?25-(d>>>1|0)|0:0);c=y[c>>2];while(1){e=c;if((y[c+4>>2]&-8)==(b|0)){break o}c=d>>>29|0;d=d<<1;h=e+(c&4)|0;c=y[h+16>>2];if(c){continue}break}y[h+16>>2]=a;y[a+24>>2]=e;}y[a+12>>2]=a;y[a+8>>2]=a;return}b=y[e+8>>2];y[b+12>>2]=a;y[e+8>>2]=a;y[a+24>>2]=0;y[a+12>>2]=e;y[a+8>>2]=b;}}function Bf(a,b,c,d,e,f,g,h,i,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;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=T-400|0;T=k;if(c){y[c>>2]=0;y[c+4>>2]=0;}if(d){w[d|0]=255;}p=i;i=j;j=-1;m=f;a:{b:{l=m>>>0<17;f=g;c:{if(l&!g){break c}l=g-l|0;q=l;g=m-17|0;if(!l&g>>>0>=4294967279|l){break b}n=k+32|0;o=a+32|0;_a(n,64,0,o,a);l=k+96|0;Ga(l,n);ja(n,64);la(l,h,p,i);la(l,39312,0-p&15,0);y[k+88>>2]=0;y[k+92>>2]=0;y[k+80>>2]=0;y[k+84>>2]=0;y[k+72>>2]=0;y[k+76>>2]=0;y[k+64>>2]=0;y[k+68>>2]=0;y[k+56>>2]=0;y[k+60>>2]=0;y[k+48>>2]=0;y[k+52>>2]=0;y[k+40>>2]=0;y[k+44>>2]=0;y[k+32>>2]=0;y[k+36>>2]=0;w[k+32|0]=z[e|0];gb(n,n,64,0,o,1,a);h=z[k+32|0];w[k+32|0]=z[e|0];la(l,n,64,0);e=e+1|0;la(l,e,g,q);la(l,39312,m-1&15,0);y[k+24>>2]=p;y[k+28>>2]=i;i=k+24|0;la(l,i,8,0);m=m+47|0;f=m>>>0<47?f+1|0:f;y[k+24>>2]=m;y[k+28>>2]=f;la(l,i,8,0);Fa(l,k);ja(l,256);if($a(k,e+g|0,16)){ja(k,16);break c}gb(b,e,g,q,o,2,a);w[a+36|0]=z[a+36|0]^z[k|0];w[a+37|0]=z[a+37|0]^z[k+1|0];w[a+38|0]=z[a+38|0]^z[k+2|0];w[a+39|0]=z[a+39|0]^z[k+3|0];w[a+40|0]=z[a+40|0]^z[k+4|0];w[a+41|0]=z[a+41|0]^z[k+5|0];w[a+42|0]=z[a+42|0]^z[k+6|0];w[a+43|0]=z[a+43|0]^z[k+7|0];Ke(o);d:{if(!(h&2)){if(!ya(o,4)){break d}}b=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);y[k+376>>2]=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);y[k+380>>2]=b;b=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);y[k+368>>2]=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);y[k+372>>2]=b;b=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);y[k+360>>2]=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);y[k+364>>2]=b;b=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);y[k+352>>2]=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);y[k+356>>2]=b;b=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);y[k+384>>2]=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);y[k+388>>2]=b;b=k+352|0;Yb(b,b,40,0,o,a);b=y[k+380>>2];e=y[k+376>>2];w[a+24|0]=e;w[a+25|0]=e>>>8;w[a+26|0]=e>>>16;w[a+27|0]=e>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[k+372>>2];e=y[k+368>>2];w[a+16|0]=e;w[a+17|0]=e>>>8;w[a+18|0]=e>>>16;w[a+19|0]=e>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[k+364>>2];e=y[k+360>>2];w[a+8|0]=e;w[a+9|0]=e>>>8;w[a+10|0]=e>>>16;w[a+11|0]=e>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[k+356>>2];e=y[k+352>>2];w[a|0]=e;w[a+1|0]=e>>>8;w[a+2|0]=e>>>16;w[a+3|0]=e>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=y[k+384>>2];e=y[k+388>>2];w[a+32|0]=1;w[a+33|0]=0;w[a+34|0]=0;w[a+35|0]=0;w[a+36|0]=b;w[a+37|0]=b>>>8;w[a+38|0]=b>>>16;w[a+39|0]=b>>>24;w[a+40|0]=e;w[a+41|0]=e>>>8;w[a+42|0]=e>>>16;w[a+43|0]=e>>>24;}if(c){y[c>>2]=g;y[c+4>>2]=q;}j=0;if(!d){break c}w[d|0]=h;}T=k+400|0;break a}na();s();}return j|0}function ne(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0;h=T+-64|0;T=h;l=Da(32);a:{if(!l){a=-22;break a}y[h+28>>2]=0;y[h+32>>2]=0;y[h+24>>2]=16;y[h+20>>2]=e;y[h+16>>2]=d;y[h+12>>2]=c;y[h+8>>2]=32;y[h+4>>2]=l;y[h+36>>2]=0;y[h+40>>2]=0;y[h+60>>2]=0;y[h+56>>2]=1;y[h+52>>2]=1;y[h+48>>2]=b;y[h+44>>2]=a;a=Sb(h+4|0,g);b:{if(a){ja(l,32);break b}c:{if(!f){break c}i=h+4|0;e=T-32|0;T=e;a=-31;d:{e:{f:{switch(g-1|0){case 1:a=z[1439]|z[1440]<<8|(z[1441]<<16|z[1442]<<24);b=z[1435]|z[1436]<<8|(z[1437]<<16|z[1438]<<24);w[f+5|0]=b;w[f+6|0]=b>>>8;w[f+7|0]=b>>>16;w[f+8|0]=b>>>24;w[f+9|0]=a;w[f+10|0]=a>>>8;w[f+11|0]=a>>>16;w[f+12|0]=a>>>24;a=z[1434]|z[1435]<<8|(z[1436]<<16|z[1437]<<24);b=z[1430]|z[1431]<<8|(z[1432]<<16|z[1433]<<24);w[f|0]=b;w[f+1|0]=b>>>8;w[f+2|0]=b>>>16;w[f+3|0]=b>>>24;w[f+4|0]=a;w[f+5|0]=a>>>8;w[f+6|0]=a>>>16;w[f+7|0]=a>>>24;c=-12;b=12;break e;case 0:break f;default:break d}}a=z[1426]|z[1427]<<8|(z[1428]<<16|z[1429]<<24);w[f+8|0]=a;w[f+9|0]=a>>>8;w[f+10|0]=a>>>16;w[f+11|0]=a>>>24;a=z[1422]|z[1423]<<8|(z[1424]<<16|z[1425]<<24);b=z[1418]|z[1419]<<8|(z[1420]<<16|z[1421]<<24);w[f|0]=b;w[f+1|0]=b>>>8;w[f+2|0]=b>>>16;w[f+3|0]=b>>>24;w[f+4|0]=a;w[f+5|0]=a>>>8;w[f+6|0]=a>>>16;w[f+7|0]=a>>>24;c=-11;b=11;}a=nc(i);if(a){break d}w[e+13|0]=0;w[e+11|0]=49;w[e+12|0]=57;g:{c=c+128|0;d=e+11|0;a=Ha(d);if(c>>>0<=a>>>0){break g}b=b+f|0;g=a+1|0;if(g){t(b,d,g);}j=c-a|0;if(j>>>0<4){break g}g=a+b|0;w[g|0]=36;w[g+1|0]=109;w[g+2|0]=61;w[g+3|0]=0;a=y[i+44>>2];b=10;while(1){h:{c=b;b=b-1|0;k=b+(e+22|0)|0;d=(a>>>0)/10|0;w[k|0]=a-E(d,10)|48;if(a>>>0<10){break h}a=d;if(b){continue}}break}a=11-c|0;if(a){t(e+11|0,k,a);}b=e+11|0;w[b+a|0]=0;d=j-3|0;a=Ha(b);if(d>>>0<=a>>>0){break g}c=g+3|0;g=a+1|0;if(g){t(c,b,g);}j=d-a|0;if(j>>>0<4){break g}g=a+c|0;w[g|0]=44;w[g+1|0]=116;w[g+2|0]=61;w[g+3|0]=0;a=y[i+40>>2];b=10;while(1){i:{c=b;b=b-1|0;k=b+(e+22|0)|0;d=(a>>>0)/10|0;w[k|0]=a-E(d,10)|48;if(a>>>0<10){break i}a=d;if(b){continue}}break}a=11-c|0;if(a){t(e+11|0,k,a);}b=e+11|0;w[b+a|0]=0;d=j-3|0;a=Ha(b);if(d>>>0<=a>>>0){break g}c=g+3|0;g=a+1|0;if(g){t(c,b,g);}j=d-a|0;if(j>>>0<4){break g}g=a+c|0;w[g|0]=44;w[g+1|0]=112;w[g+2|0]=61;w[g+3|0]=0;a=y[i+48>>2];b=10;while(1){j:{c=b;b=b-1|0;k=b+(e+22|0)|0;d=(a>>>0)/10|0;w[k|0]=a-E(d,10)|48;if(a>>>0<10){break j}a=d;if(b){continue}}break}a=11-c|0;if(a){t(e+11|0,k,a);}b=e+11|0;w[b+a|0]=0;d=j-3|0;a=Ha(b);if(d>>>0<=a>>>0){break g}c=g+3|0;g=a+1|0;if(g){t(c,b,g);}d=d-a|0;if(d>>>0<2){break g}a=a+c|0;w[a|0]=36;w[a+1|0]=0;b=a+1|0;c=d-1|0;if(!Bc(b,c,y[i+16>>2],y[i+20>>2],3)){break g}a=-31;d=c;c=Ha(b);d=d-c|0;if(d>>>0<2){break d}a=b+c|0;w[a|0]=36;w[a+1|0]=0;a=Bc(a+1|0,d-1|0,y[i>>2],y[i+4>>2],3)?0:-31;break d}a=-31;}T=e+32|0;if(!a){break c}ja(l,32);ja(f,128);a=-31;break b}ja(l,32);a=0;}ta(l);}T=h- -64|0;return a}function ib(a,b){var 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,x=0,A=0,B=0;c=T-512|0;T=c;d=-1;f=z[b+31|0];e=z[b|0];if(!((((((f^-1)&127|z[b+1|0]&(z[b+2|0]&(z[b+3|0]&(z[b+4|0]&(z[b+5|0]&(z[b+6|0]&(z[b+7|0]&(z[b+8|0]&(z[b+9|0]&(z[b+10|0]&(z[b+11|0]&(z[b+12|0]&(z[b+13|0]&(z[b+14|0]&(z[b+15|0]&(z[b+16|0]&(z[b+17|0]&(z[b+18|0]&(z[b+19|0]&(z[b+20|0]&(z[b+21|0]&(z[b+22|0]&(z[b+23|0]&(z[b+24|0]&(z[b+25|0]&(z[b+26|0]&(z[b+27|0]&(z[b+28|0]&(z[b+29|0]&z[b+30|0]))))))))))))))))))))))))))))^-1)&255)-1&236-e)>>>8|(e|z[41218]>>>2^f>>>7))&1)){f=c+336|0;cb(f,b);fa(c+288|0,f);b=y[c+324>>2];y[c+276>>2]=0-b;d=y[c+320>>2];y[c+272>>2]=0-d;e=y[c+316>>2];y[c+268>>2]=0-e;g=y[c+312>>2];y[c+264>>2]=0-g;h=y[c+308>>2];y[c+260>>2]=0-h;i=y[c+304>>2];y[c+256>>2]=0-i;j=y[c+300>>2];y[c+252>>2]=0-j;k=y[c+296>>2];y[c+248>>2]=0-k;l=y[c+292>>2];y[c+244>>2]=0-l;m=y[c+288>>2];y[c+240>>2]=1-m;n=c+144|0;q=c+240|0;fa(n,q);y[c+228>>2]=b;y[c+224>>2]=d;y[c+220>>2]=e;y[c+216>>2]=g;y[c+212>>2]=h;y[c+208>>2]=i;y[c+204>>2]=j;y[c+200>>2]=k;y[c+196>>2]=l;y[c+192>>2]=m+1;d=c+96|0;g=c+192|0;fa(d,g);b=c+48|0;ga(b,1584,n);e=y[c+96>>2];h=y[c+48>>2];i=y[c+100>>2];j=y[c+52>>2];k=y[c+104>>2];l=y[c+56>>2];m=y[c+108>>2];n=y[c+60>>2];o=y[c+112>>2];p=y[c+64>>2];r=y[c+116>>2];s=y[c+68>>2];t=y[c+120>>2];u=y[c+72>>2];v=y[c+124>>2];x=y[c+76>>2];A=y[c+128>>2];B=y[c+80>>2];y[c+84>>2]=0-(y[c+84>>2]+y[c+132>>2]|0);y[c+80>>2]=0-(A+B|0);y[c+76>>2]=0-(v+x|0);y[c+72>>2]=0-(t+u|0);y[c+68>>2]=0-(r+s|0);y[c+64>>2]=0-(o+p|0);y[c+60>>2]=0-(m+n|0);y[c+56>>2]=0-(k+l|0);y[c+52>>2]=0-(i+j|0);y[c+48>>2]=0-(e+h|0);ga(c,b,d);y[c+388>>2]=0;y[c+392>>2]=0;y[c+384>>2]=1;y[c+396>>2]=0;y[c+400>>2]=0;y[c+404>>2]=0;y[c+408>>2]=0;y[c+412>>2]=0;y[c+416>>2]=0;y[c+420>>2]=0;e=c+432|0;p=cc(e,c+384|0,c);ga(a,e,g);d=a+40|0;ga(d,e,a);ga(d,d,b);ga(a,a,f);f=y[a+36>>2]<<1;y[a+36>>2]=f;e=y[a+32>>2]<<1;y[a+32>>2]=e;g=y[a+28>>2]<<1;y[a+28>>2]=g;h=y[a+24>>2]<<1;y[a+24>>2]=h;i=y[a+20>>2]<<1;y[a+20>>2]=i;j=y[a+16>>2]<<1;y[a+16>>2]=j;k=y[a+12>>2]<<1;y[a+12>>2]=k;l=y[a+8>>2]<<1;y[a+8>>2]=l;m=y[a+4>>2]<<1;y[a+4>>2]=m;n=y[a>>2]<<1;y[a>>2]=n;o=c+480|0;pa(o,a);b=0-(w[c+480|0]&1)|0;y[a+36>>2]=f^b&(f^0-f);y[a+32>>2]=e^b&(e^0-e);y[a+28>>2]=g^b&(g^0-g);y[a+24>>2]=h^b&(h^0-h);y[a+20>>2]=i^b&(i^0-i);y[a+16>>2]=j^b&(j^0-j);y[a+12>>2]=k^b&(k^0-k);y[a+8>>2]=l^b&(l^0-l);y[a+4>>2]=m^b&(m^0-m);y[a>>2]=n^b&(n^0-n);ga(d,q,d);y[a+84>>2]=0;y[a+88>>2]=0;y[a+80>>2]=1;y[a+92>>2]=0;y[a+96>>2]=0;y[a+100>>2]=0;y[a+104>>2]=0;y[a+108>>2]=0;y[a+112>>2]=0;y[a+116>>2]=0;b=a+120|0;ga(b,a,d);pa(o,b);a=z[c+480|0];pa(o,d);d=0-(ya(o,32)|(1-p|a&1))|0;}T=c+512|0;return d}function Cf(a,b,c,d,e,f,g,h,i,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;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;k=T-384|0;T=k;if(c){y[c>>2]=0;y[c+4>>2]=0;}a:{m=0|e;if(!f&m>>>0<4294967279){n=k+16|0;e=a+32|0;_a(n,64,0,e,a);l=k+80|0;Ga(l,n);ja(n,64);o=g;g=h|p;la(l,o,g,i);la(l,39312,0-g&15,0);y[k+16>>2]=0;y[k+20>>2]=0;y[k+72>>2]=0;y[k+76>>2]=0;y[k+64>>2]=0;y[k+68>>2]=0;y[k+56>>2]=0;y[k+60>>2]=0;y[k+48>>2]=0;y[k+52>>2]=0;y[k+40>>2]=0;y[k+44>>2]=0;y[k+32>>2]=0;y[k+36>>2]=0;y[k+24>>2]=0;y[k+28>>2]=0;w[k+16|0]=j;gb(n,n,64,0,e,1,a);la(l,n,64,0);w[b|0]=z[k+16|0];b=b+1|0;gb(b,d,m,f,e,2,a);la(l,b,m,f);la(l,39312,m&15,0);y[k+8>>2]=g;y[k+12>>2]=i;d=k+8|0;la(l,d,8,0);y[k+8>>2]=m- -64;y[k+12>>2]=f-((m>>>0<4294967232)-1|0);la(l,d,8,0);b=b+m|0;Fa(l,b);ja(l,256);w[a+36|0]=z[a+36|0]^z[b|0];w[a+37|0]=z[a+37|0]^z[b+1|0];w[a+38|0]=z[a+38|0]^z[b+2|0];w[a+39|0]=z[a+39|0]^z[b+3|0];w[a+40|0]=z[a+40|0]^z[b+4|0];w[a+41|0]=z[a+41|0]^z[b+5|0];w[a+42|0]=z[a+42|0]^z[b+6|0];w[a+43|0]=z[a+43|0]^z[b+7|0];Ke(e);b:{if(!(j&2)){if(!ya(e,4)){break b}}b=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);y[k+360>>2]=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);y[k+364>>2]=b;b=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);y[k+352>>2]=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);y[k+356>>2]=b;b=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);y[k+344>>2]=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);y[k+348>>2]=b;b=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);y[k+336>>2]=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);y[k+340>>2]=b;b=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);y[k+368>>2]=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);y[k+372>>2]=b;b=k+336|0;Yb(b,b,40,0,e,a);b=y[k+364>>2];d=y[k+360>>2];w[a+24|0]=d;w[a+25|0]=d>>>8;w[a+26|0]=d>>>16;w[a+27|0]=d>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[k+356>>2];d=y[k+352>>2];w[a+16|0]=d;w[a+17|0]=d>>>8;w[a+18|0]=d>>>16;w[a+19|0]=d>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[k+348>>2];d=y[k+344>>2];w[a+8|0]=d;w[a+9|0]=d>>>8;w[a+10|0]=d>>>16;w[a+11|0]=d>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[k+340>>2];d=y[k+336>>2];w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=y[k+368>>2];d=y[k+372>>2];w[e|0]=1;w[e+1|0]=0;w[e+2|0]=0;w[e+3|0]=0;w[a+36|0]=b;w[a+37|0]=b>>>8;w[a+38|0]=b>>>16;w[a+39|0]=b>>>24;w[a+40|0]=d;w[a+41|0]=d>>>8;w[a+42|0]=d>>>16;w[a+43|0]=d>>>24;}if(c){a=m+17|0;f=a>>>0<17?f+1|0:f;y[c>>2]=a;y[c+4>>2]=f;}T=k+384|0;break a}na();s();}return 0}function sc(a,b,c,d){var e=0,f=0,g=0;e=T;g=e;e=e-576&-64;T=e;y[e+188>>2]=b;a:{if(b>>>0<=64){f=e+192|0;if((Ja(f,0,0,b)|0)<0){break a}if((oa(f,e+188|0,4,0)|0)<0);if((oa(f,c,d,0)|0)<0);Ia(f,a,b);break a}f=e+192|0;if((Ja(f,0,0,64)|0)<0){break a}if((oa(f,e+188|0,4,0)|0)<0);if((oa(f,c,d,0)|0)<0);if((Ia(f,e+112|0,64)|0)<0){break a}c=y[e+140>>2];d=y[e+136>>2];w[a+24|0]=d;w[a+25|0]=d>>>8;w[a+26|0]=d>>>16;w[a+27|0]=d>>>24;w[a+28|0]=c;w[a+29|0]=c>>>8;w[a+30|0]=c>>>16;w[a+31|0]=c>>>24;c=y[e+132>>2];d=y[e+128>>2];w[a+16|0]=d;w[a+17|0]=d>>>8;w[a+18|0]=d>>>16;w[a+19|0]=d>>>24;w[a+20|0]=c;w[a+21|0]=c>>>8;w[a+22|0]=c>>>16;w[a+23|0]=c>>>24;c=y[e+124>>2];d=y[e+120>>2];w[a+8|0]=d;w[a+9|0]=d>>>8;w[a+10|0]=d>>>16;w[a+11|0]=d>>>24;w[a+12|0]=c;w[a+13|0]=c>>>8;w[a+14|0]=c>>>16;w[a+15|0]=c>>>24;c=y[e+116>>2];d=y[e+112>>2];w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=c;w[a+5|0]=c>>>8;w[a+6|0]=c>>>16;w[a+7|0]=c>>>24;a=a+32|0;b=b-32|0;if(b>>>0>=65){while(1){c=y[e+172>>2];y[e+104>>2]=y[e+168>>2];y[e+108>>2]=c;c=y[e+164>>2];y[e+96>>2]=y[e+160>>2];y[e+100>>2]=c;c=y[e+156>>2];y[e+88>>2]=y[e+152>>2];y[e+92>>2]=c;c=y[e+148>>2];y[e+80>>2]=y[e+144>>2];y[e+84>>2]=c;c=y[e+140>>2];y[e+72>>2]=y[e+136>>2];y[e+76>>2]=c;c=y[e+132>>2];y[e+64>>2]=y[e+128>>2];y[e+68>>2]=c;c=y[e+124>>2];y[e+56>>2]=y[e+120>>2];y[e+60>>2]=c;c=y[e+116>>2];y[e+48>>2]=y[e+112>>2];y[e+52>>2]=c;if((Wb(e+112|0,64,e+48|0,64,0,0,0)|0)<0){break a}c=y[e+140>>2];d=y[e+136>>2];w[a+24|0]=d;w[a+25|0]=d>>>8;w[a+26|0]=d>>>16;w[a+27|0]=d>>>24;w[a+28|0]=c;w[a+29|0]=c>>>8;w[a+30|0]=c>>>16;w[a+31|0]=c>>>24;c=y[e+132>>2];d=y[e+128>>2];w[a+16|0]=d;w[a+17|0]=d>>>8;w[a+18|0]=d>>>16;w[a+19|0]=d>>>24;w[a+20|0]=c;w[a+21|0]=c>>>8;w[a+22|0]=c>>>16;w[a+23|0]=c>>>24;c=y[e+124>>2];d=y[e+120>>2];w[a+8|0]=d;w[a+9|0]=d>>>8;w[a+10|0]=d>>>16;w[a+11|0]=d>>>24;w[a+12|0]=c;w[a+13|0]=c>>>8;w[a+14|0]=c>>>16;w[a+15|0]=c>>>24;c=y[e+116>>2];d=y[e+112>>2];w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=c;w[a+5|0]=c>>>8;w[a+6|0]=c>>>16;w[a+7|0]=c>>>24;a=a+32|0;b=b-32|0;if(b>>>0>64){continue}break}}c=y[e+172>>2];y[e+104>>2]=y[e+168>>2];y[e+108>>2]=c;c=y[e+164>>2];y[e+96>>2]=y[e+160>>2];y[e+100>>2]=c;c=y[e+156>>2];y[e+88>>2]=y[e+152>>2];y[e+92>>2]=c;c=y[e+148>>2];y[e+80>>2]=y[e+144>>2];y[e+84>>2]=c;c=y[e+140>>2];y[e+72>>2]=y[e+136>>2];y[e+76>>2]=c;c=y[e+132>>2];y[e+64>>2]=y[e+128>>2];y[e+68>>2]=c;c=y[e+124>>2];y[e+56>>2]=y[e+120>>2];y[e+60>>2]=c;c=y[e+116>>2];y[e+48>>2]=y[e+112>>2];y[e+52>>2]=c;c=e+112|0;if(!b|(Wb(c,b,e+48|0,64,0,0,0)|0)<0){break a}t(a,c,b);}ja(e+192|0,384);T=g;}function Id(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,x=0,A=0,C=0,D=0,F=0,G=0,H=0;m=Ai(i,0,h,0);p=W;if(!p&m>>>0>=1073741824|p){y[10172]=22;return -1}if((g|0)==1|g>>>0>1){y[10172]=22;return -1}m=f;o=g;while(1){if(m|o){p=m;m=m&m-1;o=o-!p&o;r=r+1|0;q=r?q:q+1|0;continue}break}W=q;if(!(!W&r>>>0<2&(!g&f>>>0>=2|(g|0)!=0))){y[10172]=28;return -1}if(!(i?h:0)){y[10172]=28;return -1}a:{b:{if(!(33554431/(i>>>0)>>>0>>0|h>>>0>16777215)){if(!g&33554431/(h>>>0)>>>0>=f>>>0){break b}}break a}r=h<<7;x=E(r,i);v=E(f,r);m=v+x|0;if(x>>>0>m>>>0){break a}q=h<<8;m=(q+m|0)- -64|0;if(m>>>0<=q>>>0){break a}c:{if(m>>>0>B[a+8>>2]){u=-1;if(Ob(a));p=T-16|0;T=p;o=Pc(p+12|0,m);y[10172]=o;o=o?0:y[p+12>>2];y[a+4>>2]=o;y[a>>2]=o;y[a+8>>2]=o?m:0;T=p+16|0;if(!o){break c}}A=y[a+4>>2];Jd(b,c,d,e,A,x);u=x+A|0;m=u+v|0;p=m+(h<<7)|0;G=(p+r|0)+-64|0;F=f-1|0;o=h<<5;v=m+q|0;H=(m+r|0)+-64|0;while(1){q=E(r,D)+A|0;d=0;while(1){a=d<<2;e=a+q|0;y[a+m>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);e=a|4;l=e+m|0;e=e+q|0;y[l>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);e=a|8;l=e+m|0;e=e+q|0;y[l>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);a=a|12;e=a+m|0;a=a+q|0;y[e>>2]=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);d=d+4|0;if((o|0)!=(d|0)){continue}break}a=0;d=0;while(1){e=!r;if(!e){t(u+(E(a,o)<<2)|0,m,r);}Nb(m,p,v,h);if(!e){t(u+(E(o,a|1)<<2)|0,p,r);}Nb(p,m,v,h);C=0;e=0;a=a+2|0;d=a>>>0<2?d+1|0:d;if((g|0)==(d|0)&a>>>0>>0|d>>>0>>0){continue}break}while(1){a=u+(E(o,F&y[H>>2])<<2)|0;d=0;while(1){l=d<<2;n=l+m|0;y[n>>2]=y[n>>2]^y[a+l>>2];n=l|4;s=n+m|0;y[s>>2]=y[s>>2]^y[a+n>>2];n=l|8;s=n+m|0;y[s>>2]=y[s>>2]^y[a+n>>2];l=l|12;n=l+m|0;y[n>>2]=y[n>>2]^y[a+l>>2];d=d+4|0;if((o|0)!=(d|0)){continue}break}Nb(m,p,v,h);a=u+(E(o,F&y[G>>2])<<2)|0;d=0;while(1){l=d<<2;n=l+p|0;y[n>>2]=y[n>>2]^y[a+l>>2];n=l|4;s=n+p|0;y[s>>2]=y[s>>2]^y[a+n>>2];n=l|8;s=n+p|0;y[s>>2]=y[s>>2]^y[a+n>>2];l=l|12;n=l+p|0;y[n>>2]=y[n>>2]^y[a+l>>2];d=d+4|0;if((o|0)!=(d|0)){continue}break}Nb(p,m,v,h);d=0;C=C+2|0;a=C>>>0<2?e+1|0:e;e=a;if((g|0)==(a|0)&f>>>0>C>>>0|a>>>0>>0){continue}break}while(1){a=d<<2;e=a+q|0;l=y[a+m>>2];w[e|0]=l;w[e+1|0]=l>>>8;w[e+2|0]=l>>>16;w[e+3|0]=l>>>24;l=a|4;e=l+q|0;l=y[m+l>>2];w[e|0]=l;w[e+1|0]=l>>>8;w[e+2|0]=l>>>16;w[e+3|0]=l>>>24;l=a|8;e=l+q|0;l=y[m+l>>2];w[e|0]=l;w[e+1|0]=l>>>8;w[e+2|0]=l>>>16;w[e+3|0]=l>>>24;e=a|12;a=e+q|0;e=y[e+m>>2];w[a|0]=e;w[a+1|0]=e>>>8;w[a+2|0]=e>>>16;w[a+3|0]=e>>>24;d=d+4|0;if((o|0)!=(d|0)){continue}break}D=D+1|0;if((D|0)!=(i|0)){continue}break}Jd(b,c,A,x,j,k);u=0;}return u}y[10172]=48;return -1}function ue(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T-192|0;T=d;y[d+96>>2]=0;y[d+100>>2]=0;y[d+104>>2]=0;y[d+108>>2]=0;y[d+112>>2]=0;y[d+116>>2]=0;y[d+120>>2]=0;y[d+124>>2]=0;e=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);y[d+64>>2]=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[d+68>>2]=e;e=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[d+72>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[d+76>>2]=e;e=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[d+80>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[d+84>>2]=e;e=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[d+88>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[d+92>>2]=e;y[d+32>>2]=0;y[d+36>>2]=0;y[d+40>>2]=0;y[d+44>>2]=0;y[d+48>>2]=0;y[d+52>>2]=0;y[d+56>>2]=0;y[d+60>>2]=0;b=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);y[d>>2]=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);y[d+4>>2]=b;b=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);y[d+8>>2]=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);y[d+12>>2]=b;b=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);y[d+16>>2]=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);y[d+20>>2]=b;b=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);y[d+24>>2]=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);y[d+28>>2]=b;De(d- -64|0,d);c=y[d+124>>2];y[d+184>>2]=y[d+120>>2];y[d+188>>2]=c;b=y[d+116>>2];y[d+176>>2]=y[d+112>>2];y[d+180>>2]=b;b=y[d+108>>2];y[d+168>>2]=y[d+104>>2];y[d+172>>2]=b;b=y[d+100>>2];y[d+160>>2]=y[d+96>>2];y[d+164>>2]=b;b=y[d+92>>2];y[d+152>>2]=y[d+88>>2];y[d+156>>2]=b;b=y[d+84>>2];y[d+144>>2]=y[d+80>>2];y[d+148>>2]=b;b=y[d+76>>2];y[d+136>>2]=y[d+72>>2];y[d+140>>2]=b;b=y[d+68>>2];y[d+128>>2]=y[d+64>>2];y[d+132>>2]=b;b=d+128|0;Pa(b);e=y[d+156>>2];c=y[d+152>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=e;w[a+29|0]=e>>>8;w[a+30|0]=e>>>16;w[a+31|0]=e>>>24;e=y[d+148>>2];c=y[d+144>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=e;w[a+21|0]=e>>>8;w[a+22|0]=e>>>16;w[a+23|0]=e>>>24;e=y[d+140>>2];c=y[d+136>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=e;w[a+13|0]=e>>>8;w[a+14|0]=e>>>16;w[a+15|0]=e>>>24;e=y[d+132>>2];c=y[d+128>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=e;w[a+5|0]=e>>>8;w[a+6|0]=e>>>16;w[a+7|0]=e>>>24;ja(b,64);T=d+192|0;}function Nb(a,b,c,d){var e=0,f=0,g=0,h=0,i=0;e=((d<<7)+a|0)+-64|0;f=y[e+60>>2];y[c+56>>2]=y[e+56>>2];y[c+60>>2]=f;f=y[e+52>>2];y[c+48>>2]=y[e+48>>2];y[c+52>>2]=f;f=y[e+44>>2];y[c+40>>2]=y[e+40>>2];y[c+44>>2]=f;f=y[e+36>>2];y[c+32>>2]=y[e+32>>2];y[c+36>>2]=f;f=y[e+28>>2];y[c+24>>2]=y[e+24>>2];y[c+28>>2]=f;f=y[e+20>>2];y[c+16>>2]=y[e+16>>2];y[c+20>>2]=f;f=y[e+12>>2];y[c+8>>2]=y[e+8>>2];y[c+12>>2]=f;f=y[e+4>>2];y[c>>2]=y[e>>2];y[c+4>>2]=f;f=d<<6;i=d<<1;while(1){d=(h<<6)+a|0;y[c>>2]=y[c>>2]^y[d>>2];y[c+4>>2]=y[c+4>>2]^y[d+4>>2];y[c+8>>2]=y[c+8>>2]^y[d+8>>2];y[c+12>>2]=y[c+12>>2]^y[d+12>>2];y[c+16>>2]=y[c+16>>2]^y[d+16>>2];y[c+20>>2]=y[c+20>>2]^y[d+20>>2];y[c+24>>2]=y[c+24>>2]^y[d+24>>2];y[c+28>>2]=y[c+28>>2]^y[d+28>>2];y[c+32>>2]=y[c+32>>2]^y[d+32>>2];y[c+36>>2]=y[c+36>>2]^y[d+36>>2];y[c+40>>2]=y[c+40>>2]^y[d+40>>2];y[c+44>>2]=y[c+44>>2]^y[d+44>>2];y[c+48>>2]=y[c+48>>2]^y[d+48>>2];y[c+52>>2]=y[c+52>>2]^y[d+52>>2];y[c+56>>2]=y[c+56>>2]^y[d+56>>2];y[c+60>>2]=y[c+60>>2]^y[d+60>>2];Hd(c);g=y[c+60>>2];e=(h<<5)+b|0;y[e+56>>2]=y[c+56>>2];y[e+60>>2]=g;g=y[c+52>>2];y[e+48>>2]=y[c+48>>2];y[e+52>>2]=g;g=y[c+44>>2];y[e+40>>2]=y[c+40>>2];y[e+44>>2]=g;g=y[c+36>>2];y[e+32>>2]=y[c+32>>2];y[e+36>>2]=g;g=y[c+28>>2];y[e+24>>2]=y[c+24>>2];y[e+28>>2]=g;g=y[c+20>>2];y[e+16>>2]=y[c+16>>2];y[e+20>>2]=g;g=y[c+12>>2];y[e+8>>2]=y[c+8>>2];y[e+12>>2]=g;g=y[c+4>>2];y[e>>2]=y[c>>2];y[e+4>>2]=g;y[c>>2]=y[c>>2]^y[d- -64>>2];y[c+4>>2]=y[c+4>>2]^y[d+68>>2];y[c+8>>2]=y[c+8>>2]^y[d+72>>2];y[c+12>>2]=y[c+12>>2]^y[d+76>>2];y[c+16>>2]=y[c+16>>2]^y[d+80>>2];y[c+20>>2]=y[c+20>>2]^y[d+84>>2];y[c+24>>2]=y[c+24>>2]^y[d+88>>2];y[c+28>>2]=y[c+28>>2]^y[d+92>>2];y[c+32>>2]=y[c+32>>2]^y[d+96>>2];y[c+36>>2]=y[c+36>>2]^y[d+100>>2];y[c+40>>2]=y[c+40>>2]^y[d+104>>2];y[c+44>>2]=y[c+44>>2]^y[d+108>>2];y[c+48>>2]=y[c+48>>2]^y[d+112>>2];y[c+52>>2]=y[c+52>>2]^y[d+116>>2];y[c+56>>2]=y[c+56>>2]^y[d+120>>2];y[c+60>>2]=y[c+60>>2]^y[d+124>>2];Hd(c);d=e+f|0;e=y[c+60>>2];y[d+56>>2]=y[c+56>>2];y[d+60>>2]=e;e=y[c+52>>2];y[d+48>>2]=y[c+48>>2];y[d+52>>2]=e;e=y[c+44>>2];y[d+40>>2]=y[c+40>>2];y[d+44>>2]=e;e=y[c+36>>2];y[d+32>>2]=y[c+32>>2];y[d+36>>2]=e;e=y[c+28>>2];y[d+24>>2]=y[c+24>>2];y[d+28>>2]=e;e=y[c+20>>2];y[d+16>>2]=y[c+16>>2];y[d+20>>2]=e;e=y[c+12>>2];y[d+8>>2]=y[c+8>>2];y[d+12>>2]=e;e=y[c+4>>2];y[d>>2]=y[c>>2];y[d+4>>2]=e;h=h+2|0;if(i>>>0>h>>>0){continue}break}}function hc(a,b,c,d){var 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,A=0,B=0,C=0,D=0,F=0;A=z[a+80|0]?0:16777216;o=y[a+36>>2];m=y[a+32>>2];n=y[a+28>>2];k=y[a+24>>2];l=y[a+20>>2];q=y[a+4>>2];B=E(q,5);s=y[a+8>>2];w=E(s,5);u=y[a+12>>2];v=E(u,5);x=y[a+16>>2];t=E(x,5);r=y[a>>2];while(1){g=((z[b+3|0]|z[b+4|0]<<8|(z[b+5|0]<<16|z[b+6|0]<<24))>>>2&67108863)+k|0;e=Ai(g,0,u,0);i=W;k=((z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24))&67108863)+l|0;h=Ai(k,0,x,0);l=h+e|0;e=W+i|0;e=h>>>0>l>>>0?e+1|0:e;n=((z[b+6|0]|z[b+7|0]<<8|(z[b+8|0]<<16|z[b+9|0]<<24))>>>4&67108863)+n|0;i=Ai(n,0,s,0);l=i+l|0;e=W+e|0;e=i>>>0>l>>>0?e+1|0:e;m=((z[b+9|0]|z[b+10|0]<<8|(z[b+11|0]<<16|z[b+12|0]<<24))>>>6|0)+m|0;i=Ai(m,0,q,0);l=i+l|0;e=W+e|0;e=i>>>0>l>>>0?e+1|0:e;o=o+A+((z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24))>>>8)|0;i=Ai(o,0,r,0);l=i+l|0;e=W+e|0;C=l;l=i>>>0>l>>>0?e+1|0:e;e=Ai(g,0,s,0);i=W;h=Ai(k,0,u,0);e=h+e|0;f=W+i|0;f=e>>>0>>0?f+1|0:f;h=Ai(n,0,q,0);i=h+e|0;e=W+f|0;e=h>>>0>i>>>0?e+1|0:e;h=Ai(m,0,r,0);i=h+i|0;e=W+e|0;e=h>>>0>i>>>0?e+1|0:e;h=Ai(o,0,t,0);i=h+i|0;e=W+e|0;D=i;i=h>>>0>i>>>0?e+1|0:e;e=Ai(g,0,q,0);j=W;f=Ai(k,0,s,0);h=f+e|0;e=W+j|0;e=f>>>0>h>>>0?e+1|0:e;j=Ai(n,0,r,0);h=j+h|0;f=W+e|0;f=h>>>0>>0?f+1|0:f;j=Ai(m,0,t,0);h=j+h|0;e=W+f|0;e=h>>>0>>0?e+1|0:e;j=Ai(o,0,v,0);h=j+h|0;e=W+e|0;F=h;h=h>>>0>>0?e+1|0:e;e=Ai(g,0,r,0);f=W;p=Ai(k,0,q,0);j=p+e|0;e=W+f|0;e=j>>>0

>>0?e+1|0:e;f=Ai(n,0,t,0);j=f+j|0;e=W+e|0;e=f>>>0>j>>>0?e+1|0:e;p=Ai(m,0,v,0);j=p+j|0;f=W+e|0;f=j>>>0

>>0?f+1|0:f;p=Ai(o,0,w,0);j=p+j|0;e=W+f|0;e=j>>>0

>>0?e+1|0:e;p=j;j=e;e=Ai(g,0,t,0);f=W;k=Ai(k,0,r,0);g=k+e|0;e=W+f|0;e=g>>>0>>0?e+1|0:e;k=Ai(n,0,v,0);g=k+g|0;e=W+e|0;e=g>>>0>>0?e+1|0:e;k=Ai(m,0,w,0);g=k+g|0;e=W+e|0;e=g>>>0>>0?e+1|0:e;k=Ai(o,0,B,0);g=k+g|0;f=W+e|0;f=g>>>0>>0?f+1|0:f;k=g;n=(f&67108863)<<6|g>>>26;g=n+p|0;e=j;e=g>>>0>>0?e+1|0:e;n=g;m=(e&67108863)<<6|g>>>26;g=m+F|0;e=h;e=g>>>0>>0?e+1|0:e;m=g;f=i;g=(e&67108863)<<6|g>>>26;e=g+D|0;o=e;f=e>>>0>>0?f+1|0:f;i=(f&67108863)<<6|e>>>26;g=i+C|0;e=l;e=E(((g>>>0>>0?e+1|0:e)&67108863)<<6|g>>>26,5)+(k&67108863)|0;k=(n&67108863)+(e>>>26|0)|0;n=m&67108863;m=o&67108863;o=g&67108863;l=e&67108863;b=b+16|0;d=d-(c>>>0<16)|0;c=c-16|0;if(!d&c>>>0>15|d){continue}break}y[a+36>>2]=o;y[a+32>>2]=m;y[a+28>>2]=n;y[a+24>>2]=k;y[a+20>>2]=l;}function Aa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var 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,x=0;a:{if(!d){f=2036477234;g=857760878;e=1634760805;k=1797285236;break a}f=z[d+8|0]|z[d+9|0]<<8|(z[d+10|0]<<16|z[d+11|0]<<24);g=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);e=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);k=z[d+12|0]|z[d+13|0]<<8|(z[d+14|0]<<16|z[d+15|0]<<24);}h=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);m=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);i=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);n=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);j=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);t=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);o=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);d=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);p=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);q=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);b=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);c=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);while(1){l=c;r=b;b=c+e|0;c=Bi(r^b,16);e=c+o|0;o=Bi(l^e,12);l=o;r=b+o|0;s=Bi(r^c,8);o=s+e|0;b=Bi(l^o,7);c=d+k|0;h=Bi(c^h,16);n=h+n|0;d=Bi(n^d,12);l=p;k=f+p|0;f=Bi(k^m,16);p=f+j|0;e=Bi(l^p,12);j=f;f=e+k|0;j=Bi(j^f,8);u=c+d|0;k=u+b|0;c=Bi(j^k,16);g=g+q|0;m=Bi(g^i,16);i=m+t|0;q=Bi(i^q,12);g=q+g|0;l=b;b=Bi(g^m,8);v=b+i|0;i=v+c|0;l=Bi(l^i,12);k=l+k|0;m=Bi(c^k,8);t=m+i|0;c=Bi(t^l,7);h=Bi(h^u,8);n=h+n|0;d=Bi(n^d,7);f=d+f|0;i=Bi(f^b,16);b=i+o|0;d=Bi(b^d,12);f=d+f|0;i=Bi(i^f,8);o=b+i|0;d=Bi(o^d,7);j=j+p|0;b=Bi(j^e,7);g=b+g|0;p=Bi(g^s,16);e=p+n|0;s=Bi(b^e,12);g=s+g|0;b=Bi(p^g,8);n=e+b|0;p=Bi(n^s,7);l=j;j=h;e=Bi(q^v,7);h=e+r|0;j=Bi(j^h,16);q=l+j|0;r=Bi(e^q,12);e=r+h|0;h=Bi(j^e,8);j=q+h|0;q=Bi(j^r,7);x=x+1|0;if((x|0)!=10){continue}break}w[a|0]=e;w[a+1|0]=e>>>8;w[a+2|0]=e>>>16;w[a+3|0]=e>>>24;w[a+28|0]=h;w[a+29|0]=h>>>8;w[a+30|0]=h>>>16;w[a+31|0]=h>>>24;w[a+24|0]=m;w[a+25|0]=m>>>8;w[a+26|0]=m>>>16;w[a+27|0]=m>>>24;w[a+20|0]=i;w[a+21|0]=i>>>8;w[a+22|0]=i>>>16;w[a+23|0]=i>>>24;w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;w[a+12|0]=k;w[a+13|0]=k>>>8;w[a+14|0]=k>>>16;w[a+15|0]=k>>>24;w[a+8|0]=f;w[a+9|0]=f>>>8;w[a+10|0]=f>>>16;w[a+11|0]=f>>>24;w[a+4|0]=g;w[a+5|0]=g>>>8;w[a+6|0]=g>>>16;w[a+7|0]=g>>>24;return 0}function sa(a,b,c){var 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,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;d=y[b+40>>2];e=y[b+4>>2];g=y[b+44>>2];h=y[b+8>>2];i=y[b+48>>2];j=y[b+12>>2];k=y[b+52>>2];l=y[b+16>>2];m=y[b+56>>2];n=y[b+20>>2];o=y[b+60>>2];p=y[b+24>>2];f=b- -64|0;q=y[f>>2];r=y[b+28>>2];s=y[b+68>>2];t=y[b+32>>2];u=y[b+72>>2];v=y[b>>2];y[a+36>>2]=y[b+36>>2]+y[b+76>>2];y[a+32>>2]=t+u;y[a+28>>2]=r+s;y[a+24>>2]=p+q;y[a+20>>2]=n+o;y[a+16>>2]=l+m;y[a+12>>2]=j+k;y[a+8>>2]=h+i;y[a+4>>2]=e+g;y[a>>2]=d+v;g=y[b+40>>2];d=y[b+4>>2];h=y[b+44>>2];i=y[b+8>>2];j=y[b+48>>2];k=y[b+12>>2];l=y[b+52>>2];m=y[b+16>>2];n=y[b+56>>2];o=y[b+20>>2];p=y[b+60>>2];q=y[b+24>>2];f=y[f>>2];e=y[b+28>>2];r=y[b+68>>2];s=y[b+32>>2];t=y[b+72>>2];u=y[b>>2];y[a+76>>2]=y[b+76>>2]-y[b+36>>2];y[a+72>>2]=t-s;y[a+68>>2]=r-e;e=a- -64|0;y[e>>2]=f-q;y[a+60>>2]=p-o;y[a+56>>2]=n-m;y[a+52>>2]=l-k;y[a+48>>2]=j-i;y[a+44>>2]=h-d;d=a+40|0;y[d>>2]=g-u;ga(a+80|0,a,c);ga(d,d,c+40|0);ga(a+120|0,c+120|0,b+120|0);ga(a,b+80|0,c+80|0);v=y[a+4>>2];z=y[a+8>>2];A=y[a+12>>2];B=y[a+16>>2];C=y[a+20>>2];D=y[a+24>>2];E=y[a+28>>2];F=y[a+32>>2];G=y[a+36>>2];b=y[d>>2];c=y[a+80>>2];g=y[a+44>>2];h=y[a+84>>2];i=y[a+48>>2];j=y[a+88>>2];k=y[a+52>>2];l=y[a+92>>2];m=y[a+56>>2];n=y[a+96>>2];o=y[a+60>>2];p=y[a+100>>2];f=y[e>>2];q=y[a+104>>2];r=y[a+68>>2];s=y[a+108>>2];t=y[a+72>>2];u=y[a+112>>2];H=y[a>>2];w=y[a+76>>2];x=y[a+116>>2];y[a+76>>2]=w+x;y[a+72>>2]=t+u;y[a+68>>2]=r+s;y[e>>2]=f+q;y[a+60>>2]=o+p;y[a+56>>2]=m+n;y[a+52>>2]=k+l;y[a+48>>2]=i+j;y[a+44>>2]=g+h;y[d>>2]=b+c;y[a+36>>2]=x-w;y[a+32>>2]=u-t;y[a+28>>2]=s-r;y[a+24>>2]=q-f;y[a+20>>2]=p-o;y[a+16>>2]=n-m;y[a+12>>2]=l-k;y[a+8>>2]=j-i;y[a+4>>2]=h-g;y[a>>2]=c-b;b=G<<1;c=y[a+156>>2];y[a+156>>2]=b-c;d=F<<1;e=y[a+152>>2];y[a+152>>2]=d-e;g=E<<1;h=y[a+148>>2];y[a+148>>2]=g-h;i=D<<1;j=y[a+144>>2];y[a+144>>2]=i-j;k=C<<1;l=y[a+140>>2];y[a+140>>2]=k-l;m=B<<1;n=y[a+136>>2];y[a+136>>2]=m-n;o=A<<1;p=y[a+132>>2];y[a+132>>2]=o-p;f=z<<1;q=y[a+128>>2];y[a+128>>2]=f-q;r=v<<1;s=y[a+124>>2];y[a+124>>2]=r-s;t=H<<1;u=y[a+120>>2];y[a+120>>2]=t-u;y[a+112>>2]=d+e;y[a+108>>2]=g+h;y[a+104>>2]=i+j;y[a+100>>2]=k+l;y[a+96>>2]=m+n;y[a+92>>2]=o+p;y[a+88>>2]=f+q;y[a+84>>2]=r+s;y[a+80>>2]=t+u;y[a+116>>2]=b+c;}function Hb(a,b,c){var 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,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;d=y[b+40>>2];e=y[b+4>>2];g=y[b+44>>2];h=y[b+8>>2];i=y[b+48>>2];j=y[b+12>>2];k=y[b+52>>2];l=y[b+16>>2];m=y[b+56>>2];n=y[b+20>>2];o=y[b+60>>2];p=y[b+24>>2];f=b- -64|0;q=y[f>>2];r=y[b+28>>2];s=y[b+68>>2];t=y[b+32>>2];u=y[b+72>>2];v=y[b>>2];y[a+36>>2]=y[b+36>>2]+y[b+76>>2];y[a+32>>2]=t+u;y[a+28>>2]=r+s;y[a+24>>2]=p+q;y[a+20>>2]=n+o;y[a+16>>2]=l+m;y[a+12>>2]=j+k;y[a+8>>2]=h+i;y[a+4>>2]=e+g;y[a>>2]=d+v;g=y[b+40>>2];d=y[b+4>>2];h=y[b+44>>2];i=y[b+8>>2];j=y[b+48>>2];k=y[b+12>>2];l=y[b+52>>2];m=y[b+16>>2];n=y[b+56>>2];o=y[b+20>>2];p=y[b+60>>2];q=y[b+24>>2];f=y[f>>2];e=y[b+28>>2];r=y[b+68>>2];s=y[b+32>>2];t=y[b+72>>2];u=y[b>>2];y[a+76>>2]=y[b+76>>2]-y[b+36>>2];y[a+72>>2]=t-s;y[a+68>>2]=r-e;e=a- -64|0;y[e>>2]=f-q;y[a+60>>2]=p-o;y[a+56>>2]=n-m;y[a+52>>2]=l-k;y[a+48>>2]=j-i;y[a+44>>2]=h-d;d=a+40|0;y[d>>2]=g-u;ga(a+80|0,a,c+40|0);ga(d,d,c);ga(a+120|0,c+120|0,b+120|0);ga(a,b+80|0,c+80|0);v=y[a+4>>2];z=y[a+8>>2];A=y[a+12>>2];B=y[a+16>>2];C=y[a+20>>2];D=y[a+24>>2];E=y[a+28>>2];F=y[a+32>>2];G=y[a+36>>2];b=y[d>>2];c=y[a+80>>2];g=y[a+44>>2];h=y[a+84>>2];i=y[a+48>>2];j=y[a+88>>2];k=y[a+52>>2];l=y[a+92>>2];m=y[a+56>>2];n=y[a+96>>2];o=y[a+60>>2];p=y[a+100>>2];f=y[e>>2];q=y[a+104>>2];r=y[a+68>>2];s=y[a+108>>2];t=y[a+72>>2];u=y[a+112>>2];H=y[a>>2];w=y[a+76>>2];x=y[a+116>>2];y[a+76>>2]=w+x;y[a+72>>2]=t+u;y[a+68>>2]=r+s;y[e>>2]=f+q;y[a+60>>2]=o+p;y[a+56>>2]=m+n;y[a+52>>2]=k+l;y[a+48>>2]=i+j;y[a+44>>2]=g+h;y[d>>2]=b+c;y[a+36>>2]=x-w;y[a+32>>2]=u-t;y[a+28>>2]=s-r;y[a+24>>2]=q-f;y[a+20>>2]=p-o;y[a+16>>2]=n-m;y[a+12>>2]=l-k;y[a+8>>2]=j-i;y[a+4>>2]=h-g;y[a>>2]=c-b;b=y[a+156>>2];c=G<<1;y[a+156>>2]=b+c;d=y[a+152>>2];e=F<<1;y[a+152>>2]=d+e;g=y[a+148>>2];h=E<<1;y[a+148>>2]=g+h;i=y[a+144>>2];j=D<<1;y[a+144>>2]=i+j;k=y[a+140>>2];l=C<<1;y[a+140>>2]=k+l;m=y[a+136>>2];n=B<<1;y[a+136>>2]=m+n;o=y[a+132>>2];p=A<<1;y[a+132>>2]=o+p;f=y[a+128>>2];q=z<<1;y[a+128>>2]=f+q;r=y[a+124>>2];s=v<<1;y[a+124>>2]=r+s;t=y[a+120>>2];u=H<<1;y[a+120>>2]=t+u;y[a+112>>2]=e-d;y[a+108>>2]=h-g;y[a+104>>2]=j-i;y[a+100>>2]=l-k;y[a+96>>2]=n-m;y[a+92>>2]=p-o;y[a+88>>2]=q-f;y[a+84>>2]=s-r;y[a+80>>2]=u-t;y[a+116>>2]=c-b;}function fc(a,b,c){var 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,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;d=y[b+40>>2];e=y[b+4>>2];g=y[b+44>>2];h=y[b+8>>2];i=y[b+48>>2];j=y[b+12>>2];k=y[b+52>>2];l=y[b+16>>2];m=y[b+56>>2];n=y[b+20>>2];o=y[b+60>>2];p=y[b+24>>2];f=b- -64|0;q=y[f>>2];r=y[b+28>>2];s=y[b+68>>2];t=y[b+32>>2];u=y[b+72>>2];v=y[b>>2];y[a+36>>2]=y[b+36>>2]+y[b+76>>2];y[a+32>>2]=t+u;y[a+28>>2]=r+s;y[a+24>>2]=p+q;y[a+20>>2]=n+o;y[a+16>>2]=l+m;y[a+12>>2]=j+k;y[a+8>>2]=h+i;y[a+4>>2]=e+g;y[a>>2]=d+v;g=y[b+40>>2];d=y[b+4>>2];h=y[b+44>>2];i=y[b+8>>2];j=y[b+48>>2];k=y[b+12>>2];l=y[b+52>>2];m=y[b+16>>2];n=y[b+56>>2];o=y[b+20>>2];p=y[b+60>>2];q=y[b+24>>2];f=y[f>>2];e=y[b+28>>2];r=y[b+68>>2];s=y[b+32>>2];t=y[b+72>>2];u=y[b>>2];y[a+76>>2]=y[b+76>>2]-y[b+36>>2];y[a+72>>2]=t-s;y[a+68>>2]=r-e;e=a- -64|0;y[e>>2]=f-q;y[a+60>>2]=p-o;y[a+56>>2]=n-m;y[a+52>>2]=l-k;y[a+48>>2]=j-i;y[a+44>>2]=h-d;d=a+40|0;y[d>>2]=g-u;ga(a+80|0,a,c);ga(d,d,c+40|0);ga(a+120|0,c+80|0,b+120|0);v=y[b+80>>2];z=y[b+84>>2];A=y[b+88>>2];B=y[b+92>>2];C=y[b+96>>2];D=y[b+100>>2];E=y[b+104>>2];F=y[b+108>>2];G=y[b+112>>2];H=y[b+116>>2];b=y[d>>2];c=y[a+80>>2];g=y[a+44>>2];h=y[a+84>>2];i=y[a+48>>2];j=y[a+88>>2];k=y[a+52>>2];l=y[a+92>>2];m=y[a+56>>2];n=y[a+96>>2];o=y[a+60>>2];p=y[a+100>>2];f=y[e>>2];q=y[a+104>>2];r=y[a+68>>2];s=y[a+108>>2];t=y[a+72>>2];u=y[a+112>>2];w=y[a+76>>2];x=y[a+116>>2];y[a+76>>2]=w+x;y[a+72>>2]=t+u;y[a+68>>2]=r+s;y[e>>2]=f+q;y[a+60>>2]=o+p;y[a+56>>2]=m+n;y[a+52>>2]=k+l;y[a+48>>2]=i+j;y[a+44>>2]=g+h;y[d>>2]=b+c;y[a+36>>2]=x-w;y[a+32>>2]=u-t;y[a+28>>2]=s-r;y[a+24>>2]=q-f;y[a+20>>2]=p-o;y[a+16>>2]=n-m;y[a+12>>2]=l-k;y[a+8>>2]=j-i;y[a+4>>2]=h-g;y[a>>2]=c-b;b=H<<1;c=y[a+156>>2];y[a+156>>2]=b-c;d=G<<1;e=y[a+152>>2];y[a+152>>2]=d-e;g=F<<1;h=y[a+148>>2];y[a+148>>2]=g-h;i=E<<1;j=y[a+144>>2];y[a+144>>2]=i-j;k=D<<1;l=y[a+140>>2];y[a+140>>2]=k-l;m=C<<1;n=y[a+136>>2];y[a+136>>2]=m-n;o=B<<1;p=y[a+132>>2];y[a+132>>2]=o-p;f=A<<1;q=y[a+128>>2];y[a+128>>2]=f-q;r=z<<1;s=y[a+124>>2];y[a+124>>2]=r-s;t=v<<1;u=y[a+120>>2];y[a+120>>2]=t-u;y[a+112>>2]=d+e;y[a+108>>2]=g+h;y[a+104>>2]=i+j;y[a+100>>2]=k+l;y[a+96>>2]=m+n;y[a+92>>2]=o+p;y[a+88>>2]=f+q;y[a+84>>2]=r+s;y[a+80>>2]=t+u;y[a+116>>2]=b+c;}function Ja(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=-1;f=d-65|0;if(!(f>>>0<4294967232|c>>>0>64)){a:{if(!(c?b:0)){if((f&255)>>>0<=191){na();s();}o(a- -64|0,0,293);w[a+56|0]=121;w[a+57|0]=33;w[a+58|0]=126;w[a+59|0]=19;w[a+60|0]=25;w[a+61|0]=205;w[a+62|0]=224;w[a+63|0]=91;w[a+48|0]=107;w[a+49|0]=189;w[a+50|0]=65;w[a+51|0]=251;w[a+52|0]=171;w[a+53|0]=217;w[a+54|0]=131;w[a+55|0]=31;w[a+40|0]=31;w[a+41|0]=108;w[a+42|0]=62;w[a+43|0]=43;w[a+44|0]=140;w[a+45|0]=104;w[a+46|0]=5;w[a+47|0]=155;w[a+32|0]=209;w[a+33|0]=130;w[a+34|0]=230;w[a+35|0]=173;w[a+36|0]=127;w[a+37|0]=82;w[a+38|0]=14;w[a+39|0]=81;w[a+24|0]=241;w[a+25|0]=54;w[a+26|0]=29;w[a+27|0]=95;w[a+28|0]=58;w[a+29|0]=245;w[a+30|0]=79;w[a+31|0]=165;w[a+16|0]=43;w[a+17|0]=248;w[a+18|0]=148;w[a+19|0]=254;w[a+20|0]=114;w[a+21|0]=243;w[a+22|0]=110;w[a+23|0]=60;w[a+8|0]=59;w[a+9|0]=167;w[a+10|0]=202;w[a+11|0]=132;w[a+12|0]=133;w[a+13|0]=174;w[a+14|0]=103;w[a+15|0]=187;b=d^-222443256;w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=103;w[a+5|0]=230;w[a+6|0]=9;w[a+7|0]=106;break a}e=T-128|0;T=e;b:{if(!(!b|(d-65&255)>>>0<=191|(c-65&255)>>>0<=191)){o(a- -64|0,0,293);w[a+56|0]=121;w[a+57|0]=33;w[a+58|0]=126;w[a+59|0]=19;w[a+60|0]=25;w[a+61|0]=205;w[a+62|0]=224;w[a+63|0]=91;w[a+48|0]=107;w[a+49|0]=189;w[a+50|0]=65;w[a+51|0]=251;w[a+52|0]=171;w[a+53|0]=217;w[a+54|0]=131;w[a+55|0]=31;w[a+40|0]=31;w[a+41|0]=108;w[a+42|0]=62;w[a+43|0]=43;w[a+44|0]=140;w[a+45|0]=104;w[a+46|0]=5;w[a+47|0]=155;w[a+32|0]=209;w[a+33|0]=130;w[a+34|0]=230;w[a+35|0]=173;w[a+36|0]=127;w[a+37|0]=82;w[a+38|0]=14;w[a+39|0]=81;w[a+24|0]=241;w[a+25|0]=54;w[a+26|0]=29;w[a+27|0]=95;w[a+28|0]=58;w[a+29|0]=245;w[a+30|0]=79;w[a+31|0]=165;w[a+16|0]=43;w[a+17|0]=248;w[a+18|0]=148;w[a+19|0]=254;w[a+20|0]=114;w[a+21|0]=243;w[a+22|0]=110;w[a+23|0]=60;w[a+8|0]=59;w[a+9|0]=167;w[a+10|0]=202;w[a+11|0]=132;w[a+12|0]=133;w[a+13|0]=174;w[a+14|0]=103;w[a+15|0]=187;d=(c<<8|d)^-222443256;w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;d=c>>>24^1779033703;w[a+4|0]=d;w[a+5|0]=d>>>8;w[a+6|0]=d>>>16;w[a+7|0]=d>>>24;o(e,0,128);if(c){t(e,b,c);}t(a+96|0,e,128);w[a+352|0]=128;w[a+353|0]=0;w[a+354|0]=0;w[a+355|0]=0;ja(e,128);T=e+128|0;break b}na();s();}}e=0;}return e|0}function Sa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var 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,x=0;a:{if(!d){e=1797285236;i=2036477234;j=857760878;d=1634760805;break a}e=z[d+12|0]|z[d+13|0]<<8|(z[d+14|0]<<16|z[d+15|0]<<24);i=z[d+8|0]|z[d+9|0]<<8|(z[d+10|0]<<16|z[d+11|0]<<24);j=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);d=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);}f=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);h=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);g=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);r=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);q=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);s=20;o=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);p=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);l=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);m=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);n=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);b=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);c=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);while(1){k=Bi(c+j|0,7)^f;t=Bi(k+j|0,9)^q;l=Bi(d+o|0,7)^l;u=Bi(l+d|0,9)^h;v=Bi(u+l|0,13)^o;m=Bi(e+p|0,7)^m;g=Bi(m+e|0,9)^g;h=Bi(g+m|0,13)^p;e=Bi(g+h|0,18)^e;f=Bi(b+i|0,7)^r;o=v^Bi(e+f|0,7);q=t^Bi(o+e|0,9);r=Bi(o+q|0,13)^f;e=Bi(q+r|0,18)^e;n=Bi(f+i|0,9)^n;x=Bi(n+f|0,13)^b;b=Bi(x+n|0,18)^i;p=Bi(b+k|0,7)^h;h=Bi(p+b|0,9)^u;f=Bi(h+p|0,13)^k;i=Bi(f+h|0,18)^b;k=Bi(k+t|0,13)^c;c=Bi(k+t|0,18)^j;b=Bi(c+l|0,7)^x;g=Bi(b+c|0,9)^g;l=Bi(b+g|0,13)^l;j=Bi(g+l|0,18)^c;d=Bi(u+v|0,18)^d;c=Bi(d+m|0,7)^k;n=Bi(c+d|0,9)^n;m=Bi(c+n|0,13)^m;d=Bi(n+m|0,18)^d;k=s>>>0>2;s=s-2|0;if(k){continue}break}w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+28|0]=f;w[a+29|0]=f>>>8;w[a+30|0]=f>>>16;w[a+31|0]=f>>>24;w[a+24|0]=h;w[a+25|0]=h>>>8;w[a+26|0]=h>>>16;w[a+27|0]=h>>>24;w[a+20|0]=g;w[a+21|0]=g>>>8;w[a+22|0]=g>>>16;w[a+23|0]=g>>>24;w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;w[a+12|0]=e;w[a+13|0]=e>>>8;w[a+14|0]=e>>>16;w[a+15|0]=e>>>24;w[a+8|0]=i;w[a+9|0]=i>>>8;w[a+10|0]=i>>>16;w[a+11|0]=i>>>24;w[a+4|0]=j;w[a+5|0]=j>>>8;w[a+6|0]=j>>>16;w[a+7|0]=j>>>24;return 0}function cb(a,b){var 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,A=0,B=0,C=0,D=0,E=0;r=z[b+31|0];s=z[b+30|0];t=z[b+29|0];u=z[b+6|0];v=z[b+5|0];w=z[b+4|0];x=z[b+9|0];A=z[b+8|0];B=z[b+7|0];C=z[b+12|0];l=z[b+11|0];m=z[b+10|0];p=z[b+15|0];n=z[b+14|0];D=z[b+13|0];i=z[b+28|0];k=z[b+27|0];j=z[b+26|0];h=z[b+25|0];f=z[b+24|0];e=z[b+23|0];E=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);d=z[b+21|0];g=d<<15;d=c;c=g;g=z[b+20|0];o=c|g<<7;g=d|d;c=z[b+22|0];c=c<<23|o;d=d|g;q=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);b=0;g=c;o=q+16777216|0;b=o>>>0<16777216?1:b;c=(b&33554431)<<7|o>>>25;g=g+c|0;b=(b>>>25|0)+d|0;d=g;c=d>>>0>>0?b+1|0:b;g=d+33554432|0;b=g>>>0<33554432?c+1|0:c;y[a+24>>2]=d-(g&-67108864);d=e>>>27|0;e=f<<13|e<<5;c=d|f>>>19|h>>>11;d=b;f=h<<21|e;d=(d&67108863)<<6|g>>>26;e=f+d|0;d=e;b=c;e=f+16777216|0;c=e>>>0<16777216?b+1|0:b;y[a+28>>2]=d-(e&1040187392);d=k>>>20|j>>>28|i>>>12;b=c;c=b>>>25|0;b=(b&33554431)<<7|e>>>25;e=b+(k<<12|j<<4|i<<20)|0;d=c+d|0;c=e;d=c>>>0>>0?d+1|0:d;b=d;i=c+33554432|0;e=i>>>0<33554432?b+1|0:b;y[a+32>>2]=c-(i&-67108864);j=q-(o&-33554432)|0;f=n<<10|D<<2|p<<18;h=n>>>22|p>>>14;c=l>>>21|m>>>29;l=l<<11|m<<3|C<<19;k=l+16777216|0;d=k>>>0<16777216?c+1|0:c;b=d>>>25|0;c=f;f=(d&33554431)<<7|k>>>25;d=c+f|0;c=b+h|0;c=d>>>0>>0?c+1|0:c;b=c;f=d+33554432|0;b=f>>>0<33554432?b+1|0:b;c=f;f=((b&67108863)<<6|c>>>26)+j|0;y[a+20>>2]=f;y[a+16>>2]=d-(c&-67108864);f=A<<13|B<<5|x<<21;h=0;m=v<<14|w<<6|u<<22;c=0;j=m+16777216|0;c=j>>>0<16777216?c+1|0:c;d=c>>>25|0;b=f;f=(c&33554431)<<7|j>>>25;c=b+f|0;b=d+h|0;b=c>>>0>>0?b+1|0:b;h=c+33554432|0;d=h>>>0<33554432?b+1|0:b;y[a+8>>2]=c-(h&-67108864);n=r<<18&33292288|(s<<10|t<<2);c=0;e=(e&67108863)<<6|i>>>26;i=e+n|0;b=c;e=n+16777216|0;c=e>>>0<16777216?b+1|0:b;y[a+36>>2]=i-(e&33554432);d=l+((d&67108863)<<6|h>>>26)|0;y[a+12>>2]=d-(k&234881024);f=m-(j&2113929216)|0;b=c;c=b>>>25|0;d=Ai((b&33554431)<<7|e>>>25,c,19,0);c=d+E|0;b=W;d=c>>>0>>0?b+1|0:b;b=c+33554432|0;d=b>>>0<33554432?d+1|0:d;e=((d&67108863)<<6|b>>>26)+f|0;y[a+4>>2]=e;y[a>>2]=c-(b&-67108864);}function va(a,b,c,d){var 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;o=T-704|0;T=o;a:{if(!(c|d)){break a}g=y[a+76>>2];f=g;g=(d<<3|c>>>29)+f|0;k=y[a+72>>2];i=c<<3;h=k+i|0;y[a+72>>2]=h;g=h>>>0>>0?g+1|0:g;y[a+76>>2]=g;e=a- -64|0;i=e;h=(f|0)==(g|0)&h>>>0>>0|f>>>0>g>>>0;g=y[e+4>>2];r=h;h=h+y[e>>2]|0;e=r>>>0>h>>>0?g+1|0:g;j=d>>>29|0;h=j+h|0;y[i>>2]=h;y[i+4>>2]=h>>>0>>0?e+1|0:e;h=a+80|0;i=((f&7)<<29|k>>>3)&127;g=i;e=128-g|0;k=e;j=0;r=0-(j+(g>>>0>128)|0)|0;g=r;if((d|0)==(g|0)&c>>>0>=e>>>0|d>>>0>g>>>0){s=e&3;f=0;g=0;b:{if(!j&(i^127)>>>0>=3|j){j=e&252;while(1){e=f+i|0;w[e+h|0]=z[b+f|0];e=f|1;q=i+e|0;w[h+q|0]=z[b+e|0];e=f|2;q=i+e|0;w[h+q|0]=z[b+e|0];e=f|3;q=i+e|0;w[h+q|0]=z[b+e|0];f=f+4|0;g=f>>>0<4?g+1|0:g;e=p;m=m+4|0;e=m>>>0<4?e+1|0:e;p=e;if((j|0)!=(m|0)|(n|0)!=(e|0)){continue}break}if(!(s|t)){break b}}while(1){e=f+i|0;w[e+h|0]=z[b+f|0];e=g;f=f+1|0;g=f?e:e+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((l|0)!=(s|0)|(t|0)!=(e|0)){continue}break}}f=o+640|0;Xb(a,h,o,f);b=b+k|0;d=d-((c>>>0>>0)+r|0)|0;c=c-k|0;if(!d&c>>>0>127|d){while(1){Xb(a,b,o,f);b=b+128|0;d=d-(c>>>0<128)|0;c=c-128|0;if(!d&c>>>0>127|d){continue}break}}c:{if(!(c|d)){break c}a=c&3;p=0;l=0;n=0;f=0;g=0;if(!d&c>>>0>=4|d){m=c&124;k=0;c=0;d=0;while(1){w[f+h|0]=z[b+f|0];e=f|1;w[e+h|0]=z[b+e|0];e=f|2;w[e+h|0]=z[b+e|0];e=f|3;w[e+h|0]=z[b+e|0];e=g;f=f+4|0;g=f>>>0<4?e+1|0:e;e=d;c=c+4|0;e=c>>>0<4?e+1|0:e;d=e;if((c|0)!=(m|0)|(k|0)!=(e|0)){continue}break}if(!(a|p)){break c}}while(1){w[f+h|0]=z[b+f|0];f=f+1|0;g=f?g:g+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((a|0)!=(l|0)|(p|0)!=(e|0)){continue}break}}ja(o,704);break a}a=c&3;k=0;f=0;g=0;if(!d&c>>>0>=4|d){c=c&-4;while(1){e=f+i|0;w[e+h|0]=z[b+f|0];e=f|1;j=i+e|0;w[h+j|0]=z[b+e|0];e=f|2;j=i+e|0;w[h+j|0]=z[b+e|0];e=f|3;j=i+e|0;w[h+j|0]=z[b+e|0];f=f+4|0;g=f>>>0<4?g+1|0:g;e=p;m=m+4|0;e=m>>>0<4?e+1|0:e;p=e;if((c|0)!=(m|0)|(d|0)!=(e|0)){continue}break}if(!(a|k)){break a}}while(1){c=f+i|0;w[c+h|0]=z[b+f|0];f=f+1|0;g=f?g:g+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((a|0)!=(l|0)|(k|0)!=(e|0)){continue}break}}T=o+704|0;return 0}function xe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=T-736|0;T=c;h=c+704|0;ha(h,b,b);e=c+224|0;ha(e,b,h);g=c+672|0;ha(g,b,e);f=c+640|0;ha(f,g,g);j=c+416|0;ha(j,h,f);h=c+320|0;ha(h,b,j);d=c+608|0;ha(d,f,f);f=c+288|0;ha(f,h,h);i=c+576|0;ha(i,j,f);m=c+448|0;ha(m,d,f);k=c+544|0;ha(k,i,i);i=c+384|0;ha(i,d,k);l=c+352|0;ha(l,e,i);e=c+192|0;ha(e,d,l);d=c+160|0;ha(d,g,e);ha(c+96|0,g,d);e=c+512|0;ha(e,k,l);d=c+480|0;ha(d,g,e);e=c+256|0;ha(e,m,d);ha(c+128|0,f,e);f=c- -64|0;ha(f,i,d);d=c+32|0;ha(d,g,f);ha(c,j,d);ha(a,h,c);g=0;while(1){ha(a,a,a);g=g+1|0;if((g|0)!=126){continue}break}ha(a,a,c+352|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+704|0);ha(a,a,c);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+160|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+256|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c- -64|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+96|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+320|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+512|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+192|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+480|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+128|0);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,a);ha(a,a,c+32|0);T=c+736|0;return 0-ya(b,32)|0}function Yd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=T-160|0;T=k;rb(b,c,32,0);w[b|0]=z[b|0]&248;w[b+31|0]=z[b+31|0]&63|64;jb(k,b);Wa(a,k);f=c;g=z[f|0]|z[f+1|0]<<8|(z[f+2|0]<<16|z[f+3|0]<<24);e=z[f+4|0]|z[f+5|0]<<8|(z[f+6|0]<<16|z[f+7|0]<<24);h=z[f+8|0]|z[f+9|0]<<8|(z[f+10|0]<<16|z[f+11|0]<<24);i=z[f+12|0]|z[f+13|0]<<8|(z[f+14|0]<<16|z[f+15|0]<<24);j=z[f+16|0]|z[f+17|0]<<8|(z[f+18|0]<<16|z[f+19|0]<<24);c=z[f+20|0]|z[f+21|0]<<8|(z[f+22|0]<<16|z[f+23|0]<<24);l=z[f+28|0]|z[f+29|0]<<8|(z[f+30|0]<<16|z[f+31|0]<<24);d=b;b=z[f+24|0]|z[f+25|0]<<8|(z[f+26|0]<<16|z[f+27|0]<<24);w[d+24|0]=b;w[d+25|0]=b>>>8;w[d+26|0]=b>>>16;w[d+27|0]=b>>>24;w[d+28|0]=l;w[d+29|0]=l>>>8;w[d+30|0]=l>>>16;w[d+31|0]=l>>>24;w[d+16|0]=j;w[d+17|0]=j>>>8;w[d+18|0]=j>>>16;w[d+19|0]=j>>>24;w[d+20|0]=c;w[d+21|0]=c>>>8;w[d+22|0]=c>>>16;w[d+23|0]=c>>>24;w[d+8|0]=h;w[d+9|0]=h>>>8;w[d+10|0]=h>>>16;w[d+11|0]=h>>>24;w[d+12|0]=i;w[d+13|0]=i>>>8;w[d+14|0]=i>>>16;w[d+15|0]=i>>>24;w[d|0]=g;w[d+1|0]=g>>>8;w[d+2|0]=g>>>16;w[d+3|0]=g>>>24;w[d+4|0]=e;w[d+5|0]=e>>>8;w[d+6|0]=e>>>16;w[d+7|0]=e>>>24;e=a;h=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);i=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);j=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);c=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);b=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);a=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);g=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);e=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);w[d+56|0]=e;w[d+57|0]=e>>>8;w[d+58|0]=e>>>16;w[d+59|0]=e>>>24;w[d+60|0]=g;w[d+61|0]=g>>>8;w[d+62|0]=g>>>16;w[d+63|0]=g>>>24;w[d+48|0]=b;w[d+49|0]=b>>>8;w[d+50|0]=b>>>16;w[d+51|0]=b>>>24;w[d+52|0]=a;w[d+53|0]=a>>>8;w[d+54|0]=a>>>16;w[d+55|0]=a>>>24;w[d+40|0]=j;w[d+41|0]=j>>>8;w[d+42|0]=j>>>16;w[d+43|0]=j>>>24;w[d+44|0]=c;w[d+45|0]=c>>>8;w[d+46|0]=c>>>16;w[d+47|0]=c>>>24;w[d+32|0]=h;w[d+33|0]=h>>>8;w[d+34|0]=h>>>16;w[d+35|0]=h>>>24;w[d+36|0]=i;w[d+37|0]=i>>>8;w[d+38|0]=i>>>16;w[d+39|0]=i>>>24;T=k+160|0;return 0}function Ra(a,b,c){var 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;o=y[b+4>>2];d=y[a+4>>2];p=y[b+8>>2];e=y[a+8>>2];q=y[b+12>>2];f=y[a+12>>2];r=y[b+16>>2];g=y[a+16>>2];s=y[b+20>>2];h=y[a+20>>2];t=y[b+24>>2];i=y[a+24>>2];n=y[b+28>>2];j=y[a+28>>2];u=y[b+32>>2];k=y[a+32>>2];v=y[b+36>>2];l=y[a+36>>2];c=0-c|0;m=y[a>>2];y[a>>2]=c&(m^y[b>>2])^m;y[a+36>>2]=l^c&(l^v);y[a+32>>2]=k^c&(k^u);y[a+28>>2]=j^c&(j^n);y[a+24>>2]=i^c&(i^t);y[a+20>>2]=h^c&(h^s);y[a+16>>2]=g^c&(g^r);y[a+12>>2]=f^c&(f^q);y[a+8>>2]=e^c&(e^p);y[a+4>>2]=d^c&(d^o);d=y[a+40>>2];o=y[b+40>>2];e=y[a+44>>2];p=y[b+44>>2];f=y[a+48>>2];q=y[b+48>>2];g=y[a+52>>2];r=y[b+52>>2];h=y[a+56>>2];s=y[b+56>>2];i=y[a+60>>2];t=y[b+60>>2];n=a- -64|0;j=y[n>>2];u=y[b- -64>>2];k=y[a+68>>2];v=y[b+68>>2];l=y[a+72>>2];m=y[b+72>>2];w=y[a+76>>2];y[a+76>>2]=w^c&(y[b+76>>2]^w);y[a+72>>2]=l^c&(l^m);y[a+68>>2]=k^c&(k^v);y[n>>2]=j^c&(j^u);y[a+60>>2]=i^c&(i^t);y[a+56>>2]=h^c&(h^s);y[a+52>>2]=g^c&(g^r);y[a+48>>2]=f^c&(f^q);y[a+44>>2]=e^c&(e^p);y[a+40>>2]=d^c&(d^o);d=y[a+80>>2];o=y[b+80>>2];e=y[a+84>>2];p=y[b+84>>2];f=y[a+88>>2];q=y[b+88>>2];g=y[a+92>>2];r=y[b+92>>2];h=y[a+96>>2];s=y[b+96>>2];i=y[a+100>>2];t=y[b+100>>2];j=y[a+104>>2];n=y[b+104>>2];k=y[a+108>>2];u=y[b+108>>2];l=y[a+112>>2];v=y[b+112>>2];m=y[a+116>>2];y[a+116>>2]=c&(m^y[b+116>>2])^m;y[a+112>>2]=l^c&(l^v);y[a+108>>2]=k^c&(k^u);y[a+104>>2]=j^c&(j^n);y[a+100>>2]=i^c&(i^t);y[a+96>>2]=h^c&(h^s);y[a+92>>2]=g^c&(g^r);y[a+88>>2]=f^c&(f^q);y[a+84>>2]=e^c&(e^p);y[a+80>>2]=d^c&(d^o);d=y[a+120>>2];o=y[b+120>>2];e=y[a+124>>2];p=y[b+124>>2];f=y[a+128>>2];q=y[b+128>>2];g=y[a+132>>2];r=y[b+132>>2];h=y[a+136>>2];s=y[b+136>>2];i=y[a+140>>2];t=y[b+140>>2];j=y[a+144>>2];n=y[b+144>>2];k=y[a+148>>2];u=y[b+148>>2];l=y[a+152>>2];v=y[b+152>>2];m=y[b+156>>2];b=y[a+156>>2];y[a+156>>2]=c&(m^b)^b;y[a+152>>2]=l^c&(l^v);y[a+148>>2]=k^c&(k^u);y[a+144>>2]=j^c&(j^n);y[a+140>>2]=i^c&(i^t);y[a+136>>2]=h^c&(h^s);y[a+132>>2]=g^c&(g^r);y[a+128>>2]=f^c&(f^q);y[a+124>>2]=e^c&(e^p);y[a+120>>2]=d^c&(d^o);}function Ac(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((h&-7)==1){a:{b:{c:{d:{e:{f:{g:{if(d){h:{i:{if(h>>>0<=3){while(1){l=i;j:{k:{l:{m:{while(1){k=w[c+l|0];j=k-65|0;j=j&(k-91&(j^-1))>>>8&255|(k+4&(k-58&(k+65488^-1))>>>8&255|(k+185&(k-123&(k+65439^-1))>>>8&255|(((k^16336)+1^-1)>>>8&63|((k^16340)+1^-1)>>>8&62)));j=(j-1&(k^65470)+1)>>>8&255|j;if((j|0)!=255){break m}j=0;if(!e){break h}if(ob(e,k)){l=l+1|0;if(l>>>0>=d>>>0){break l}continue}break}i=l;break h}o=j+(o<<6)|0;if(m>>>0>1){break k}m=m+6|0;break j}a=i+1|0;i=a>>>0>>0?d:a;break h}m=m-2|0;if(b>>>0<=n>>>0){break i}w[a+n|0]=o>>>m;n=n+1|0;}j=0;i=l+1|0;if(i>>>0>>0){continue}break}break h}while(1){n:{k=w[c+l|0];j=k-65|0;j=j&(k-91&(j^-1))>>>8&255|(k+4&(k-58&(k+65488^-1))>>>8&255|(k+185&(k-123&(k+65439^-1))>>>8&255|(((k^16288)+1^-1)>>>8&63|((k^16338)+1^-1)>>>8&62)));j=(j-1&(k^65470)+1)>>>8&255|j;if((j|0)==255){j=0;if(!e){break h}if(ob(e,k)){l=l+1|0;if(l>>>0>=d>>>0){break n}continue}i=l;break h}o=j+(o<<6)|0;o:{if(m>>>0<2){m=m+6|0;break o}m=m-2|0;if(b>>>0<=n>>>0){break i}w[a+n|0]=o>>>m;n=n+1|0;}j=0;i=l+1|0;if(i>>>0>=d>>>0){break h}l=i;continue}break}a=i+1|0;i=a>>>0>>0?d:a;break h}i=l;y[10172]=68;j=1;}if(m>>>0>4){break g}a=i;}else {a=0;}l=-1;if(j){i=a;break a}if((-1<>>1|0;if(!j){break p}if(!e){break e}i=a>>>0>d>>>0?a:d;while(1){if((a|0)==(i|0)){e=68;break d}q:{b=w[a+c|0];if((b|0)==61){j=j-1|0;break q}if(ob(e,b)){break q}e=28;i=a;break d}a=a+1|0;if(j){continue}break}}l=0;if(!e|a>>>0>=d>>>0){break f}while(1){if(!ob(e,w[a+c|0])){break f}a=a+1|0;if((d|0)!=(a|0)){continue}break}i=d;break b}l=-1;break a}i=a;break b}e=68;if(a>>>0>=d>>>0){i=a;break d}e=28;if(z[a+c|0]!=61){i=a;break d}i=a+1|0;if((j|0)==1){l=0;break b}if((d|0)==(i|0)){i=a>>>0>d>>>0?a:d;e=68;break d}if(z[c+i|0]==61){break c}}y[10172]=e;break a}i=a+2|0;l=0;}p=n;}r:{if(g){y[g>>2]=c+i;break r}if((d|0)==(i|0)){break r}y[10172]=28;l=-1;}if(f){y[f>>2]=p;}return l|0}na();s();}function cc(a,b,c){var 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,x=0,z=0;d=T-320|0;T=d;e=d+240|0;fa(e,c);ga(e,e,c);fa(a,e);ga(a,a,c);ga(a,a,b);gc(a,a);ga(a,a,e);ga(a,a,b);e=d+192|0;fa(e,a);ga(e,e,c);f=y[b+4>>2];n=y[b+8>>2];p=y[b+12>>2];q=y[b+16>>2];r=y[b+20>>2];s=y[b+24>>2];t=y[b+28>>2];u=y[b+32>>2];v=y[b>>2];c=y[d+192>>2];e=y[d+196>>2];g=y[d+200>>2];h=y[d+204>>2];i=y[d+208>>2];j=y[d+212>>2];k=y[d+216>>2];l=y[d+220>>2];m=y[d+224>>2];o=y[d+228>>2];x=y[b+36>>2];y[d+180>>2]=o-x;y[d+176>>2]=m-u;y[d+172>>2]=l-t;y[d+168>>2]=k-s;y[d+164>>2]=j-r;y[d+160>>2]=i-q;y[d+156>>2]=h-p;y[d+152>>2]=g-n;y[d+148>>2]=e-f;y[d+144>>2]=c-v;y[d+132>>2]=o+x;y[d+128>>2]=m+u;y[d+124>>2]=l+t;y[d+120>>2]=k+s;y[d+116>>2]=j+r;y[d+112>>2]=i+q;y[d+108>>2]=h+p;y[d+104>>2]=g+n;y[d+100>>2]=e+f;y[d+96>>2]=c+v;f=d+48|0;ga(f,b,1632);y[d+84>>2]=o+y[d+84>>2];y[d+80>>2]=m+y[d+80>>2];y[d+76>>2]=l+y[d+76>>2];y[d+72>>2]=k+y[d+72>>2];y[d+68>>2]=j+y[d+68>>2];y[d+64>>2]=i+y[d+64>>2];y[d+60>>2]=h+y[d+60>>2];y[d+56>>2]=g+y[d+56>>2];y[d+52>>2]=e+y[d+52>>2];y[d+48>>2]=c+y[d+48>>2];pa(d,d+144|0);p=ya(d,32);pa(d,d+96|0);n=ya(d,32);pa(d,f);b=ya(d,32);ga(d,a,1632);m=y[a+4>>2];l=y[a+8>>2];k=y[a+12>>2];j=y[a+16>>2];i=y[a+20>>2];h=y[a+24>>2];g=y[a+28>>2];e=y[a+32>>2];f=y[a>>2];q=y[d>>2];r=y[d+4>>2];s=y[d+8>>2];t=y[d+12>>2];u=y[d+16>>2];v=y[d+20>>2];o=y[d+24>>2];x=y[d+28>>2];z=y[d+32>>2];b=0-(b|n)|0;c=y[a+36>>2];c=b&(c^y[d+36>>2])^c;y[a+36>>2]=c;e=e^b&(e^z);y[a+32>>2]=e;g=g^b&(g^x);y[a+28>>2]=g;h=h^b&(h^o);y[a+24>>2]=h;i=i^b&(i^v);y[a+20>>2]=i;j=j^b&(j^u);y[a+16>>2]=j;k=k^b&(k^t);y[a+12>>2]=k;l=l^b&(l^s);y[a+8>>2]=l;m=m^b&(m^r);y[a+4>>2]=m;f=f^b&(f^q);y[a>>2]=f;pa(d+288|0,a);b=0-(w[d+288|0]&1)|0;y[a+36>>2]=c^b&(c^0-c);y[a+32>>2]=e^b&(e^0-e);y[a+28>>2]=g^b&(g^0-g);y[a+24>>2]=h^b&(h^0-h);y[a+20>>2]=i^b&(i^0-i);y[a+16>>2]=j^b&(j^0-j);y[a+12>>2]=k^b&(k^0-k);y[a+8>>2]=l^b&(l^0-l);y[a+4>>2]=m^b&(m^0-m);y[a>>2]=f^b&(f^0-f);T=d+320|0;return n|p}function ab(a,b){var 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,x=0,A=0,B=0,C=0;c=T-320|0;T=c;A=a+40|0;cb(A,b);y[a+84>>2]=0;y[a+88>>2]=0;y[a+80>>2]=1;y[a+92>>2]=0;y[a+96>>2]=0;y[a+100>>2]=0;y[a+104>>2]=0;y[a+108>>2]=0;y[a+112>>2]=0;y[a+116>>2]=0;d=c+240|0;fa(d,A);e=c+192|0;ga(e,d,1584);y[c+192>>2]=y[c+192>>2]+1;f=y[c+240>>2]-1|0;y[c+240>>2]=f;g=y[c+244>>2];h=y[c+248>>2];i=y[c+252>>2];j=y[c+256>>2];k=y[c+260>>2];l=y[c+264>>2];m=y[c+268>>2];n=y[c+272>>2];o=y[c+276>>2];ga(a,d,e);gc(a,a);ga(a,d,a);d=c+144|0;fa(d,a);ga(d,d,e);d=y[c+180>>2];y[c+132>>2]=d-o;e=y[c+176>>2];y[c+128>>2]=e-n;p=y[c+172>>2];y[c+124>>2]=p-m;q=y[c+168>>2];y[c+120>>2]=q-l;r=y[c+164>>2];y[c+116>>2]=r-k;s=y[c+160>>2];y[c+112>>2]=s-j;t=y[c+156>>2];y[c+108>>2]=t-i;u=y[c+152>>2];y[c+104>>2]=u-h;v=y[c+148>>2];y[c+100>>2]=v-g;x=y[c+144>>2];y[c+96>>2]=x-f;y[c+84>>2]=d+o;y[c+80>>2]=e+n;y[c+76>>2]=m+p;y[c+72>>2]=l+q;y[c+68>>2]=k+r;y[c+64>>2]=j+s;y[c+60>>2]=i+t;y[c+56>>2]=h+u;y[c+52>>2]=g+v;y[c+48>>2]=f+x;pa(c,c+96|0);n=ya(c,32);pa(c,c+48|0);p=ya(c,32);ga(c,a,1632);m=y[a+4>>2];l=y[a+8>>2];k=y[a+12>>2];j=y[a+16>>2];i=y[a+20>>2];h=y[a+24>>2];g=y[a+28>>2];f=y[a+32>>2];o=y[a>>2];q=y[c>>2];r=y[c+4>>2];s=y[c+8>>2];t=y[c+12>>2];u=y[c+16>>2];v=y[c+20>>2];x=y[c+24>>2];B=y[c+28>>2];C=y[c+32>>2];d=n-1|0;e=y[a+36>>2];e=d&(e^y[c+36>>2])^e;y[a+36>>2]=e;f=f^d&(f^C);y[a+32>>2]=f;g=g^d&(g^B);y[a+28>>2]=g;h=h^d&(h^x);y[a+24>>2]=h;i=i^d&(i^v);y[a+20>>2]=i;j=j^d&(j^u);y[a+16>>2]=j;k=k^d&(k^t);y[a+12>>2]=k;l=l^d&(l^s);y[a+8>>2]=l;m=m^d&(m^r);y[a+4>>2]=m;d=o^d&(o^q);y[a>>2]=d;pa(c+288|0,a);b=0-(w[c+288|0]&1^z[b+31|0]>>>7^z[41218]>>>2)|0;y[a+36>>2]=e^b&(e^0-e);y[a+32>>2]=f^b&(f^0-f);y[a+28>>2]=g^b&(g^0-g);y[a+24>>2]=h^b&(h^0-h);y[a+20>>2]=i^b&(i^0-i);y[a+16>>2]=j^b&(j^0-j);y[a+12>>2]=k^b&(k^0-k);y[a+8>>2]=l^b&(l^0-l);y[a+4>>2]=m^b&(m^0-m);y[a>>2]=d^b&(d^0-d);ga(a+120|0,a,A);T=c+320|0;return (n|p)-1|0}function xa(a,b){var 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,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;c=T-48|0;T=c;fa(a,b);fa(a+80|0,b+40|0);Oc(a+120|0,b+80|0);i=y[b+40>>2];e=y[b+44>>2];d=y[b+4>>2];f=y[b+48>>2];j=y[b+8>>2];g=y[b+52>>2];k=y[b+12>>2];h=y[b+56>>2];p=y[b+16>>2];l=y[b+60>>2];q=y[b+20>>2];m=y[b- -64>>2];r=y[b+24>>2];n=y[b+68>>2];s=y[b+28>>2];o=y[b+72>>2];t=y[b+32>>2];v=y[b>>2];y[a+76>>2]=y[b+76>>2]+y[b+36>>2];y[a+72>>2]=o+t;y[a+68>>2]=n+s;w=a- -64|0;y[w>>2]=m+r;y[a+60>>2]=l+q;y[a+56>>2]=h+p;y[a+52>>2]=g+k;y[a+48>>2]=f+j;y[a+44>>2]=e+d;b=a+40|0;y[b>>2]=i+v;fa(c,b);i=y[a+80>>2];e=y[a+4>>2];d=y[a+84>>2];f=y[a+8>>2];j=y[a+88>>2];g=y[a+12>>2];k=y[a+92>>2];h=y[a+16>>2];p=y[a+96>>2];l=y[a+20>>2];q=y[a+100>>2];m=y[a+24>>2];r=y[a+104>>2];n=y[a+28>>2];s=y[a+108>>2];o=y[a+32>>2];t=y[a+112>>2];v=y[a>>2];u=y[a+116>>2];x=y[a+36>>2];z=u-x|0;y[a+116>>2]=z;A=t-o|0;y[a+112>>2]=A;B=s-n|0;y[a+108>>2]=B;C=r-m|0;y[a+104>>2]=C;D=q-l|0;y[a+100>>2]=D;E=p-h|0;y[a+96>>2]=E;F=k-g|0;y[a+92>>2]=F;G=j-f|0;y[a+88>>2]=G;H=d-e|0;y[a+84>>2]=H;I=i-v|0;y[a+80>>2]=I;u=u+x|0;y[a+76>>2]=u;o=o+t|0;y[a+72>>2]=o;n=n+s|0;y[a+68>>2]=n;m=m+r|0;y[w>>2]=m;l=l+q|0;y[a+60>>2]=l;h=h+p|0;y[a+56>>2]=h;g=g+k|0;y[a+52>>2]=g;f=f+j|0;y[a+48>>2]=f;e=e+d|0;y[a+44>>2]=e;d=b;b=i+v|0;y[d>>2]=b;i=y[c>>2];d=y[c+4>>2];j=y[c+8>>2];k=y[c+12>>2];p=y[c+16>>2];q=y[c+20>>2];r=y[c+24>>2];s=y[c+28>>2];t=y[c+32>>2];y[a+36>>2]=y[c+36>>2]-u;y[a+32>>2]=t-o;y[a+28>>2]=s-n;y[a+24>>2]=r-m;y[a+20>>2]=q-l;y[a+16>>2]=p-h;y[a+12>>2]=k-g;y[a+8>>2]=j-f;y[a+4>>2]=d-e;y[a>>2]=i-b;b=y[a+120>>2];i=y[a+124>>2];e=y[a+128>>2];d=y[a+132>>2];f=y[a+136>>2];j=y[a+140>>2];g=y[a+144>>2];k=y[a+148>>2];h=y[a+152>>2];y[a+156>>2]=y[a+156>>2]-z;y[a+152>>2]=h-A;y[a+148>>2]=k-B;y[a+144>>2]=g-C;y[a+140>>2]=j-D;y[a+136>>2]=f-E;y[a+132>>2]=d-F;y[a+128>>2]=e-G;y[a+124>>2]=i-H;y[a+120>>2]=b-I;T=c+48|0;}function La(a,b,c,d){var 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;o=T-288|0;T=o;a:{if(!(c|d)){break a}h=y[a+36>>2];f=h;e=(d<<3|c>>>29)+f|0;g=y[a+32>>2];j=c<<3;i=g+j|0;y[a+32>>2]=i;y[a+36>>2]=j>>>0>i>>>0?e+1|0:e;h=a+40|0;k=((f&7)<<29|g>>>3)&63;g=k;j=64-g|0;e=0;r=0-(e+(g>>>0>64)|0)|0;g=r;if((d|0)==(g|0)&c>>>0>=j>>>0|d>>>0>g>>>0){s=j&3;f=0;g=0;b:{if(!e&(k^63)>>>0>=3|e){t=j&124;while(1){e=f+k|0;w[e+h|0]=z[b+f|0];i=f|1;e=k+i|0;w[e+h|0]=z[b+i|0];i=f|2;e=k+i|0;w[e+h|0]=z[b+i|0];i=f|3;e=k+i|0;w[e+h|0]=z[b+i|0];f=f+4|0;g=f>>>0<4?g+1|0:g;e=p;m=m+4|0;e=m>>>0<4?e+1|0:e;p=e;if((m|0)!=(t|0)|(q|0)!=(e|0)){continue}break}if(!(s|q)){break b}}while(1){e=f+k|0;w[e+h|0]=z[b+f|0];e=g;f=f+1|0;g=f?e:e+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((l|0)!=(s|0)|(q|0)!=(e|0)){continue}break}}n=o+256|0;Tb(a,h,o,n);b=b+j|0;d=d-((c>>>0>>0)+r|0)|0;c=c-j|0;if(!d&c>>>0>63|d){while(1){Tb(a,b,o,n);b=b- -64|0;g=d-1|0;c=c+-64|0;d=c>>>0<4294967232?g+1|0:g;if(!d&c>>>0>63|d){continue}break}}c:{if(!(c|d)){break c}i=c&3;j=0;l=0;n=0;f=0;g=0;if(!d&c>>>0>=4|d){m=c&60;p=0;c=0;d=0;while(1){w[f+h|0]=z[b+f|0];a=f|1;w[a+h|0]=z[a+b|0];a=f|2;w[a+h|0]=z[a+b|0];a=f|3;w[a+h|0]=z[a+b|0];e=g;f=f+4|0;g=f>>>0<4?e+1|0:e;e=d;c=c+4|0;e=c>>>0<4?e+1|0:e;d=e;if((c|0)!=(m|0)|(p|0)!=(e|0)){continue}break}if(!(j|i)){break c}}while(1){w[f+h|0]=z[b+f|0];f=f+1|0;g=f?g:g+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((i|0)!=(l|0)|(j|0)!=(e|0)){continue}break}}ja(o,288);break a}q=c&3;i=0;f=0;g=0;if(!d&c>>>0>=4|d){j=c&-4;while(1){a=f+k|0;w[a+h|0]=z[b+f|0];c=f|1;a=k+c|0;w[a+h|0]=z[b+c|0];c=f|2;a=k+c|0;w[a+h|0]=z[b+c|0];c=f|3;a=k+c|0;w[a+h|0]=z[b+c|0];f=f+4|0;g=f>>>0<4?g+1|0:g;e=p;m=m+4|0;e=m>>>0<4?e+1|0:e;p=e;if((j|0)!=(m|0)|(d|0)!=(e|0)){continue}break}if(!(i|q)){break a}}while(1){a=f+k|0;w[a+h|0]=z[b+f|0];f=f+1|0;g=f?g:g+1|0;e=n;l=l+1|0;e=l?e:e+1|0;n=e;if((l|0)!=(q|0)|(i|0)!=(e|0)){continue}break}}T=o+288|0;return 0}function Mc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=T-160|0;T=d;e=z[41218];y[a+4>>2]=0;y[a+8>>2]=0;y[a>>2]=1;y[a+12>>2]=0;y[a+16>>2]=0;y[a+20>>2]=0;y[a+24>>2]=0;y[a+28>>2]=0;y[a+32>>2]=0;y[a+44>>2]=0;y[a+48>>2]=0;y[a+36>>2]=0;y[a+40>>2]=1;y[a+52>>2]=0;y[a+56>>2]=0;y[a+60>>2]=0;y[a+64>>2]=0;y[a+68>>2]=0;y[a+72>>2]=0;y[a+76>>2]=0;y[a+80>>2]=1;o(a+84|0,0,76);e=e>>>2^(c&128)>>>7;c=c-((0-e&c)<<1)|0;Ra(a,b,z[41218]>>>2^((c^1)&255)-1>>>31);Ra(a,b+160|0,z[41218]>>>2^((c^2)&255)-1>>>31);Ra(a,b+320|0,z[41218]>>>2^((c^3)&255)-1>>>31);Ra(a,b+480|0,z[41218]>>>2^((c^4)&255)-1>>>31);Ra(a,b+640|0,z[41218]>>>2^((c^5)&255)-1>>>31);Ra(a,b+800|0,z[41218]>>>2^((c^6)&255)-1>>>31);Ra(a,b+960|0,z[41218]>>>2^((c^7)&255)-1>>>31);Ra(a,b+1120|0,z[41218]>>>2^((c^8)&255)-1>>>31);b=y[a+76>>2];y[d+32>>2]=y[a+72>>2];y[d+36>>2]=b;b=a- -64|0;c=y[b+4>>2];y[d+24>>2]=y[b>>2];y[d+28>>2]=c;b=y[a+60>>2];y[d+16>>2]=y[a+56>>2];y[d+20>>2]=b;b=y[a+52>>2];y[d+8>>2]=y[a+48>>2];y[d+12>>2]=b;b=y[a+44>>2];y[d>>2]=y[a+40>>2];y[d+4>>2]=b;b=y[a+36>>2];y[d+72>>2]=y[a+32>>2];y[d+76>>2]=b;b=y[a+28>>2];y[d+64>>2]=y[a+24>>2];y[d+68>>2]=b;b=y[a+20>>2];y[d+56>>2]=y[a+16>>2];y[d+60>>2]=b;b=y[a+12>>2];y[d+48>>2]=y[a+8>>2];y[d+52>>2]=b;b=y[a+4>>2];y[d+40>>2]=y[a>>2];y[d+44>>2]=b;b=y[a+92>>2];y[d+88>>2]=y[a+88>>2];y[d+92>>2]=b;b=y[a+84>>2];y[d+80>>2]=y[a+80>>2];y[d+84>>2]=b;b=y[a+100>>2];y[d+96>>2]=y[a+96>>2];y[d+100>>2]=b;b=y[a+108>>2];y[d+104>>2]=y[a+104>>2];y[d+108>>2]=b;b=y[a+116>>2];y[d+112>>2]=y[a+112>>2];y[d+116>>2]=b;b=y[a+120>>2];c=y[a+124>>2];f=y[a+128>>2];g=y[a+132>>2];h=y[a+136>>2];i=y[a+140>>2];j=y[a+144>>2];k=y[a+148>>2];l=y[a+152>>2];y[d+156>>2]=0-y[a+156>>2];y[d+152>>2]=0-l;y[d+148>>2]=0-k;y[d+144>>2]=0-j;y[d+140>>2]=0-i;y[d+136>>2]=0-h;y[d+132>>2]=0-g;y[d+128>>2]=0-f;y[d+124>>2]=0-c;y[d+120>>2]=0-b;Ra(a,d,e);T=d+160|0;}function lc(a,b,c,d,e,f){var g=0;y[f>>2]=8;a:{b:{g=a;a=!b&a>>>0<=32768;g=a?32768:g;c:{d:{a=a?0:b;if(!a&c>>>5>>>0<=g>>>0|a){if(c>>>0>=4096){break d}b=1;break c}y[e>>2]=1;b=(g>>>0)/(y[f>>2]<<2>>>0)|0;a=1;if(b>>>0<4){break a}a=2;if(b>>>0<8){break a}if(b>>>0<16){y[d>>2]=3;return}if(b>>>0<32){y[d>>2]=4;return}if(b>>>0<64){y[d>>2]=5;return}if(b>>>0<128){y[d>>2]=6;return}if(b>>>0<256){y[d>>2]=7;return}if(b>>>0<512){y[d>>2]=8;return}if(b>>>0<1024){y[d>>2]=9;return}if(b>>>0<2048){y[d>>2]=10;return}if(b>>>0<4096){y[d>>2]=11;return}if(b>>>0<8192){y[d>>2]=12;return}if(b>>>0<16384){y[d>>2]=13;return}if(b>>>0<32768){y[d>>2]=14;return}if(b>>>0<65536){y[d>>2]=15;return}if(b>>>0<131072){y[d>>2]=16;return}if(b>>>0<262144){y[d>>2]=17;return}if(b>>>0<524288){y[d>>2]=18;return}if(b>>>0<1048576){y[d>>2]=19;return}if(b>>>0<2097152){y[d>>2]=20;return}if(b>>>0<4194304){y[d>>2]=21;return}if(b>>>0<8388608){y[d>>2]=22;return}if(b>>>0<16777216){y[d>>2]=23;return}if(b>>>0>=33554432){break b}y[d>>2]=24;return}b=2;if(c>>>0<8192){break c}b=3;if(c>>>0<16384){break c}b=4;if(c>>>0<32768){break c}b=5;if(c>>>0<65536){break c}b=6;if(c>>>0<131072){break c}b=7;if(c>>>0<262144){break c}b=8;if(c>>>0<524288){break c}b=9;if(c>>>0<1048576){break c}b=10;if(c>>>0<2097152){break c}b=11;if(c>>>0<4194304){break c}b=12;if(c>>>0<8388608){break c}b=13;if(c>>>0<16777216){break c}b=14;if(c>>>0<33554432){break c}b=15;if(c>>>0<67108864){break c}b=16;if(c>>>0<134217728){break c}b=17;if(c>>>0<268435456){break c}b=18;if(c>>>0<536870912){break c}b=19;if(c>>>0<1073741824){break c}b=(c|0)>=0?20:21;}c=b;y[d>>2]=c;b=a;a=b>>>2|0;b=(b&3)<<30|g>>>2;d=c&31;if((c&63)>>>0>=32){c=0;a=a>>>d|0;}else {c=a>>>d|0;a=((1<>>d;}y[e>>2]=((!c&a>>>0>=1073741823|c?1073741823:a)>>>0)/B[f>>2];return}a=b>>>0<67108864?25:26;}y[d>>2]=a;}function Re(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;i=T-112|0;T=i;if(c|d){j=z[h+28|0]|z[h+29|0]<<8|(z[h+30|0]<<16|z[h+31|0]<<24);y[i+24>>2]=z[h+24|0]|z[h+25|0]<<8|(z[h+26|0]<<16|z[h+27|0]<<24);y[i+28>>2]=j;j=z[h+20|0]|z[h+21|0]<<8|(z[h+22|0]<<16|z[h+23|0]<<24);y[i+16>>2]=z[h+16|0]|z[h+17|0]<<8|(z[h+18|0]<<16|z[h+19|0]<<24);y[i+20>>2]=j;j=z[h+12|0]|z[h+13|0]<<8|(z[h+14|0]<<16|z[h+15|0]<<24);y[i+8>>2]=z[h+8|0]|z[h+9|0]<<8|(z[h+10|0]<<16|z[h+11|0]<<24);y[i+12>>2]=j;j=z[h+4|0]|z[h+5|0]<<8|(z[h+6|0]<<16|z[h+7|0]<<24);y[i>>2]=z[h|0]|z[h+1|0]<<8|(z[h+2|0]<<16|z[h+3|0]<<24);y[i+4>>2]=j;h=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[i+96>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[i+100>>2]=h;w[i+104|0]=f;w[i+111|0]=g>>>24;w[i+110|0]=g>>>16;w[i+109|0]=g>>>8;w[i+108|0]=g;w[i+107|0]=(g&16777215)<<8|f>>>24;w[i+106|0]=(g&65535)<<16|f>>>16;w[i+105|0]=(g&255)<<24|f>>>8;a:{if(!d&c>>>0>=64|d){while(1){h=0;vb(i+32|0,i+96|0,i,0);while(1){f=i+32|0;w[a+h|0]=z[f+h|0]^z[b+h|0];e=h|1;w[e+a|0]=z[e+f|0]^z[b+e|0];h=h+2|0;if((h|0)!=64){continue}break}e=z[i+104|0]+1|0;w[i+104|0]=e;e=z[i+105|0]+(e>>>8|0)|0;w[i+105|0]=e;e=z[i+106|0]+(e>>>8|0)|0;w[i+106|0]=e;e=z[i+107|0]+(e>>>8|0)|0;w[i+107|0]=e;e=z[i+108|0]+(e>>>8|0)|0;w[i+108|0]=e;e=z[i+109|0]+(e>>>8|0)|0;w[i+109|0]=e;e=z[i+110|0]+(e>>>8|0)|0;w[i+110|0]=e;w[i+111|0]=z[i+111|0]+(e>>>8|0);b=b- -64|0;a=a- -64|0;d=d-1|0;c=c+-64|0;d=c>>>0<4294967232?d+1|0:d;if(!d&c>>>0>63|d){continue}break}if(!(c|d)){break a}}h=0;vb(i+32|0,i+96|0,i,0);if((c|0)!=1|d){d=c&1;f=c&62;e=0;while(1){g=i+32|0;w[a+h|0]=z[g+h|0]^z[b+h|0];c=h|1;w[c+a|0]=z[c+g|0]^z[b+c|0];h=h+2|0;e=e+2|0;if((f|0)!=(e|0)){continue}break}if(!d){break a}}w[a+h|0]=z[(i+32|0)+h|0]^z[b+h|0];}ja(i+32|0,64);ja(i,32);}T=i+112|0;return 0}function Xd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=T-192|0;T=d;za(d,32);rb(b,d,32,0);w[b|0]=z[b|0]&248;w[b+31|0]=z[b+31|0]&63|64;e=d+32|0;jb(e,b);Wa(a,e);f=d;e=y[d+28>>2];d=y[d+24>>2];w[b+24|0]=d;w[b+25|0]=d>>>8;w[b+26|0]=d>>>16;w[b+27|0]=d>>>24;w[b+28|0]=e;w[b+29|0]=e>>>8;w[b+30|0]=e>>>16;w[b+31|0]=e>>>24;e=y[f+20>>2];d=y[f+16>>2];w[b+16|0]=d;w[b+17|0]=d>>>8;w[b+18|0]=d>>>16;w[b+19|0]=d>>>24;w[b+20|0]=e;w[b+21|0]=e>>>8;w[b+22|0]=e>>>16;w[b+23|0]=e>>>24;e=y[f+12>>2];d=y[f+8>>2];w[b+8|0]=d;w[b+9|0]=d>>>8;w[b+10|0]=d>>>16;w[b+11|0]=d>>>24;w[b+12|0]=e;w[b+13|0]=e>>>8;w[b+14|0]=e>>>16;w[b+15|0]=e>>>24;e=y[f+4>>2];d=y[f>>2];w[b|0]=d;w[b+1|0]=d>>>8;w[b+2|0]=d>>>16;w[b+3|0]=d>>>24;w[b+4|0]=e;w[b+5|0]=e>>>8;w[b+6|0]=e>>>16;w[b+7|0]=e>>>24;c=a;g=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);h=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);i=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);e=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);d=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);a=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);j=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);c=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);w[b+56|0]=c;w[b+57|0]=c>>>8;w[b+58|0]=c>>>16;w[b+59|0]=c>>>24;w[b+60|0]=j;w[b+61|0]=j>>>8;w[b+62|0]=j>>>16;w[b+63|0]=j>>>24;w[b+48|0]=d;w[b+49|0]=d>>>8;w[b+50|0]=d>>>16;w[b+51|0]=d>>>24;w[b+52|0]=a;w[b+53|0]=a>>>8;w[b+54|0]=a>>>16;w[b+55|0]=a>>>24;w[b+40|0]=i;w[b+41|0]=i>>>8;w[b+42|0]=i>>>16;w[b+43|0]=i>>>24;w[b+44|0]=e;w[b+45|0]=e>>>8;w[b+46|0]=e>>>16;w[b+47|0]=e>>>24;w[b+32|0]=g;w[b+33|0]=g>>>8;w[b+34|0]=g>>>16;w[b+35|0]=g>>>24;w[b+36|0]=h;w[b+37|0]=h>>>8;w[b+38|0]=h>>>16;w[b+39|0]=h>>>24;ja(f,32);T=f+192|0;return 0}function te(a,b){a=a|0;b=b|0;var c=0,d=0;d=T+-64|0;T=d;c=z[b+60|0]|z[b+61|0]<<8|(z[b+62|0]<<16|z[b+63|0]<<24);y[d+56>>2]=z[b+56|0]|z[b+57|0]<<8|(z[b+58|0]<<16|z[b+59|0]<<24);y[d+60>>2]=c;c=z[b+52|0]|z[b+53|0]<<8|(z[b+54|0]<<16|z[b+55|0]<<24);y[d+48>>2]=z[b+48|0]|z[b+49|0]<<8|(z[b+50|0]<<16|z[b+51|0]<<24);y[d+52>>2]=c;c=z[b+44|0]|z[b+45|0]<<8|(z[b+46|0]<<16|z[b+47|0]<<24);y[d+40>>2]=z[b+40|0]|z[b+41|0]<<8|(z[b+42|0]<<16|z[b+43|0]<<24);y[d+44>>2]=c;c=z[b+36|0]|z[b+37|0]<<8|(z[b+38|0]<<16|z[b+39|0]<<24);y[d+32>>2]=z[b+32|0]|z[b+33|0]<<8|(z[b+34|0]<<16|z[b+35|0]<<24);y[d+36>>2]=c;c=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[d+24>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[d+28>>2]=c;c=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[d+16>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[d+20>>2]=c;c=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[d+8>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[d+12>>2]=c;c=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);y[d>>2]=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[d+4>>2]=c;Pa(d);b=y[d+28>>2];c=y[d+24>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[d+20>>2];c=y[d+16>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[d+12>>2];c=y[d+8>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[d+4>>2];c=y[d>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;ja(d,64);T=d- -64|0;}function Xa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=T-96|0;T=d;if(c>>>0>=65){Ub(a);La(a,b,c,0);Ua(a,d);c=32;b=d;}Ub(a);y[d+88>>2]=909522486;y[d+92>>2]=909522486;y[d+80>>2]=909522486;y[d+84>>2]=909522486;y[d+72>>2]=909522486;y[d+76>>2]=909522486;y[d+64>>2]=909522486;y[d+68>>2]=909522486;y[d+56>>2]=909522486;y[d+60>>2]=909522486;y[d+48>>2]=909522486;y[d+52>>2]=909522486;y[d+40>>2]=909522486;y[d+44>>2]=909522486;y[d+32>>2]=909522486;y[d+36>>2]=909522486;a:{if(!c){break a}k=c&3;if(c>>>0>=4){g=c&124;while(1){h=d+32|0;f=h+e|0;w[f|0]=z[f|0]^z[b+e|0];f=e|1;l=f+h|0;w[l|0]=z[l|0]^z[b+f|0];f=e|2;l=f+h|0;w[l|0]=z[l|0]^z[b+f|0];f=h;h=e|3;f=f+h|0;w[f|0]=z[f|0]^z[b+h|0];e=e+4|0;i=i+4|0;if((g|0)!=(i|0)){continue}break}if(!k){break a}}while(1){i=(d+32|0)+e|0;w[i|0]=z[i|0]^z[b+e|0];e=e+1|0;j=j+1|0;if((k|0)!=(j|0)){continue}break}}La(a,d+32|0,64,0);k=a+104|0;Ub(k);y[d+88>>2]=1549556828;y[d+92>>2]=1549556828;y[d+80>>2]=1549556828;y[d+84>>2]=1549556828;y[d+72>>2]=1549556828;y[d+76>>2]=1549556828;y[d+64>>2]=1549556828;y[d+68>>2]=1549556828;y[d+56>>2]=1549556828;y[d+60>>2]=1549556828;y[d+48>>2]=1549556828;y[d+52>>2]=1549556828;y[d+40>>2]=1549556828;y[d+44>>2]=1549556828;y[d+32>>2]=1549556828;y[d+36>>2]=1549556828;b:{if(!c){break b}h=c&3;j=0;e=0;if(c>>>0>=4){c=c&124;i=0;while(1){a=d+32|0;g=a+e|0;w[g|0]=z[g|0]^z[b+e|0];g=e|1;f=g+a|0;w[f|0]=z[f|0]^z[b+g|0];g=e|2;f=g+a|0;w[f|0]=z[f|0]^z[b+g|0];f=a;a=e|3;g=f+a|0;w[g|0]=z[g|0]^z[a+b|0];e=e+4|0;i=i+4|0;if((c|0)!=(i|0)){continue}break}if(!h){break b}}while(1){a=(d+32|0)+e|0;w[a|0]=z[a|0]^z[b+e|0];e=e+1|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}a=d+32|0;La(k,a,64,0);ja(a,64);ja(d,32);T=d+96|0;return 0}function Wb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0;if(b-65>>>0<4294967232|g>>>0>64){a=-1;}else {h=T;m=h;h=h-512&-64;T=h;a:{b:{if(!(!(d|e)|c)|(!a|(b-65&255)>>>0<=191)|(!(g?f:1)|g>>>0>=65)){break b}c:{if(g){if(!f){break b}o(h- -64|0,0,293);y[h+56>>2]=327033209;y[h+60>>2]=1541459225;y[h+48>>2]=-79577749;y[h+52>>2]=528734635;y[h+40>>2]=725511199;y[h+44>>2]=-1694144372;y[h+32>>2]=-1377402159;y[h+36>>2]=1359893119;y[h+24>>2]=1595750129;y[h+28>>2]=-1521486534;y[h+16>>2]=-23791573;y[h+20>>2]=1013904242;y[h+8>>2]=-2067093701;y[h+12>>2]=-1150833019;y[h>>2]=(g<<8|b)^-222443256;y[h+4>>2]=g>>>24^1779033703;j=128;i=128-g|0;if(i){o((h+384|0)+g|0,0,i);}if(g){t(h+384|0,f,g);}f=h+384|0;t(h+96|0,f,128);y[h+352>>2]=128;ja(f,128);break c}o(h- -64|0,0,293);y[h+56>>2]=327033209;y[h+60>>2]=1541459225;y[h+48>>2]=-79577749;y[h+52>>2]=528734635;y[h+40>>2]=725511199;y[h+44>>2]=-1694144372;y[h+32>>2]=-1377402159;y[h+36>>2]=1359893119;y[h+24>>2]=1595750129;y[h+28>>2]=-1521486534;y[h+16>>2]=-23791573;y[h+20>>2]=1013904242;y[h+8>>2]=-2067093701;y[h+12>>2]=-1150833019;y[h>>2]=b^-222443256;y[h+4>>2]=1779033703;}if(d|e){l=h+96|0;f=256-j|0;if(!e&d>>>0>f>>>0|e){n=h+224|0;while(1){if(f){t(j+l|0,c,f);}y[h+352>>2]=y[h+352>>2]+f;g=y[h+68>>2];j=g;i=y[h+64>>2];k=i+128|0;g=k>>>0<128?g+1|0:g;y[h+64>>2]=k;y[h+68>>2]=g;g=y[h+76>>2];i=(j|0)==-1&i>>>0>4294967167;j=i;i=i+y[h+72>>2]|0;g=j>>>0>i>>>0?g+1|0:g;y[h+72>>2]=i;y[h+76>>2]=g;Eb(h,l);t(l,n,128);k=y[h+352>>2];j=k-128|0;y[h+352>>2]=j;c=c+f|0;g=f;i=d-g|0;e=e-(d>>>0>>0)|0;f=384-k|0;d=i;if(!e&f>>>0>>0|e){continue}break}}if(d){t(j+l|0,c,d);}y[h+352>>2]=d+y[h+352>>2];}Cc(h,a,b);T=m;break a}na();s();}a=0;}return a}function _e(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,i=0;g=T-112|0;T=g;h=c;if(d|c){c=z[f+28|0]|z[f+29|0]<<8|(z[f+30|0]<<16|z[f+31|0]<<24);y[g+24>>2]=z[f+24|0]|z[f+25|0]<<8|(z[f+26|0]<<16|z[f+27|0]<<24);y[g+28>>2]=c;c=z[f+20|0]|z[f+21|0]<<8|(z[f+22|0]<<16|z[f+23|0]<<24);y[g+16>>2]=z[f+16|0]|z[f+17|0]<<8|(z[f+18|0]<<16|z[f+19|0]<<24);y[g+20>>2]=c;c=z[f+12|0]|z[f+13|0]<<8|(z[f+14|0]<<16|z[f+15|0]<<24);y[g+8>>2]=z[f+8|0]|z[f+9|0]<<8|(z[f+10|0]<<16|z[f+11|0]<<24);y[g+12>>2]=c;c=z[f+4|0]|z[f+5|0]<<8|(z[f+6|0]<<16|z[f+7|0]<<24);y[g>>2]=z[f|0]|z[f+1|0]<<8|(z[f+2|0]<<16|z[f+3|0]<<24);y[g+4>>2]=c;c=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);e=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[g+104>>2]=0;y[g+108>>2]=0;y[g+96>>2]=c;y[g+100>>2]=e;a:{if(!d&h>>>0>=64|d){while(1){c=0;ub(g+32|0,g+96|0,g,0);while(1){f=g+32|0;w[a+c|0]=z[f+c|0]^z[b+c|0];e=c|1;w[e+a|0]=z[e+f|0]^z[b+e|0];c=c+2|0;if((c|0)!=64){continue}break}c=z[g+104|0]+1|0;w[g+104|0]=c;c=z[g+105|0]+(c>>>8|0)|0;w[g+105|0]=c;c=z[g+106|0]+(c>>>8|0)|0;w[g+106|0]=c;c=z[g+107|0]+(c>>>8|0)|0;w[g+107|0]=c;c=z[g+108|0]+(c>>>8|0)|0;w[g+108|0]=c;c=z[g+109|0]+(c>>>8|0)|0;w[g+109|0]=c;c=z[g+110|0]+(c>>>8|0)|0;w[g+110|0]=c;w[g+111|0]=z[g+111|0]+(c>>>8|0);b=b- -64|0;a=a- -64|0;d=d-1|0;h=h+-64|0;d=h>>>0<4294967232?d+1|0:d;if(!d&h>>>0>63|d){continue}break}if(!(d|h)){break a}}c=0;ub(g+32|0,g+96|0,g,0);if((h|0)!=1|d){f=h&1;h=h&62;d=0;while(1){i=g+32|0;w[a+c|0]=z[i+c|0]^z[b+c|0];e=c|1;w[e+a|0]=z[e+i|0]^z[b+e|0];c=c+2|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}if(!f){break a}}w[a+c|0]=z[(g+32|0)+c|0]^z[b+c|0];}ja(g+32|0,64);ja(g,32);}T=g+112|0;return 0}function Ye(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,i=0;g=T-112|0;T=g;h=c;if(d|c){c=z[f+28|0]|z[f+29|0]<<8|(z[f+30|0]<<16|z[f+31|0]<<24);y[g+24>>2]=z[f+24|0]|z[f+25|0]<<8|(z[f+26|0]<<16|z[f+27|0]<<24);y[g+28>>2]=c;c=z[f+20|0]|z[f+21|0]<<8|(z[f+22|0]<<16|z[f+23|0]<<24);y[g+16>>2]=z[f+16|0]|z[f+17|0]<<8|(z[f+18|0]<<16|z[f+19|0]<<24);y[g+20>>2]=c;c=z[f+12|0]|z[f+13|0]<<8|(z[f+14|0]<<16|z[f+15|0]<<24);y[g+8>>2]=z[f+8|0]|z[f+9|0]<<8|(z[f+10|0]<<16|z[f+11|0]<<24);y[g+12>>2]=c;c=z[f+4|0]|z[f+5|0]<<8|(z[f+6|0]<<16|z[f+7|0]<<24);y[g>>2]=z[f|0]|z[f+1|0]<<8|(z[f+2|0]<<16|z[f+3|0]<<24);y[g+4>>2]=c;c=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);e=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[g+104>>2]=0;y[g+108>>2]=0;y[g+96>>2]=c;y[g+100>>2]=e;a:{if(!d&h>>>0>=64|d){while(1){c=0;tb(g+32|0,g+96|0,g,0);while(1){f=g+32|0;w[a+c|0]=z[f+c|0]^z[b+c|0];e=c|1;w[e+a|0]=z[e+f|0]^z[b+e|0];c=c+2|0;if((c|0)!=64){continue}break}c=z[g+104|0]+1|0;w[g+104|0]=c;c=z[g+105|0]+(c>>>8|0)|0;w[g+105|0]=c;c=z[g+106|0]+(c>>>8|0)|0;w[g+106|0]=c;c=z[g+107|0]+(c>>>8|0)|0;w[g+107|0]=c;c=z[g+108|0]+(c>>>8|0)|0;w[g+108|0]=c;c=z[g+109|0]+(c>>>8|0)|0;w[g+109|0]=c;c=z[g+110|0]+(c>>>8|0)|0;w[g+110|0]=c;w[g+111|0]=z[g+111|0]+(c>>>8|0);b=b- -64|0;a=a- -64|0;d=d-1|0;h=h+-64|0;d=h>>>0<4294967232?d+1|0:d;if(!d&h>>>0>63|d){continue}break}if(!(d|h)){break a}}c=0;tb(g+32|0,g+96|0,g,0);if((h|0)!=1|d){f=h&1;h=h&62;d=0;while(1){i=g+32|0;w[a+c|0]=z[i+c|0]^z[b+c|0];e=c|1;w[e+a|0]=z[e+i|0]^z[b+e|0];c=c+2|0;d=d+2|0;if((h|0)!=(d|0)){continue}break}if(!f){break a}}w[a+c|0]=z[(g+32|0)+c|0]^z[b+c|0];}ja(g+32|0,64);ja(g,32);}T=g+112|0;return 0}function ve(a,b){a=a|0;b=b|0;var c=0,d=0;c=T-128|0;T=c;y[c+64>>2]=0;y[c+68>>2]=0;y[c+72>>2]=0;y[c+76>>2]=0;y[c+80>>2]=0;y[c+84>>2]=0;y[c+88>>2]=0;y[c+92>>2]=0;w[c+64|0]=1;y[c+32>>2]=0;y[c+36>>2]=0;y[c+40>>2]=0;y[c+44>>2]=0;y[c+48>>2]=0;y[c+52>>2]=0;y[c+56>>2]=0;y[c+60>>2]=0;d=y[9821];y[c+96>>2]=y[9820];y[c+100>>2]=d;d=y[9823];y[c+104>>2]=y[9822];y[c+108>>2]=d;d=y[9825];y[c+112>>2]=y[9824];y[c+116>>2]=d;d=y[9827];y[c+120>>2]=y[9826];y[c+124>>2]=d;d=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[c+24>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[c+28>>2]=d;d=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[c+16>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[c+20>>2]=d;d=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[c+8>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[c+12>>2]=d;d=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);y[c>>2]=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[c+4>>2]=d;b=c- -64|0;Ec(b,c);Pa(b);d=y[c+92>>2];b=y[c+88>>2];w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;w[a+28|0]=d;w[a+29|0]=d>>>8;w[a+30|0]=d>>>16;w[a+31|0]=d>>>24;d=y[c+84>>2];b=y[c+80>>2];w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;w[a+20|0]=d;w[a+21|0]=d>>>8;w[a+22|0]=d>>>16;w[a+23|0]=d>>>24;d=y[c+76>>2];b=y[c+72>>2];w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;w[a+12|0]=d;w[a+13|0]=d>>>8;w[a+14|0]=d>>>16;w[a+15|0]=d>>>24;d=y[c+68>>2];b=y[c+64>>2];w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=d;w[a+5|0]=d>>>8;w[a+6|0]=d>>>16;w[a+7|0]=d>>>24;T=c+128|0;} +function Ze(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=T-112|0;T=f;h=b;g=c;if(b|g){b=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);y[f+24>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);y[f+28>>2]=b;b=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+16>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+20>>2]=b;b=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+8>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);y[f+12>>2]=b;b=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[f>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[f+4>>2]=b;b=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);c=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);y[f+104>>2]=0;y[f+108>>2]=0;y[f+96>>2]=b;y[f+100>>2]=c;a:{if(!g&h>>>0>=64|g){while(1){tb(a,f+96|0,f,0);b=z[f+104|0]+1|0;w[f+104|0]=b;b=z[f+105|0]+(b>>>8|0)|0;w[f+105|0]=b;b=z[f+106|0]+(b>>>8|0)|0;w[f+106|0]=b;b=z[f+107|0]+(b>>>8|0)|0;w[f+107|0]=b;b=z[f+108|0]+(b>>>8|0)|0;w[f+108|0]=b;b=z[f+109|0]+(b>>>8|0)|0;w[f+109|0]=b;b=z[f+110|0]+(b>>>8|0)|0;w[f+110|0]=b;w[f+111|0]=z[f+111|0]+(b>>>8|0);a=a- -64|0;g=g-1|0;h=h+-64|0;g=h>>>0<4294967232?g+1|0:g;if(!g&h>>>0>63|g){continue}break}if(!(g|h)){break a}}c=0;tb(f+32|0,f+96|0,f,0);d=h&3;b=0;if(!g&h>>>0>=4|g){h=h&60;e=0;while(1){g=f+32|0;w[a+b|0]=z[g+b|0];i=b|1;w[i+a|0]=z[g+i|0];i=b|2;w[i+a|0]=z[g+i|0];i=b|3;w[i+a|0]=z[g+i|0];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}if(!d){break a}}while(1){w[a+b|0]=z[(f+32|0)+b|0];b=b+1|0;c=c+1|0;if((d|0)!=(c|0)){continue}break}}ja(f+32|0,64);ja(f,32);}T=f+112|0;return 0}function Se(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=T-112|0;T=f;if(b|c){g=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);y[f+24>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);y[f+28>>2]=g;g=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+16>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+20>>2]=g;g=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+8>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);y[f+12>>2]=g;g=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[f>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[f+4>>2]=g;e=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);d=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);y[f+104>>2]=0;y[f+108>>2]=0;y[f+96>>2]=e;y[f+100>>2]=d;a:{if(!c&b>>>0>=64|c){while(1){vb(a,f+96|0,f,0);d=z[f+104|0]+1|0;w[f+104|0]=d;d=z[f+105|0]+(d>>>8|0)|0;w[f+105|0]=d;d=z[f+106|0]+(d>>>8|0)|0;w[f+106|0]=d;d=z[f+107|0]+(d>>>8|0)|0;w[f+107|0]=d;d=z[f+108|0]+(d>>>8|0)|0;w[f+108|0]=d;d=z[f+109|0]+(d>>>8|0)|0;w[f+109|0]=d;d=z[f+110|0]+(d>>>8|0)|0;w[f+110|0]=d;w[f+111|0]=z[f+111|0]+(d>>>8|0);a=a- -64|0;c=c-1|0;b=b+-64|0;c=b>>>0<4294967232?c+1|0:c;if(!c&b>>>0>63|c){continue}break}if(!(b|c)){break a}}d=0;vb(f+32|0,f+96|0,f,0);g=b&3;e=0;if(!c&b>>>0>=4|c){c=b&60;b=0;while(1){j=f+32|0;h=j;w[a+e|0]=z[h+e|0];i=e|1;w[i+a|0]=z[h+i|0];i=e|2;w[i+a|0]=z[h+i|0];h=e|3;w[h+a|0]=z[h+j|0];e=e+4|0;b=b+4|0;if((c|0)!=(b|0)){continue}break}if(!g){break a}}while(1){w[a+e|0]=z[(f+32|0)+e|0];e=e+1|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}ja(f+32|0,64);ja(f,32);}T=f+112|0;return 0}function $e(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=T-112|0;T=f;h=b;g=c;if(b|g){b=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);y[f+24>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);y[f+28>>2]=b;b=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+16>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+20>>2]=b;b=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+8>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);y[f+12>>2]=b;b=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[f>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[f+4>>2]=b;b=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);c=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);y[f+104>>2]=0;y[f+108>>2]=0;y[f+96>>2]=b;y[f+100>>2]=c;a:{if(!g&h>>>0>=64|g){while(1){ub(a,f+96|0,f,0);b=z[f+104|0]+1|0;w[f+104|0]=b;b=z[f+105|0]+(b>>>8|0)|0;w[f+105|0]=b;b=z[f+106|0]+(b>>>8|0)|0;w[f+106|0]=b;b=z[f+107|0]+(b>>>8|0)|0;w[f+107|0]=b;b=z[f+108|0]+(b>>>8|0)|0;w[f+108|0]=b;b=z[f+109|0]+(b>>>8|0)|0;w[f+109|0]=b;b=z[f+110|0]+(b>>>8|0)|0;w[f+110|0]=b;w[f+111|0]=z[f+111|0]+(b>>>8|0);a=a- -64|0;g=g-1|0;h=h+-64|0;g=h>>>0<4294967232?g+1|0:g;if(!g&h>>>0>63|g){continue}break}if(!(g|h)){break a}}c=0;ub(f+32|0,f+96|0,f,0);d=h&3;b=0;if(!g&h>>>0>=4|g){h=h&60;e=0;while(1){g=f+32|0;w[a+b|0]=z[g+b|0];i=b|1;w[i+a|0]=z[g+i|0];i=b|2;w[i+a|0]=z[g+i|0];i=b|3;w[i+a|0]=z[g+i|0];b=b+4|0;e=e+4|0;if((h|0)!=(e|0)){continue}break}if(!d){break a}}while(1){w[a+b|0]=z[(f+32|0)+b|0];b=b+1|0;c=c+1|0;if((d|0)!=(c|0)){continue}break}}ja(f+32|0,64);ja(f,32);}T=f+112|0;return 0}function we(a,b){a=a|0;b=b|0;var c=0,d=0;c=T-128|0;T=c;y[c+64>>2]=0;y[c+68>>2]=0;y[c+72>>2]=0;y[c+76>>2]=0;y[c+80>>2]=0;y[c+84>>2]=0;y[c+88>>2]=0;y[c+92>>2]=0;y[c+32>>2]=0;y[c+36>>2]=0;y[c+40>>2]=0;y[c+44>>2]=0;y[c+48>>2]=0;y[c+52>>2]=0;y[c+56>>2]=0;y[c+60>>2]=0;d=y[9821];y[c+96>>2]=y[9820];y[c+100>>2]=d;d=y[9823];y[c+104>>2]=y[9822];y[c+108>>2]=d;d=y[9825];y[c+112>>2]=y[9824];y[c+116>>2]=d;d=y[9827];y[c+120>>2]=y[9826];y[c+124>>2]=d;d=z[b+4|0]|z[b+5|0]<<8|(z[b+6|0]<<16|z[b+7|0]<<24);y[c>>2]=z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24);y[c+4>>2]=d;d=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[c+8>>2]=z[b+8|0]|z[b+9|0]<<8|(z[b+10|0]<<16|z[b+11|0]<<24);y[c+12>>2]=d;d=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[c+16>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[c+20>>2]=d;d=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);y[c+24>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);y[c+28>>2]=d;b=c- -64|0;Ec(b,c);Pa(b);d=y[c+92>>2];b=y[c+88>>2];w[a+24|0]=b;w[a+25|0]=b>>>8;w[a+26|0]=b>>>16;w[a+27|0]=b>>>24;w[a+28|0]=d;w[a+29|0]=d>>>8;w[a+30|0]=d>>>16;w[a+31|0]=d>>>24;d=y[c+84>>2];b=y[c+80>>2];w[a+16|0]=b;w[a+17|0]=b>>>8;w[a+18|0]=b>>>16;w[a+19|0]=b>>>24;w[a+20|0]=d;w[a+21|0]=d>>>8;w[a+22|0]=d>>>16;w[a+23|0]=d>>>24;d=y[c+76>>2];b=y[c+72>>2];w[a+8|0]=b;w[a+9|0]=b>>>8;w[a+10|0]=b>>>16;w[a+11|0]=b>>>24;w[a+12|0]=d;w[a+13|0]=d>>>8;w[a+14|0]=d>>>16;w[a+15|0]=d>>>24;d=y[c+68>>2];b=y[c+64>>2];w[a|0]=b;w[a+1|0]=b>>>8;w[a+2|0]=b>>>16;w[a+3|0]=b>>>24;w[a+4|0]=d;w[a+5|0]=d>>>8;w[a+6|0]=d>>>16;w[a+7|0]=d>>>24;T=c+128|0;}function kc(a,b,c,d){var 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;a:{g=y[a+56>>2];e=y[a+60>>2];if(g|e){h=16-g|0;k=h;f=0-((g>>>0>16)+e|0)|0;h=(f|0)==(d|0)&c>>>0>h>>>0|d>>>0>f>>>0;j=h?k:c;h=h?f:d;k=h;if(h|j){p=j&3;h=a- -64|0;f=0;g=0;b:{if(!k&j>>>0>=4|k){l=j&-4;while(1){e=f+y[a+56>>2]|0;w[e+h|0]=z[b+f|0];m=f|1;e=m+y[a+56>>2]|0;w[e+h|0]=z[b+m|0];m=f|2;e=m+y[a+56>>2]|0;w[e+h|0]=z[b+m|0];m=f|3;e=m+y[a+56>>2]|0;w[e+h|0]=z[b+m|0];e=g;f=f+4|0;g=f>>>0<4?e+1|0:e;n=n+4|0;i=n>>>0<4?i+1|0:i;if((l|0)!=(n|0)|(i|0)!=(k|0)){continue}break}if(!(p|r)){break b}}while(1){e=f+y[a+56>>2]|0;w[e+h|0]=z[b+f|0];e=g;f=f+1|0;g=f?e:e+1|0;e=q;o=o+1|0;e=o?e:e+1|0;q=e;if((o|0)!=(p|0)|(r|0)!=(e|0)){continue}break}}g=y[a+56>>2];e=y[a+60>>2];}i=e+k|0;g=g+j|0;i=g>>>0>>0?i+1|0:i;y[a+56>>2]=g;y[a+60>>2]=i;if(!i&g>>>0<16){break a}hc(a,a- -64|0,16,0);y[a+56>>2]=0;y[a+60>>2]=0;g=c;c=g-j|0;d=d-((g>>>0>>0)+k|0)|0;b=b+j|0;}if(!d&c>>>0>=16|d){g=c&-16;hc(a,b,g,d);c=c&15;d=0;b=b+g|0;}if(!(c|d)){break a}j=c&3;k=0;h=a- -64|0;o=0;q=0;f=0;g=0;c:{if(!d&c>>>0>=4|d){p=c&12;n=0;i=0;while(1){e=f+y[a+56>>2]|0;w[e+h|0]=z[b+f|0];l=f|1;e=l+y[a+56>>2]|0;w[e+h|0]=z[b+l|0];l=f|2;e=l+y[a+56>>2]|0;w[e+h|0]=z[b+l|0];l=f|3;e=l+y[a+56>>2]|0;w[e+h|0]=z[b+l|0];e=g;f=f+4|0;g=f>>>0<4?e+1|0:e;n=n+4|0;i=n>>>0<4?i+1|0:i;if((n|0)!=(p|0)|(i|0)!=(r|0)){continue}break}if(!(j|k)){break c}}while(1){e=f+y[a+56>>2]|0;w[e+h|0]=z[b+f|0];f=f+1|0;g=f?g:g+1|0;e=q;o=o+1|0;e=o?e:e+1|0;q=e;if((j|0)!=(o|0)|(k|0)!=(e|0)){continue}break}}i=d+y[a+60>>2]|0;b=c+y[a+56>>2]|0;i=b>>>0>>0?i+1|0:i;y[a+56>>2]=b;y[a+60>>2]=i;}}function Ua(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;e=T-288|0;T=e;f=a+40|0;c=y[a+32>>2]>>>3&63;d=f+c|0;a:{if(c>>>0>=56){c=64-c|0;if(c){t(d,39616,c);}Tb(a,f,e,e+256|0);c=f;y[c+48>>2]=0;y[c+52>>2]=0;y[c+40>>2]=0;y[c+44>>2]=0;y[c+32>>2]=0;y[c+36>>2]=0;y[c+24>>2]=0;y[c+28>>2]=0;y[c+16>>2]=0;y[c+20>>2]=0;y[c+8>>2]=0;y[c+12>>2]=0;y[c>>2]=0;y[c+4>>2]=0;break a}c=56-c|0;if(!c){break a}t(d,39616,c);}d=y[a+32>>2];c=d&16711680;h=c>>>8|0;g=c<<24;c=d&-16777216;i=c>>>24|0;g=g|c<<8;c=y[a+36>>2];y[a+96>>2]=g|(((c&255)<<24|d>>>8)&-16777216|((c&16777215)<<8|d>>>24)&16711680|(c>>>8&65280|c>>>24));c=h|i|(d<<24|(d&65280)<<8);y[a+100>>2]=c;Tb(a,f,e,e+256|0);c=y[a>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b|0]=c;w[b+1|0]=c>>>8;w[b+2|0]=c>>>16;w[b+3|0]=c>>>24;c=y[a+4>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+4|0]=c;w[b+5|0]=c>>>8;w[b+6|0]=c>>>16;w[b+7|0]=c>>>24;c=y[a+8>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+8|0]=c;w[b+9|0]=c>>>8;w[b+10|0]=c>>>16;w[b+11|0]=c>>>24;c=y[a+12>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+12|0]=c;w[b+13|0]=c>>>8;w[b+14|0]=c>>>16;w[b+15|0]=c>>>24;c=y[a+16>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+16|0]=c;w[b+17|0]=c>>>8;w[b+18|0]=c>>>16;w[b+19|0]=c>>>24;c=y[a+20>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+20|0]=c;w[b+21|0]=c>>>8;w[b+22|0]=c>>>16;w[b+23|0]=c>>>24;c=y[a+24>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+24|0]=c;w[b+25|0]=c>>>8;w[b+26|0]=c>>>16;w[b+27|0]=c>>>24;c=y[a+28>>2];c=Di(c&16711935,8)|Di(c,24)&16711935;w[b+28|0]=c;w[b+29|0]=c>>>8;w[b+30|0]=c>>>16;w[b+31|0]=c>>>24;ja(e,288);ja(a,104);T=e+288|0;return 0}function Fg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=T;j=f;f=f-512&-64;T=f;g=a?a:b;if(g){i=-1;h=f+96|0;if(!Ea(h,d,e)){d=f+128|0;Ja(d,0,0,64);oa(d,h,32,0);ja(h,32);oa(d,c,32,0);oa(d,e,32,0);c=f+32|0;Ia(d,c,64);ja(d,384);w[g|0]=z[f+32|0];a=b?b:a;w[a|0]=z[f+64|0];w[g+1|0]=z[f+33|0];w[a+1|0]=z[f+65|0];w[g+2|0]=z[f+34|0];w[a+2|0]=z[f+66|0];w[g+3|0]=z[f+35|0];w[a+3|0]=z[f+67|0];w[g+4|0]=z[f+36|0];w[a+4|0]=z[f+68|0];w[g+5|0]=z[f+37|0];w[a+5|0]=z[f+69|0];w[g+6|0]=z[f+38|0];w[a+6|0]=z[f+70|0];w[g+7|0]=z[f+39|0];w[a+7|0]=z[f+71|0];w[g+8|0]=z[f+40|0];w[a+8|0]=z[f+72|0];w[g+9|0]=z[f+41|0];w[a+9|0]=z[f+73|0];w[g+10|0]=z[f+42|0];w[a+10|0]=z[f+74|0];w[g+11|0]=z[f+43|0];w[a+11|0]=z[f+75|0];w[g+12|0]=z[f+44|0];w[a+12|0]=z[f+76|0];w[g+13|0]=z[f+45|0];w[a+13|0]=z[f+77|0];w[g+14|0]=z[f+46|0];w[a+14|0]=z[f+78|0];w[g+15|0]=z[f+47|0];w[a+15|0]=z[f+79|0];w[g+16|0]=z[f+48|0];w[a+16|0]=z[f+80|0];w[g+17|0]=z[f+49|0];w[a+17|0]=z[f+81|0];w[g+18|0]=z[f+50|0];w[a+18|0]=z[f+82|0];w[g+19|0]=z[f+51|0];w[a+19|0]=z[f+83|0];w[g+20|0]=z[f+52|0];w[a+20|0]=z[f+84|0];w[g+21|0]=z[f+53|0];w[a+21|0]=z[f+85|0];w[g+22|0]=z[f+54|0];w[a+22|0]=z[f+86|0];w[g+23|0]=z[f+55|0];w[a+23|0]=z[f+87|0];w[g+24|0]=z[f+56|0];w[a+24|0]=z[f+88|0];w[g+25|0]=z[f+57|0];w[a+25|0]=z[f+89|0];w[g+26|0]=z[f+58|0];w[a+26|0]=z[f+90|0];w[g+27|0]=z[f+59|0];w[a+27|0]=z[f+91|0];w[g+28|0]=z[f+60|0];w[a+28|0]=z[f+92|0];w[g+29|0]=z[f+61|0];w[a+29|0]=z[f+93|0];w[g+30|0]=z[f+62|0];w[a+30|0]=z[f+94|0];w[g+31|0]=z[f+63|0];w[a+31|0]=z[f+95|0];ja(c,64);i=0;}T=j;return i|0}na();s();}function Eg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=T;j=f;f=f-512&-64;T=f;g=a?a:b;if(g){i=-1;h=f+96|0;if(!Ea(h,d,e)){d=f+128|0;Ja(d,0,0,64);oa(d,h,32,0);ja(h,32);oa(d,e,32,0);oa(d,c,32,0);c=f+32|0;Ia(d,c,64);ja(d,384);a=b?b:a;w[a|0]=z[f+32|0];w[g|0]=z[f+64|0];w[a+1|0]=z[f+33|0];w[g+1|0]=z[f+65|0];w[a+2|0]=z[f+34|0];w[g+2|0]=z[f+66|0];w[a+3|0]=z[f+35|0];w[g+3|0]=z[f+67|0];w[a+4|0]=z[f+36|0];w[g+4|0]=z[f+68|0];w[a+5|0]=z[f+37|0];w[g+5|0]=z[f+69|0];w[a+6|0]=z[f+38|0];w[g+6|0]=z[f+70|0];w[a+7|0]=z[f+39|0];w[g+7|0]=z[f+71|0];w[a+8|0]=z[f+40|0];w[g+8|0]=z[f+72|0];w[a+9|0]=z[f+41|0];w[g+9|0]=z[f+73|0];w[a+10|0]=z[f+42|0];w[g+10|0]=z[f+74|0];w[a+11|0]=z[f+43|0];w[g+11|0]=z[f+75|0];w[a+12|0]=z[f+44|0];w[g+12|0]=z[f+76|0];w[a+13|0]=z[f+45|0];w[g+13|0]=z[f+77|0];w[a+14|0]=z[f+46|0];w[g+14|0]=z[f+78|0];w[a+15|0]=z[f+47|0];w[g+15|0]=z[f+79|0];w[a+16|0]=z[f+48|0];w[g+16|0]=z[f+80|0];w[a+17|0]=z[f+49|0];w[g+17|0]=z[f+81|0];w[a+18|0]=z[f+50|0];w[g+18|0]=z[f+82|0];w[a+19|0]=z[f+51|0];w[g+19|0]=z[f+83|0];w[a+20|0]=z[f+52|0];w[g+20|0]=z[f+84|0];w[a+21|0]=z[f+53|0];w[g+21|0]=z[f+85|0];w[a+22|0]=z[f+54|0];w[g+22|0]=z[f+86|0];w[a+23|0]=z[f+55|0];w[g+23|0]=z[f+87|0];w[a+24|0]=z[f+56|0];w[g+24|0]=z[f+88|0];w[a+25|0]=z[f+57|0];w[g+25|0]=z[f+89|0];w[a+26|0]=z[f+58|0];w[g+26|0]=z[f+90|0];w[a+27|0]=z[f+59|0];w[g+27|0]=z[f+91|0];w[a+28|0]=z[f+60|0];w[g+28|0]=z[f+92|0];w[a+29|0]=z[f+61|0];w[g+29|0]=z[f+93|0];w[a+30|0]=z[f+62|0];w[g+30|0]=z[f+94|0];w[a+31|0]=z[f+63|0];w[g+31|0]=z[f+95|0];ja(c,64);i=0;}T=j;return i|0}na();s();}function ef(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0;n=b;b=e;e=0;b=b|e;h=T-128|0;T=h;p=a;o(a,0,102);l=22;q=c|e;a:{{c:{if(d){break c}lc(b,f,g,h+16|0,h+12|0,h+8|0);i=h+96|0;za(i,32);l=28;b=h+32|0;d=y[h+16>>2];a=y[h+12>>2];c=y[h+8>>2];f=Ai(a,0,c,0);g=W;d:{if(!g&f>>>0>1073741823|g|d>>>0>63){break d}w[b|0]=36;w[b+1|0]=55;w[b+2|0]=36;w[b+4|0]=z[(c&63)+1024|0];w[b+3|0]=z[d+1024|0];w[b+8|0]=z[(c>>>24&63)+1024|0];w[b+7|0]=z[(c>>>18&63)+1024|0];w[b+6|0]=z[(c>>>12&63)+1024|0];w[b+5|0]=z[(c>>>6&63)+1024|0];c=b+9|0;if(!c){break d}j=b+58|0;if((c|0)==(j|0)){break d}w[c|0]=z[(a&63)+1024|0];c=j-c|0;if((c|0)==1){break d}w[b+10|0]=z[(a>>>6&63)+1024|0];if((c|0)==2){break d}w[b+11|0]=z[(a>>>12&63)+1024|0];if((c|0)==3){break d}w[b+12|0]=z[(a>>>18&63)+1024|0];if((c|0)==4){break d}w[b+13|0]=z[(a>>>24&63)+1024|0];c=b+14|0;if(!c){break d}g=j-c|0;a=0;while(1){e:{d=c;if(a>>>0>=32){break e}c=z[a+i|0];f=a+1|0;m=f>>>0>=32;f:{if(m){k=0;break f}c=z[f+i|0]<<8|c;f=a+2|0;if(f>>>0>=32){k=0;break f}c=z[f+i|0]<<16|c;k=1;f=a+3|0;}a=f;if(!g){break d}w[d|0]=z[(c&63)+1024|0];if((g|0)==1){break d}w[d+1|0]=z[(c>>>6&63)+1024|0];r=d+g|0;f=d+2|0;g:{if(m){break g}if((g|0)==2){break d}w[d+2|0]=z[(c>>>12&63)+1024|0];f=d+3|0;if(!k){break g}if((g|0)==3){break d}w[d+3|0]=z[(c>>>18|0)+1024|0];f=d+4|0;}c=f;g=r-c|0;if(c){continue}break d}break}if(d>>>0>=j>>>0){break d}w[d|0]=0;e=b;}if(!e){break c}a=h+20|0;if(mc(a));b=Gd(a,n,q,b,p);Ob(a);if(!b){break c}a=0;break a}y[10172]=l;}a=-1;}T=h+128|0;return a|0}function Qa(a,b,c){var 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;o=y[b+4>>2];d=y[a+4>>2];p=y[b+8>>2];e=y[a+8>>2];q=y[b+12>>2];f=y[a+12>>2];r=y[b+16>>2];g=y[a+16>>2];s=y[b+20>>2];h=y[a+20>>2];t=y[b+24>>2];i=y[a+24>>2];m=y[b+28>>2];j=y[a+28>>2];u=y[b+32>>2];k=y[a+32>>2];v=y[b+36>>2];l=y[a+36>>2];c=0-c|0;n=y[a>>2];y[a>>2]=c&(n^y[b>>2])^n;y[a+36>>2]=l^c&(l^v);y[a+32>>2]=k^c&(k^u);y[a+28>>2]=j^c&(j^m);y[a+24>>2]=i^c&(i^t);y[a+20>>2]=h^c&(h^s);y[a+16>>2]=g^c&(g^r);y[a+12>>2]=f^c&(f^q);y[a+8>>2]=e^c&(e^p);y[a+4>>2]=d^c&(d^o);d=y[a+40>>2];o=y[b+40>>2];e=y[a+44>>2];p=y[b+44>>2];f=y[a+48>>2];q=y[b+48>>2];g=y[a+52>>2];r=y[b+52>>2];h=y[a+56>>2];s=y[b+56>>2];i=y[a+60>>2];t=y[b+60>>2];m=a- -64|0;j=y[m>>2];u=y[b- -64>>2];k=y[a+68>>2];v=y[b+68>>2];l=y[a+72>>2];n=y[b+72>>2];w=y[a+76>>2];y[a+76>>2]=w^c&(y[b+76>>2]^w);y[a+72>>2]=l^c&(l^n);y[a+68>>2]=k^c&(k^v);y[m>>2]=j^c&(j^u);y[a+60>>2]=i^c&(i^t);y[a+56>>2]=h^c&(h^s);y[a+52>>2]=g^c&(g^r);y[a+48>>2]=f^c&(f^q);y[a+44>>2]=e^c&(e^p);y[a+40>>2]=d^c&(d^o);d=y[a+80>>2];o=y[b+80>>2];e=y[a+84>>2];p=y[b+84>>2];f=y[a+88>>2];q=y[b+88>>2];g=y[a+92>>2];r=y[b+92>>2];h=y[a+96>>2];s=y[b+96>>2];i=y[a+100>>2];t=y[b+100>>2];j=y[a+104>>2];m=y[b+104>>2];k=y[a+108>>2];u=y[b+108>>2];l=y[a+112>>2];v=y[b+112>>2];n=y[b+116>>2];b=y[a+116>>2];y[a+116>>2]=c&(n^b)^b;y[a+112>>2]=l^c&(l^v);y[a+108>>2]=k^c&(k^u);y[a+104>>2]=j^c&(j^m);y[a+100>>2]=i^c&(i^t);y[a+96>>2]=h^c&(h^s);y[a+92>>2]=g^c&(g^r);y[a+88>>2]=f^c&(f^q);y[a+84>>2]=e^c&(e^p);y[a+80>>2]=d^c&(d^o);}function bb(a,b){var c=0,d=0,e=0;c=T-192|0;T=c;e=c+144|0;fa(e,b);d=c+96|0;fa(d,e);fa(d,d);ga(d,b,d);ga(e,e,d);b=c+48|0;fa(b,e);ga(d,d,b);fa(b,d);fa(b,b);fa(b,b);fa(b,b);fa(b,b);ga(d,b,d);fa(b,d);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);ga(b,b,d);fa(c,b);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(b,c,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);ga(d,b,d);fa(b,d);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);ga(b,b,d);fa(c,b);b=1;while(1){fa(c,c);b=b+1|0;if((b|0)!=100){continue}break}b=c+48|0;ga(b,c,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);fa(b,b);d=c+96|0;ga(d,b,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);ga(a,d,c+144|0);T=c+192|0;}function Kh(a){a=a|0;var b=0,c=0,d=0;c=T-48|0;T=c;b=z[a+28|0]|z[a+29|0]<<8|(z[a+30|0]<<16|z[a+31|0]<<24);y[c+24>>2]=z[a+24|0]|z[a+25|0]<<8|(z[a+26|0]<<16|z[a+27|0]<<24);y[c+28>>2]=b;b=z[a+20|0]|z[a+21|0]<<8|(z[a+22|0]<<16|z[a+23|0]<<24);y[c+16>>2]=z[a+16|0]|z[a+17|0]<<8|(z[a+18|0]<<16|z[a+19|0]<<24);y[c+20>>2]=b;b=z[a+12|0]|z[a+13|0]<<8|(z[a+14|0]<<16|z[a+15|0]<<24);y[c+8>>2]=z[a+8|0]|z[a+9|0]<<8|(z[a+10|0]<<16|z[a+11|0]<<24);y[c+12>>2]=b;b=z[a+4|0]|z[a+5|0]<<8|(z[a+6|0]<<16|z[a+7|0]<<24);y[c>>2]=z[a|0]|z[a+1|0]<<8|(z[a+2|0]<<16|z[a+3|0]<<24);y[c+4>>2]=b;b=z[a+40|0]|z[a+41|0]<<8|(z[a+42|0]<<16|z[a+43|0]<<24);y[c+32>>2]=z[a+36|0]|z[a+37|0]<<8|(z[a+38|0]<<16|z[a+39|0]<<24);y[c+36>>2]=b;Yb(c,c,40,0,a+32|0,a);b=y[c+28>>2];d=y[c+24>>2];w[a+24|0]=d;w[a+25|0]=d>>>8;w[a+26|0]=d>>>16;w[a+27|0]=d>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[c+20>>2];d=y[c+16>>2];w[a+16|0]=d;w[a+17|0]=d>>>8;w[a+18|0]=d>>>16;w[a+19|0]=d>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[c+12>>2];d=y[c+8>>2];w[a+8|0]=d;w[a+9|0]=d>>>8;w[a+10|0]=d>>>16;w[a+11|0]=d>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[c+4>>2];d=y[c>>2];w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;d=y[c+36>>2];b=y[c+32>>2];w[a+32|0]=1;w[a+33|0]=0;w[a+34|0]=0;w[a+35|0]=0;w[a+36|0]=b;w[a+37|0]=b>>>8;w[a+38|0]=b>>>16;w[a+39|0]=b>>>24;w[a+40|0]=d;w[a+41|0]=d>>>8;w[a+42|0]=d>>>16;w[a+43|0]=d>>>24;T=c+48|0;}function gc(a,b){var c=0,d=0,e=0;d=T-144|0;T=d;e=d+96|0;fa(e,b);c=d+48|0;fa(c,e);fa(c,c);ga(c,b,c);ga(e,e,c);fa(e,e);ga(e,c,e);fa(c,e);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(e,c,e);fa(c,e);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(c,c,e);fa(d,c);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);fa(d,d);ga(c,d,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(e,c,e);fa(c,e);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);ga(c,c,e);fa(d,c);c=1;while(1){fa(d,d);c=c+1|0;if((c|0)!=100){continue}break}c=d+48|0;ga(c,d,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);fa(c,c);e=d+96|0;ga(e,c,e);fa(e,e);fa(e,e);ga(a,e,b);T=d+144|0;}function Qc(a,b){var 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,x=0,A=0,B=0;c=T-320|0;T=c;g=a+40|0;cb(g,b);y[a+84>>2]=0;y[a+88>>2]=0;y[a+80>>2]=1;y[a+92>>2]=0;y[a+96>>2]=0;y[a+100>>2]=0;y[a+104>>2]=0;y[a+108>>2]=0;y[a+112>>2]=0;y[a+116>>2]=0;f=c+240|0;fa(f,g);e=c+192|0;ga(e,f,1584);i=-1;h=y[c+240>>2]-1|0;y[c+240>>2]=h;y[c+192>>2]=y[c+192>>2]+1;j=y[c+244>>2];k=y[c+248>>2];l=y[c+252>>2];m=y[c+256>>2];n=y[c+260>>2];o=y[c+264>>2];p=y[c+268>>2];q=y[c+272>>2];r=y[c+276>>2];d=c+144|0;fa(d,e);ga(d,d,e);fa(a,d);ga(a,a,e);ga(a,a,f);gc(a,a);ga(a,a,d);ga(a,a,f);d=c+96|0;fa(d,a);ga(d,d,e);e=y[c+132>>2];y[c+84>>2]=e-r;d=y[c+128>>2];y[c+80>>2]=d-q;f=y[c+124>>2];y[c+76>>2]=f-p;s=y[c+120>>2];y[c+72>>2]=s-o;t=y[c+116>>2];y[c+68>>2]=t-n;u=y[c+112>>2];y[c+64>>2]=u-m;v=y[c+108>>2];y[c+60>>2]=v-l;x=y[c+104>>2];y[c+56>>2]=x-k;A=y[c+100>>2];y[c+52>>2]=A-j;B=y[c+96>>2];y[c+48>>2]=B-h;pa(c,c+48|0);a:{if(!ya(c,32)){y[c+36>>2]=e+r;y[c+32>>2]=d+q;y[c+28>>2]=f+p;y[c+24>>2]=o+s;y[c+20>>2]=n+t;y[c+16>>2]=m+u;y[c+12>>2]=l+v;y[c+8>>2]=k+x;y[c+4>>2]=j+A;y[c>>2]=h+B;e=c+288|0;pa(e,c);if(!ya(e,32)){break a}ga(a,a,1632);}pa(c+288|0,a);if((w[c+288|0]&1)==(z[b+31|0]>>>7|0)){y[a>>2]=0-y[a>>2];y[a+36>>2]=0-y[a+36>>2];y[a+32>>2]=0-y[a+32>>2];y[a+28>>2]=0-y[a+28>>2];y[a+24>>2]=0-y[a+24>>2];y[a+20>>2]=0-y[a+20>>2];y[a+16>>2]=0-y[a+16>>2];y[a+12>>2]=0-y[a+12>>2];y[a+8>>2]=0-y[a+8>>2];y[a+4>>2]=0-y[a+4>>2];}ga(a+120|0,a,g);i=0;}T=c+320|0;return i}function Kc(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=T-128|0;T=d;e=z[41218];y[a+4>>2]=0;y[a+8>>2]=0;y[a>>2]=1;y[a+12>>2]=0;y[a+16>>2]=0;y[a+20>>2]=0;y[a+24>>2]=0;y[a+28>>2]=0;y[a+32>>2]=0;y[a+36>>2]=0;y[a+40>>2]=1;o(a+44|0,0,76);b=E(b,960)+2992|0;e=e>>>2^(c&128)>>>7;c=c-((0-e&c)<<1)|0;Qa(a,b,z[41218]>>>2^((c^1)&255)-1>>>31);Qa(a,b+120|0,z[41218]>>>2^((c^2)&255)-1>>>31);Qa(a,b+240|0,z[41218]>>>2^((c^3)&255)-1>>>31);Qa(a,b+360|0,z[41218]>>>2^((c^4)&255)-1>>>31);Qa(a,b+480|0,z[41218]>>>2^((c^5)&255)-1>>>31);Qa(a,b+600|0,z[41218]>>>2^((c^6)&255)-1>>>31);Qa(a,b+720|0,z[41218]>>>2^((c^7)&255)-1>>>31);Qa(a,b+840|0,z[41218]>>>2^((c^8)&255)-1>>>31);b=y[a+76>>2];y[d+40>>2]=y[a+72>>2];y[d+44>>2]=b;b=a- -64|0;c=y[b+4>>2];y[d+32>>2]=y[b>>2];y[d+36>>2]=c;b=y[a+60>>2];y[d+24>>2]=y[a+56>>2];y[d+28>>2]=b;b=y[a+52>>2];y[d+16>>2]=y[a+48>>2];y[d+20>>2]=b;b=y[a+44>>2];y[d+8>>2]=y[a+40>>2];y[d+12>>2]=b;b=y[a+4>>2];y[d+48>>2]=y[a>>2];y[d+52>>2]=b;b=y[a+12>>2];y[d+56>>2]=y[a+8>>2];y[d+60>>2]=b;b=y[a+20>>2];y[d+64>>2]=y[a+16>>2];y[d+68>>2]=b;b=y[a+28>>2];y[d+72>>2]=y[a+24>>2];y[d+76>>2]=b;b=y[a+36>>2];y[d+80>>2]=y[a+32>>2];y[d+84>>2]=b;b=y[a+80>>2];c=y[a+84>>2];f=y[a+88>>2];g=y[a+92>>2];h=y[a+96>>2];i=y[a+100>>2];j=y[a+104>>2];k=y[a+108>>2];l=y[a+112>>2];y[d+124>>2]=0-y[a+116>>2];y[d+120>>2]=0-l;y[d+116>>2]=0-k;y[d+112>>2]=0-j;y[d+108>>2]=0-i;y[d+104>>2]=0-h;y[d+100>>2]=0-g;y[d+96>>2]=0-f;y[d+92>>2]=0-c;y[d+88>>2]=0-b;Qa(a,d+8|0,e);T=d+128|0;}function Te(a,b){a=a|0;b=b|0;var 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;c=T-304|0;T=c;w[a|0]=z[b|0];w[a+1|0]=z[b+1|0];w[a+2|0]=z[b+2|0];w[a+3|0]=z[b+3|0];w[a+4|0]=z[b+4|0];w[a+5|0]=z[b+5|0];w[a+6|0]=z[b+6|0];w[a+7|0]=z[b+7|0];w[a+8|0]=z[b+8|0];w[a+9|0]=z[b+9|0];w[a+10|0]=z[b+10|0];w[a+11|0]=z[b+11|0];w[a+12|0]=z[b+12|0];w[a+13|0]=z[b+13|0];w[a+14|0]=z[b+14|0];w[a+15|0]=z[b+15|0];w[a+16|0]=z[b+16|0];w[a+17|0]=z[b+17|0];w[a+18|0]=z[b+18|0];w[a+19|0]=z[b+19|0];w[a+20|0]=z[b+20|0];w[a+21|0]=z[b+21|0];w[a+22|0]=z[b+22|0];w[a+23|0]=z[b+23|0];w[a+24|0]=z[b+24|0];w[a+25|0]=z[b+25|0];w[a+26|0]=z[b+26|0];w[a+27|0]=z[b+27|0];w[a+28|0]=z[b+28|0];w[a+29|0]=z[b+29|0];w[a+30|0]=z[b+30|0];b=z[b+31|0];w[a|0]=z[a|0]&248;w[a+31|0]=b&63|64;jb(c+48|0,a);b=y[c+128>>2];d=y[c+88>>2];e=y[c+132>>2];f=y[c+92>>2];g=y[c+136>>2];h=y[c+96>>2];i=y[c+140>>2];j=y[c+100>>2];k=y[c+144>>2];l=y[c+104>>2];m=y[c+148>>2];n=y[c+108>>2];o=y[c+152>>2];p=y[c+112>>2];q=y[c+156>>2];r=y[c+116>>2];s=y[c+160>>2];t=y[c+120>>2];u=y[c+124>>2];v=y[c+164>>2];y[c+292>>2]=u+v;y[c+288>>2]=s+t;y[c+284>>2]=q+r;y[c+280>>2]=o+p;y[c+276>>2]=m+n;y[c+272>>2]=k+l;y[c+268>>2]=i+j;y[c+264>>2]=g+h;y[c+260>>2]=e+f;y[c+256>>2]=b+d;y[c+244>>2]=v-u;y[c+240>>2]=s-t;y[c+236>>2]=q-r;y[c+232>>2]=o-p;y[c+228>>2]=m-n;y[c+224>>2]=k-l;y[c+220>>2]=i-j;y[c+216>>2]=g-h;y[c+212>>2]=e-f;y[c+208>>2]=b-d;b=c+208|0;bb(b,b);ga(c,c+256|0,b);pa(a,c);T=c+304|0;return 0}function zb(a){var 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,z=0,A=0,B=0,C=0,D=0;b=T-320|0;T=b;d=b+240|0;fa(d,a);e=b+192|0;fa(e,a+40|0);c=b+144|0;fa(c,a+80|0);a=y[b+240>>2];f=y[b+192>>2];g=y[b+244>>2];h=y[b+196>>2];i=y[b+248>>2];j=y[b+200>>2];k=y[b+252>>2];l=y[b+204>>2];m=y[b+256>>2];n=y[b+208>>2];o=y[b+260>>2];p=y[b+212>>2];q=y[b+264>>2];r=y[b+216>>2];s=y[b+268>>2];t=y[b+220>>2];u=y[b+272>>2];v=y[b+224>>2];y[b+84>>2]=y[b+228>>2]-y[b+276>>2];y[b+80>>2]=v-u;y[b+76>>2]=t-s;y[b+72>>2]=r-q;y[b+68>>2]=p-o;y[b+64>>2]=n-m;y[b+60>>2]=l-k;y[b+56>>2]=j-i;y[b+52>>2]=h-g;y[b+48>>2]=f-a;a=b+48|0;ga(a,a,c);ga(b,d,e);ga(b,b,1584);fa(b+96|0,c);c=y[b+48>>2];d=y[b+96>>2];e=y[b>>2];f=y[b+52>>2];g=y[b+100>>2];h=y[b+4>>2];i=y[b+56>>2];j=y[b+104>>2];k=y[b+8>>2];l=y[b+60>>2];m=y[b+108>>2];n=y[b+12>>2];o=y[b+64>>2];p=y[b+112>>2];q=y[b+16>>2];r=y[b+68>>2];s=y[b+116>>2];t=y[b+20>>2];u=y[b+72>>2];v=y[b+120>>2];w=y[b+24>>2];x=y[b+76>>2];z=y[b+124>>2];A=y[b+28>>2];B=y[b+80>>2];C=y[b+128>>2];D=y[b+32>>2];y[b+84>>2]=y[b+84>>2]-(y[b+132>>2]+y[b+36>>2]|0);y[b+80>>2]=B-(C+D|0);y[b+76>>2]=x-(z+A|0);y[b+72>>2]=u-(v+w|0);y[b+68>>2]=r-(s+t|0);y[b+64>>2]=o-(p+q|0);y[b+60>>2]=l-(m+n|0);y[b+56>>2]=i-(j+k|0);y[b+52>>2]=f-(g+h|0);y[b+48>>2]=c-(d+e|0);c=b+288|0;pa(c,a);a=ya(c,32);T=b+320|0;return a}function Bc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{f:{if((e&-7)!=1){break f}f=(d>>>0)/3|0;h=f<<2;f=E(f,-3)+d|0;g:{if(!f){break g}if(!(e&2)){h=h+4|0;break g}h=((f>>>1|0)+h|0)+2|0;}if(b>>>0<=h>>>0){break f}h:{if(e>>>0>=4){if(!d){e=0;break b}f=0;e=0;break h}if(!d){e=0;break b}f=0;e=0;break e}while(1){j=z[c+i|0]|j<<8;f=f|8;while(1){f=f-6|0;g=j>>>f&63;k=g+65510>>>8|0;l=g+65484>>>8|0;w[a+e|0]=((g^16321)+1^-1)>>>8&45|((g+32705^-1)>>>8&95|(l&(g+71&(k^-1))|k&g+65)|g+252&g+65474>>>8&(l^-1));e=e+1|0;if(f>>>0>5){continue}break}i=i+1|0;if((i|0)!=(d|0)){continue}break}if(!f){break c}i=45;g=95;d=32705;break d}na();s();}while(1){j=z[c+i|0]|j<<8;f=f|8;while(1){f=f-6|0;g=j>>>f&63;k=g+65510>>>8|0;l=g+65484>>>8|0;w[a+e|0]=((g^16321)+1^-1)>>>8&43|((g+16321^-1)>>>8&47|(l&(g+71&(k^-1))|k&g+65)|g+252&g+65474>>>8&(l^-1));e=e+1|0;if(f>>>0>5){continue}break}i=i+1|0;if((i|0)!=(d|0)){continue}break}if(!f){break c}i=43;g=47;d=16321;}c=j<<6-f&63;f=c+65510>>>8|0;j=c+65484>>>8|0;w[a+e|0]=((c^16321)+1^-1)>>>8&i|(g&(c+d^-1)>>>8|(j&(c+71&(f^-1))|f&c+65)|c+252&c+65474>>>8&(j^-1));e=e+1|0;}if(e>>>0>h>>>0){break a}}i:{if(e>>>0>=h>>>0){h=e;break i}c=h-e|0;if(!c){break i}o(a+e|0,61,c);}c=h+1|0;b=(b>>>0>c>>>0?b:c)-h|0;if(b){o(a+h|0,0,b);}return a|0}Q(1104,1218,231,1503);s();}function oa(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(c|d){a:{l=a+224|0;k=a+96|0;f=z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24);g=a- -64|0;while(1){e=f+k|0;i=256-f|0;if(!d&c>>>0<=i>>>0){if(c){t(e,b,c);}b=c+(z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24))|0;w[a+352|0]=b;w[a+353|0]=b>>>8;w[a+354|0]=b>>>16;w[a+355|0]=b>>>24;break a}if(i){t(e,b,i);}e=i+(z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24))|0;w[a+352|0]=e;w[a+353|0]=e>>>8;w[a+354|0]=e>>>16;w[a+355|0]=e>>>24;f=z[g+4|0]|z[g+5|0]<<8|(z[g+6|0]<<16|z[g+7|0]<<24);m=f;h=z[g|0]|z[g+1|0]<<8|(z[g+2|0]<<16|z[g+3|0]<<24);j=h+128|0;f=j>>>0<128?f+1|0:f;e=g;w[e|0]=j;w[e+1|0]=j>>>8;w[e+2|0]=j>>>16;w[e+3|0]=j>>>24;w[e+4|0]=f;w[e+5|0]=f>>>8;w[e+6|0]=f>>>16;w[e+7|0]=f>>>24;f=z[a+76|0]|z[a+77|0]<<8|(z[a+78|0]<<16|z[a+79|0]<<24);e=(m|0)==-1&h>>>0>4294967167;h=e+(z[a+72|0]|z[a+73|0]<<8|(z[a+74|0]<<16|z[a+75|0]<<24))|0;f=e>>>0>h>>>0?f+1|0:f;w[a+72|0]=h;w[a+73|0]=h>>>8;w[a+74|0]=h>>>16;w[a+75|0]=h>>>24;w[a+76|0]=f;w[a+77|0]=f>>>8;w[a+78|0]=f>>>16;w[a+79|0]=f>>>24;Eb(a,k);t(k,l,128);f=(z[a+352|0]|z[a+353|0]<<8|(z[a+354|0]<<16|z[a+355|0]<<24))-128|0;e=f;w[a+352|0]=e;w[a+353|0]=e>>>8;w[a+354|0]=e>>>16;w[a+355|0]=e>>>24;b=b+i|0;d=d-(c>>>0>>0)|0;c=c-i|0;if(d|c){continue}break}}}return 0}function zh(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{if(d){if(e){break i}i=1;e=0;while(1){l=z[c+h|0];j=(l&223)-55&255;n=(j+65526^j+65520)>>>8|0;l=l^48;o=l+65526>>>8|0;if(!((n|o)&255)){break g}if(b>>>0<=m>>>0){break h}j=j&n|l&o;j:{if(!(k&255)){e=j<<4;break j}w[a+m|0]=e|j;m=m+1|0;}k=k^-1;h=h+1|0;if((h|0)!=(d|0)){continue}break}h=d;break g}a=0;if(!g){break a}break c}while(1){k:{l:{m:{n:{o:{j=z[c+h|0];i=(j&223)-55&255;l=(i+65526^i+65520)>>>8|0;n=j^48;o=n+65526>>>8|0;if(!((l|o)&255)){if(k&255){break f}i=0;if(!ob(e,j)){break d}k=h+1|0;h=k;if(h>>>0>>0){break o}break d}if(b>>>0<=m>>>0){break h}i=i&l|n&o;if(!(k&255)){break n}w[a+m|0]=i|p;k=k^-1;m=m+1|0;break k}while(1){j=z[c+h|0];l=(j&223)-55&255;n=(l+65526^l+65520)>>>8|0;o=j^48;p=o+65526>>>8|0;if(!((n|p)&255)){if(!ob(e,j)){break d}h=h+1|0;if(h>>>0>>0){continue}break m}break}if(b>>>0<=m>>>0){break l}i=l&n|o&p;}p=i<<4;k=255;break k}h=d>>>0>k>>>0?d:k;break d}k=0;break h}i=1;h=h+1|0;if(h>>>0>>0){continue}break}break g}y[10172]=68;i=0;}if(!(k&255)){break e}}y[10172]=28;i=-1;h=h-1|0;m=0;break d}m=i?m:0;i=i-1|0;}if(g){break c}if((d|0)!=(h|0)){break b}a=i;break a}y[g>>2]=c+h;a=i;break a}y[10172]=28;a=-1;}if(f){y[f>>2]=m;}return a|0}function oe(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=T-16|0;T=e;j=y[a+20>>2];y[a+20>>2]=0;k=y[a+4>>2];y[a+4>>2]=0;h=-26;a:{b:{c:{d:{switch(c-1|0){case 1:if(pb(b,1182,9)){break b}b=b+9|0;break c;case 0:break d;default:break a}}if(pb(b,1173,8)){break b}b=b+8|0;}if(z[b|0]!=36|z[b+1|0]!=118|z[b+2|0]!=61){break b}f=b+3|0;i=z[f|0];if((i-58&255)>>>0<246){break b}b=0;g=i;c=f;while(1){d=c;if(b>>>0>429496729){break b}c=(g&255)-48|0;b=E(b,10);if(c>>>0>(b^-1)>>>0){break b}b=b+c|0;c=d+1|0;g=z[c|0];if((g-58&255)>>>0>245){continue}break}if((i|0)==48&(d|0)!=(f|0)|(c|0)==(f|0)){break b}if((b|0)!=19){break a}if((g&255)!=36|z[d+2|0]!=109|z[d+3|0]!=61){break b}b=e+12|0;c=zc(d+4|0,b);if(!c){break b}y[a+44>>2]=y[e+12>>2];if(z[c|0]!=44|z[c+1|0]!=116|z[c+2|0]!=61){break b}c=zc(c+3|0,b);if(!c){break b}y[a+40>>2]=y[e+12>>2];if(z[c|0]!=44|z[c+1|0]!=112|z[c+2|0]!=61){break b}c=zc(c+3|0,b);if(!c){break b}d=y[e+12>>2];y[a+48>>2]=d;y[a+52>>2]=d;if(z[c|0]!=36){break b}y[e+12>>2]=j;f=y[a+16>>2];c=c+1|0;d=c;g=Ha(c);c=e+8|0;if(Ac(f,j,d,g,0,b,c,3)){break b}y[a+20>>2]=y[e+12>>2];d=y[e+8>>2];if(z[d|0]!=36){break b}y[e+12>>2]=k;d=d+1|0;if(Ac(y[a>>2],k,d,Ha(d),0,b,c,3)){break b}y[a+4>>2]=y[e+12>>2];b=y[e+8>>2];h=nc(a);if(h){break a}h=z[b|0]?-32:0;break a}h=-32;}T=e+16|0;return h}function Hd(a){var 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;c=y[a+60>>2];q=y[a+56>>2];p=y[a+52>>2];n=y[a+48>>2];b=y[a+44>>2];d=y[a+40>>2];r=y[a+36>>2];m=y[a+32>>2];e=y[a+28>>2];f=y[a+24>>2];g=y[a+20>>2];h=y[a+16>>2];i=y[a+12>>2];j=y[a+8>>2];k=y[a+4>>2];l=y[a>>2];while(1){o=Bi(g+k|0,7)^r;s=Bi(o+g|0,9)^p;h=Bi(l+n|0,7)^h;t=Bi(h+l|0,9)^m;u=Bi(t+h|0,13)^n;i=Bi(b+c|0,7)^i;e=Bi(i+c|0,9)^e;m=Bi(e+i|0,13)^b;c=Bi(e+m|0,18)^c;b=Bi(d+f|0,7)^q;n=u^Bi(c+b|0,7);p=s^Bi(n+c|0,9);q=Bi(n+p|0,13)^b;c=Bi(p+q|0,18)^c;j=Bi(b+d|0,9)^j;f=Bi(j+b|0,13)^f;d=Bi(f+j|0,18)^d;b=Bi(d+o|0,7)^m;m=Bi(b+d|0,9)^t;r=Bi(b+m|0,13)^o;d=Bi(m+r|0,18)^d;k=Bi(o+s|0,13)^k;g=Bi(k+s|0,18)^g;f=Bi(g+h|0,7)^f;e=Bi(f+g|0,9)^e;h=Bi(e+f|0,13)^h;g=Bi(h+e|0,18)^g;l=Bi(t+u|0,18)^l;k=Bi(l+i|0,7)^k;j=Bi(k+l|0,9)^j;i=Bi(j+k|0,13)^i;l=Bi(i+j|0,18)^l;o=v>>>0<6;v=v+2|0;if(o){continue}break}y[a>>2]=y[a>>2]+l;y[a+4>>2]=y[a+4>>2]+k;y[a+8>>2]=y[a+8>>2]+j;y[a+12>>2]=y[a+12>>2]+i;y[a+16>>2]=y[a+16>>2]+h;y[a+20>>2]=y[a+20>>2]+g;y[a+24>>2]=y[a+24>>2]+f;y[a+28>>2]=y[a+28>>2]+e;y[a+32>>2]=y[a+32>>2]+m;y[a+36>>2]=y[a+36>>2]+r;y[a+40>>2]=y[a+40>>2]+d;y[a+44>>2]=y[a+44>>2]+b;y[a+48>>2]=y[a+48>>2]+n;y[a+52>>2]=y[a+52>>2]+p;y[a+56>>2]=y[a+56>>2]+q;y[a+60>>2]=y[a+60>>2]+c;}function Dd(a,b,c,d){var e=0,f=0;e=T-320|0;T=e;f=-1;a:{if(!dc(c)){break a}if(yb(c)){break a}if(ab(e,c)){break a}if(!ec(e)){break a}w[a|0]=z[b|0];w[a+1|0]=z[b+1|0];w[a+2|0]=z[b+2|0];w[a+3|0]=z[b+3|0];w[a+4|0]=z[b+4|0];w[a+5|0]=z[b+5|0];w[a+6|0]=z[b+6|0];w[a+7|0]=z[b+7|0];w[a+8|0]=z[b+8|0];w[a+9|0]=z[b+9|0];w[a+10|0]=z[b+10|0];w[a+11|0]=z[b+11|0];w[a+12|0]=z[b+12|0];w[a+13|0]=z[b+13|0];w[a+14|0]=z[b+14|0];w[a+15|0]=z[b+15|0];w[a+16|0]=z[b+16|0];w[a+17|0]=z[b+17|0];w[a+18|0]=z[b+18|0];w[a+19|0]=z[b+19|0];w[a+20|0]=z[b+20|0];w[a+21|0]=z[b+21|0];w[a+22|0]=z[b+22|0];w[a+23|0]=z[b+23|0];w[a+24|0]=z[b+24|0];w[a+25|0]=z[b+25|0];w[a+26|0]=z[b+26|0];w[a+27|0]=z[b+27|0];w[a+28|0]=z[b+28|0];w[a+29|0]=z[b+29|0];w[a+30|0]=z[b+30|0];c=z[b+31|0];if(d){w[a|0]=z[a|0]&248;c=c|64;}w[a+31|0]=c&127;c=e+160|0;Nc(c,a,e);Wa(a,c);if((z[a+31|0]&127|(z[a+30|0]|(z[a+29|0]|(z[a+28|0]|(z[a+27|0]|(z[a+26|0]|(z[a+25|0]|(z[a+24|0]|(z[a+23|0]|(z[a+22|0]|(z[a+21|0]|(z[a+20|0]|(z[a+19|0]|(z[a+18|0]|(z[a+17|0]|(z[a+16|0]|(z[a+15|0]|(z[a+14|0]|(z[a+13|0]|(z[a+12|0]|(z[a+11|0]|(z[a+10|0]|(z[a+9|0]|(z[a+8|0]|(z[a+7|0]|(z[a+6|0]|(z[a+5|0]|(z[a+4|0]|(z[a+3|0]|(z[a+2|0]|(z[a+1|0]|z[a|0]^1)))))))))))))))))))))))))))))))-1&256){break a}f=ya(b,32)?-1:0;}T=e+320|0;return f}function Gd(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=T-48|0;T=k;if(e){za(e,102);}a:{if(z[d|0]!=36|z[d+1|0]!=55|z[d+2|0]!=36){break a}l=eb(z[d+3|0]);if(!l){break a}g=Mb(k+12|0,d+4|0);if(!g){break a}j=Mb(k+8|0,g);if(!j){break a}h=Ha(j)+1|0;while(1){b:{g=0;if(!h){break b}h=h-1|0;g=j+h|0;if(z[g|0]!=36){continue}}break}i=g-j|0;c:{if(g){break c}i=Ha(j);}g=i;h=g+(j-d|0)|0;i=h+45|0;if(i>>>0>102|g>>>0>i>>>0){break a}i=a;m=b;n=c;l=l-1024|0;a=l&31;if((l&63)>>>0>=32){b=1<>>32-a;}if(Id(i,m,n,j,g,c,b,y[k+12>>2],y[k+8>>2],k+16|0,32)){break a}if(h){t(e,d,h);}a=e+h|0;w[a|0]=36;c=(h^-1)+102|0;f=a+1|0;a=0;while(1){d:{b=f;d=a;if(d>>>0>31){g=f;break d}h=d+1|0;a=31-d|0;i=a>>>0>=2?2:a;a=h+i|0;g=0;j=0;l=k+16|0;f=z[l+d|0];e:{if(!i){break e}f=z[h+l|0]<<8|f;d=d+2|0;if((d|0)==(a|0)){break e}j=1;f=z[d+l|0]<<16|f;}if(!c){break d}w[b|0]=z[(f&63)+1024|0];if((c|0)==1){break d}w[b+1|0]=z[(f>>>6&63)+1024|0];i=b+c|0;d=b+2|0;f:{if((a|0)==(h|0)){break f}if((c|0)==2){break d}w[b+2|0]=z[(f>>>12&63)+1024|0];d=b+3|0;if(!j){break f}if((c|0)==3){break d}w[b+3|0]=z[(f>>>18|0)+1024|0];d=b+4|0;}f=d;c=i-f|0;if(f){continue}}break}ja(k+16|0,32);f=0;if(!g|e+102>>>0<=g>>>0){break a}w[g|0]=0;f=e;}T=k+48|0;return f}function qa(a,b){var 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;c=y[b+40>>2];e=y[b+4>>2];f=y[b+44>>2];g=y[b+8>>2];h=y[b+48>>2];i=y[b+12>>2];j=y[b+52>>2];k=y[b+16>>2];l=y[b+56>>2];m=y[b+20>>2];n=y[b+60>>2];o=y[b+24>>2];d=b- -64|0;p=y[d>>2];q=y[b+28>>2];r=y[b+68>>2];s=y[b+32>>2];t=y[b+72>>2];u=y[b>>2];y[a+36>>2]=y[b+36>>2]+y[b+76>>2];y[a+32>>2]=s+t;y[a+28>>2]=q+r;y[a+24>>2]=o+p;y[a+20>>2]=m+n;y[a+16>>2]=k+l;y[a+12>>2]=i+j;y[a+8>>2]=g+h;y[a+4>>2]=e+f;y[a>>2]=c+u;c=y[b+40>>2];e=y[b+4>>2];f=y[b+44>>2];g=y[b+8>>2];h=y[b+48>>2];i=y[b+12>>2];j=y[b+52>>2];k=y[b+16>>2];l=y[b+56>>2];m=y[b+20>>2];n=y[b+60>>2];o=y[b+24>>2];d=y[d>>2];p=y[b+28>>2];q=y[b+68>>2];r=y[b+32>>2];s=y[b+72>>2];t=y[b>>2];y[a+76>>2]=y[b+76>>2]-y[b+36>>2];y[a+72>>2]=s-r;y[a+68>>2]=q-p;y[a- -64>>2]=d-o;y[a+60>>2]=n-m;y[a+56>>2]=l-k;y[a+52>>2]=j-i;y[a+48>>2]=h-g;y[a+44>>2]=f-e;y[a+40>>2]=c-t;c=y[b+84>>2];y[a+80>>2]=y[b+80>>2];y[a+84>>2]=c;c=y[b+92>>2];y[a+88>>2]=y[b+88>>2];y[a+92>>2]=c;c=y[b+100>>2];y[a+96>>2]=y[b+96>>2];y[a+100>>2]=c;c=y[b+108>>2];y[a+104>>2]=y[b+104>>2];y[a+108>>2]=c;c=y[b+116>>2];y[a+112>>2]=y[b+112>>2];y[a+116>>2]=c;ga(a+120|0,b+120|0,1680);}function jc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0;c=y[a+56>>2];d=y[a+60>>2];if(c|d){f=a- -64|0;w[f+c|0]=1;l=c+1|0;d=l?d:d+1|0;a:{if(!d&l>>>0>15|d){break a}d=15-c|0;if(!d){break a}o((a+c|0)+65|0,0,d);}w[a+80|0]=1;hc(a,f,16,0);}l=y[a+52>>2];j=y[a+48>>2];f=y[a+44>>2];c=y[a+24>>2];g=y[a+28>>2]+(c>>>26|0)|0;e=y[a+32>>2]+(g>>>26|0)|0;m=y[a+36>>2]+(e>>>26|0)|0;h=y[a+20>>2]+E(m>>>26|0,5)|0;i=h&67108863;d=i+5|0;p=e&67108863;k=g&67108863;c=(c&67108863)+(h>>>26|0)|0;h=c+(d>>>26|0)|0;q=k+(h>>>26|0)|0;r=p+(q>>>26|0)|0;s=(m&67108863)+(r>>>26|0)|0;e=s-67108864|0;g=e>>31;n=h;h=(e>>>31|0)-1|0;e=h&67108863;c=c&g|n&e;i=c<<26|(d&e|g&i);d=i+y[a+40>>2]|0;w[b|0]=d;w[b+1|0]=d>>>8;w[b+2|0]=d>>>16;w[b+3|0]=d>>>24;i=d>>>0>>0;d=0;k=g&k|e&q;c=k<<20|c>>>6;n=c;c=c+f|0;d=n>>>0>c>>>0?1:d;f=c;c=c+i|0;d=f>>>0>c>>>0?d+1|0:d;w[b+4|0]=c;w[b+5|0]=c>>>8;w[b+6|0]=c>>>16;w[b+7|0]=c>>>24;c=0;e=g&p|e&r;f=e<<14|k>>>12;j=f+j|0;f=f>>>0>j>>>0?1:c;c=j;j=d;c=c+d|0;d=f;d=c>>>0>>0?d+1|0:d;w[b+8|0]=c;w[b+9|0]=c>>>8;w[b+10|0]=c>>>16;w[b+11|0]=c>>>24;c=(h&s|g&m)<<8|e>>>18;c=c+l|0;d=c+d|0;w[b+12|0]=d;w[b+13|0]=d>>>8;w[b+14|0]=d>>>16;w[b+15|0]=d>>>24;ja(a,88);}function Cd(a,b,c){var d=0,e=0;d=T-160|0;T=d;w[a|0]=z[b|0];w[a+1|0]=z[b+1|0];w[a+2|0]=z[b+2|0];w[a+3|0]=z[b+3|0];w[a+4|0]=z[b+4|0];w[a+5|0]=z[b+5|0];w[a+6|0]=z[b+6|0];w[a+7|0]=z[b+7|0];w[a+8|0]=z[b+8|0];w[a+9|0]=z[b+9|0];w[a+10|0]=z[b+10|0];w[a+11|0]=z[b+11|0];w[a+12|0]=z[b+12|0];w[a+13|0]=z[b+13|0];w[a+14|0]=z[b+14|0];w[a+15|0]=z[b+15|0];w[a+16|0]=z[b+16|0];w[a+17|0]=z[b+17|0];w[a+18|0]=z[b+18|0];w[a+19|0]=z[b+19|0];w[a+20|0]=z[b+20|0];w[a+21|0]=z[b+21|0];w[a+22|0]=z[b+22|0];w[a+23|0]=z[b+23|0];w[a+24|0]=z[b+24|0];w[a+25|0]=z[b+25|0];w[a+26|0]=z[b+26|0];w[a+27|0]=z[b+27|0];w[a+28|0]=z[b+28|0];w[a+29|0]=z[b+29|0];w[a+30|0]=z[b+30|0];e=z[b+31|0];if(c){w[a|0]=z[a|0]&248;e=e|64;}w[a+31|0]=e&127;jb(d,a);Wa(a,d);c=-1;if(!((z[a+31|0]&127|(z[a+30|0]|(z[a+29|0]|(z[a+28|0]|(z[a+27|0]|(z[a+26|0]|(z[a+25|0]|(z[a+24|0]|(z[a+23|0]|(z[a+22|0]|(z[a+21|0]|(z[a+20|0]|(z[a+19|0]|(z[a+18|0]|(z[a+17|0]|(z[a+16|0]|(z[a+15|0]|(z[a+14|0]|(z[a+13|0]|(z[a+12|0]|(z[a+11|0]|(z[a+10|0]|(z[a+9|0]|(z[a+8|0]|(z[a+7|0]|(z[a+6|0]|(z[a+5|0]|(z[a+4|0]|(z[a+3|0]|(z[a+2|0]|(z[a+1|0]|z[a|0]^1)))))))))))))))))))))))))))))))-1&256)){c=ya(b,32)?-1:0;}T=d+160|0;return c}function Ea(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T-16|0;T=d;w[d+15|0]=0;e=-1;if(!(X[y[9954]](a,b,c)|0)){w[d+15|0]=z[a|0]|z[d+15|0];w[d+15|0]=z[a+1|0]|z[d+15|0];w[d+15|0]=z[a+2|0]|z[d+15|0];w[d+15|0]=z[a+3|0]|z[d+15|0];w[d+15|0]=z[a+4|0]|z[d+15|0];w[d+15|0]=z[a+5|0]|z[d+15|0];w[d+15|0]=z[a+6|0]|z[d+15|0];w[d+15|0]=z[a+7|0]|z[d+15|0];w[d+15|0]=z[a+8|0]|z[d+15|0];w[d+15|0]=z[a+9|0]|z[d+15|0];w[d+15|0]=z[a+10|0]|z[d+15|0];w[d+15|0]=z[a+11|0]|z[d+15|0];w[d+15|0]=z[a+12|0]|z[d+15|0];w[d+15|0]=z[a+13|0]|z[d+15|0];w[d+15|0]=z[a+14|0]|z[d+15|0];w[d+15|0]=z[a+15|0]|z[d+15|0];w[d+15|0]=z[a+16|0]|z[d+15|0];w[d+15|0]=z[a+17|0]|z[d+15|0];w[d+15|0]=z[a+18|0]|z[d+15|0];w[d+15|0]=z[a+19|0]|z[d+15|0];w[d+15|0]=z[a+20|0]|z[d+15|0];w[d+15|0]=z[a+21|0]|z[d+15|0];w[d+15|0]=z[a+22|0]|z[d+15|0];w[d+15|0]=z[a+23|0]|z[d+15|0];w[d+15|0]=z[a+24|0]|z[d+15|0];w[d+15|0]=z[a+25|0]|z[d+15|0];w[d+15|0]=z[a+26|0]|z[d+15|0];w[d+15|0]=z[a+27|0]|z[d+15|0];w[d+15|0]=z[a+28|0]|z[d+15|0];w[d+15|0]=z[a+29|0]|z[d+15|0];w[d+15|0]=z[a+30|0]|z[d+15|0];w[d+15|0]=z[a+31|0]|z[d+15|0];e=(z[d+15|0]<<23)-8388608>>31;}T=d+16|0;return e|0}function Xc(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{if((d|0)==1|d>>>0>1){y[10172]=22;break b}d=T-128|0;T=d;y[d+64>>2]=0;y[d+56>>2]=0;y[d+60>>2]=0;y[d+48>>2]=0;y[d+52>>2]=0;y[d+40>>2]=0;y[d+44>>2]=0;y[d+32>>2]=0;y[d+36>>2]=0;y[d+24>>2]=0;y[d+28>>2]=0;y[d+16>>2]=0;y[d+20>>2]=0;f=Ha(a);y[d+28>>2]=f;y[d+44>>2]=f;y[d+12>>2]=f;g=Da(f);y[d+40>>2]=g;h=Da(f);y[d+24>>2]=h;i=Da(f);y[d+8>>2]=i;c:{d:{if(!i|(!g|!h)){break d}f=Da(f);if(!f){break d}a=oe(d+8|0,a,e);if(a){ta(y[d+40>>2]);ta(y[d+24>>2]);ta(y[d+8>>2]);ta(f);break c}i=y[d+28>>2];j=y[d+24>>2];a=y[d+60>>2];k=y[d+52>>2];l=y[d+48>>2];g=y[d+12>>2];za(f,g);h=Da(g);e:{if(!h){a=-22;break e}y[d+92>>2]=0;y[d+96>>2]=0;y[d+88>>2]=i;y[d+84>>2]=j;y[d+80>>2]=c;y[d+76>>2]=b;y[d+72>>2]=g;y[d+68>>2]=h;y[d+100>>2]=0;y[d+104>>2]=0;y[d+124>>2]=0;y[d+120>>2]=a;y[d+116>>2]=a;y[d+112>>2]=k;y[d+108>>2]=l;a=Sb(d+68|0,e);if(!(a|!g)){t(f,h,g);}ja(h,g);ta(h);}ta(y[d+40>>2]);ta(y[d+24>>2]);if(!a){a=$a(f,y[d+8>>2],y[d+12>>2])?-35:0;}ta(f);ta(y[d+8>>2]);break c}ta(g);ta(h);ta(i);a=-22;}T=d+128|0;b=a;if(!a){break a}if((a|0)!=-35){break b}y[10172]=28;}b=-1;}return b}function db(a,b){a=a|0;b=b|0;var c=0;c=T-16|0;y[c+12>>2]=a;y[c+8>>2]=b;x[c+6>>1]=0;x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]]^z[y[c+8>>2]];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+1|0]^z[y[c+8>>2]+1|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+2|0]^z[y[c+8>>2]+2|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+3|0]^z[y[c+8>>2]+3|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+4|0]^z[y[c+8>>2]+4|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+5|0]^z[y[c+8>>2]+5|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+6|0]^z[y[c+8>>2]+6|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+7|0]^z[y[c+8>>2]+7|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+8|0]^z[y[c+8>>2]+8|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+9|0]^z[y[c+8>>2]+9|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+10|0]^z[y[c+8>>2]+10|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+11|0]^z[y[c+8>>2]+11|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+12|0]^z[y[c+8>>2]+12|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+13|0]^z[y[c+8>>2]+13|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+14|0]^z[y[c+8>>2]+14|0];x[c+6>>1]=A[c+6>>1]|z[y[c+12>>2]+15|0]^z[y[c+8>>2]+15|0];x[c+6>>1]=A[c+6>>1];x[c+6>>1]=A[c+6>>1]-1;x[c+6>>1]=A[20608]>>>2^A[c+6>>1]>>>15;return A[c+6>>1]-1|0}function pa(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=y[b+32>>2];g=y[b+28>>2];h=y[b+24>>2];i=y[b+20>>2];j=y[b+16>>2];k=y[b+12>>2];c=y[b+4>>2];d=y[b>>2];e=y[b+36>>2];b=y[b+8>>2];d=E((f+(g+(h+(i+(j+(k+((c+(d+(E(e,19)+16777216>>>25|0)>>26)>>25)+b>>26)>>25)>>26)>>25)>>26)>>25)>>26)+e>>25,19)+d|0;w[a|0]=d;w[a+2|0]=d>>>16;w[a+1|0]=d>>>8;c=c+(d>>26)|0;w[a+5|0]=c>>>14;w[a+4|0]=c>>>6;w[a+3|0]=d>>>24&3|c<<2;b=b+(c>>25)|0;w[a+8|0]=b>>>13;w[a+7|0]=b>>>5;w[a+6|0]=b<<3|(c&29360128)>>>22;d=(b>>26)+k|0;w[a+11|0]=d>>>11;w[a+10|0]=d>>>3;w[a+9|0]=d<<5|(b&65011712)>>>21;c=(d>>25)+j|0;w[a+15|0]=c>>>18;w[a+14|0]=c>>>10;w[a+13|0]=c>>>2;b=(c>>26)+i|0;w[a+16|0]=b;w[a+12|0]=c<<6|(d&33030144)>>>19;w[a+18|0]=b>>>16;w[a+17|0]=b>>>8;c=(b>>25)+h|0;w[a+21|0]=c>>>15;w[a+20|0]=c>>>7;w[a+19|0]=b>>>24&1|c<<1;b=(c>>26)+g|0;w[a+24|0]=b>>>13;w[a+23|0]=b>>>5;w[a+22|0]=b<<3|(c&58720256)>>>23;c=(b>>25)+f|0;w[a+27|0]=c>>>12;w[a+26|0]=c>>>4;w[a+25|0]=c<<4|(b&31457280)>>>21;b=e+(c>>26)|0;w[a+30|0]=b>>>10;w[a+29|0]=b>>>2;w[a+31|0]=(b&33292288)>>>18;w[a+28|0]=b<<6|(c&66060288)>>>20;}function Va(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;g=T-192|0;T=g;if(c>>>0>=129){Za(a);va(a,b,c,0);Ca(a,g);c=64;b=g;}Za(a);o(g- -64|0,54,128);a:{if(!c){break a}k=c&3;if(c>>>0>=4){f=c&252;while(1){h=g- -64|0;e=h+d|0;w[e|0]=z[e|0]^z[b+d|0];e=d|1;l=e+h|0;w[l|0]=z[l|0]^z[b+e|0];e=d|2;l=e+h|0;w[l|0]=z[l|0]^z[b+e|0];e=h;h=d|3;e=e+h|0;w[e|0]=z[e|0]^z[b+h|0];d=d+4|0;i=i+4|0;if((f|0)!=(i|0)){continue}break}if(!k){break a}}while(1){i=(g- -64|0)+d|0;w[i|0]=z[i|0]^z[b+d|0];d=d+1|0;j=j+1|0;if((k|0)!=(j|0)){continue}break}}d=g- -64|0;va(a,d,128,0);k=a+208|0;Za(k);o(d,92,128);b:{if(!c){break b}h=c&3;j=0;d=0;if(c>>>0>=4){c=c&252;i=0;while(1){a=g- -64|0;f=a+d|0;w[f|0]=z[f|0]^z[b+d|0];f=d|1;e=f+a|0;w[e|0]=z[e|0]^z[b+f|0];f=d|2;e=f+a|0;w[e|0]=z[e|0]^z[b+f|0];e=a;a=d|3;f=e+a|0;w[f|0]=z[f|0]^z[a+b|0];d=d+4|0;i=i+4|0;if((c|0)!=(i|0)){continue}break}if(!h){break b}}while(1){a=(g- -64|0)+d|0;w[a|0]=z[a|0]^z[b+d|0];d=d+1|0;j=j+1|0;if((h|0)!=(j|0)){continue}break}}a=g- -64|0;va(k,a,128,0);ja(a,128);ja(g,64);T=g+192|0;return 0}function mh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b;d=z[c+32|0]|z[c+33|0]<<8|(z[c+34|0]<<16|z[c+35|0]<<24);e=z[c+36|0]|z[c+37|0]<<8|(z[c+38|0]<<16|z[c+39|0]<<24);f=z[c+40|0]|z[c+41|0]<<8|(z[c+42|0]<<16|z[c+43|0]<<24);g=z[c+44|0]|z[c+45|0]<<8|(z[c+46|0]<<16|z[c+47|0]<<24);h=z[c+48|0]|z[c+49|0]<<8|(z[c+50|0]<<16|z[c+51|0]<<24);b=z[c+52|0]|z[c+53|0]<<8|(z[c+54|0]<<16|z[c+55|0]<<24);i=z[c+60|0]|z[c+61|0]<<8|(z[c+62|0]<<16|z[c+63|0]<<24);c=z[c+56|0]|z[c+57|0]<<8|(z[c+58|0]<<16|z[c+59|0]<<24);w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=i;w[a+29|0]=i>>>8;w[a+30|0]=i>>>16;w[a+31|0]=i>>>24;w[a+16|0]=h;w[a+17|0]=h>>>8;w[a+18|0]=h>>>16;w[a+19|0]=h>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;w[a+8|0]=f;w[a+9|0]=f>>>8;w[a+10|0]=f>>>16;w[a+11|0]=f>>>24;w[a+12|0]=g;w[a+13|0]=g>>>8;w[a+14|0]=g>>>16;w[a+15|0]=g>>>24;w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=e;w[a+5|0]=e>>>8;w[a+6|0]=e>>>16;w[a+7|0]=e>>>24;return 0}function nh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;c=b;d=z[c|0]|z[c+1|0]<<8|(z[c+2|0]<<16|z[c+3|0]<<24);e=z[c+4|0]|z[c+5|0]<<8|(z[c+6|0]<<16|z[c+7|0]<<24);f=z[c+8|0]|z[c+9|0]<<8|(z[c+10|0]<<16|z[c+11|0]<<24);g=z[c+12|0]|z[c+13|0]<<8|(z[c+14|0]<<16|z[c+15|0]<<24);h=z[c+16|0]|z[c+17|0]<<8|(z[c+18|0]<<16|z[c+19|0]<<24);b=z[c+20|0]|z[c+21|0]<<8|(z[c+22|0]<<16|z[c+23|0]<<24);i=z[c+28|0]|z[c+29|0]<<8|(z[c+30|0]<<16|z[c+31|0]<<24);c=z[c+24|0]|z[c+25|0]<<8|(z[c+26|0]<<16|z[c+27|0]<<24);w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=i;w[a+29|0]=i>>>8;w[a+30|0]=i>>>16;w[a+31|0]=i>>>24;w[a+16|0]=h;w[a+17|0]=h>>>8;w[a+18|0]=h>>>16;w[a+19|0]=h>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;w[a+8|0]=f;w[a+9|0]=f>>>8;w[a+10|0]=f>>>16;w[a+11|0]=f>>>24;w[a+12|0]=g;w[a+13|0]=g>>>8;w[a+14|0]=g>>>16;w[a+15|0]=g>>>24;w[a|0]=d;w[a+1|0]=d>>>8;w[a+2|0]=d>>>16;w[a+3|0]=d>>>24;w[a+4|0]=e;w[a+5|0]=e>>>8;w[a+6|0]=e>>>16;w[a+7|0]=e>>>24;return 0}function pi(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=T+-64|0;T=h;if(c|d){y[h+8>>2]=2036477234;y[h+12>>2]=1797285236;y[h>>2]=1634760805;y[h+4>>2]=857760878;y[h+16>>2]=z[g|0]|z[g+1|0]<<8|(z[g+2|0]<<16|z[g+3|0]<<24);y[h+20>>2]=z[g+4|0]|z[g+5|0]<<8|(z[g+6|0]<<16|z[g+7|0]<<24);y[h+24>>2]=z[g+8|0]|z[g+9|0]<<8|(z[g+10|0]<<16|z[g+11|0]<<24);y[h+28>>2]=z[g+12|0]|z[g+13|0]<<8|(z[g+14|0]<<16|z[g+15|0]<<24);y[h+32>>2]=z[g+16|0]|z[g+17|0]<<8|(z[g+18|0]<<16|z[g+19|0]<<24);y[h+36>>2]=z[g+20|0]|z[g+21|0]<<8|(z[g+22|0]<<16|z[g+23|0]<<24);y[h+40>>2]=z[g+24|0]|z[g+25|0]<<8|(z[g+26|0]<<16|z[g+27|0]<<24);g=z[g+28|0]|z[g+29|0]<<8|(z[g+30|0]<<16|z[g+31|0]<<24);y[h+48>>2]=f;y[h+44>>2]=g;y[h+52>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[h+56>>2]=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[h+60>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);_b(h,b,a,c,d);ja(h,64);}T=h- -64|0;return 0}function ri(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T+-64|0;T=f;if(b|c){y[f+8>>2]=2036477234;y[f+12>>2]=1797285236;y[f>>2]=1634760805;y[f+4>>2]=857760878;y[f+16>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[f+20>>2]=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[f+24>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);y[f+28>>2]=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+32>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+36>>2]=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+40>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);e=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);y[f+48>>2]=0;y[f+44>>2]=e;y[f+52>>2]=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);y[f+56>>2]=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);y[f+60>>2]=z[d+8|0]|z[d+9|0]<<8|(z[d+10|0]<<16|z[d+11|0]<<24);if(b){o(a,0,b);}_b(f,a,a,b,c);ja(f,64);}T=f- -64|0;return 0}function Vf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=T;f=g-192&-64;T=f;y[f+64>>2]=(z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24))&67108863;y[f+68>>2]=(z[e+3|0]|z[e+4|0]<<8|(z[e+5|0]<<16|z[e+6|0]<<24))>>>2&67108611;y[f+72>>2]=(z[e+6|0]|z[e+7|0]<<8|(z[e+8|0]<<16|z[e+9|0]<<24))>>>4&67092735;y[f+76>>2]=(z[e+9|0]|z[e+10|0]<<8|(z[e+11|0]<<16|z[e+12|0]<<24))>>>6&66076671;h=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+84>>2]=0;y[f+88>>2]=0;y[f+92>>2]=0;y[f+96>>2]=0;y[f+100>>2]=0;y[f+80>>2]=h>>>8&1048575;y[f+104>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+108>>2]=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+112>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);e=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);w[f+144|0]=0;y[f+120>>2]=0;y[f+124>>2]=0;y[f+116>>2]=e;e=f- -64|0;kc(e,b,c,d);b=f+48|0;jc(e,b);a=db(a,b);T=g;return a|0}function jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;g=c;c=d;k=g|0;d=T;g=d;f=d-512&-64;T=f;d=-1;h=f- -64|0;i=f+32|0;if(!nb(h,i)){d=f+128|0;Ja(d,0,0,24);oa(d,h,32,0);oa(d,e,32,0);j=f+96|0;Ia(d,j,24);d=$d(a+32|0,b,k,c,j,e,i);b=y[f+92>>2];c=y[f+88>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[f+84>>2];c=y[f+80>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[f+76>>2];c=y[f+72>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[f+68>>2];c=y[f+64>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;ja(i,32);ja(h,32);ja(j,24);}T=g;return d|0}function Wf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;g=c;c=d;k=g|0;d=T;g=d;f=d-512&-64;T=f;d=-1;h=f- -64|0;i=f+32|0;if(!nb(h,i)){d=f+128|0;Ja(d,0,0,24);oa(d,h,32,0);oa(d,e,32,0);j=f+96|0;Ia(d,j,24);d=Bd(a+32|0,b,k,c,j,e,i);b=y[f+92>>2];c=y[f+88>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[f+84>>2];c=y[f+80>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[f+76>>2];c=y[f+72>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[f+68>>2];c=y[f+64>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;ja(i,32);ja(h,32);ja(j,24);}T=g;return d|0}function qi(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=T+-64|0;T=i;if(c|d){y[i+8>>2]=2036477234;y[i+12>>2]=1797285236;y[i>>2]=1634760805;y[i+4>>2]=857760878;y[i+16>>2]=z[h|0]|z[h+1|0]<<8|(z[h+2|0]<<16|z[h+3|0]<<24);y[i+20>>2]=z[h+4|0]|z[h+5|0]<<8|(z[h+6|0]<<16|z[h+7|0]<<24);y[i+24>>2]=z[h+8|0]|z[h+9|0]<<8|(z[h+10|0]<<16|z[h+11|0]<<24);y[i+28>>2]=z[h+12|0]|z[h+13|0]<<8|(z[h+14|0]<<16|z[h+15|0]<<24);y[i+32>>2]=z[h+16|0]|z[h+17|0]<<8|(z[h+18|0]<<16|z[h+19|0]<<24);y[i+36>>2]=z[h+20|0]|z[h+21|0]<<8|(z[h+22|0]<<16|z[h+23|0]<<24);y[i+40>>2]=z[h+24|0]|z[h+25|0]<<8|(z[h+26|0]<<16|z[h+27|0]<<24);h=z[h+28|0]|z[h+29|0]<<8|(z[h+30|0]<<16|z[h+31|0]<<24);y[i+48>>2]=f;y[i+52>>2]=g;y[i+44>>2]=h;y[i+56>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[i+60>>2]=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);_b(i,b,a,c,d);ja(i,64);}T=i- -64|0;return 0}function si(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T+-64|0;T=f;if(b|c){y[f+8>>2]=2036477234;y[f+12>>2]=1797285236;y[f>>2]=1634760805;y[f+4>>2]=857760878;y[f+16>>2]=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);y[f+20>>2]=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[f+24>>2]=z[e+8|0]|z[e+9|0]<<8|(z[e+10|0]<<16|z[e+11|0]<<24);y[f+28>>2]=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+32>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+36>>2]=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+40>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);e=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);y[f+48>>2]=0;y[f+52>>2]=0;y[f+44>>2]=e;y[f+56>>2]=z[d|0]|z[d+1|0]<<8|(z[d+2|0]<<16|z[d+3|0]<<24);y[f+60>>2]=z[d+4|0]|z[d+5|0]<<8|(z[d+6|0]<<16|z[d+7|0]<<24);if(b){o(a,0,b);}_b(f,a,a,b,c);ja(f,64);}T=f- -64|0;return 0}function og(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=T;f=g-128&-64;T=f;y[f>>2]=(z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24))&67108863;y[f+4>>2]=(z[e+3|0]|z[e+4|0]<<8|(z[e+5|0]<<16|z[e+6|0]<<24))>>>2&67108611;y[f+8>>2]=(z[e+6|0]|z[e+7|0]<<8|(z[e+8|0]<<16|z[e+9|0]<<24))>>>4&67092735;y[f+12>>2]=(z[e+9|0]|z[e+10|0]<<8|(z[e+11|0]<<16|z[e+12|0]<<24))>>>6&66076671;h=z[e+12|0]|z[e+13|0]<<8|(z[e+14|0]<<16|z[e+15|0]<<24);y[f+20>>2]=0;y[f+24>>2]=0;y[f+28>>2]=0;y[f+32>>2]=0;y[f+36>>2]=0;y[f+16>>2]=h>>>8&1048575;y[f+40>>2]=z[e+16|0]|z[e+17|0]<<8|(z[e+18|0]<<16|z[e+19|0]<<24);y[f+44>>2]=z[e+20|0]|z[e+21|0]<<8|(z[e+22|0]<<16|z[e+23|0]<<24);y[f+48>>2]=z[e+24|0]|z[e+25|0]<<8|(z[e+26|0]<<16|z[e+27|0]<<24);e=z[e+28|0]|z[e+29|0]<<8|(z[e+30|0]<<16|z[e+31|0]<<24);w[f+80|0]=0;y[f+56>>2]=0;y[f+60>>2]=0;y[f+52>>2]=e;kc(f,b,c,d);jc(f,a);T=g;return 0}function Bb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=T-352|0;T=h;Aa(h,f,g,0);a:{b:{if(!(!((!e&a-c>>>0>>0|(e|0)!=0)&a>>>0>c>>>0)&(!e&c-a>>>0>=d>>>0|a>>>0>=c>>>0))){if(d){t(a,c,d);}y[h+56>>2]=0;y[h+60>>2]=0;y[h+48>>2]=0;y[h+52>>2]=0;y[h+40>>2]=0;y[h+44>>2]=0;y[h+32>>2]=0;y[h+36>>2]=0;g=(e|0)!=0;c=g|!e&d>>>0>=32;i=c?32:d;k=c?0:e;g=g|!e&d>>>0>32;c=a;break b}y[h+56>>2]=0;y[h+60>>2]=0;y[h+48>>2]=0;y[h+52>>2]=0;y[h+40>>2]=0;y[h+44>>2]=0;y[h+32>>2]=0;y[h+36>>2]=0;j=(e|0)!=0;g=j|!e&d>>>0>=32;i=g?32:d;k=g?0:e;g=j|!e&d>>>0>32;if(d|e){break b}m=1;break a}if(i){t(h- -64|0,c,i);}m=0;}l=h+32|0;j=k;n=i+32|0;j=n>>>0<32?j+1|0:j;o=j;j=f+16|0;Zb(l,l,n,o,j,h);Ga(h+96|0,l);if(!(!i|m)){t(a,h- -64|0,i);}ja(h+32|0,64);if(g){hb(a+i|0,c+i|0,d-i|0,e-(k+(d>>>0>>0)|0)|0,j,1,0,h);}ja(h,32);c=h+96|0;la(c,a,d,e);Fa(c,b);ja(c,256);T=h+352|0;return 0}function Ab(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;h=T-352|0;T=h;Sa(h,f,g,0);a:{b:{if(!(!((!e&a-c>>>0>>0|(e|0)!=0)&a>>>0>c>>>0)&(!e&c-a>>>0>=d>>>0|a>>>0>=c>>>0))){if(d){t(a,c,d);}y[h+56>>2]=0;y[h+60>>2]=0;y[h+48>>2]=0;y[h+52>>2]=0;y[h+40>>2]=0;y[h+44>>2]=0;y[h+32>>2]=0;y[h+36>>2]=0;g=(e|0)!=0;c=g|!e&d>>>0>=32;i=c?32:d;k=c?0:e;g=g|!e&d>>>0>32;c=a;break b}y[h+56>>2]=0;y[h+60>>2]=0;y[h+48>>2]=0;y[h+52>>2]=0;y[h+40>>2]=0;y[h+44>>2]=0;y[h+32>>2]=0;y[h+36>>2]=0;j=(e|0)!=0;g=j|!e&d>>>0>=32;i=g?32:d;k=g?0:e;g=j|!e&d>>>0>32;if(d|e){break b}m=1;break a}if(i){t(h- -64|0,c,i);}m=0;}l=h+32|0;j=k;n=i+32|0;j=n>>>0<32?j+1|0:j;o=j;j=f+16|0;Gb(l,l,n,o,j,h);Ga(h+96|0,l);if(!(!i|m)){t(a,h- -64|0,i);}ja(h+32|0,64);if(g){sb(a+i|0,c+i|0,d-i|0,e-(k+(d>>>0>>0)|0)|0,j,1,0,h);}ja(h,32);c=h+96|0;la(c,a,d,e);Fa(c,b);ja(c,256);T=h+352|0;return 0}function Qf(a,b){a=a|0;b=b|0;var c=0;y[a>>2]=(z[b|0]|z[b+1|0]<<8|(z[b+2|0]<<16|z[b+3|0]<<24))&67108863;y[a+4>>2]=(z[b+3|0]|z[b+4|0]<<8|(z[b+5|0]<<16|z[b+6|0]<<24))>>>2&67108611;y[a+8>>2]=(z[b+6|0]|z[b+7|0]<<8|(z[b+8|0]<<16|z[b+9|0]<<24))>>>4&67092735;y[a+12>>2]=(z[b+9|0]|z[b+10|0]<<8|(z[b+11|0]<<16|z[b+12|0]<<24))>>>6&66076671;c=z[b+12|0]|z[b+13|0]<<8|(z[b+14|0]<<16|z[b+15|0]<<24);y[a+20>>2]=0;y[a+24>>2]=0;y[a+28>>2]=0;y[a+32>>2]=0;y[a+36>>2]=0;y[a+16>>2]=c>>>8&1048575;y[a+40>>2]=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);y[a+44>>2]=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);y[a+48>>2]=z[b+24|0]|z[b+25|0]<<8|(z[b+26|0]<<16|z[b+27|0]<<24);b=z[b+28|0]|z[b+29|0]<<8|(z[b+30|0]<<16|z[b+31|0]<<24);w[a+80|0]=0;y[a+56>>2]=0;y[a+60>>2]=0;y[a+52>>2]=b;return 0}function Pg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T-320|0;T=d;e=-1;if(!ib(d,c)){w[a|0]=z[b|0];w[a+1|0]=z[b+1|0];w[a+2|0]=z[b+2|0];w[a+3|0]=z[b+3|0];w[a+4|0]=z[b+4|0];w[a+5|0]=z[b+5|0];w[a+6|0]=z[b+6|0];w[a+7|0]=z[b+7|0];w[a+8|0]=z[b+8|0];w[a+9|0]=z[b+9|0];w[a+10|0]=z[b+10|0];w[a+11|0]=z[b+11|0];w[a+12|0]=z[b+12|0];w[a+13|0]=z[b+13|0];w[a+14|0]=z[b+14|0];w[a+15|0]=z[b+15|0];w[a+16|0]=z[b+16|0];w[a+17|0]=z[b+17|0];w[a+18|0]=z[b+18|0];w[a+19|0]=z[b+19|0];w[a+20|0]=z[b+20|0];w[a+21|0]=z[b+21|0];w[a+22|0]=z[b+22|0];w[a+23|0]=z[b+23|0];w[a+24|0]=z[b+24|0];w[a+25|0]=z[b+25|0];w[a+26|0]=z[b+26|0];w[a+27|0]=z[b+27|0];w[a+28|0]=z[b+28|0];w[a+29|0]=z[b+29|0];w[a+30|0]=z[b+30|0];w[a+31|0]=z[b+31|0]&127;b=d+160|0;Nc(b,a,d);xb(a,b);e=ya(a,32)?-1:0;}T=d+320|0;return e|0}function wd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-480|0;T=f;Va(f,e,32);Na(f,b,c,d);Ya(f,f+416|0);b=y[f+444>>2];c=y[f+440>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;b=y[f+436>>2];c=y[f+432>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[f+428>>2];c=y[f+424>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[f+420>>2];c=y[f+416>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;T=f+480|0;return 0}function Og(a,b){a=a|0;b=b|0;var c=0;c=T-160|0;T=c;w[a|0]=z[b|0];w[a+1|0]=z[b+1|0];w[a+2|0]=z[b+2|0];w[a+3|0]=z[b+3|0];w[a+4|0]=z[b+4|0];w[a+5|0]=z[b+5|0];w[a+6|0]=z[b+6|0];w[a+7|0]=z[b+7|0];w[a+8|0]=z[b+8|0];w[a+9|0]=z[b+9|0];w[a+10|0]=z[b+10|0];w[a+11|0]=z[b+11|0];w[a+12|0]=z[b+12|0];w[a+13|0]=z[b+13|0];w[a+14|0]=z[b+14|0];w[a+15|0]=z[b+15|0];w[a+16|0]=z[b+16|0];w[a+17|0]=z[b+17|0];w[a+18|0]=z[b+18|0];w[a+19|0]=z[b+19|0];w[a+20|0]=z[b+20|0];w[a+21|0]=z[b+21|0];w[a+22|0]=z[b+22|0];w[a+23|0]=z[b+23|0];w[a+24|0]=z[b+24|0];w[a+25|0]=z[b+25|0];w[a+26|0]=z[b+26|0];w[a+27|0]=z[b+27|0];w[a+28|0]=z[b+28|0];w[a+29|0]=z[b+29|0];w[a+30|0]=z[b+30|0];w[a+31|0]=z[b+31|0]&127;jb(c,a);xb(a,c);a=ya(a,32);T=c+160|0;return (a?-1:0)|0}function oh(a,b){a=a|0;b=b|0;var c=0,d=0;d=T+-64|0;T=d;rb(d,b,32,0);w[d|0]=z[d|0]&248;w[d+31|0]=z[d+31|0]&63|64;b=y[d+20>>2];c=y[d+16>>2];w[a+16|0]=c;w[a+17|0]=c>>>8;w[a+18|0]=c>>>16;w[a+19|0]=c>>>24;w[a+20|0]=b;w[a+21|0]=b>>>8;w[a+22|0]=b>>>16;w[a+23|0]=b>>>24;b=y[d+12>>2];c=y[d+8>>2];w[a+8|0]=c;w[a+9|0]=c>>>8;w[a+10|0]=c>>>16;w[a+11|0]=c>>>24;w[a+12|0]=b;w[a+13|0]=b>>>8;w[a+14|0]=b>>>16;w[a+15|0]=b>>>24;b=y[d+4>>2];c=y[d>>2];w[a|0]=c;w[a+1|0]=c>>>8;w[a+2|0]=c>>>16;w[a+3|0]=c>>>24;w[a+4|0]=b;w[a+5|0]=b>>>8;w[a+6|0]=b>>>16;w[a+7|0]=b>>>24;b=y[d+28>>2];c=y[d+24>>2];w[a+24|0]=c;w[a+25|0]=c>>>8;w[a+26|0]=c>>>16;w[a+27|0]=c>>>24;w[a+28|0]=b;w[a+29|0]=b>>>8;w[a+30|0]=b>>>16;w[a+31|0]=b>>>24;ja(d,64);T=d- -64|0;return 0}function tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=T+-64|0;T=e;rb(e,c,32,0);c=y[e+28>>2];d=y[e+24>>2];w[b+24|0]=d;w[b+25|0]=d>>>8;w[b+26|0]=d>>>16;w[b+27|0]=d>>>24;w[b+28|0]=c;w[b+29|0]=c>>>8;w[b+30|0]=c>>>16;w[b+31|0]=c>>>24;c=y[e+20>>2];d=y[e+16>>2];w[b+16|0]=d;w[b+17|0]=d>>>8;w[b+18|0]=d>>>16;w[b+19|0]=d>>>24;w[b+20|0]=c;w[b+21|0]=c>>>8;w[b+22|0]=c>>>16;w[b+23|0]=c>>>24;c=y[e+12>>2];d=y[e+8>>2];w[b+8|0]=d;w[b+9|0]=d>>>8;w[b+10|0]=d>>>16;w[b+11|0]=d>>>24;w[b+12|0]=c;w[b+13|0]=c>>>8;w[b+14|0]=c>>>16;w[b+15|0]=c>>>24;c=y[e+4>>2];d=y[e>>2];w[b|0]=d;w[b+1|0]=d>>>8;w[b+2|0]=d>>>16;w[b+3|0]=d>>>24;w[b+4|0]=c;w[b+5|0]=c>>>8;w[b+6|0]=c>>>16;w[b+7|0]=c>>>24;ja(e,64);a=wb(a,b);T=e- -64|0;return a|0}function xi(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;j=T;l=j;j=j-192&-32;T=j;Qe(i,h,j- -64|0);h=0;if(g>>>0>63){i=64;while(1){Pe(f+h|0,j- -64|0);h=i;i=i- -64|0;if(i>>>0<=g>>>0){continue}break}}i=h|32;if(i>>>0<=g>>>0){while(1){$b(f+h|0,j- -64|0);h=i;i=i+32|0;if(i>>>0<=g>>>0){continue}break}}i=g&31;if(i){k=32-i|0;if(k){o(i|j+32,0,k);}if(i){t(j+32|0,f+h|0,i);}$b(j+32|0,j- -64|0);}f=32;h=0;if(e>>>0>=32){while(1){Oe(a+h|0,d+h|0,j- -64|0);h=f;f=f+32|0;if(f>>>0<=e>>>0){continue}break}}f=e&31;a:{if(!f){break a}i=32-f|0;if(i){o(f|j+32,0,i);}i=!f;if(!i){t(j+32|0,d+h|0,f);}Oe(j,j+32|0,j- -64|0);if(i){break a}t(a+h|0,j,f);}Ne(b,c,g,e,j- -64|0);T=l;return 0}function Ng(a,b){a=a|0;b=b|0;var c=0,d=0;d=T+-64|0;T=d;Ya(a,d);c=y[d+28>>2];a=y[d+24>>2];w[b+24|0]=a;w[b+25|0]=a>>>8;w[b+26|0]=a>>>16;w[b+27|0]=a>>>24;w[b+28|0]=c;w[b+29|0]=c>>>8;w[b+30|0]=c>>>16;w[b+31|0]=c>>>24;c=y[d+20>>2];a=y[d+16>>2];w[b+16|0]=a;w[b+17|0]=a>>>8;w[b+18|0]=a>>>16;w[b+19|0]=a>>>24;w[b+20|0]=c;w[b+21|0]=c>>>8;w[b+22|0]=c>>>16;w[b+23|0]=c>>>24;c=y[d+12>>2];a=y[d+8>>2];w[b+8|0]=a;w[b+9|0]=a>>>8;w[b+10|0]=a>>>16;w[b+11|0]=a>>>24;w[b+12|0]=c;w[b+13|0]=c>>>8;w[b+14|0]=c>>>16;w[b+15|0]=c>>>24;c=y[d+4>>2];a=y[d>>2];w[b|0]=a;w[b+1|0]=a>>>8;w[b+2|0]=a>>>16;w[b+3|0]=a>>>24;w[b+4|0]=c;w[b+5|0]=c>>>8;w[b+6|0]=c>>>16;w[b+7|0]=c>>>24;T=d- -64|0;return 0}function Pc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;if(b>>>0>4294967168){return 48}a:{if(b>>>0>=4294967168){y[10172]=48;c=0;break a}f=b>>>0<11?16:b+11&-8;b=Da(f+76|0);c=0;if(!b){break a}c=b-8|0;b:{if(!(b&63)){b=c;break b}g=b-4|0;h=y[g>>2];b=(b+63&-64)-8|0;b=(b-c>>>0<=15?64:0)+b|0;d=b-c|0;e=(h&-8)-d|0;if(!(h&3)){c=y[c>>2];y[b+4>>2]=e;y[b>>2]=c+d;break b}y[b+4>>2]=e|y[b+4>>2]&1|2;e=b+e|0;y[e+4>>2]=y[e+4>>2]|1;y[g>>2]=d|y[g>>2]&1|2;e=c+d|0;y[e+4>>2]=y[e+4>>2]|1;Lc(c,d);}c=y[b+4>>2];c:{if(!(c&3)){break c}d=c&-8;if(d>>>0<=f+16>>>0){break c}y[b+4>>2]=f|c&1|2;c=b+f|0;f=d-f|0;y[c+4>>2]=f|3;d=b+d|0;y[d+4>>2]=y[d+4>>2]|1;Lc(c,f);}c=b+8|0;}if(!c){return 48}y[a>>2]=c;return 0}function le(a,b,c,d,e,f,g,h,i,j,k){if(b){o(a,0,b);}if((c|0)==1|c>>>0>1){y[10172]=22;return -1}a:{if(!c&b>>>0<=15){break a}if(!(!(f|i)&j>>>0<2147483649)){y[10172]=22;return -1}if(!((!i&h>>>0>=3|(i|0)!=0)&j>>>0>8191)|(a|0)==(d|0)){break a}if((k|0)==1){c=T+-64|0;T=c;if(a){za(a,b);}i=j>>>10|0;f=Da(b);b:{if(!f){d=-22;break b}y[c+28>>2]=0;y[c+32>>2]=0;y[c+24>>2]=16;y[c+20>>2]=g;y[c+16>>2]=e;y[c+12>>2]=d;y[c+8>>2]=b;y[c+4>>2]=f;y[c+36>>2]=0;y[c+40>>2]=0;y[c+60>>2]=0;y[c+56>>2]=1;y[c+52>>2]=1;y[c+48>>2]=i;y[c+44>>2]=h;d=Sb(c+4|0,1);if(!(!b|(d|!a))){t(a,f,b);}ja(f,b);ta(f);}T=c- -64|0;return d?-1:0}y[10172]=28;return -1}y[10172]=28;return -1}function cf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=a;e=T-32|0;T=e;lc(b,c,d,e+28|0,e+20|0,e+12|0);a=0;a:{b:{c:{while(1){d:{if(!z[a+f|0]){b=a;break d}b=a+1|0;if(!z[f+b|0]){break d}b=a+2|0;if(!z[f+b|0]){break d}a=a+3|0;if((a|0)!=102){continue}break c}break}if((b|0)!=101){break c}c=e+8|0;d=e+16|0;a=0;e:{if(z[f|0]!=36|z[f+1|0]!=55|z[f+2|0]!=36){break e}b=eb(z[f+3|0]);y[e+24>>2]=b?b-1024|0:0;if(!b){break e}b=Mb(c,f+4|0);if(!b){break e}a=Mb(d,b);}if(a){break b}y[10172]=28;a=-1;break a}y[10172]=28;a=-1;break a}a=1;if(y[e+28>>2]!=y[e+24>>2]|y[e+12>>2]!=y[e+8>>2]){break a}a=y[e+20>>2]!=y[e+16>>2];}T=e+32|0;return a|0}function Qb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0;h=T-96|0;T=h;Sa(h,f,g,0);g=h+32|0;i=f+16|0;ac(g,32,0,i,h);f=-1;a:{b:{if(Jb(c,b,d,e,g)){break b}f=0;if(!a){break a}c:{d:{if(!(!((!e&b-a>>>0>>0|(e|0)!=0)&a>>>0>>0)&(!e&a-b>>>0>=d>>>0|a>>>0<=b>>>0))){if(d){t(a,b,d);}b=a;break d}if(!(d|e)){break c}}j=h- -64|0;f=!e&d>>>0>=32|(e|0)!=0;c=f?32:d;g=f?0:e;k=!c;if(!k){t(j,b,c);}f=h+32|0;l=f;f=g;m=c+32|0;f=m>>>0<32?f+1|0:f;Gb(l,l,m,f,i,h);if(!k){t(a,j,c);}ja(h+32|0,64);f=0;if(!e&d>>>0<33){break b}sb(a+c|0,b+c|0,d-c|0,e-(g+(c>>>0>d>>>0)|0)|0,i,1,0,h);break b}a=h+32|0;Gb(a,a,32,0,i,h);ja(a,64);}ja(h,32);}T=h+96|0;return f}function ce(a,b,c,d,e,f,g,h,i,j,k){if(b){o(a,0,b);}if((c|0)==1|c>>>0>1){y[10172]=22;return -1}a:{if(!c&b>>>0<=15){break a}if(!(!(f|i)&j>>>0<2147483649)){y[10172]=22;return -1}if(!(!!(h|i)&j>>>0>8191)|(a|0)==(d|0)){break a}if((k|0)==2){c=T+-64|0;T=c;if(a){za(a,b);}i=j>>>10|0;f=Da(b);b:{if(!f){d=-22;break b}y[c+28>>2]=0;y[c+32>>2]=0;y[c+24>>2]=16;y[c+20>>2]=g;y[c+16>>2]=e;y[c+12>>2]=d;y[c+8>>2]=b;y[c+4>>2]=f;y[c+36>>2]=0;y[c+40>>2]=0;y[c+60>>2]=0;y[c+56>>2]=1;y[c+52>>2]=1;y[c+48>>2]=i;y[c+44>>2]=h;d=Sb(c+4|0,2);if(!(!b|(d|!a))){t(a,f,b);}ja(f,b);ta(f);}T=c- -64|0;return d?-1:0}y[10172]=28;return -1}y[10172]=28;return -1}function Rb(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0,l=0,m=0;h=T-96|0;T=h;Aa(h,f,g,0);g=h+32|0;i=f+16|0;Fb(g,32,0,i,h);f=-1;a:{b:{if(Jb(c,b,d,e,g)){break b}f=0;if(!a){break a}c:{d:{if(!(!((!e&b-a>>>0>>0|(e|0)!=0)&a>>>0>>0)&(!e&a-b>>>0>=d>>>0|a>>>0<=b>>>0))){if(d){t(a,b,d);}b=a;break d}if(!(d|e)){break c}}j=h- -64|0;f=!e&d>>>0>=32|(e|0)!=0;c=f?32:d;g=f?0:e;k=!c;if(!k){t(j,b,c);}f=h+32|0;l=f;f=g;m=c+32|0;f=m>>>0<32?f+1|0:f;Zb(l,l,m,f,i,h);if(!k){t(a,j,c);}f=0;if(!e&d>>>0<33){break b}hb(a+c|0,b+c|0,d-c|0,e-(g+(c>>>0>d>>>0)|0)|0,i,1,0,h);break b}a=h+32|0;Zb(a,a,32,0,i,h);}ja(h,32);}T=h+96|0;return f} +function ia(a,b,c){var d=0,e=0,f=0;d=y[b+12>>2];e=y[b+8>>2];f=y[b+4>>2];b=y[b>>2];y[a>>2]=y[c>>2]^(y[(d>>>22&1020)+37408>>2]^(y[(e>>>14&1020)+36384>>2]^(y[(f>>>6&1020)+35360>>2]^y[((b&255)<<2)+34336>>2])));y[a+4>>2]=y[c+4>>2]^(y[(b>>>22&1020)+37408>>2]^(y[(d>>>14&1020)+36384>>2]^(y[(e>>>6&1020)+35360>>2]^y[((f&255)<<2)+34336>>2])));y[a+8>>2]=y[c+8>>2]^(y[(f>>>22&1020)+37408>>2]^(y[(b>>>14&1020)+36384>>2]^(y[(d>>>6&1020)+35360>>2]^y[((e&255)<<2)+34336>>2])));y[a+12>>2]=y[c+12>>2]^(y[(e>>>22&1020)+37408>>2]^(y[(f>>>14&1020)+36384>>2]^(y[(b>>>6&1020)+35360>>2]^y[((d&255)<<2)+34336>>2])));}function yd(a,b,c,d,e,f,g,h,i,j){var k=0,l=0;k=T-400|0;T=k;y[k+4>>2]=0;l=k+16|0;Aa(l,i,j,0);j=z[i+20|0]|z[i+21|0]<<8|(z[i+22|0]<<16|z[i+23|0]<<24);y[k+8>>2]=z[i+16|0]|z[i+17|0]<<8|(z[i+18|0]<<16|z[i+19|0]<<24);y[k+12>>2]=j;j=k+80|0;_a(j,64,0,k+4|0,l);i=k+144|0;Ga(i,j);ja(j,64);la(i,f,g,h);la(i,39776,0-g&15,0);la(i,b,c,d);la(i,39776,0-c&15,0);y[k+72>>2]=g;y[k+76>>2]=h;f=k+72|0;la(i,f,8,0);y[k+72>>2]=c;y[k+76>>2]=d;la(i,f,8,0);f=k+48|0;Fa(i,f);ja(i,256);i=db(f,e);ja(f,16);a:{if(!a){break a}if(i){if(c){o(a,0,c);}i=-1;break a}Be(a,b,c,d,k+4|0,k+16|0);i=0;}ja(k+16|0,32);T=k+400|0;return i}function Jd(a,b,c,d,e,f){var g=0,h=0;g=T-496|0;T=g;h=g+288|0;Xa(h,a,b);Ka(h,c,d,0);if(f){a=0;b=0;while(1){b=b+1|0;c=Di(b&16711935,8)|Di(b,24)&16711935;w[g+76|0]=c;w[g+77|0]=c>>>8;w[g+78|0]=c>>>16;w[g+79|0]=c>>>24;c=g+80|0;t(c,g+288|0,208);Ka(c,g+76|0,4,0);qb(c,g+32|0);c=y[g+60>>2];y[g+24>>2]=y[g+56>>2];y[g+28>>2]=c;c=y[g+52>>2];y[g+16>>2]=y[g+48>>2];y[g+20>>2]=c;c=y[g+44>>2];y[g+8>>2]=y[g+40>>2];y[g+12>>2]=c;c=y[g+36>>2];y[g>>2]=y[g+32>>2];y[g+4>>2]=c;c=f-a|0;c=c>>>0>=32?32:c;if(c){t(a+e|0,g,c);}a=b<<5;if(f>>>0>a>>>0){continue}break}}ja(g+288|0,208);T=g+496|0;}function Kd(a,b,c,d,e,f){var g=0,h=0,i=0;g=T-32|0;T=g;h=-1;i=c>>>0<32;a:{if(i&!d){break a}Zd(g,32,0,e,f);if(Jb(b+16|0,b+32|0,c-32|0,d-i|0,g)){break a}rc(a,b,c,d,e,f);w[a+24|0]=0;w[a+25|0]=0;w[a+26|0]=0;w[a+27|0]=0;w[a+28|0]=0;w[a+29|0]=0;w[a+30|0]=0;w[a+31|0]=0;w[a+16|0]=0;w[a+17|0]=0;w[a+18|0]=0;w[a+19|0]=0;w[a+20|0]=0;w[a+21|0]=0;w[a+22|0]=0;w[a+23|0]=0;w[a+8|0]=0;w[a+9|0]=0;w[a+10|0]=0;w[a+11|0]=0;w[a+12|0]=0;w[a+13|0]=0;w[a+14|0]=0;w[a+15|0]=0;w[a|0]=0;w[a+1|0]=0;w[a+2|0]=0;w[a+3|0]=0;w[a+4|0]=0;w[a+5|0]=0;w[a+6|0]=0;w[a+7|0]=0;h=0;}T=g+32|0;return h}function di(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=T-496|0;T=f;w[f+15|0]=1;a:{if(b>>>0<=16320){if(b>>>0>=64){g=64;while(1){i=g;g=f+80|0;Va(g,e,64);if(h){Na(g,(a+h|0)+-64|0,64,0);}g=f+80|0;Na(g,c,d,0);Na(g,f+15|0,1,0);Ya(g,a+h|0);w[f+15|0]=z[f+15|0]+1;h=i;g=h- -64|0;if(g>>>0<=b>>>0){continue}break}}b=b&63;if(b){h=f+80|0;Va(h,e,64);if(i){Na(h,(a+i|0)+-64|0,64,0);}e=f+80|0;Na(e,c,d,0);Na(e,f+15|0,1,0);c=f+16|0;Ya(e,c);if(b){t(a+i|0,c,b);}ja(f+16|0,64);}ja(f+80|0,416);a=0;break a}y[10172]=28;a=-1;}T=f+496|0;return a|0}function zd(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0;l=T-384|0;T=l;y[l+4>>2]=0;m=l+16|0;Aa(m,j,k,0);k=z[j+20|0]|z[j+21|0]<<8|(z[j+22|0]<<16|z[j+23|0]<<24);y[l+8>>2]=z[j+16|0]|z[j+17|0]<<8|(z[j+18|0]<<16|z[j+19|0]<<24);y[l+12>>2]=k;k=l- -64|0;n=l+4|0;_a(k,64,0,n,m);j=l+128|0;Ga(j,k);ja(k,64);la(j,g,h,i);la(j,39776,0-h&15,0);Be(a,d,e,f,n,m);la(j,a,e,f);la(j,39776,0-e&15,0);y[l+56>>2]=h;y[l+60>>2]=i;a=l+56|0;la(j,a,8,0);y[l+56>>2]=e;y[l+60>>2]=f;la(j,a,8,0);Fa(j,b);ja(j,256);if(c){y[c>>2]=16;y[c+4>>2]=0;}ja(l+16|0,32);T=l+384|0;return 0}function Ch(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=T-256|0;T=f;w[f+15|0]=1;a:{if(b>>>0<=8160){if(b>>>0>=32){g=32;while(1){i=g;g=f+48|0;Xa(g,e,32);if(h){Ka(g,(a+h|0)-32|0,32,0);}g=f+48|0;Ka(g,c,d,0);Ka(g,f+15|0,1,0);qb(g,a+h|0);w[f+15|0]=z[f+15|0]+1;h=i;g=h+32|0;if(g>>>0<=b>>>0){continue}break}}b=b&31;if(b){h=f+48|0;Xa(h,e,32);if(i){Ka(h,(a+i|0)-32|0,32,0);}e=f+48|0;Ka(e,c,d,0);Ka(e,f+15|0,1,0);c=f+16|0;qb(e,c);if(b){t(a+i|0,c,b);}ja(f+16|0,32);}ja(f+48|0,208);a=0;break a}y[10172]=28;a=-1;}T=f+256|0;return a|0}function nc(a){var b=0,c=0,d=0;if(!a){return -25}if(!y[a>>2]){return -1}if(B[a+4>>2]<16){return -2}if(!(y[a+8>>2]|!y[a+12>>2])){return -18}b=y[a+20>>2];if(!y[a+16>>2]){return b?-19:-6}if(b>>>0<8){return -6}if(!(y[a+24>>2]|!y[a+28>>2])){return -20}if(!(y[a+32>>2]|!y[a+36>>2])){return -21}b=y[a+48>>2];if(!b){return -16}if(b>>>0>16777215){return -17}d=-14;c=y[a+44>>2];a:{if(c>>>0<8){break a}if(c>>>0>2097152){return -15}if(b<<3>>>0>c>>>0){break a}if(!y[a+40>>2]){return -12}a=y[a+52>>2];if(!a){return -28}d=a>>>0>16777215?-29:0;}return d}function ob(a,b){var c=0,d=0,e=0;d=b;a:{b:{c:{b=b&255;if(b){if(a&3){while(1){c=z[a|0];if(!c|(b|0)==(c|0)){break a}a=a+1|0;if(a&3){continue}break}}c=y[a>>2];if(((c|16843008-c)&-2139062144)!=-2139062144){break c}e=E(b,16843009);while(1){b=c^e;if(((16843008-b|b)&-2139062144)!=-2139062144){break c}c=y[a+4>>2];b=a+4|0;a=b;if(((16843008-c|c)&-2139062144)==-2139062144){continue}break}break b}a=Ha(a)+a|0;break a}b=a;}while(1){a=b;c=z[a|0];if(!c){break a}b=a+1|0;if((c|0)!=(d&255)){continue}break}}return z[a|0]==(d&255)?a:0}function he(a,b,c,d,e){var f=0,g=0,h=0;f=T+-64|0;T=f;h=Ha(a);a:{if(!(!c&h>>>0<128)){y[10172]=28;a=-1;break a}y[f+60>>2]=0;y[f+52>>2]=0;y[f+56>>2]=0;y[f+44>>2]=0;y[f+48>>2]=0;c=0;b:{if(!h){break b}c=h;}g=Da(c);if(!(!g|!(z[g-4|0]&3))){ja(g,c);}if(!g){a=-1;break a}y[f+12>>2]=g;y[f+20>>2]=g;y[f+24>>2]=h;y[f+4>>2]=g;y[f+16>>2]=h;y[f+28>>2]=0;y[f+32>>2]=0;y[f+8>>2]=h;y[f+36>>2]=0;y[f+40>>2]=0;c:{if(oe(f+4|0,a,e)){y[10172]=28;a=-1;break c}a=y[f+44>>2]!=(b|0)|y[f+48>>2]!=(d>>>10|0);}ta(g);}T=f- -64|0;return a}function rb(a,b,c,d){var e=0,f=0;e=T-208|0;T=e;y[e+72>>2]=0;y[e+76>>2]=0;y[e+64>>2]=0;y[e+68>>2]=0;f=y[9613];y[e>>2]=y[9612];y[e+4>>2]=f;f=y[9615];y[e+8>>2]=y[9614];y[e+12>>2]=f;f=y[9617];y[e+16>>2]=y[9616];y[e+20>>2]=f;f=y[9619];y[e+24>>2]=y[9618];y[e+28>>2]=f;f=y[9621];y[e+32>>2]=y[9620];y[e+36>>2]=f;f=y[9623];y[e+40>>2]=y[9622];y[e+44>>2]=f;f=y[9625];y[e+48>>2]=y[9624];y[e+52>>2]=f;f=y[9627];y[e+56>>2]=y[9626];y[e+60>>2]=f;va(e,b,c,d);Ca(e,a);T=e+208|0;return 0}function ff(a,b,c,d,e,f,g,h,i,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;i=i|0;j=j|0;var k=0,l=0;k=0|e;h=h|l;e=T-16|0;T=e;b=b|l;if(b){o(a,0,b);}f=c|f;a:{if((f|0)==1|f>>>0>1){y[10172]=22;a=-1;break a}if(!c&b>>>0>=16|c){lc(h,i,j,e+12|0,e+8|0,e+4|0);if((a|0)==(d|0)){y[10172]=28;a=-1;break a}h=d;d=y[e+12>>2];c=d&31;if((d&63)>>>0>=32){d=1<>>32-c;}a=Fd(h,k,g,32,f,d,y[e+4>>2],y[e+8>>2],a,b);break a}y[10172]=28;a=-1;}T=e+16|0;return a|0}function ji(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=T-16|0;T=g;a:{b:{if(!d){b=-1;break b}f=d-1|0;c:{if(!(f&d)){h=c^-1;f=f&h;break c}h=c^-1;f=f-((c>>>0)%(d>>>0)|0)|0;}if(f>>>0>=h>>>0){break a}c=c+f|0;if(c>>>0>=e>>>0){b=-1;break b}if(a){y[a>>2]=c+1;}a=b+c|0;b=0;w[g+15|0]=0;c=0;while(1){e=a-c|0;h=e;i=z[e|0]&z[g+15|0];e=(c^f)-1>>>24|0;w[h|0]=i|e&128;w[g+15|0]=e|z[g+15|0];c=c+1|0;if((d|0)!=(c|0)){continue}break}}T=g+16|0;return b|0}na();s();}function Mh(a,b,c){a=a|0;b=b|0;c=c|0;za(b,24);Aa(a,b,c,0);w[a+32|0]=1;w[a+33|0]=0;w[a+34|0]=0;w[a+35|0]=0;c=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);b=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);w[a+44|0]=0;w[a+45|0]=0;w[a+46|0]=0;w[a+47|0]=0;w[a+48|0]=0;w[a+49|0]=0;w[a+50|0]=0;w[a+51|0]=0;w[a+36|0]=c;w[a+37|0]=c>>>8;w[a+38|0]=c>>>16;w[a+39|0]=c>>>24;w[a+40|0]=b;w[a+41|0]=b>>>8;w[a+42|0]=b>>>16;w[a+43|0]=b>>>24;return 0}function Lh(a,b,c){a=a|0;b=b|0;c=c|0;Aa(a,b,c,0);w[a+32|0]=1;w[a+33|0]=0;w[a+34|0]=0;w[a+35|0]=0;c=z[b+16|0]|z[b+17|0]<<8|(z[b+18|0]<<16|z[b+19|0]<<24);b=z[b+20|0]|z[b+21|0]<<8|(z[b+22|0]<<16|z[b+23|0]<<24);w[a+44|0]=0;w[a+45|0]=0;w[a+46|0]=0;w[a+47|0]=0;w[a+48|0]=0;w[a+49|0]=0;w[a+50|0]=0;w[a+51|0]=0;w[a+36|0]=c;w[a+37|0]=c>>>8;w[a+38|0]=c>>>16;w[a+39|0]=c>>>24;w[a+40|0]=b;w[a+41|0]=b>>>8;w[a+42|0]=b>>>16;w[a+43|0]=b>>>24;return 0}function Za(a){a=a|0;var b=0;y[a+72>>2]=0;y[a+76>>2]=0;b=a- -64|0;y[b>>2]=0;y[b+4>>2]=0;b=y[9613];y[a>>2]=y[9612];y[a+4>>2]=b;b=y[9615];y[a+8>>2]=y[9614];y[a+12>>2]=b;b=y[9617];y[a+16>>2]=y[9616];y[a+20>>2]=b;b=y[9619];y[a+24>>2]=y[9618];y[a+28>>2]=b;b=y[9621];y[a+32>>2]=y[9620];y[a+36>>2]=b;b=y[9623];y[a+40>>2]=y[9622];y[a+44>>2]=b;b=y[9625];y[a+48>>2]=y[9624];y[a+52>>2]=b;b=y[9627];y[a+56>>2]=y[9626];y[a+60>>2]=b;return 0}function ya(a,b){var c=0,d=0,e=0,f=0,g=0;c=T-16|0;w[c+15|0]=0;a:{if(!b){break a}e=b&3;if(b>>>0>=4){g=b&-4;while(1){b=a+d|0;w[c+15|0]=z[b|0]|z[c+15|0];w[c+15|0]=z[b+1|0]|z[c+15|0];w[c+15|0]=z[b+2|0]|z[c+15|0];w[c+15|0]=z[b+3|0]|z[c+15|0];d=d+4|0;f=f+4|0;if((g|0)!=(f|0)){continue}break}if(!e){break a}}b=0;while(1){w[c+15|0]=z[a+d|0]|z[c+15|0];d=d+1|0;b=b+1|0;if((e|0)!=(b|0)){continue}break}}return z[c+15|0]-1>>>31|0}function dc(a){return (((z[a+31|0]^-1)&127|z[a+1|0]&(z[a+2|0]&(z[a+3|0]&(z[a+4|0]&(z[a+5|0]&(z[a+6|0]&(z[a+7|0]&(z[a+8|0]&(z[a+9|0]&(z[a+10|0]&(z[a+11|0]&(z[a+12|0]&(z[a+13|0]&(z[a+14|0]&(z[a+15|0]&(z[a+16|0]&(z[a+17|0]&(z[a+18|0]&(z[a+19|0]&(z[a+20|0]&(z[a+21|0]&(z[a+22|0]&(z[a+23|0]&(z[a+24|0]&(z[a+25|0]&(z[a+26|0]&(z[a+27|0]&(z[a+28|0]&(z[a+30|0]&z[a+29|0]))))))))))))))))))))))))))))^255)-1&236-z[a|0]^-1)>>>8&1}function $a(a,b,c){var d=0,e=0,f=0;d=T-16|0;y[d+12>>2]=a;y[d+8>>2]=b;a=0;w[d+7|0]=0;a:{if(!c){break a}if((c|0)!=1){b=c&1;f=c&-2;c=0;while(1){w[d+7|0]=z[d+7|0]|z[y[d+12>>2]+a|0]^z[y[d+8>>2]+a|0];e=a|1;w[d+7|0]=z[d+7|0]|z[e+y[d+12>>2]|0]^z[y[d+8>>2]+e|0];a=a+2|0;c=c+2|0;if((f|0)!=(c|0)){continue}break}if(!b){break a}}w[d+7|0]=z[d+7|0]|z[y[d+12>>2]+a|0]^z[y[d+8>>2]+a|0];}return (z[d+7|0]-1>>>31|0)-1|0}function df(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=a;g=c;c=0;d=T-128|0;T=d;a:{b:{while(1){if(!z[c+e|0]){a=c;break b}a=c+1|0;if(!z[e+a|0]){break b}a=c+2|0;if(!z[e+a|0]){break b}c=c+3|0;if((c|0)!=102){continue}break}c=-1;break a}c=-1;if((a|0)!=101){break a}f=d+4|0;if(mc(f));a=d+16|0;o(a,0,102);b=Gd(f,b,g,e,a);Ob(f);if(!b){break a}c=$a(a,e,102);ja(a,102);}T=d+128|0;return c|0}function Od(a,b,c,d,e,f,g,h,i,j){var k=0,l=0,m=0;k=T-352|0;T=k;m=k+32|0;_a(m,64,0,i,j);l=k+96|0;Ga(l,m);ja(m,64);la(l,f,g,h);la(l,39744,0-g&15,0);la(l,b,c,d);la(l,39744,0-c&15,0);y[k+24>>2]=g;y[k+28>>2]=h;f=k+24|0;la(l,f,8,0);y[k+24>>2]=c;y[k+28>>2]=d;la(l,f,8,0);Fa(l,k);ja(l,256);f=db(k,e);ja(k,16);a:{if(!a){break a}if(f){if(c){o(a,0,c);}f=-1;break a}gb(a,b,c,d,i,1,j);f=0;}T=k+352|0;return f}function yb(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;while(1){c=z[a+d|0];b=d+2688|0;e=c^z[b|0]|e;f=c^z[b+192|0]|f;g=c^z[b+160|0]|g;h=c^z[b+128|0]|h;i=c^z[b+96|0]|i;j=c^z[b- -64|0]|j;k=c^z[b+32|0]|k;d=d+1|0;if((d|0)!=31){continue}break}a=z[a+31|0]&127;b=a^127;return (((b|f)&255)-1|(((b|g)&255)-1|(((b|h)&255)-1|(((a^122|i)&255)-1|(((a^5|j)&255)-1|(((a|k)&255)-1|((a|e)&255)-1))))))>>>8&1}function ed(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;a:{b:{c:{d:{if(!e&d>>>0<64){break d}e=e-1|0;h=e+1|0;g=e;e=d+-64|0;d=e>>>0<4294967232?h:g;if(!d&e>>>0>4294967231|d){break d}g=c;c=c- -64|0;if(!pc(g,c,e,d,f,0)){break c}if(!a|!e){break d}o(a,0,e);}d=-1;if(!b){break b}y[b>>2]=0;y[b+4>>2]=0;d=-1;break a}if(b){y[b>>2]=e;y[b+4>>2]=d;}d=0;if(!a|!e){break b}t(a,c,e);}}return d|0}function Ci(a,b,c){var d=0,e=0,f=0,g=0;g=c&63;f=g;e=f&31;if(f>>>0>=32){f=-1>>>e|0;}else {d=-1>>>e|0;f=d|(1<>>0>=32){d=f<>>32-e|d<>>0>=32){d=-1<>>32-d;}a=c&a;b=b&d;d=e&31;if(e>>>0>=32){c=0;a=b>>>d|0;}else {c=b>>>d|0;a=((1<>>d;}a=a|g;W=c|f;return a}function ld(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=T-32|0;T=g;h=z[e|0]|z[e+1|0]<<8|(z[e+2|0]<<16|z[e+3|0]<<24);e=z[e+4|0]|z[e+5|0]<<8|(z[e+6|0]<<16|z[e+7|0]<<24);y[g+24>>2]=0;y[g+28>>2]=0;y[g+16>>2]=h;y[g+20>>2]=e;y[g+8>>2]=0;y[g+12>>2]=0;y[g>>2]=c;y[g+4>>2]=d;a:{if(b-65>>>0<=4294967246){y[10172]=28;a=-1;break a}a=qe(a,b,0,0,0,f,32,g,g+16|0);}T=g+32|0;return a|0}function vd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=T-512|0;T=f;g=f+32|0;Va(g,e,32);Na(g,b,c,d);Ya(g,f+448|0);b=y[f+476>>2];y[f+24>>2]=y[f+472>>2];y[f+28>>2]=b;b=y[f+468>>2];y[f+16>>2]=y[f+464>>2];y[f+20>>2]=b;b=y[f+460>>2];y[f+8>>2]=y[f+456>>2];y[f+12>>2]=b;b=y[f+452>>2];y[f>>2]=y[f+448>>2];y[f+4>>2]=b;b=kb(a,f);c=$a(f,a,32);T=f+512|0;return ((a|0)==(f|0)?-1:b)|c}function Pd(a,b,c,d,e,f,g,h,i,j){var k=0,l=0,m=0;k=T-352|0;T=k;m=k+32|0;Fb(m,64,0,i,j);l=k+96|0;Ga(l,m);ja(m,64);la(l,f,g,h);y[k+24>>2]=g;y[k+28>>2]=h;f=k+24|0;la(l,f,8,0);la(l,b,c,d);y[k+24>>2]=c;y[k+28>>2]=d;la(l,f,8,0);Fa(l,k);ja(l,256);f=db(k,e);ja(k,16);a:{if(!a){break a}if(f){if(c){o(a,0,c);}f=-1;break a}hb(a,b,c,d,i,1,0,j);f=0;}T=k+352|0;return f}function Qd(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0;l=T-336|0;T=l;n=l+16|0;_a(n,64,0,j,k);m=l+80|0;Ga(m,n);ja(n,64);la(m,g,h,i);la(m,39744,0-h&15,0);gb(a,d,e,f,j,1,k);la(m,a,e,f);la(m,39744,0-e&15,0);y[l+8>>2]=h;y[l+12>>2]=i;a=l+8|0;la(m,a,8,0);y[l+8>>2]=e;y[l+12>>2]=f;la(m,a,8,0);Fa(m,b);ja(m,256);if(c){y[c>>2]=16;y[c+4>>2]=0;}T=l+336|0;return 0}function Wc(a,b,c){var d=0;d=T-16|0;y[d+12>>2]=a;y[d+8>>2]=b;a=0;x[d+6>>1]=0;while(1){x[d+6>>1]=A[d+6>>1]|z[y[d+12>>2]+a|0]^z[y[d+8>>2]+a|0];b=a|1;x[d+6>>1]=A[d+6>>1]|z[b+y[d+12>>2]|0]^z[b+y[d+8>>2]|0];a=a+2|0;if((c|0)!=(a|0)){continue}break}x[d+6>>1]=A[d+6>>1];x[d+6>>1]=A[d+6>>1]-1;x[d+6>>1]=A[20608]>>>2^A[d+6>>1]>>>15;return A[d+6>>1]-1|0}function ii(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=T-16|0;y[e+12>>2]=0;if(d-1>>>0>>0){f=c-1|0;j=f+b|0;c=0;b=0;while(1){g=z[j-c|0];i=((g^128)-1&(y[e+12>>2]-1&h-1))>>>8&1;y[e+12>>2]=y[e+12>>2]|0-i&c;b=b|i;h=h|g;c=c+1|0;if((d|0)!=(c|0)){continue}break}y[a>>2]=f-y[e+12>>2];a=(b&255)-1|0;}else {a=-1;}return a|0}function Ah(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(!(d>>>0>2147483646|d<<1>>>0>=b>>>0)){b=0;if(d){while(1){e=(b<<1)+a|0;g=z[b+c|0];f=g&15;w[e+1|0]=((f<<8)+(f+65526&55552)|0)+22272>>>8;f=e;e=g>>>4|0;w[f|0]=((e+65526>>>8&217)+e|0)+87;b=b+1|0;if((d|0)!=(b|0)){continue}break}b=d<<1;}else {b=0;}w[b+a|0]=0;return a|0}na();s();}function zc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0;f=z[a|0];a:{if((f-58&255)>>>0<246){break a}c=f;d=a;while(1){g=d;if(e>>>0>429496729){break a}c=(c&255)-48|0;e=E(e,10);if(c>>>0>(e^-1)>>>0){break a}e=e+c|0;d=d+1|0;c=z[d|0];if((c-58&255)>>>0>245){continue}break}if((f|0)==48&(a|0)!=(g|0)|(a|0)==(d|0)){break a}y[b>>2]=e;h=d;}return h}function fd(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=T-16|0;T=g;h=a- -64|0;if(d){t(h,c,d);}c=0;qc(a,g+8|0,h,d,e,f,0);a:{if(y[g+12>>2]|y[g+8>>2]!=64){if(b){y[b>>2]=0;y[b+4>>2]=0;}b=d- -64|0;if(b){o(a,0,b);}c=-1;break a}if(!b){break a}y[b>>2]=d- -64;y[b+4>>2]=e-((d>>>0<4294967232)-1|0);}T=g+16|0;return c|0}function eb(a){var b=0,c=0,d=0,e=0;b=65;c=1024;d=a&255;a:{b:{if((d|0)!=z[1024]){d=E(d,16843009);while(1){e=d^y[c>>2];if(((e|16843008-e)&-2139062144)!=-2139062144){break b}c=c+4|0;b=b-4|0;if(b>>>0>3){continue}break}}if(!b){break a}}a=a&255;while(1){if((a|0)==z[c|0]){return c}c=c+1|0;b=b-1|0;if(b){continue}break}}return 0}function Rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=T-112|0;T=e;y[e+40>>2]=0;y[e+44>>2]=0;f=y[9833];y[e+8>>2]=y[9832];y[e+12>>2]=f;f=y[9835];y[e+16>>2]=y[9834];y[e+20>>2]=f;f=y[9837];y[e+24>>2]=y[9836];y[e+28>>2]=f;f=y[9839];y[e+32>>2]=y[9838];y[e+36>>2]=f;f=e+8|0;La(f,b,c,d);Ua(f,a);T=e+112|0;return 0}function Sd(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0;l=T-336|0;T=l;n=l+16|0;Fb(n,64,0,j,k);m=l+80|0;Ga(m,n);ja(n,64);la(m,g,h,i);y[l+8>>2]=h;y[l+12>>2]=i;g=l+8|0;la(m,g,8,0);hb(a,d,e,f,j,1,0,k);la(m,a,e,f);y[l+8>>2]=e;y[l+12>>2]=f;la(m,g,8,0);Fa(m,b);ja(m,256);if(c){y[c>>2]=16;y[c+4>>2]=0;}T=l+336|0;return 0}function Ld(a,b,c,d,e,f){if(!d&c>>>0>=32|d){rc(a,b,c,d,e,f);Zc(a+16|0,a+32|0,c-32|0,d-(c>>>0<32)|0,a);w[a+8|0]=0;w[a+9|0]=0;w[a+10|0]=0;w[a+11|0]=0;w[a+12|0]=0;w[a+13|0]=0;w[a+14|0]=0;w[a+15|0]=0;w[a|0]=0;w[a+1|0]=0;w[a+2|0]=0;w[a+3|0]=0;w[a+4|0]=0;w[a+5|0]=0;w[a+6|0]=0;w[a+7|0]=0;a=0;}else {a=-1;}return a}function Ha(a){var b=0,c=0,d=0;a:{b:{b=a;if(!(b&3)){break b}if(!z[b|0]){return 0}while(1){b=b+1|0;if(!(b&3)){break b}if(z[b|0]){continue}break}break a}while(1){c=b;b=b+4|0;d=y[c>>2];if(((d|16843008-d)&-2139062144)==-2139062144){continue}break}while(1){b=c;c=b+1|0;if(z[b|0]){continue}break}}return b-a|0}function Mb(a,b){var c=0,d=0,e=0,f=0,g=0;a:{c=eb(z[b|0]);if(!c){break a}d=eb(z[b+1|0]);if(!d){break a}e=eb(z[b+2|0]);if(!e){break a}f=eb(z[b+3|0]);if(!f){break a}g=eb(z[b+4|0]);if(!g){break a}y[a>>2]=c-1024|d-1024<<6|e-1024<<12|f-1024<<18|g-1024<<24;return b+5|0}y[a>>2]=0;return 0}function Hf(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;b=0|b;e=e|l;h=h|l;a:{b:{switch(k-1|0){case 0:a=le(a,b,c,d,e,f,g,h,i,j,1);break a;case 1:a=ce(a,b,c,d,e,f,g,h,i,j,2);break a;default:break b}}y[10172]=28;a=-1;}return a|0}function Tc(a,b,c,d,e,f,g,h,i,j,k){var l=0,m=0,n=0;m=-1;l=d>>>0<32;a:{if(l&!e){break a}l=e-l|0;n=d-32|0;if(!l&n>>>0>4294967263|l|(!h&g>>>0>4294967263|h)){break a}m=X[y[k>>2]](a,c,n,(c+d|0)-32|0,32,f,g,i,j)|0;}if(b){y[b>>2]=m?0:d-32|0;y[b+4>>2]=m?0:e-(d>>>0<32)|0;}return m}function Gc(a,b){var c=0,d=0,e=0,f=0;c=T-896|0;T=c;d=c+848|0;cb(d,b);e=c+800|0;cb(e,b+32|0);f=c+320|0;Fc(f,d);b=c+160|0;Fc(b,e);d=c+640|0;qa(d,b);b=c+480|0;sa(b,f,d);d=c+600|0;ga(c,b,d);e=c+520|0;f=c+560|0;ga(c+40|0,e,f);ga(c+80|0,f,d);ga(c+120|0,b,e);xb(a,c);T=c+896|0;}function lg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;h=0|h;c=-1;e=e|l;if(!f&e>>>0>=16|f){c=Pd(a,d,e-16|0,f-(e>>>0<16)|0,(d+e|0)-16|0,g,h,i,j,k);}if(b){y[b>>2]=c?0:e-16|0;y[b+4>>2]=c?0:f-(e>>>0<16)|0;}return c|0}function jg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;h=0|h;c=-1;e=e|l;if(!f&e>>>0>=16|f){c=Od(a,d,e-16|0,f-(e>>>0<16)|0,(d+e|0)-16|0,g,h,i,j,k);}if(b){y[b>>2]=c?0:e-16|0;y[b+4>>2]=c?0:f-(e>>>0<16)|0;}return c|0}function fg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;h=0|h;c=-1;e=e|l;if(!f&e>>>0>=16|f){c=yd(a,d,e-16|0,f-(e>>>0<16)|0,(d+e|0)-16|0,g,h,i,j,k);}if(b){y[b>>2]=c?0:e-16|0;y[b+4>>2]=c?0:f-(e>>>0<16)|0;}return c|0}function qg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;i=0;g=i|g;a:{d=d|i;if(!e&d>>>0<4294967280){Sd(a,a+d|0,0,c,d,e,f,g,h,j,k);if(b){a=d+16|0;e=a>>>0<16?e+1|0:e;y[b>>2]=a;y[b+4>>2]=e;}break a}na();s();}return 0}function ng(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;i=0;g=i|g;a:{d=d|i;if(!e&d>>>0<4294967280){Qd(a,a+d|0,0,c,d,e,f,g,h,j,k);if(b){a=d+16|0;e=a>>>0<16?e+1|0:e;y[b>>2]=a;y[b+4>>2]=e;}break a}na();s();}return 0}function hg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;i=0;g=i|g;a:{d=d|i;if(!e&d>>>0<4294967280){zd(a,a+d|0,0,c,d,e,f,g,h,j,k);if(b){a=d+16|0;e=a>>>0<16?e+1|0:e;y[b>>2]=a;y[b+4>>2]=e;}break a}na();s();}return 0}function hf(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,i=0;g=T;i=g;h=g-448&-64;T=h;g=-1;if(!d&c>>>0>=48|d){g=h- -64|0;Ja(g,0,0,24);oa(g,b,32,0);oa(g,e,32,0);e=h+32|0;Ia(g,e,24);g=_d(a,b+32|0,c-32|0,d-(c>>>0<32)|0,e,b,f);}T=i;return g|0}function Uf(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,i=0;g=T;i=g;h=g-448&-64;T=h;g=-1;if(!d&c>>>0>=48|d){g=h- -64|0;Ja(g,0,0,24);oa(g,b,32,0);oa(g,e,32,0);e=h+32|0;Ia(g,e,24);g=Ad(a,b+32|0,c-32|0,d-(c>>>0<32)|0,e,b,f);}T=i;return g|0}function ai(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=T-800|0;T=d;f=-1;e=d+640|0;a:{if(ab(e,b)){break a}if(!zb(e)){break a}b=d+480|0;if(ab(b,c)){break a}if(!zb(b)){break a}qa(d,b);b=d+160|0;sa(b,e,d);c=d+320|0;Ib(c,b);Wa(a,c);f=0;}T=d+800|0;return f|0}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=T-800|0;T=d;f=-1;e=d+640|0;a:{if(ab(e,b)){break a}if(!zb(e)){break a}b=d+480|0;if(ab(b,c)){break a}if(!zb(b)){break a}qa(d,b);b=d+160|0;Hb(b,e,d);c=d+320|0;Ib(c,b);Wa(a,c);f=0;}T=d+800|0;return f|0}function Ke(a){var b=0,c=0,d=0,e=0,f=0;b=1;while(1){d=b;b=a+e|0;c=d+z[b|0]|0;w[b|0]=c;c=z[b+1|0]+(c>>>8|0)|0;w[b+1|0]=c;c=z[b+2|0]+(c>>>8|0)|0;w[b+2|0]=c;d=b;b=z[b+3|0]+(c>>>8|0)|0;w[d+3|0]=b;b=b>>>8|0;e=e+4|0;f=f+4|0;if((f|0)!=4){continue}break}}function ke(a,b,c,d,e,f,g){var h=0;h=T-16|0;T=h;o(a,0,128);a:{if(!(!(d|f)&g>>>0<2147483649)){y[10172]=22;a=-1;break a}if(!((!f&e>>>0>=3|(f|0)!=0)&g>>>0>8191)){y[10172]=28;a=-1;break a}za(h,16);a=ne(e,g>>>10|0,b,c,h,a,1)?-1:0;}T=h+16|0;return a}function Rd(a,b){var c=0;a:{if(!(b&4)){break a}b=y[a>>2];if(b){ja(y[b+4>>2],y[a+16>>2]<<10);}b=y[a+4>>2];if(!b){break a}ja(b,y[a+20>>2]<<3);}ta(y[a+4>>2]);y[a+4>>2]=0;b=y[a>>2];b:{if(!b){break b}c=y[b>>2];if(!c){break b}ta(c);}ta(b);y[a>>2]=0;}function of(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;j=d;d=e;i=T+-64|0;T=i;a:{if(Ea(i+32|0,h,g)){e=-1;break a}e=-1;if(Aa(i,39680,i+32|0,0));e=Bb(a,b,c,j,d,f,i);ja(i,32);}T=i- -64|0;return e|0}function lf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;j=d;d=e;i=T+-64|0;T=i;a:{if(Ea(i+32|0,h,g)){e=-1;break a}e=-1;if(Aa(i,39680,i+32|0,0));e=Rb(a,b,c,j,d,f,i);ja(i,32);}T=i- -64|0;return e|0}function Vc(a,b,c,d,e,f,g,h,i,j,k){a:{if(!(!e&d>>>0>4294967263|(e|0)!=0|(!h&g>>>0>=4294967264|(h|0)!=0))){a=X[y[k>>2]](a,a+d|0,32,c,d,f,g,i,j)|0;if(b){c=d+32|0;d=c>>>0<32?e+1|0:e;y[b>>2]=a?0:c;y[b+4>>2]=a?0:d;}break a}na();s();}return a}function pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;a:{d=T-16|0;T=d;if(!c){if(b|c){while(1){w[d+15|0]=0;f=a+e|0,g=P(39864,d+15|0,0)|0,w[f|0]=g;e=e+1|0;if((b|0)!=(e|0)){continue}break}}T=d+16|0;break a}Q(1346,1192,198,1092);s();}}function ag(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=T-544|0;T=f;g=f- -64|0;Va(g,e,32);va(g,b,c,d);b=f+480|0;Ca(g,b);c=f+272|0;va(c,b,64,0);Ca(c,f);ja(b,64);b=xd(a,f);c=$a(f,a,64);T=f+544|0;return ((a|0)==(f|0)?-1:b)|c}function cg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=T-272|0;T=f;g=f+32|0;Xa(g,e,32);La(g,b,c,d);b=f+240|0;Ua(g,b);c=f+136|0;La(c,b,32,0);Ua(c,f);ja(b,32);b=kb(a,f);c=$a(f,a,32);T=f+272|0;return ((a|0)==(f|0)?-1:b)|c}function Jc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0;b=32;c=1;while(1){d=b-2|0;e=z[d+a|0];f=z[d+2912|0];b=b-1|0;g=z[b+2912|0];h=z[a+b|0];b=(g^h)-1>>8&c;i=e-f>>8&b|(h-g>>8&c|i);c=b&(e^f)-1>>8;b=d;if(b){continue}break}return (i|0)!=0}function be(a,b,c,d,e,f,g){var h=0;h=T-16|0;T=h;o(a,0,128);a:{if(!(!(d|f)&g>>>0<2147483649)){y[10172]=22;a=-1;break a}if(!(!!(e|f)&g>>>0>8191)){y[10172]=28;a=-1;break a}za(h,16);a=ne(e,g>>>10|0,b,c,h,a,2)?-1:0;}T=h+16|0;return a}function Ub(a){a=a|0;var b=0;y[a+32>>2]=0;y[a+36>>2]=0;b=y[9833];y[a>>2]=y[9832];y[a+4>>2]=b;b=y[9835];y[a+8>>2]=y[9834];y[a+12>>2]=b;b=y[9837];y[a+16>>2]=y[9836];y[a+20>>2]=b;b=y[9839];y[a+24>>2]=y[9838];y[a+28>>2]=b;return 0}function _d(a,b,c,d,e,f,g){var h=0,i=0,j=0,k=0;h=T+-64|0;T=h;i=-1;j=c>>>0<16;a:{if(j&!d){break a}k=h+32|0;if(Ea(k,g,f)){break a}if(Aa(h,39680,k,0));i=Rb(a,b+16|0,b,c-16|0,d-j|0,e,h);ja(h,32);}T=h- -64|0;return i}function Gf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;c=0|c;e=e|i;a:{b:{switch(h-1|0){case 1:a=be(a,b,c,d,e,f,g);break a;default:na();s();case 0:break b}}a=ke(a,b,c,d,e,f,g);}return a|0}function Ai(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=E(e,f);g=c&65535;h=a&65535;i=E(g,h);f=(i>>>16|0)+E(f,g)|0;e=(f&65535)+E(e,h)|0;W=(E(b,c)+j|0)+E(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function pb(a,b,c){var d=0,e=0;if(!c){return 0}d=z[a|0];if(d){a:{while(1){e=z[b|0];if((e|0)!=(d|0)|!e){break a}c=c-1|0;if(!c){break a}b=b+1|0;d=z[a+1|0];a=a+1|0;if(d){continue}break}d=0;}}else {d=0;}return d-z[b|0]|0}function gb(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=d;i=c+63|0;h=i>>>0<63?h+1|0:h;j=h>>>6|0;h=(h&63)<<26|i>>>6;i=0-h|0;if(!((j+((h|0)!=0)|0)==1&f>>>0>i>>>0|((d|0)==1|d>>>0>1))){return X[y[9965]](a,b,c,d,e,f,g)|0}na();s();}function Xh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=T-800|0;T=d;e=-1;f=d+640|0;a:{if(ib(f,b)){break a}b=d+480|0;if(ib(b,c)){break a}qa(d,b);b=d+160|0;sa(b,f,d);c=d+320|0;Ib(c,b);xb(a,c);e=0;}T=d+800|0;return e|0}function Wh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=T-800|0;T=d;e=-1;f=d+640|0;a:{if(ib(f,b)){break a}b=d+480|0;if(ib(b,c)){break a}qa(d,b);b=d+160|0;Hb(b,f,d);c=d+320|0;Ib(c,b);xb(a,c);e=0;}T=d+800|0;return e|0}function td(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=T+-64|0;T=h;a:{if(Ea(h+32|0,g,f)){f=-1;break a}f=-1;if(Sa(h,39760,h+32|0,0));f=Ld(a,b,c,d,e,h);ja(h,32);}T=h- -64|0;return f|0}function sd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=T+-64|0;T=h;a:{if(Ea(h+32|0,g,f)){f=-1;break a}f=-1;if(Sa(h,39760,h+32|0,0));f=Kd(a,b,c,d,e,h);ja(h,32);}T=h- -64|0;return f|0}function $d(a,b,c,d,e,f,g){var h=0;h=T+-64|0;T=h;if(!d&c>>>0<4294967280){a:{if(Ea(h+32|0,g,f)){g=-1;break a}g=-1;if(Aa(h,39680,h+32|0,0));g=Bb(a+16|0,a,b,c,d,e,h);ja(h,32);}T=h- -64|0;return g}na();s();}function Ec(a,b){var c=0,d=0,e=0,f=0,g=0;while(1){d=a+e|0;c=z[d|0]-(z[b+e|0]+c|0)|0;w[d|0]=c;d=e|1;f=d+a|0;c=z[f|0]-(z[b+d|0]+(c>>>8&1)|0)|0;w[f|0]=c;c=c>>>8&1;e=e+2|0;g=g+2|0;if((g|0)!=64){continue}break}}function De(a,b){var c=0,d=0,e=0,f=0,g=0;while(1){d=a+e|0;c=z[b+e|0]+(z[d|0]+c|0)|0;w[d|0]=c;d=e|1;f=d+a|0;c=z[b+d|0]+(z[f|0]+(c>>>8|0)|0)|0;w[f|0]=c;c=c>>>8|0;e=e+2|0;g=g+2|0;if((g|0)!=32){continue}break}}function lb(a){var b=0,c=0,d=0;c=y[9948];a=a+7|0;b=a>>>0<7?1:b;d=a&-8;a=d+c|0;a:{if(!(a>>>0>>0?b+1|0:b)){if(a>>>0<=Y()<<16>>>0){break a}if(S(a|0)|0){break a}}y[10172]=48;return -1}y[9948]=a;return c}function mi(a){a=a|0;var b=0,c=0,d=0;b=T-16|0;T=b;if(a>>>0>=2){c=(0-a>>>0)%(a>>>0)|0;while(1){w[b+15|0]=0;d=P(39864,b+15|0,0)|0;if(c>>>0>d>>>0){continue}break}c=(d>>>0)%(a>>>0)|0;}T=b+16|0;return c|0}function Yf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;i=d;d=e;j=i|0;i=T-32|0;T=i;e=-1;if(!mb(i,g,h)){e=Qb(a,b,c,j,d,f,i);ja(i,32);}T=i+32|0;return e|0}function $f(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;i=d;d=e;j=i|0;i=T-32|0;T=i;e=-1;if(!mb(i,g,h)){e=Ab(a,b,c,j,d,f,i);ja(i,32);}T=i+32|0;return e|0}function za(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=T-16|0;T=c;if(b){while(1){w[c+15|0]=0;e=a+d|0,f=P(39864,c+15|0,0)|0,w[e|0]=f;d=d+1|0;if((d|0)!=(b|0)){continue}break}}T=c+16|0;}function qf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=T-32|0;T=i;Sa(i,e,h,0);h=a;a=0;a=sb(h,b,a|c,d,e+16|0,a|f,g,i);ja(i,32);T=i+32|0;return a|0}function dg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-240|0;T=f;Xa(f,e,32);La(f,b,c,d);b=f+208|0;Ua(f,b);c=f+104|0;La(c,b,32,0);Ua(c,a);ja(b,32);T=f+240|0;return 0}function bg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-480|0;T=f;Va(f,e,32);va(f,b,c,d);b=f+416|0;Ca(f,b);c=f+208|0;va(c,b,64,0);Ca(c,a);ja(b,64);T=f+480|0;return 0}function Ad(a,b,c,d,e,f,g){var h=0,i=0,j=0;h=T-32|0;T=h;i=-1;j=c>>>0<16;a:{if(j&!d){break a}if(mb(h,f,g)){break a}i=Qb(a,b+16|0,b,c-16|0,d-j|0,e,h);ja(h,32);}T=h+32|0;return i}function We(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=T-32|0;T=i;Aa(i,e,h,0);h=a;a=0;a=hb(h,b,a|c,d,e+16|0,a|f,g,i);T=i+32|0;return a|0}function Wa(a,b){var c=0,d=0,e=0;c=T-176|0;T=c;d=c+96|0;bb(d,b+80|0);e=c+48|0;ga(e,b,d);ga(c,b+40|0,d);pa(a,c);pa(c+144|0,e);w[a+31|0]=z[a+31|0]^z[c+144|0]<<7;T=c+176|0;}function Fd(a,b,c,d,e,f,g,h,i,j){var k=0,l=0,m=0,n=0,o=0,p=0;k=T-16|0;T=k;m=-1;l=k+4|0;if(!mc(l)){m=(n=-1,o=Id(l,a,b,c,d,e,f,g,h,i,j),p=Ob(l),p?n:o);}T=k+16|0;return m}function Uc(a,b,c,d,e,f,g,h,i,j,k,l){if(c){y[c>>2]=32;y[c+4>>2]=0;}if(!(!i&h>>>0<4294967264&(!f&e>>>0<=4294967263))){na();s();}return X[y[l>>2]](a,b,32,d,e,g,h,j,k)|0}function bi(a){a=a|0;var b=0,c=0;b=T-160|0;T=b;a:{if(!dc(a)){break a}if(yb(a)){break a}if(ab(b,a)){break a}if(!zb(b)){break a}c=(ec(b)|0)!=0;}T=b+160|0;return c|0}function Pf(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;l=a;a=0;return le(l,a|b,c,d,a|e,f,g,a|h,i,j,k)|0}function Kf(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0;l=a;a=0;return ce(l,a|b,c,d,a|e,f,g,a|h,i,j,k)|0}function Ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:{if(!pb(a,1564,10)){a=ae(a,b,c,d);break a}if(!pb(a,1554,9)){a=je(a,b,c,d);break a}y[10172]=28;a=-1;}return a|0}function Ef(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a:{if(!pb(a,1564,10)){a=ge(a,b,c,d);break a}if(!pb(a,1554,9)){a=ie(a,b,c,d);break a}y[10172]=28;a=-1;}return a|0}function Bd(a,b,c,d,e,f,g){var h=0,i=0;h=T-32|0;T=h;if(!d&c>>>0<4294967280){i=-1;if(!mb(h,f,g)){i=Ab(a+16|0,a,b,c,d,e,h);ja(h,32);}T=h+32|0;return i}na();s();}function rg(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;j=a;a=0;return Sd(j,b,c,d,a|e,f,g,a|h,i,k,l)|0}function pg(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;j=a;a=0;return Qd(j,b,c,d,a|e,f,g,a|h,i,k,l)|0}function ig(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;j=a;a=0;return zd(j,b,c,d,a|e,f,g,a|h,i,k,l)|0}function yg(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;k=k|0;l=l|0;return Uc(a,b,c,d,e,f,g,h,i,k,l,39832)|0}function ug(a,b,c,d,e,f,g,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;k=k|0;l=l|0;return Uc(a,b,c,d,e,f,g,h,i,k,l,39840)|0}function mg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;b=a;a=0;return Pd(b,c,a|d,e,f,g,a|h,i,j,k)|0}function kg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;b=a;a=0;return Od(b,c,a|d,e,f,g,a|h,i,j,k)|0}function gg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;b=a;a=0;return yd(b,c,a|d,e,f,g,a|h,i,j,k)|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;if(!d&c>>>0>=16|d){a=Qb(a,b+16|0,b,c-16|0,d-(c>>>0<16)|0,e,f);}else {a=-1;}return a|0}function Yc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!d&c>>>0>=16|d){a=Rb(a,b+16|0,b,c-16|0,d-(c>>>0<16)|0,e,f);}else {a=-1;}return a|0}function Ve(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;g=T-32|0;T=g;Aa(g,e,f,0);a=hb(a,b,c,d,e+16|0,0,0,g);T=g+32|0;return a|0}function zg(a,b,c,d,e,f,g,h,i,j,k){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;k=k|0;return Vc(a,b,c,d,e,f,g,h,j,k,39832)|0}function xg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Tc(a,b,d,e,f,g,h,i,j,k,39836)|0}function wg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Sc(a,c,d,e,f,g,h,i,j,k,39836)|0}function vg(a,b,c,d,e,f,g,h,i,j,k){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;k=k|0;return Vc(a,b,c,d,e,f,g,h,j,k,39840)|0}function tg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Tc(a,b,d,e,f,g,h,i,j,k,39844)|0}function sg(a,b,c,d,e,f,g,h,i,j,k){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;return Sc(a,c,d,e,f,g,h,i,j,k,39844)|0}function Sc(a,b,c,d,e,f,g,h,i,j,k){if(!d&c>>>0>4294967263|d|(!h&g>>>0>4294967263|h)){a=-1;}else {a=X[y[k>>2]](a,b,c,e,32,f,g,i,j)|0;}return a}function yh(a,b){a=a|0;b=b|0;var c=0;if((b&-7)!=1){na();s();}c=a;a=(a>>>0)/3|0;c=c+E(a,-3)|0;return ((c&3?b&2?c+1|0:4:0)+(a<<2)|0)+1|0}function fi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-416|0;T=f;Va(f,b,c);Na(f,d,e,0);Ya(f,a);ja(f,4);T=f+416|0;return 0}function Dh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-208|0;T=f;Xa(f,b,c);Ka(f,d,e,0);qb(f,a);ja(f,4);T=f+208|0;return 0}function nf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!d&c>>>0>=4294967280|d){na();s();}return Bb(a+16|0,a,b,c,d,e,f)|0}function bf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!d&c>>>0>=4294967280|d){na();s();}Bb(a+16|0,a,b,c,d,e,f);return 0}function _f(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!d&c>>>0>=4294967280|d){na();s();}return Ab(a+16|0,a,b,c,d,e,f)|0}function Df(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(!d&c>>>0>=4294967280|d){na();s();}Ab(a+16|0,a,b,c,d,e,f);return 0}function Xe(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=T-32|0;T=f;Aa(f,d,e,0);a=Fb(a,b,c,d+16|0,f);T=f+32|0;return a|0}function yf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=a;a=0;return hb(i,b,a|c,d,e,a|f,g,h)|0}function sf(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=a;a=0;return sb(i,b,a|c,d,e,a|f,g,h)|0}function gf(a,b,c,d,e,f,g,h,i,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;i=i|0;j=j|0;return Fd(a,b,c,d,e,f,g,h,i,j)|0}function rh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T-32|0;T=d;e=-1;if(!Ea(d,c,b)){e=Aa(a,39680,d,0);}T=d+32|0;return e|0}function mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=T-32|0;T=d;e=-1;if(!Ea(d,c,b)){e=Sa(a,39760,d,0);}T=d+32|0;return e|0}function Ya(a,b){a=a|0;b=b|0;var c=0;c=T+-64|0;T=c;Ca(a,c);a=a+208|0;va(a,c,64,0);Ca(a,b);ja(c,64);T=c- -64|0;return 0}function Ud(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=T+-64|0;T=e;Ca(a,e);a=qc(b,c,e,64,0,d,1);T=e- -64|0;return a|0}function Ib(a,b){var c=0,d=0,e=0;c=b+120|0;ga(a,b,c);d=b+40|0;e=b+80|0;ga(a+40|0,d,e);ga(a+80|0,e,c);ga(a+120|0,b,d);}function qb(a,b){a=a|0;b=b|0;var c=0;c=T-32|0;T=c;Ua(a,c);a=a+104|0;La(a,c,32,0);Ua(a,b);ja(c,32);T=c+32|0;return 0}function hd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=a;a=0;return be(h,b,a|c,d,a|e,f,g)|0}function Tf(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return qe(a,b,c,d,e,f,g,h,i)|0}function Of(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;h=a;a=0;return ke(h,b,a|c,d,a|e,f,g)|0}function rc(a,b,c,d,e,f){var g=0;g=T-32|0;T=g;Sa(g,e,f,0);a=sb(a,b,c,d,e+16|0,0,0,g);ja(g,32);T=g+32|0;return a}function ye(a){a=a|0;while(1){za(a,32);w[a+31|0]=z[a+31|0]&31;if(!Jc(a)){continue}if(ya(a,32)){continue}break}}function Td(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=T+-64|0;T=d;Ca(a,d);a=pc(b,d,64,0,c,1);T=d- -64|0;return a|0}function ki(){var a=0,b=0;a=y[10307];a:{if(!a){break a}a=y[a+20>>2];if(!a){break a}b=X[a|0]()|0;}return b|0}function Zd(a,b,c,d,e){var f=0;f=T-32|0;T=f;Sa(f,d,e,0);a=ac(a,b,c,d+16|0,f);ja(f,32);T=f+32|0;return a}function Ia(a,b,c){a=a|0;b=b|0;c=c|0;if(c>>>0>=256){Q(1366,1279,107,1123);s();}return Cc(a,b,c)|0}function vf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return gb(a,b,c,d,e,f,g)|0}function rd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ab(a,b,c,d,e,f,g)|0}function qd(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Qb(a,b,c,d,e,f,g)|0}function od(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Wb(a,b,c,d,e,f,g)|0}function mf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return $d(a,b,c,d,e,f,g)|0}function kf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return _d(a,b,c,d,e,f,g)|0}function hb(a,b,c,d,e,f,g,h){if((d|0)==1|d>>>0>1){na();s();}return X[y[9964]](a,b,c,d,e,f,g,h)|0}function _c(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Rb(a,b,c,d,e,f,g)|0}function Zf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Bd(a,b,c,d,e,f,g)|0}function Xf(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ad(a,b,c,d,e,f,g)|0}function $c(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Bb(a,b,c,d,e,f,g)|0}function ni(){var a=0,b=0;a=T-16|0;T=a;w[a+15|0]=0;b=P(39864,a+15|0,0)|0;T=a+16|0;return b|0}function Zb(a,b,c,d,e,f){if((d|0)==1|d>>>0>1){na();s();}return X[y[9964]](a,b,c,d,e,0,0,f)|0}function Di(a,b){var c=0,d=0;c=b&31;d=(-1<>>c|0;c=a;a=0-b&31;return d|(c&-1>>>a)<>>0>1){na();s();}return X[y[9965]](a,b,c,d,e,0,f)|0}function ti(){var a=0;if(y[10305]){a=1;}else {Ae();za(41200,16);y[10305]=1;a=0;}return a|0}function dd(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;qc(a,b,c,d,e,f,0);return 0}function Ob(a){var b=0;b=y[a>>2];if(b){ta(b);}y[a>>2]=0;y[a+4>>2]=0;y[a+8>>2]=0;return 0}function Bi(a,b){var c=0,d=0;c=b&31;d=(-1>>>c&a)<>>a}function xf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Zb(a,b,c,d,e,f)|0}function uf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Yb(a,b,c,d,e,f)|0}function rf(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Gb(a,b,c,d,e,f)|0}function ad(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return rc(a,b,c,d,e,f)|0}function Lb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ld(a,b,c,d,e,f)|0}function Kb(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Kd(a,b,c,d,e,f)|0}function _a(a,b,c,d,e){if((c|0)==1|c>>>0>1){na();s();}return X[y[9963]](a,b,c,d,e)|0}function Fb(a,b,c,d,e){if((c|0)==1|c>>>0>1){na();s();}return X[y[9962]](a,b,c,d,e)|0}function Be(a,b,c,d,e,f){if((d|0)==1|d>>>0>1){na();s();}X[y[9965]](a,b,c,d,e,1,f)|0;}function cd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return pc(a,b,c,d,e,0)|0}function zf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Fb(a,b,c,d,e)|0}function wf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return _a(a,b,c,d,e)|0}function tf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return ac(a,b,c,d,e)|0}function kd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Zc(a,b,c,d,e)|0}function jd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Jb(a,b,c,d,e)|0}function bd(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Zd(a,b,c,d,e)|0}function Ae(){var a=0;a=T-16|0;T=a;w[a+15|0]=0;P(39900,a+15|0,0)|0;T=a+16|0;}function Yh(a){a=a|0;var b=0;b=T-160|0;T=b;a=ib(b,a);T=b+160|0;return !a|0}function Gg(a,b,c){a=a|0;b=b|0;c=c|0;Wb(b,32,c,32,0,0,0);return wb(a,b)|0}function Uh(a){a=a|0;var b=0;b=T+-64|0;T=b;za(b,64);Gc(a,b);T=b- -64|0;}function vb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;bc(a,b,c,d,20);return 0}function ub(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;bc(a,b,c,d,12);return 0}function tb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;bc(a,b,c,d,8);return 0}function Zh(a){a=a|0;var b=0;b=T-32|0;T=b;za(b,32);Hc(a,b);T=b+32|0;}function ud(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Na(a,b,c,d)|0}function sb(a,b,c,d,e,f,g,h){return X[y[9957]](a,b,c,d,e,f,g,h)|0}function nd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return oa(a,b,c,d)|0}function md(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return rb(a,b,c,d)|0}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return la(a,b,c,d)|0}function ic(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return va(a,b,c,d)|0}function hh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ud(a,b,c,d)|0}function fh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ja(a,b,c,d)|0}function eg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ka(a,b,c,d)|0}function Sf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return La(a,b,c,d)|0}function Nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return je(a,b,c,d)|0}function Mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ie(a,b,c,d)|0}function Lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ge(a,b,c,d)|0}function Jf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ae(a,b,c,d)|0}function If(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;kc(a,b,c,d);return 0}function Gb(a,b,c,d,e,f){return X[y[9957]](a,b,c,d,e,0,0,f)|0}function mc(a){y[a>>2]=0;y[a+4>>2]=0;y[a+8>>2]=0;return 0}function hi(a,b,c){a=a|0;b=b|0;c=c|0;return Na(a,b,c,0)|0}function Xg(a,b,c){a=a|0;b=b|0;c=c|0;return Dd(a,b,c,1)|0}function Wg(a,b,c){a=a|0;b=b|0;c=c|0;return Dd(a,b,c,0)|0}function Fh(a,b,c){a=a|0;b=b|0;c=c|0;return Ka(a,b,c,0)|0}function na(){var a=0;a=y[10306];if(a){X[a|0]();}Ic();s();}function ze(a,b,c){a=a|0;b=b|0;c=c|0;return Va(a,b,c)|0}function kh(a,b,c){a=a|0;b=b|0;c=c|0;return Yd(a,b,c)|0}function gh(a,b,c){a=a|0;b=b|0;c=c|0;return Td(a,b,c)|0}function eh(a,b,c){a=a|0;b=b|0;c=c|0;return Ia(a,b,c)|0}function ch(a,b,c){a=a|0;b=b|0;c=c|0;return tc(a,b,c)|0}function ah(a,b,c){a=a|0;b=b|0;c=c|0;return mb(a,b,c)|0}function Hg(a,b,c){a=a|0;b=b|0;c=c|0;return Ea(a,b,c)|0}function Gh(a,b,c){a=a|0;b=b|0;c=c|0;return Xa(a,b,c)|0}function nb(a,b){a=a|0;b=b|0;za(b,32);return wb(a,b)|0}function li(a,b,c){a=a|0;b=b|0;c=c|0;_a(a,b,0,38432,c);}function wb(a,b){a=a|0;b=b|0;return X[y[9955]](a,b)|0}function gi(a,b){a=a|0;b=b|0;Ya(a,b);ja(a,4);return 0}function ac(a,b,c,d,e){return X[y[9956]](a,b,c,d,e)|0}function Zc(a,b,c,d,e){return X[y[9949]](a,b,c,d,e)|0}function Jb(a,b,c,d,e){return X[y[9950]](a,b,c,d,e)|0}function Ga(a,b){a=a|0;b=b|0;return X[y[9951]](a,b)|0}function Fa(a,b){a=a|0;b=b|0;return X[y[9953]](a,b)|0}function Eh(a,b){a=a|0;b=b|0;qb(a,b);ja(a,4);return 0}function zi(a){if(a){return 31-H(a-1^a)|0}return 32}function la(a,b,c,d){return X[y[9952]](a,b,c,d)|0}function xd(a,b){a=a|0;b=b|0;return Wc(a,b,64)|0}function kb(a,b){a=a|0;b=b|0;return Wc(a,b,32)|0}function Vg(a,b){a=a|0;b=b|0;return Cd(a,b,1)|0}function Ug(a,b){a=a|0;b=b|0;return Cd(a,b,0)|0}function re(a,b,c){a=a|0;b=b|0;c=c|0;ha(a,b,c);}function Ph(a,b,c){a=a|0;b=b|0;c=c|0;ue(a,b,c);}function Oh(a,b,c){a=a|0;b=b|0;c=c|0;se(a,b,c);}function jh(a,b){a=a|0;b=b|0;return Xd(a,b)|0}function bh(a,b){a=a|0;b=b|0;return nb(a,b)|0}function _h(a,b){a=a|0;b=b|0;Hc(a,b);return 0}function Vh(a,b){a=a|0;b=b|0;Gc(a,b);return 0}function Sh(a,b){a=a|0;b=b|0;return xe(a,b)|0}function Sg(a,b){a=a|0;b=b|0;return Ga(a,b)|0}function Rg(a,b){a=a|0;b=b|0;return Fa(a,b)|0}function Ig(a,b){a=a|0;b=b|0;return wb(a,b)|0}function Af(a,b){a=a|0;b=b|0;jc(a,b);return 0}function je(a,b,c,d){return Xc(a,b,c,d,1)}function ie(a,b,c,d){return he(a,b,c,d,1)}function ge(a,b,c,d){return he(a,b,c,d,2)}function ae(a,b,c,d){return Xc(a,b,c,d,2)}function Na(a,b,c,d){va(a,b,c,d);return 0}function Ka(a,b,c,d){La(a,b,c,d);return 0}function Rh(a,b){a=a|0;b=b|0;we(a,b);}function Qh(a,b){a=a|0;b=b|0;ve(a,b);}function Nh(a,b){a=a|0;b=b|0;te(a,b);}function ih(a){a=a|0;return Vd(a)|0}function Vd(a){a=a|0;Za(a);return 0}function ja(a,b){if(b){o(a,0,b);}}function wc(){return -2147483648}function uc(){return 1073741824}function uh(){return 134217728}function th(){return 536870912}function de(){return 268435456}function ra(a){a=a|0;za(a,32);}function me(){return 33554432}function ei(a){a=a|0;za(a,64);}function ee(){return 67108864}function Je(a){a=a|0;za(a,16);}function Ed(){return 16777216}function Yg(){return 524288}function ci(){return 16320}function Zg(){return 32768}function Th(a){a=a|0;ye(a);}function xc(){return 8192}function wh(){return 1554}function sh(){return 1156}function qh(){return 1538}function oi(){return 1089}function lh(){return 1454}function fe(){return 1564}function dh(){return 1476}function _g(){return 1575}function Tg(){return 1521}function Qg(){return 1494}function Nd(){return 1338}function Mg(){return 1486}function Lg(){return 1531}function Kg(){return 1462}function Jg(){return 1443}function Dg(){return 1332}function Cg(){return 1547}function Bh(){return 8160}function yc(){return 128}function pe(){return 384}function Rc(){return 256}function Dc(){return 416}function Cb(){return 208}function Ag(){return 104}function $g(){return 102}function ua(){return 64}function ma(){return 16}function ka(){return 32}function Wd(){return -65}function Ta(){return -17}function Md(){return 48}function Ma(){return 24}function Le(){return -33}function Jh(){return 52}function Ih(){return 17}function Hh(){return -18}function Ce(){return 12}function Bg(){return 26}function wa(){return -1}function vh(){return 6}function vc(){return 4}function fb(){return 2}function Vb(){return 3}function Oa(){return 8}function Db(){return 1}function Ba(){return 0}function Ic(){R();s();}function yi(){} +// EMSCRIPTEN_END_FUNCS +a=z;m();var X=[null,og,Vf,Qf,If,Af,Ue,Te,Se,Re,xi,wi,vi,ui,si,ri,qi,pi];function Y(){return v.byteLength/65536|0}function ba(ca){ca=ca|0;var Z=Y()|0;var _=Z+ca|0;if(Z<_&&_<65536){var $=new ArrayBuffer(E(_,65536));var aa=new Int8Array($);aa.set(w);w=new Int8Array($);x=new Int16Array($);y=new Int32Array($);z=new Uint8Array($);A=new Uint16Array($);B=new Uint32Array($);v=$;a=z;}return Z}return {e:Object.create(Object.prototype,{grow:{value:ba},buffer:{get:function(){return v}}}),f:yi,g:ma,h:Ba,i:ma,j:ka,k:Le,l:Je,m:zg,n:yg,o:xg,p:wg,q:ka,r:Ba,s:ka,t:ka,u:Le,v:ra,w:vg,x:ug,y:tg,z:sg,A:Ba,B:rg,C:qg,D:pg,E:ng,F:mg,G:lg,H:kg,I:jg,J:ka,K:Ce,L:Ba,M:ma,N:Ta,O:ra,P:ka,Q:Oa,R:Ba,S:ma,T:Ta,U:ra,V:ig,W:hg,X:gg,Y:fg,Z:ka,_:Ma,$:Ba,aa:ma,ba:Ta,ca:ra,da:ka,ea:ka,fa:Kg,ga:wd,ha:vd,ia:ra,ja:ka,ka,la:Cb,ma:ra,na:Xa,oa:eg,pa:qb,qa:dg,ra:cg,sa:ua,ta:ka,ua:Dc,va:ra,wa:Va,xa:ud,ya:Ya,za:bg,Aa:ag,Ba:ka,Ca:ka,Da:Dc,Ea:ra,Fa:ze,Ga:ud,Ha:Ng,Ia:wd,Ja:vd,Ka:ka,La:ka,Ma:ka,Na:ka,Oa:Ma,Pa:ka,Qa:ma,Ra:ma,Sa:Ta,Ta:dh,Ua:ch,Va:bh,Wa:ah,Xa:Lb,Ya:Kb,Za:td,_a:sd,$a:rd,ab:$f,bb:_f,cb:Zf,db:qd,eb:Yf,fb:pd,gb:Xf,hb:Wf,ib:Uf,jb:Md,kb:tc,lb:nb,mb,nb:Lb,ob:Kb,pb:td,qb:sd,rb:ka,sb:ka,tb:ka,ub:ka,vb:Ma,wb:ka,xb:ma,yb:ma,zb:Ta,Ab:Aa,Bb:ka,Cb:ma,Db:ka,Eb:ma,Fb:Sa,Gb:ka,Hb:ma,Ib:ka,Jb:ma,Kb:vb,Lb:ua,Mb:ma,Nb:ka,Ob:ma,Pb:ub,Qb:ua,Rb:ma,Sb:ka,Tb:ma,Ub:tb,Vb:ua,Wb:ma,Xb:ka,Yb:ma,Zb:ma,_b:ua,$b:ka,ac:ma,bc:ua,cc:ka,dc:Nd,ec:pe,fc:od,gc:fh,hc:nd,ic:eh,jc:ra,kc:ma,lc:ua,mc:ka,nc:ma,oc:ua,pc:ka,qc:ma,rc:ma,sc:pe,tc:ra,uc:od,vc:Tf,wc:Ja,xc:xh,yc:nd,zc:Ia,Ac:ua,Bc:md,Cc:Lg,Dc:ka,Ec:Ag,Fc:Ub,Gc:Sf,Hc:Ua,Ic:Rf,Jc:ua,Kc:Cb,Lc:Za,Mc:ic,Nc:Ca,Oc:md,Pc:ma,Qc:ua,Rc:Oa,Sc:ka,Tc:ld,Uc:Nd,Vc:ma,Wc:ua,Xc:Oa,Yc:ka,Zc:ld,_c:ra,$c:Gh,ad:Fh,bd:Eh,cd:Dh,dd:ra,ed:Ch,fd:ka,gd:Ba,hd:Bh,id:Cb,jd:ze,kd:hi,ld:gi,md:fi,nd:ei,od:di,pd:ua,qd:Ba,rd:ci,sd:Dc,td:Gg,ud:nb,vd:Fg,wd:Eg,xd:ka,yd:ka,zd:ka,Ad:ka,Bd:Dg,Cd:Rc,Dd:ma,Ed:ka,Fd:kd,Gd:jd,Hd:Sg,Id:id,Jd:Rg,Kd:Qg,Ld:ra,Md:kd,Nd:jd,Od:Ga,Pd:id,Qd:Fa,Rd:ma,Sd:ka,Td:Rc,Ud:ra,Vd:Db,Wd:ma,Xd:wa,Yd:Ba,Zd:wa,_d:ma,$d:yc,ae:wh,be:Vb,ce:wa,de:xc,ee:wc,fe:vc,ge:me,he:vh,ie:uh,je:Oa,ke:th,le:Pf,me:Of,ne:Nf,oe:Mf,pe:Lf,qe:fb,re:ma,se:wa,te:Ba,ue:wa,ve:ma,we:yc,xe:fe,ye:Db,ze:wa,Ae:xc,Be:wc,Ce:fb,De:ee,Ee:Vb,Fe:de,Ge:vc,He:uc,Ie:Kf,Je:hd,Ke:Jf,Le:Db,Me:fb,Ne:fb,Oe:ma,Pe:wa,Qe:Ba,Re:wa,Se:ma,Te:yc,Ue:fe,Ve:Db,We:wa,Xe:xc,Ye:wc,Ze:fb,_e:ee,$e:Vb,af:de,bf:vc,cf:uc,df:Hf,ef:hd,ff:Gf,gf:Ff,hf:Ef,jf:sh,kf:Jg,lf:Ig,mf:Hg,nf:ka,of:ka,pf:Ea,qf:wb,rf:ka,sf:ka,tf:ka,uf:Ma,vf:ka,wf:ma,xf:ma,yf:Ta,zf:Mg,Af:Lb,Bf:Kb,Cf:ra,Df:rd,Ef:Df,Ff:qd,Gf:pd,Hf:Lb,If:Kb,Jf:ka,Kf:Ma,Lf:ka,Mf:ma,Nf:ma,Of:Ta,Pf:ra,Qf:ra,Rf:Mh,Sf:Lh,Tf:Kh,Uf:Cf,Vf:Bf,Wf:Jh,Xf:Ih,Yf:Ma,Zf:ka,_f:Hh,$f:Ba,ag:Db,bg:fb,cg:Vb,dg:Oa,eg:ma,fg:Tg,gg:gd,hg:Je,ig:Oa,jg:ma,kg:gd,lg:Cb,mg:ua,ng:ka,og:ka,pg:ua,qg:Wd,rg:lh,sg:kh,tg:jh,ug:fd,vg:ed,wg:dd,xg:cd,yg:ih,zg:ic,Ag:hh,Bg:gh,Cg:Cb,Dg:ua,Eg:ka,Fg:ka,Gg:ua,Hg:Wd,Ig:nh,Jg:mh,Kg:Vd,Lg:ic,Mg:Ud,Ng:Td,Og:Yd,Pg:Xd,Qg:ph,Rg:oh,Sg:cd,Tg:ed,Ug:dd,Vg:fd,Wg:ka,Xg:Oa,Yg:wa,Zg:ka,_g:Ce,$g:wa,ah:zf,bh:yf,ch:xf,dh:wf,eh:vf,fh:uf,gh:ra,hh:ra,ih:ka,jh:Ma,kh:wa,lh:qh,mh:bd,nh:ad,oh:ra,ph:ka,qh:Oa,rh:wa,sh:tf,th:sf,uh:rf,vh:ra,wh:bd,xh:qf,yh:ad,zh:ka,Ah:Ma,Bh:wa,Ch:ra,Dh:ma,Eh:ka,Fh:ua,Gh:db,Hh:kb,Ih:xd,Jh:oi,Kh:ni,Lh:Ae,Mh:mi,Nh:za,Oh:li,Ph:ka,Qh:ki,Rh:pf,Sh:Ah,Th:zh,Uh:yh,Vh:Bc,Wh:Ac,Xh:ti,Yh:ji,Zh:ii,_h:Cg,$h:Bg,ai:fb,bi:Ba,ci:tc,di:nb,ei:rh,fi:$c,gi:of,hi:nf,ii:mf,ji:_c,ki:lf,li:Yc,mi:kf,ni:ka,oi:ka,pi:ka,qi:ka,ri:Ma,si:ma,ti:Ta,ui:jf,vi:hf,wi:Md,xi:bi,yi:ai,zi:$h,Ai:_h,Bi:Zh,Ci:ye,Di:xe,Ei:we,Fi:ve,Gi:ue,Hi:te,Ii:se,Ji:re,Ki:ka,Li:ua,Mi:ka,Ni:ua,Oi:ka,Pi:Yh,Qi:Xh,Ri:Wh,Si:Vh,Ti:Uh,Ui:Th,Vi:Sh,Wi:Rh,Xi:Qh,Yi:Ph,Zi:Oh,_i:re,$i:Nh,aj:ka,bj:ua,cj:ua,dj:ka,ej:gf,fj:ma,gj:wa,hj:Ba,ij:wa,jj:ka,kj:$g,lj:_g,mj:Zg,nj:wa,oj:Ed,pj:wa,qj:Yg,rj:Ed,sj:me,tj:uc,uj:ff,vj:ef,wj:df,xj:cf,yj:Xg,zj:Wg,Aj:Vg,Bj:Ug,Cj:ka,Dj:ka,Ej:Pg,Fj:Og,Gj:ka,Hj:ka,Ij:$c,Jj:bf,Kj:_c,Lj:Yc,Mj:ka,Nj:Ma,Oj:ma,Pj:Ta,Qj:ma,Rj:ma,Sj:af,Tj:$e,Uj:_e,Vj:ka,Wj:Oa,Xj:wa,Yj:ra,Zj:Ze,_j:Ye,$j:ka,ak:Oa,bk:wa,ck:ra,dk:ka,ek:Ma,fk:wa,gk:Xe,hk:We,ik:Ve,jk:ra,kk:Da,lk:ta}}return da(ea)} +// EMSCRIPTEN_END_ASM + + +)(info);},instantiate:function(binary,info){return {then:function(ok){var module=new WebAssembly.Module(binary);ok({instance:new WebAssembly.Instance(module,info)});}}},RuntimeError:Error,isWasm2js:true};{wasmBinary=[];}var ABORT=false;var HEAP8,HEAPU8,HEAP16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift());}}callRuntimeCallbacks(onPreRuns);}function initRuntime(){wasmExports["f"]();}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift());}}callRuntimeCallbacks(onPostRuns);}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(file){}function getWasmBinary(file){}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason);}}async function instantiateAsync(binary,binaryFile,imports){return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();removeRunDependency();return wasmExports}addRunDependency();function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst));});})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports$1=receiveInstantiationResult(result);return exports$1}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module);}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies);};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case "i1":return HEAP8[ptr];case "i8":return HEAP8[ptr];case "i16":return HEAP16[ptr>>1];case "i32":return HEAP32[ptr>>2];case "i64":abort("to do getValue(i64) use WASM_BIGINT");case "float":return HEAPF32[ptr>>2];case "double":return HEAPF64[ptr>>3];case "*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`);}}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case "i1":HEAP8[ptr]=value;break;case "i8":HEAP8[ptr]=value;break;case "i16":HEAP16[ptr>>1]=value;break;case "i32":HEAP32[ptr>>2]=value;break;case "i64":abort("to do setValue(i64) use WASM_BIGINT");case "float":HEAPF32[ptr>>2]=value;break;case "double":HEAPF64[ptr>>3]=value;break;case "*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`);}}var UTF8Decoder=new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>{if(!ptr)return "";var end=findStringEnd(HEAPU8,ptr,maxBytesToRead,ignoreNul);return UTF8Decoder.decode(HEAPU8.subarray(ptr,end))};var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);var __abort_js=()=>abort("");var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4;}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};{if(Module["noExitRuntime"])Module["noExitRuntime"];if(Module["print"])Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])Module["arguments"];if(Module["thisProgram"])Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()();}}}Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;var ASM_CONSTS={39864:()=>Module.getRandomValue(),39900:()=>{if(Module.getRandomValue===undefined){try{var window_="object"===typeof window?window:self;var crypto_=typeof window_.crypto!=="undefined"?window_.crypto:window_.msCrypto;crypto_=crypto_===undefined?crypto:crypto_;var randomValuesStandard=function(){var buf=new Uint32Array(1);crypto_.getRandomValues(buf);return buf[0]>>>0};randomValuesStandard();Module.getRandomValue=randomValuesStandard;}catch(e){try{var crypto=null;var randomValueNodeJS=function(){var buf=crypto["randomBytes"](4);return (buf[0]<<24|buf[1]<<16|buf[2]<<8|buf[3])>>>0};randomValueNodeJS();Module.getRandomValue=randomValueNodeJS;}catch(e){throw "No secure random number generator found"}}}}};var wasmMemory;function assignWasmExports(wasmExports){Module["_crypto_aead_aegis128l_keybytes"]=wasmExports["g"];Module["_crypto_aead_aegis128l_nsecbytes"]=wasmExports["h"];Module["_crypto_aead_aegis128l_npubbytes"]=wasmExports["i"];Module["_crypto_aead_aegis128l_abytes"]=wasmExports["j"];Module["_crypto_aead_aegis128l_messagebytes_max"]=wasmExports["k"];Module["_crypto_aead_aegis128l_keygen"]=wasmExports["l"];Module["_crypto_aead_aegis128l_encrypt"]=wasmExports["m"];Module["_crypto_aead_aegis128l_encrypt_detached"]=wasmExports["n"];Module["_crypto_aead_aegis128l_decrypt"]=wasmExports["o"];Module["_crypto_aead_aegis128l_decrypt_detached"]=wasmExports["p"];Module["_crypto_aead_aegis256_keybytes"]=wasmExports["q"];Module["_crypto_aead_aegis256_nsecbytes"]=wasmExports["r"];Module["_crypto_aead_aegis256_npubbytes"]=wasmExports["s"];Module["_crypto_aead_aegis256_abytes"]=wasmExports["t"];Module["_crypto_aead_aegis256_messagebytes_max"]=wasmExports["u"];Module["_crypto_aead_aegis256_keygen"]=wasmExports["v"];Module["_crypto_aead_aegis256_encrypt"]=wasmExports["w"];Module["_crypto_aead_aegis256_encrypt_detached"]=wasmExports["x"];Module["_crypto_aead_aegis256_decrypt"]=wasmExports["y"];Module["_crypto_aead_aegis256_decrypt_detached"]=wasmExports["z"];Module["_crypto_aead_aes256gcm_is_available"]=wasmExports["A"];Module["_crypto_aead_chacha20poly1305_encrypt_detached"]=wasmExports["B"];Module["_crypto_aead_chacha20poly1305_encrypt"]=wasmExports["C"];Module["_crypto_aead_chacha20poly1305_ietf_encrypt_detached"]=wasmExports["D"];Module["_crypto_aead_chacha20poly1305_ietf_encrypt"]=wasmExports["E"];Module["_crypto_aead_chacha20poly1305_decrypt_detached"]=wasmExports["F"];Module["_crypto_aead_chacha20poly1305_decrypt"]=wasmExports["G"];Module["_crypto_aead_chacha20poly1305_ietf_decrypt_detached"]=wasmExports["H"];Module["_crypto_aead_chacha20poly1305_ietf_decrypt"]=wasmExports["I"];Module["_crypto_aead_chacha20poly1305_ietf_keybytes"]=wasmExports["J"];Module["_crypto_aead_chacha20poly1305_ietf_npubbytes"]=wasmExports["K"];Module["_crypto_aead_chacha20poly1305_ietf_nsecbytes"]=wasmExports["L"];Module["_crypto_aead_chacha20poly1305_ietf_abytes"]=wasmExports["M"];Module["_crypto_aead_chacha20poly1305_ietf_messagebytes_max"]=wasmExports["N"];Module["_crypto_aead_chacha20poly1305_ietf_keygen"]=wasmExports["O"];Module["_crypto_aead_chacha20poly1305_keybytes"]=wasmExports["P"];Module["_crypto_aead_chacha20poly1305_npubbytes"]=wasmExports["Q"];Module["_crypto_aead_chacha20poly1305_nsecbytes"]=wasmExports["R"];Module["_crypto_aead_chacha20poly1305_abytes"]=wasmExports["S"];Module["_crypto_aead_chacha20poly1305_messagebytes_max"]=wasmExports["T"];Module["_crypto_aead_chacha20poly1305_keygen"]=wasmExports["U"];Module["_crypto_aead_xchacha20poly1305_ietf_encrypt_detached"]=wasmExports["V"];Module["_crypto_aead_xchacha20poly1305_ietf_encrypt"]=wasmExports["W"];Module["_crypto_aead_xchacha20poly1305_ietf_decrypt_detached"]=wasmExports["X"];Module["_crypto_aead_xchacha20poly1305_ietf_decrypt"]=wasmExports["Y"];Module["_crypto_aead_xchacha20poly1305_ietf_keybytes"]=wasmExports["Z"];Module["_crypto_aead_xchacha20poly1305_ietf_npubbytes"]=wasmExports["_"];Module["_crypto_aead_xchacha20poly1305_ietf_nsecbytes"]=wasmExports["$"];Module["_crypto_aead_xchacha20poly1305_ietf_abytes"]=wasmExports["aa"];Module["_crypto_aead_xchacha20poly1305_ietf_messagebytes_max"]=wasmExports["ba"];Module["_crypto_aead_xchacha20poly1305_ietf_keygen"]=wasmExports["ca"];Module["_crypto_auth_bytes"]=wasmExports["da"];Module["_crypto_auth_keybytes"]=wasmExports["ea"];Module["_crypto_auth_primitive"]=wasmExports["fa"];Module["_crypto_auth"]=wasmExports["ga"];Module["_crypto_auth_verify"]=wasmExports["ha"];Module["_crypto_auth_keygen"]=wasmExports["ia"];Module["_crypto_auth_hmacsha256_bytes"]=wasmExports["ja"];Module["_crypto_auth_hmacsha256_keybytes"]=wasmExports["ka"];Module["_crypto_auth_hmacsha256_statebytes"]=wasmExports["la"];Module["_crypto_auth_hmacsha256_keygen"]=wasmExports["ma"];Module["_crypto_auth_hmacsha256_init"]=wasmExports["na"];Module["_crypto_auth_hmacsha256_update"]=wasmExports["oa"];Module["_crypto_auth_hmacsha256_final"]=wasmExports["pa"];Module["_crypto_auth_hmacsha256"]=wasmExports["qa"];Module["_crypto_auth_hmacsha256_verify"]=wasmExports["ra"];Module["_crypto_auth_hmacsha512_bytes"]=wasmExports["sa"];Module["_crypto_auth_hmacsha512_keybytes"]=wasmExports["ta"];Module["_crypto_auth_hmacsha512_statebytes"]=wasmExports["ua"];Module["_crypto_auth_hmacsha512_keygen"]=wasmExports["va"];Module["_crypto_auth_hmacsha512_init"]=wasmExports["wa"];Module["_crypto_auth_hmacsha512_update"]=wasmExports["xa"];Module["_crypto_auth_hmacsha512_final"]=wasmExports["ya"];Module["_crypto_auth_hmacsha512"]=wasmExports["za"];Module["_crypto_auth_hmacsha512_verify"]=wasmExports["Aa"];Module["_crypto_auth_hmacsha512256_bytes"]=wasmExports["Ba"];Module["_crypto_auth_hmacsha512256_keybytes"]=wasmExports["Ca"];Module["_crypto_auth_hmacsha512256_statebytes"]=wasmExports["Da"];Module["_crypto_auth_hmacsha512256_keygen"]=wasmExports["Ea"];Module["_crypto_auth_hmacsha512256_init"]=wasmExports["Fa"];Module["_crypto_auth_hmacsha512256_update"]=wasmExports["Ga"];Module["_crypto_auth_hmacsha512256_final"]=wasmExports["Ha"];Module["_crypto_auth_hmacsha512256"]=wasmExports["Ia"];Module["_crypto_auth_hmacsha512256_verify"]=wasmExports["Ja"];Module["_crypto_box_seedbytes"]=wasmExports["Ka"];Module["_crypto_box_publickeybytes"]=wasmExports["La"];Module["_crypto_box_secretkeybytes"]=wasmExports["Ma"];Module["_crypto_box_beforenmbytes"]=wasmExports["Na"];Module["_crypto_box_noncebytes"]=wasmExports["Oa"];Module["_crypto_box_zerobytes"]=wasmExports["Pa"];Module["_crypto_box_boxzerobytes"]=wasmExports["Qa"];Module["_crypto_box_macbytes"]=wasmExports["Ra"];Module["_crypto_box_messagebytes_max"]=wasmExports["Sa"];Module["_crypto_box_primitive"]=wasmExports["Ta"];Module["_crypto_box_seed_keypair"]=wasmExports["Ua"];Module["_crypto_box_keypair"]=wasmExports["Va"];Module["_crypto_box_beforenm"]=wasmExports["Wa"];Module["_crypto_box_afternm"]=wasmExports["Xa"];Module["_crypto_box_open_afternm"]=wasmExports["Ya"];Module["_crypto_box"]=wasmExports["Za"];Module["_crypto_box_open"]=wasmExports["_a"];Module["_crypto_box_detached_afternm"]=wasmExports["$a"];Module["_crypto_box_detached"]=wasmExports["ab"];Module["_crypto_box_easy_afternm"]=wasmExports["bb"];Module["_crypto_box_easy"]=wasmExports["cb"];Module["_crypto_box_open_detached_afternm"]=wasmExports["db"];Module["_crypto_box_open_detached"]=wasmExports["eb"];Module["_crypto_box_open_easy_afternm"]=wasmExports["fb"];Module["_crypto_box_open_easy"]=wasmExports["gb"];Module["_crypto_box_seal"]=wasmExports["hb"];Module["_crypto_box_seal_open"]=wasmExports["ib"];Module["_crypto_box_sealbytes"]=wasmExports["jb"];Module["_crypto_box_curve25519xsalsa20poly1305_seed_keypair"]=wasmExports["kb"];Module["_crypto_box_curve25519xsalsa20poly1305_keypair"]=wasmExports["lb"];Module["_crypto_box_curve25519xsalsa20poly1305_beforenm"]=wasmExports["mb"];Module["_crypto_box_curve25519xsalsa20poly1305_afternm"]=wasmExports["nb"];Module["_crypto_box_curve25519xsalsa20poly1305_open_afternm"]=wasmExports["ob"];Module["_crypto_box_curve25519xsalsa20poly1305"]=wasmExports["pb"];Module["_crypto_box_curve25519xsalsa20poly1305_open"]=wasmExports["qb"];Module["_crypto_box_curve25519xsalsa20poly1305_seedbytes"]=wasmExports["rb"];Module["_crypto_box_curve25519xsalsa20poly1305_publickeybytes"]=wasmExports["sb"];Module["_crypto_box_curve25519xsalsa20poly1305_secretkeybytes"]=wasmExports["tb"];Module["_crypto_box_curve25519xsalsa20poly1305_beforenmbytes"]=wasmExports["ub"];Module["_crypto_box_curve25519xsalsa20poly1305_noncebytes"]=wasmExports["vb"];Module["_crypto_box_curve25519xsalsa20poly1305_zerobytes"]=wasmExports["wb"];Module["_crypto_box_curve25519xsalsa20poly1305_boxzerobytes"]=wasmExports["xb"];Module["_crypto_box_curve25519xsalsa20poly1305_macbytes"]=wasmExports["yb"];Module["_crypto_box_curve25519xsalsa20poly1305_messagebytes_max"]=wasmExports["zb"];Module["_crypto_core_hchacha20"]=wasmExports["Ab"];Module["_crypto_core_hchacha20_outputbytes"]=wasmExports["Bb"];Module["_crypto_core_hchacha20_inputbytes"]=wasmExports["Cb"];Module["_crypto_core_hchacha20_keybytes"]=wasmExports["Db"];Module["_crypto_core_hchacha20_constbytes"]=wasmExports["Eb"];Module["_crypto_core_hsalsa20"]=wasmExports["Fb"];Module["_crypto_core_hsalsa20_outputbytes"]=wasmExports["Gb"];Module["_crypto_core_hsalsa20_inputbytes"]=wasmExports["Hb"];Module["_crypto_core_hsalsa20_keybytes"]=wasmExports["Ib"];Module["_crypto_core_hsalsa20_constbytes"]=wasmExports["Jb"];Module["_crypto_core_salsa20"]=wasmExports["Kb"];Module["_crypto_core_salsa20_outputbytes"]=wasmExports["Lb"];Module["_crypto_core_salsa20_inputbytes"]=wasmExports["Mb"];Module["_crypto_core_salsa20_keybytes"]=wasmExports["Nb"];Module["_crypto_core_salsa20_constbytes"]=wasmExports["Ob"];Module["_crypto_core_salsa2012"]=wasmExports["Pb"];Module["_crypto_core_salsa2012_outputbytes"]=wasmExports["Qb"];Module["_crypto_core_salsa2012_inputbytes"]=wasmExports["Rb"];Module["_crypto_core_salsa2012_keybytes"]=wasmExports["Sb"];Module["_crypto_core_salsa2012_constbytes"]=wasmExports["Tb"];Module["_crypto_core_salsa208"]=wasmExports["Ub"];Module["_crypto_core_salsa208_outputbytes"]=wasmExports["Vb"];Module["_crypto_core_salsa208_inputbytes"]=wasmExports["Wb"];Module["_crypto_core_salsa208_keybytes"]=wasmExports["Xb"];Module["_crypto_core_salsa208_constbytes"]=wasmExports["Yb"];Module["_crypto_generichash_bytes_min"]=wasmExports["Zb"];Module["_crypto_generichash_bytes_max"]=wasmExports["_b"];Module["_crypto_generichash_bytes"]=wasmExports["$b"];Module["_crypto_generichash_keybytes_min"]=wasmExports["ac"];Module["_crypto_generichash_keybytes_max"]=wasmExports["bc"];Module["_crypto_generichash_keybytes"]=wasmExports["cc"];Module["_crypto_generichash_primitive"]=wasmExports["dc"];Module["_crypto_generichash_statebytes"]=wasmExports["ec"];Module["_crypto_generichash"]=wasmExports["fc"];Module["_crypto_generichash_init"]=wasmExports["gc"];Module["_crypto_generichash_update"]=wasmExports["hc"];Module["_crypto_generichash_final"]=wasmExports["ic"];Module["_crypto_generichash_keygen"]=wasmExports["jc"];Module["_crypto_generichash_blake2b_bytes_min"]=wasmExports["kc"];Module["_crypto_generichash_blake2b_bytes_max"]=wasmExports["lc"];Module["_crypto_generichash_blake2b_bytes"]=wasmExports["mc"];Module["_crypto_generichash_blake2b_keybytes_min"]=wasmExports["nc"];Module["_crypto_generichash_blake2b_keybytes_max"]=wasmExports["oc"];Module["_crypto_generichash_blake2b_keybytes"]=wasmExports["pc"];Module["_crypto_generichash_blake2b_saltbytes"]=wasmExports["qc"];Module["_crypto_generichash_blake2b_personalbytes"]=wasmExports["rc"];Module["_crypto_generichash_blake2b_statebytes"]=wasmExports["sc"];Module["_crypto_generichash_blake2b_keygen"]=wasmExports["tc"];Module["_crypto_generichash_blake2b"]=wasmExports["uc"];Module["_crypto_generichash_blake2b_salt_personal"]=wasmExports["vc"];Module["_crypto_generichash_blake2b_init"]=wasmExports["wc"];Module["_crypto_generichash_blake2b_init_salt_personal"]=wasmExports["xc"];Module["_crypto_generichash_blake2b_update"]=wasmExports["yc"];Module["_crypto_generichash_blake2b_final"]=wasmExports["zc"];Module["_crypto_hash_bytes"]=wasmExports["Ac"];Module["_crypto_hash"]=wasmExports["Bc"];Module["_crypto_hash_primitive"]=wasmExports["Cc"];Module["_crypto_hash_sha256_bytes"]=wasmExports["Dc"];Module["_crypto_hash_sha256_statebytes"]=wasmExports["Ec"];Module["_crypto_hash_sha256_init"]=wasmExports["Fc"];Module["_crypto_hash_sha256_update"]=wasmExports["Gc"];Module["_crypto_hash_sha256_final"]=wasmExports["Hc"];Module["_crypto_hash_sha256"]=wasmExports["Ic"];Module["_crypto_hash_sha512_bytes"]=wasmExports["Jc"];Module["_crypto_hash_sha512_statebytes"]=wasmExports["Kc"];Module["_crypto_hash_sha512_init"]=wasmExports["Lc"];Module["_crypto_hash_sha512_update"]=wasmExports["Mc"];Module["_crypto_hash_sha512_final"]=wasmExports["Nc"];Module["_crypto_hash_sha512"]=wasmExports["Oc"];Module["_crypto_kdf_blake2b_bytes_min"]=wasmExports["Pc"];Module["_crypto_kdf_blake2b_bytes_max"]=wasmExports["Qc"];Module["_crypto_kdf_blake2b_contextbytes"]=wasmExports["Rc"];Module["_crypto_kdf_blake2b_keybytes"]=wasmExports["Sc"];Module["_crypto_kdf_blake2b_derive_from_key"]=wasmExports["Tc"];Module["_crypto_kdf_primitive"]=wasmExports["Uc"];Module["_crypto_kdf_bytes_min"]=wasmExports["Vc"];Module["_crypto_kdf_bytes_max"]=wasmExports["Wc"];Module["_crypto_kdf_contextbytes"]=wasmExports["Xc"];Module["_crypto_kdf_keybytes"]=wasmExports["Yc"];Module["_crypto_kdf_derive_from_key"]=wasmExports["Zc"];Module["_crypto_kdf_keygen"]=wasmExports["_c"];Module["_crypto_kdf_hkdf_sha256_extract_init"]=wasmExports["$c"];Module["_crypto_kdf_hkdf_sha256_extract_update"]=wasmExports["ad"];Module["_crypto_kdf_hkdf_sha256_extract_final"]=wasmExports["bd"];Module["_crypto_kdf_hkdf_sha256_extract"]=wasmExports["cd"];Module["_crypto_kdf_hkdf_sha256_keygen"]=wasmExports["dd"];Module["_crypto_kdf_hkdf_sha256_expand"]=wasmExports["ed"];Module["_crypto_kdf_hkdf_sha256_keybytes"]=wasmExports["fd"];Module["_crypto_kdf_hkdf_sha256_bytes_min"]=wasmExports["gd"];Module["_crypto_kdf_hkdf_sha256_bytes_max"]=wasmExports["hd"];Module["_crypto_kdf_hkdf_sha256_statebytes"]=wasmExports["id"];Module["_crypto_kdf_hkdf_sha512_extract_init"]=wasmExports["jd"];Module["_crypto_kdf_hkdf_sha512_extract_update"]=wasmExports["kd"];Module["_crypto_kdf_hkdf_sha512_extract_final"]=wasmExports["ld"];Module["_crypto_kdf_hkdf_sha512_extract"]=wasmExports["md"];Module["_crypto_kdf_hkdf_sha512_keygen"]=wasmExports["nd"];Module["_crypto_kdf_hkdf_sha512_expand"]=wasmExports["od"];Module["_crypto_kdf_hkdf_sha512_keybytes"]=wasmExports["pd"];Module["_crypto_kdf_hkdf_sha512_bytes_min"]=wasmExports["qd"];Module["_crypto_kdf_hkdf_sha512_bytes_max"]=wasmExports["rd"];Module["_crypto_kdf_hkdf_sha512_statebytes"]=wasmExports["sd"];Module["_crypto_kx_seed_keypair"]=wasmExports["td"];Module["_crypto_kx_keypair"]=wasmExports["ud"];Module["_crypto_kx_client_session_keys"]=wasmExports["vd"];Module["_crypto_kx_server_session_keys"]=wasmExports["wd"];Module["_crypto_kx_publickeybytes"]=wasmExports["xd"];Module["_crypto_kx_secretkeybytes"]=wasmExports["yd"];Module["_crypto_kx_seedbytes"]=wasmExports["zd"];Module["_crypto_kx_sessionkeybytes"]=wasmExports["Ad"];Module["_crypto_kx_primitive"]=wasmExports["Bd"];Module["_crypto_onetimeauth_statebytes"]=wasmExports["Cd"];Module["_crypto_onetimeauth_bytes"]=wasmExports["Dd"];Module["_crypto_onetimeauth_keybytes"]=wasmExports["Ed"];Module["_crypto_onetimeauth"]=wasmExports["Fd"];Module["_crypto_onetimeauth_verify"]=wasmExports["Gd"];Module["_crypto_onetimeauth_init"]=wasmExports["Hd"];Module["_crypto_onetimeauth_update"]=wasmExports["Id"];Module["_crypto_onetimeauth_final"]=wasmExports["Jd"];Module["_crypto_onetimeauth_primitive"]=wasmExports["Kd"];Module["_crypto_onetimeauth_keygen"]=wasmExports["Ld"];Module["_crypto_onetimeauth_poly1305"]=wasmExports["Md"];Module["_crypto_onetimeauth_poly1305_verify"]=wasmExports["Nd"];Module["_crypto_onetimeauth_poly1305_init"]=wasmExports["Od"];Module["_crypto_onetimeauth_poly1305_update"]=wasmExports["Pd"];Module["_crypto_onetimeauth_poly1305_final"]=wasmExports["Qd"];Module["_crypto_onetimeauth_poly1305_bytes"]=wasmExports["Rd"];Module["_crypto_onetimeauth_poly1305_keybytes"]=wasmExports["Sd"];Module["_crypto_onetimeauth_poly1305_statebytes"]=wasmExports["Td"];Module["_crypto_onetimeauth_poly1305_keygen"]=wasmExports["Ud"];Module["_crypto_pwhash_argon2i_alg_argon2i13"]=wasmExports["Vd"];Module["_crypto_pwhash_argon2i_bytes_min"]=wasmExports["Wd"];Module["_crypto_pwhash_argon2i_bytes_max"]=wasmExports["Xd"];Module["_crypto_pwhash_argon2i_passwd_min"]=wasmExports["Yd"];Module["_crypto_pwhash_argon2i_passwd_max"]=wasmExports["Zd"];Module["_crypto_pwhash_argon2i_saltbytes"]=wasmExports["_d"];Module["_crypto_pwhash_argon2i_strbytes"]=wasmExports["$d"];Module["_crypto_pwhash_argon2i_strprefix"]=wasmExports["ae"];Module["_crypto_pwhash_argon2i_opslimit_min"]=wasmExports["be"];Module["_crypto_pwhash_argon2i_opslimit_max"]=wasmExports["ce"];Module["_crypto_pwhash_argon2i_memlimit_min"]=wasmExports["de"];Module["_crypto_pwhash_argon2i_memlimit_max"]=wasmExports["ee"];Module["_crypto_pwhash_argon2i_opslimit_interactive"]=wasmExports["fe"];Module["_crypto_pwhash_argon2i_memlimit_interactive"]=wasmExports["ge"];Module["_crypto_pwhash_argon2i_opslimit_moderate"]=wasmExports["he"];Module["_crypto_pwhash_argon2i_memlimit_moderate"]=wasmExports["ie"];Module["_crypto_pwhash_argon2i_opslimit_sensitive"]=wasmExports["je"];Module["_crypto_pwhash_argon2i_memlimit_sensitive"]=wasmExports["ke"];Module["_crypto_pwhash_argon2i"]=wasmExports["le"];Module["_crypto_pwhash_argon2i_str"]=wasmExports["me"];Module["_crypto_pwhash_argon2i_str_verify"]=wasmExports["ne"];Module["_crypto_pwhash_argon2i_str_needs_rehash"]=wasmExports["oe"];Module["_crypto_pwhash_argon2id_str_needs_rehash"]=wasmExports["pe"];Module["_crypto_pwhash_argon2id_alg_argon2id13"]=wasmExports["qe"];Module["_crypto_pwhash_argon2id_bytes_min"]=wasmExports["re"];Module["_crypto_pwhash_argon2id_bytes_max"]=wasmExports["se"];Module["_crypto_pwhash_argon2id_passwd_min"]=wasmExports["te"];Module["_crypto_pwhash_argon2id_passwd_max"]=wasmExports["ue"];Module["_crypto_pwhash_argon2id_saltbytes"]=wasmExports["ve"];Module["_crypto_pwhash_argon2id_strbytes"]=wasmExports["we"];Module["_crypto_pwhash_argon2id_strprefix"]=wasmExports["xe"];Module["_crypto_pwhash_argon2id_opslimit_min"]=wasmExports["ye"];Module["_crypto_pwhash_argon2id_opslimit_max"]=wasmExports["ze"];Module["_crypto_pwhash_argon2id_memlimit_min"]=wasmExports["Ae"];Module["_crypto_pwhash_argon2id_memlimit_max"]=wasmExports["Be"];Module["_crypto_pwhash_argon2id_opslimit_interactive"]=wasmExports["Ce"];Module["_crypto_pwhash_argon2id_memlimit_interactive"]=wasmExports["De"];Module["_crypto_pwhash_argon2id_opslimit_moderate"]=wasmExports["Ee"];Module["_crypto_pwhash_argon2id_memlimit_moderate"]=wasmExports["Fe"];Module["_crypto_pwhash_argon2id_opslimit_sensitive"]=wasmExports["Ge"];Module["_crypto_pwhash_argon2id_memlimit_sensitive"]=wasmExports["He"];Module["_crypto_pwhash_argon2id"]=wasmExports["Ie"];Module["_crypto_pwhash_argon2id_str"]=wasmExports["Je"];Module["_crypto_pwhash_argon2id_str_verify"]=wasmExports["Ke"];Module["_crypto_pwhash_alg_argon2i13"]=wasmExports["Le"];Module["_crypto_pwhash_alg_argon2id13"]=wasmExports["Me"];Module["_crypto_pwhash_alg_default"]=wasmExports["Ne"];Module["_crypto_pwhash_bytes_min"]=wasmExports["Oe"];Module["_crypto_pwhash_bytes_max"]=wasmExports["Pe"];Module["_crypto_pwhash_passwd_min"]=wasmExports["Qe"];Module["_crypto_pwhash_passwd_max"]=wasmExports["Re"];Module["_crypto_pwhash_saltbytes"]=wasmExports["Se"];Module["_crypto_pwhash_strbytes"]=wasmExports["Te"];Module["_crypto_pwhash_strprefix"]=wasmExports["Ue"];Module["_crypto_pwhash_opslimit_min"]=wasmExports["Ve"];Module["_crypto_pwhash_opslimit_max"]=wasmExports["We"];Module["_crypto_pwhash_memlimit_min"]=wasmExports["Xe"];Module["_crypto_pwhash_memlimit_max"]=wasmExports["Ye"];Module["_crypto_pwhash_opslimit_interactive"]=wasmExports["Ze"];Module["_crypto_pwhash_memlimit_interactive"]=wasmExports["_e"];Module["_crypto_pwhash_opslimit_moderate"]=wasmExports["$e"];Module["_crypto_pwhash_memlimit_moderate"]=wasmExports["af"];Module["_crypto_pwhash_opslimit_sensitive"]=wasmExports["bf"];Module["_crypto_pwhash_memlimit_sensitive"]=wasmExports["cf"];Module["_crypto_pwhash"]=wasmExports["df"];Module["_crypto_pwhash_str"]=wasmExports["ef"];Module["_crypto_pwhash_str_alg"]=wasmExports["ff"];Module["_crypto_pwhash_str_verify"]=wasmExports["gf"];Module["_crypto_pwhash_str_needs_rehash"]=wasmExports["hf"];Module["_crypto_pwhash_primitive"]=wasmExports["jf"];Module["_crypto_scalarmult_primitive"]=wasmExports["kf"];Module["_crypto_scalarmult_base"]=wasmExports["lf"];Module["_crypto_scalarmult"]=wasmExports["mf"];Module["_crypto_scalarmult_bytes"]=wasmExports["nf"];Module["_crypto_scalarmult_scalarbytes"]=wasmExports["of"];Module["_crypto_scalarmult_curve25519"]=wasmExports["pf"];Module["_crypto_scalarmult_curve25519_base"]=wasmExports["qf"];Module["_crypto_scalarmult_curve25519_bytes"]=wasmExports["rf"];Module["_crypto_scalarmult_curve25519_scalarbytes"]=wasmExports["sf"];Module["_crypto_secretbox_keybytes"]=wasmExports["tf"];Module["_crypto_secretbox_noncebytes"]=wasmExports["uf"];Module["_crypto_secretbox_zerobytes"]=wasmExports["vf"];Module["_crypto_secretbox_boxzerobytes"]=wasmExports["wf"];Module["_crypto_secretbox_macbytes"]=wasmExports["xf"];Module["_crypto_secretbox_messagebytes_max"]=wasmExports["yf"];Module["_crypto_secretbox_primitive"]=wasmExports["zf"];Module["_crypto_secretbox"]=wasmExports["Af"];Module["_crypto_secretbox_open"]=wasmExports["Bf"];Module["_crypto_secretbox_keygen"]=wasmExports["Cf"];Module["_crypto_secretbox_detached"]=wasmExports["Df"];Module["_crypto_secretbox_easy"]=wasmExports["Ef"];Module["_crypto_secretbox_open_detached"]=wasmExports["Ff"];Module["_crypto_secretbox_open_easy"]=wasmExports["Gf"];Module["_crypto_secretbox_xsalsa20poly1305"]=wasmExports["Hf"];Module["_crypto_secretbox_xsalsa20poly1305_open"]=wasmExports["If"];Module["_crypto_secretbox_xsalsa20poly1305_keybytes"]=wasmExports["Jf"];Module["_crypto_secretbox_xsalsa20poly1305_noncebytes"]=wasmExports["Kf"];Module["_crypto_secretbox_xsalsa20poly1305_zerobytes"]=wasmExports["Lf"];Module["_crypto_secretbox_xsalsa20poly1305_boxzerobytes"]=wasmExports["Mf"];Module["_crypto_secretbox_xsalsa20poly1305_macbytes"]=wasmExports["Nf"];Module["_crypto_secretbox_xsalsa20poly1305_messagebytes_max"]=wasmExports["Of"];Module["_crypto_secretbox_xsalsa20poly1305_keygen"]=wasmExports["Pf"];Module["_crypto_secretstream_xchacha20poly1305_keygen"]=wasmExports["Qf"];Module["_crypto_secretstream_xchacha20poly1305_init_push"]=wasmExports["Rf"];Module["_crypto_secretstream_xchacha20poly1305_init_pull"]=wasmExports["Sf"];Module["_crypto_secretstream_xchacha20poly1305_rekey"]=wasmExports["Tf"];Module["_crypto_secretstream_xchacha20poly1305_push"]=wasmExports["Uf"];Module["_crypto_secretstream_xchacha20poly1305_pull"]=wasmExports["Vf"];Module["_crypto_secretstream_xchacha20poly1305_statebytes"]=wasmExports["Wf"];Module["_crypto_secretstream_xchacha20poly1305_abytes"]=wasmExports["Xf"];Module["_crypto_secretstream_xchacha20poly1305_headerbytes"]=wasmExports["Yf"];Module["_crypto_secretstream_xchacha20poly1305_keybytes"]=wasmExports["Zf"];Module["_crypto_secretstream_xchacha20poly1305_messagebytes_max"]=wasmExports["_f"];Module["_crypto_secretstream_xchacha20poly1305_tag_message"]=wasmExports["$f"];Module["_crypto_secretstream_xchacha20poly1305_tag_push"]=wasmExports["ag"];Module["_crypto_secretstream_xchacha20poly1305_tag_rekey"]=wasmExports["bg"];Module["_crypto_secretstream_xchacha20poly1305_tag_final"]=wasmExports["cg"];Module["_crypto_shorthash_bytes"]=wasmExports["dg"];Module["_crypto_shorthash_keybytes"]=wasmExports["eg"];Module["_crypto_shorthash_primitive"]=wasmExports["fg"];Module["_crypto_shorthash"]=wasmExports["gg"];Module["_crypto_shorthash_keygen"]=wasmExports["hg"];Module["_crypto_shorthash_siphash24_bytes"]=wasmExports["ig"];Module["_crypto_shorthash_siphash24_keybytes"]=wasmExports["jg"];Module["_crypto_shorthash_siphash24"]=wasmExports["kg"];Module["_crypto_sign_statebytes"]=wasmExports["lg"];Module["_crypto_sign_bytes"]=wasmExports["mg"];Module["_crypto_sign_seedbytes"]=wasmExports["ng"];Module["_crypto_sign_publickeybytes"]=wasmExports["og"];Module["_crypto_sign_secretkeybytes"]=wasmExports["pg"];Module["_crypto_sign_messagebytes_max"]=wasmExports["qg"];Module["_crypto_sign_primitive"]=wasmExports["rg"];Module["_crypto_sign_seed_keypair"]=wasmExports["sg"];Module["_crypto_sign_keypair"]=wasmExports["tg"];Module["_crypto_sign"]=wasmExports["ug"];Module["_crypto_sign_open"]=wasmExports["vg"];Module["_crypto_sign_detached"]=wasmExports["wg"];Module["_crypto_sign_verify_detached"]=wasmExports["xg"];Module["_crypto_sign_init"]=wasmExports["yg"];Module["_crypto_sign_update"]=wasmExports["zg"];Module["_crypto_sign_final_create"]=wasmExports["Ag"];Module["_crypto_sign_final_verify"]=wasmExports["Bg"];Module["_crypto_sign_ed25519ph_statebytes"]=wasmExports["Cg"];Module["_crypto_sign_ed25519_bytes"]=wasmExports["Dg"];Module["_crypto_sign_ed25519_seedbytes"]=wasmExports["Eg"];Module["_crypto_sign_ed25519_publickeybytes"]=wasmExports["Fg"];Module["_crypto_sign_ed25519_secretkeybytes"]=wasmExports["Gg"];Module["_crypto_sign_ed25519_messagebytes_max"]=wasmExports["Hg"];Module["_crypto_sign_ed25519_sk_to_seed"]=wasmExports["Ig"];Module["_crypto_sign_ed25519_sk_to_pk"]=wasmExports["Jg"];Module["_crypto_sign_ed25519ph_init"]=wasmExports["Kg"];Module["_crypto_sign_ed25519ph_update"]=wasmExports["Lg"];Module["_crypto_sign_ed25519ph_final_create"]=wasmExports["Mg"];Module["_crypto_sign_ed25519ph_final_verify"]=wasmExports["Ng"];Module["_crypto_sign_ed25519_seed_keypair"]=wasmExports["Og"];Module["_crypto_sign_ed25519_keypair"]=wasmExports["Pg"];Module["_crypto_sign_ed25519_pk_to_curve25519"]=wasmExports["Qg"];Module["_crypto_sign_ed25519_sk_to_curve25519"]=wasmExports["Rg"];Module["_crypto_sign_ed25519_verify_detached"]=wasmExports["Sg"];Module["_crypto_sign_ed25519_open"]=wasmExports["Tg"];Module["_crypto_sign_ed25519_detached"]=wasmExports["Ug"];Module["_crypto_sign_ed25519"]=wasmExports["Vg"];Module["_crypto_stream_chacha20_keybytes"]=wasmExports["Wg"];Module["_crypto_stream_chacha20_noncebytes"]=wasmExports["Xg"];Module["_crypto_stream_chacha20_messagebytes_max"]=wasmExports["Yg"];Module["_crypto_stream_chacha20_ietf_keybytes"]=wasmExports["Zg"];Module["_crypto_stream_chacha20_ietf_noncebytes"]=wasmExports["_g"];Module["_crypto_stream_chacha20_ietf_messagebytes_max"]=wasmExports["$g"];Module["_crypto_stream_chacha20"]=wasmExports["ah"];Module["_crypto_stream_chacha20_xor_ic"]=wasmExports["bh"];Module["_crypto_stream_chacha20_xor"]=wasmExports["ch"];Module["_crypto_stream_chacha20_ietf"]=wasmExports["dh"];Module["_crypto_stream_chacha20_ietf_xor_ic"]=wasmExports["eh"];Module["_crypto_stream_chacha20_ietf_xor"]=wasmExports["fh"];Module["_crypto_stream_chacha20_ietf_keygen"]=wasmExports["gh"];Module["_crypto_stream_chacha20_keygen"]=wasmExports["hh"];Module["_crypto_stream_keybytes"]=wasmExports["ih"];Module["_crypto_stream_noncebytes"]=wasmExports["jh"];Module["_crypto_stream_messagebytes_max"]=wasmExports["kh"];Module["_crypto_stream_primitive"]=wasmExports["lh"];Module["_crypto_stream"]=wasmExports["mh"];Module["_crypto_stream_xor"]=wasmExports["nh"];Module["_crypto_stream_keygen"]=wasmExports["oh"];Module["_crypto_stream_salsa20_keybytes"]=wasmExports["ph"];Module["_crypto_stream_salsa20_noncebytes"]=wasmExports["qh"];Module["_crypto_stream_salsa20_messagebytes_max"]=wasmExports["rh"];Module["_crypto_stream_salsa20"]=wasmExports["sh"];Module["_crypto_stream_salsa20_xor_ic"]=wasmExports["th"];Module["_crypto_stream_salsa20_xor"]=wasmExports["uh"];Module["_crypto_stream_salsa20_keygen"]=wasmExports["vh"];Module["_crypto_stream_xsalsa20"]=wasmExports["wh"];Module["_crypto_stream_xsalsa20_xor_ic"]=wasmExports["xh"];Module["_crypto_stream_xsalsa20_xor"]=wasmExports["yh"];Module["_crypto_stream_xsalsa20_keybytes"]=wasmExports["zh"];Module["_crypto_stream_xsalsa20_noncebytes"]=wasmExports["Ah"];Module["_crypto_stream_xsalsa20_messagebytes_max"]=wasmExports["Bh"];Module["_crypto_stream_xsalsa20_keygen"]=wasmExports["Ch"];Module["_crypto_verify_16_bytes"]=wasmExports["Dh"];Module["_crypto_verify_32_bytes"]=wasmExports["Eh"];Module["_crypto_verify_64_bytes"]=wasmExports["Fh"];Module["_crypto_verify_16"]=wasmExports["Gh"];Module["_crypto_verify_32"]=wasmExports["Hh"];Module["_crypto_verify_64"]=wasmExports["Ih"];Module["_randombytes_implementation_name"]=wasmExports["Jh"];Module["_randombytes_random"]=wasmExports["Kh"];Module["_randombytes_stir"]=wasmExports["Lh"];Module["_randombytes_uniform"]=wasmExports["Mh"];Module["_randombytes_buf"]=wasmExports["Nh"];Module["_randombytes_buf_deterministic"]=wasmExports["Oh"];Module["_randombytes_seedbytes"]=wasmExports["Ph"];Module["_randombytes_close"]=wasmExports["Qh"];Module["_randombytes"]=wasmExports["Rh"];Module["_sodium_bin2hex"]=wasmExports["Sh"];Module["_sodium_hex2bin"]=wasmExports["Th"];Module["_sodium_base64_encoded_len"]=wasmExports["Uh"];Module["_sodium_bin2base64"]=wasmExports["Vh"];Module["_sodium_base642bin"]=wasmExports["Wh"];Module["_sodium_init"]=wasmExports["Xh"];Module["_sodium_pad"]=wasmExports["Yh"];Module["_sodium_unpad"]=wasmExports["Zh"];Module["_sodium_version_string"]=wasmExports["_h"];Module["_sodium_library_version_major"]=wasmExports["$h"];Module["_sodium_library_version_minor"]=wasmExports["ai"];Module["_sodium_library_minimal"]=wasmExports["bi"];Module["_crypto_box_curve25519xchacha20poly1305_seed_keypair"]=wasmExports["ci"];Module["_crypto_box_curve25519xchacha20poly1305_keypair"]=wasmExports["di"];Module["_crypto_box_curve25519xchacha20poly1305_beforenm"]=wasmExports["ei"];Module["_crypto_box_curve25519xchacha20poly1305_detached_afternm"]=wasmExports["fi"];Module["_crypto_box_curve25519xchacha20poly1305_detached"]=wasmExports["gi"];Module["_crypto_box_curve25519xchacha20poly1305_easy_afternm"]=wasmExports["hi"];Module["_crypto_box_curve25519xchacha20poly1305_easy"]=wasmExports["ii"];Module["_crypto_box_curve25519xchacha20poly1305_open_detached_afternm"]=wasmExports["ji"];Module["_crypto_box_curve25519xchacha20poly1305_open_detached"]=wasmExports["ki"];Module["_crypto_box_curve25519xchacha20poly1305_open_easy_afternm"]=wasmExports["li"];Module["_crypto_box_curve25519xchacha20poly1305_open_easy"]=wasmExports["mi"];Module["_crypto_box_curve25519xchacha20poly1305_seedbytes"]=wasmExports["ni"];Module["_crypto_box_curve25519xchacha20poly1305_publickeybytes"]=wasmExports["oi"];Module["_crypto_box_curve25519xchacha20poly1305_secretkeybytes"]=wasmExports["pi"];Module["_crypto_box_curve25519xchacha20poly1305_beforenmbytes"]=wasmExports["qi"];Module["_crypto_box_curve25519xchacha20poly1305_noncebytes"]=wasmExports["ri"];Module["_crypto_box_curve25519xchacha20poly1305_macbytes"]=wasmExports["si"];Module["_crypto_box_curve25519xchacha20poly1305_messagebytes_max"]=wasmExports["ti"];Module["_crypto_box_curve25519xchacha20poly1305_seal"]=wasmExports["ui"];Module["_crypto_box_curve25519xchacha20poly1305_seal_open"]=wasmExports["vi"];Module["_crypto_box_curve25519xchacha20poly1305_sealbytes"]=wasmExports["wi"];Module["_crypto_core_ed25519_is_valid_point"]=wasmExports["xi"];Module["_crypto_core_ed25519_add"]=wasmExports["yi"];Module["_crypto_core_ed25519_sub"]=wasmExports["zi"];Module["_crypto_core_ed25519_from_uniform"]=wasmExports["Ai"];Module["_crypto_core_ed25519_random"]=wasmExports["Bi"];Module["_crypto_core_ed25519_scalar_random"]=wasmExports["Ci"];Module["_crypto_core_ed25519_scalar_invert"]=wasmExports["Di"];Module["_crypto_core_ed25519_scalar_negate"]=wasmExports["Ei"];Module["_crypto_core_ed25519_scalar_complement"]=wasmExports["Fi"];Module["_crypto_core_ed25519_scalar_add"]=wasmExports["Gi"];Module["_crypto_core_ed25519_scalar_reduce"]=wasmExports["Hi"];Module["_crypto_core_ed25519_scalar_sub"]=wasmExports["Ii"];Module["_crypto_core_ed25519_scalar_mul"]=wasmExports["Ji"];Module["_crypto_core_ed25519_bytes"]=wasmExports["Ki"];Module["_crypto_core_ed25519_nonreducedscalarbytes"]=wasmExports["Li"];Module["_crypto_core_ed25519_uniformbytes"]=wasmExports["Mi"];Module["_crypto_core_ed25519_hashbytes"]=wasmExports["Ni"];Module["_crypto_core_ed25519_scalarbytes"]=wasmExports["Oi"];Module["_crypto_core_ristretto255_is_valid_point"]=wasmExports["Pi"];Module["_crypto_core_ristretto255_add"]=wasmExports["Qi"];Module["_crypto_core_ristretto255_sub"]=wasmExports["Ri"];Module["_crypto_core_ristretto255_from_hash"]=wasmExports["Si"];Module["_crypto_core_ristretto255_random"]=wasmExports["Ti"];Module["_crypto_core_ristretto255_scalar_random"]=wasmExports["Ui"];Module["_crypto_core_ristretto255_scalar_invert"]=wasmExports["Vi"];Module["_crypto_core_ristretto255_scalar_negate"]=wasmExports["Wi"];Module["_crypto_core_ristretto255_scalar_complement"]=wasmExports["Xi"];Module["_crypto_core_ristretto255_scalar_add"]=wasmExports["Yi"];Module["_crypto_core_ristretto255_scalar_sub"]=wasmExports["Zi"];Module["_crypto_core_ristretto255_scalar_mul"]=wasmExports["_i"];Module["_crypto_core_ristretto255_scalar_reduce"]=wasmExports["$i"];Module["_crypto_core_ristretto255_bytes"]=wasmExports["aj"];Module["_crypto_core_ristretto255_nonreducedscalarbytes"]=wasmExports["bj"];Module["_crypto_core_ristretto255_hashbytes"]=wasmExports["cj"];Module["_crypto_core_ristretto255_scalarbytes"]=wasmExports["dj"];Module["_crypto_pwhash_scryptsalsa208sha256_ll"]=wasmExports["ej"];Module["_crypto_pwhash_scryptsalsa208sha256_bytes_min"]=wasmExports["fj"];Module["_crypto_pwhash_scryptsalsa208sha256_bytes_max"]=wasmExports["gj"];Module["_crypto_pwhash_scryptsalsa208sha256_passwd_min"]=wasmExports["hj"];Module["_crypto_pwhash_scryptsalsa208sha256_passwd_max"]=wasmExports["ij"];Module["_crypto_pwhash_scryptsalsa208sha256_saltbytes"]=wasmExports["jj"];Module["_crypto_pwhash_scryptsalsa208sha256_strbytes"]=wasmExports["kj"];Module["_crypto_pwhash_scryptsalsa208sha256_strprefix"]=wasmExports["lj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_min"]=wasmExports["mj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_max"]=wasmExports["nj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_min"]=wasmExports["oj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_max"]=wasmExports["pj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive"]=wasmExports["qj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive"]=wasmExports["rj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive"]=wasmExports["sj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive"]=wasmExports["tj"];Module["_crypto_pwhash_scryptsalsa208sha256"]=wasmExports["uj"];Module["_crypto_pwhash_scryptsalsa208sha256_str"]=wasmExports["vj"];Module["_crypto_pwhash_scryptsalsa208sha256_str_verify"]=wasmExports["wj"];Module["_crypto_pwhash_scryptsalsa208sha256_str_needs_rehash"]=wasmExports["xj"];Module["_crypto_scalarmult_ed25519"]=wasmExports["yj"];Module["_crypto_scalarmult_ed25519_noclamp"]=wasmExports["zj"];Module["_crypto_scalarmult_ed25519_base"]=wasmExports["Aj"];Module["_crypto_scalarmult_ed25519_base_noclamp"]=wasmExports["Bj"];Module["_crypto_scalarmult_ed25519_bytes"]=wasmExports["Cj"];Module["_crypto_scalarmult_ed25519_scalarbytes"]=wasmExports["Dj"];Module["_crypto_scalarmult_ristretto255"]=wasmExports["Ej"];Module["_crypto_scalarmult_ristretto255_base"]=wasmExports["Fj"];Module["_crypto_scalarmult_ristretto255_bytes"]=wasmExports["Gj"];Module["_crypto_scalarmult_ristretto255_scalarbytes"]=wasmExports["Hj"];Module["_crypto_secretbox_xchacha20poly1305_detached"]=wasmExports["Ij"];Module["_crypto_secretbox_xchacha20poly1305_easy"]=wasmExports["Jj"];Module["_crypto_secretbox_xchacha20poly1305_open_detached"]=wasmExports["Kj"];Module["_crypto_secretbox_xchacha20poly1305_open_easy"]=wasmExports["Lj"];Module["_crypto_secretbox_xchacha20poly1305_keybytes"]=wasmExports["Mj"];Module["_crypto_secretbox_xchacha20poly1305_noncebytes"]=wasmExports["Nj"];Module["_crypto_secretbox_xchacha20poly1305_macbytes"]=wasmExports["Oj"];Module["_crypto_secretbox_xchacha20poly1305_messagebytes_max"]=wasmExports["Pj"];Module["_crypto_shorthash_siphashx24_bytes"]=wasmExports["Qj"];Module["_crypto_shorthash_siphashx24_keybytes"]=wasmExports["Rj"];Module["_crypto_shorthash_siphashx24"]=wasmExports["Sj"];Module["_crypto_stream_salsa2012"]=wasmExports["Tj"];Module["_crypto_stream_salsa2012_xor"]=wasmExports["Uj"];Module["_crypto_stream_salsa2012_keybytes"]=wasmExports["Vj"];Module["_crypto_stream_salsa2012_noncebytes"]=wasmExports["Wj"];Module["_crypto_stream_salsa2012_messagebytes_max"]=wasmExports["Xj"];Module["_crypto_stream_salsa2012_keygen"]=wasmExports["Yj"];Module["_crypto_stream_salsa208"]=wasmExports["Zj"];Module["_crypto_stream_salsa208_xor"]=wasmExports["_j"];Module["_crypto_stream_salsa208_keybytes"]=wasmExports["$j"];Module["_crypto_stream_salsa208_noncebytes"]=wasmExports["ak"];Module["_crypto_stream_salsa208_messagebytes_max"]=wasmExports["bk"];Module["_crypto_stream_salsa208_keygen"]=wasmExports["ck"];Module["_crypto_stream_xchacha20_keybytes"]=wasmExports["dk"];Module["_crypto_stream_xchacha20_noncebytes"]=wasmExports["ek"];Module["_crypto_stream_xchacha20_messagebytes_max"]=wasmExports["fk"];Module["_crypto_stream_xchacha20"]=wasmExports["gk"];Module["_crypto_stream_xchacha20_xor_ic"]=wasmExports["hk"];Module["_crypto_stream_xchacha20_xor"]=wasmExports["ik"];Module["_crypto_stream_xchacha20_keygen"]=wasmExports["jk"];Module["_malloc"]=wasmExports["kk"];Module["_free"]=wasmExports["lk"];wasmExports["dynCall_iiiji"];wasmExports["dynCall_iiij"];wasmExports["dynCall_iijii"];wasmExports["dynCall_iiijiji"];wasmExports["dynCall_iiijiii"];wasmMemory=wasmExports["e"];wasmExports["__indirect_function_table"];}var wasmImports={b:___assert_fail,c:__abort_js,a:_emscripten_asm_const_int,d:_emscripten_resize_heap};function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();Module["onRuntimeInitialized"]?.();postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun();},1);}else {doRun();}}var wasmExports;createWasm();run(); + }); + }; +var Module=typeof Module!="undefined"?Module:{};var ENVIRONMENT_IS_WEB=!!globalThis.window;var ENVIRONMENT_IS_WORKER=!!globalThis.WorkerGlobalScope;var ENVIRONMENT_IS_NODE=globalThis.process?.versions?.node&&globalThis.process?.type!="renderer";var _scriptName=globalThis.document?.currentScript?.src;if(typeof __filename$1!="undefined"){_scriptName=__filename$1;}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href;}var scriptDirectory="";if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname$1+"/";if(process.argv.length>1){process.argv[1].replace(/\\/g,"/");}process.argv.slice(2);if(typeof module!="undefined"){module["exports"]=Module;}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href;}catch{}}else;console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;function binaryDecode(bin){for(var i=0,l=bin.length,o=new Uint8Array(l),c;i>8&c;}return o}var HEAP8,HEAPU8,HEAP16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift());}}callRuntimeCallbacks(onPreRuns);}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift());}}callRuntimeCallbacks(onPostRuns);}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var wasmBinaryFile;function findWasmBinary(){return binaryDecode('asmî(```~```````` ``~~` ``~`~`~``~`~``` `\n`~~` ~~`~`~`~~`~~`~~~`~``~` ~`\n~``~`~aaabacad ¼º          ! "      #$%  &\'\r     \n\n \n\r  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n      \r\r\rp@€€AÂ ¡Øef\ngh\ni jñkðlÎmÍnÌoËp qr s tñuvÊwÉxÈyÇzAÆBÅCÄDÃEÂFÁGÀH¾I JéKL\nM)NO P$QR\nS)TU½V¼W»XºY Z"_$\naa)baca da eaØfa¯ga®haia ja kaLlama-na¹oaBpa¸qa·rasa ta€uava+wa­xa.ya¶zaµAa Ba Ca€DaEaæFa­GaÝHa¯Ia®Ja Ka La Ma Na"Oa Pa\nQa\nRa)SaïTaîUaíVaìWaTXaSYa¬Za«_aª$a´ab³bb²cb©db±eb¨fb°gb¯hb®ib¿jbukb>lb=mbTnbSob¬pb«qb rb sb tb ub"vb wb\nxb\nyb)zbAb Bb\nCb Db\nEb(Fb Gb\nHb Ib\nJbFKbLb\nMb Nb\nObEPbQb\nRb Sb\nTbDUbVb\nWb Xb\nYb\nZb_b $b\nacbc ccÀdcÜec§fcógc¦hcòicjc\nkclc mc\nncoc pc\nqc\nrcÜsctc§uc­vcwcˆxc¦yczcAc¥BcÙCc DcÏEc^Fc«Gc*HcªIcJcLKc/LclMcNc¥Oc\nPcQc$Rc Sc¤TcÀUc\nVcWc$Xc Yc¤Zc_c‘$cadbdŽcddded fdgdŒhdLidæjd®kd­ld¬md«ndªodpdqd©rd€sdÕtd>udÔvdÓwd xd yd zd AdÒBd“Cd\nDd Ed£Fd¢Gd•Hd¡Id”JdàKdLd£Md¢Nd•Od¡Pd”Qd\nRd Sd“TdUdMVd\nWdXdYdZd\n_d{$d‡ae_becezdeyeexfeØge†he…ie$je„ke©le¨me¦ne¥oe¤pe7qe\nreseteue\nve{weÔxeMyezezAeyBe7CeÓDe_EeÒFexGewHe£Ie Je¢KeMLe7Me7Ne\nOePeQeRe\nSe{TeÔUeMVeWezXeyYe7ZeÓ_e_$eÒafxbfwcf¡df ef ffŸgfžhfƒjf×kf†lfÖmf nf ofpf†qf rf sf tf"uf vf\nwf\nxf)yfÚzfTAfSBfCfªDfœEf©Ff¨GfTHfSIf Jf"Kf Lf\nMf\nNf)OfPfQf—Rf–Sf•Tf›UfšVf”Wf“Xf"Yf Zf’_f$fMag7bg_cg$dg\negáfgŸggðhg$ig\njgŸkgLlgmg ng ogpgÉqgùrgøsg÷tgžugvgœwg›xgöyglzgõAgôBgLCgDg Eg FgGgÉHgûIgúJgÈKglLgÇMgÆNgËOgÊPg€QgÿRg›SgTgœUgžVg Wg$XgYg Zgé_g$g™ah˜bh–ch•dh”eh“fhghhh ih"jhkhlhšmh™nhoh ph$qhrh’sh‘thuhvhšwhxh™yh zh"AhBhCh\nDh EhFh5Gh<Hh°IhµJh´KhçLh³MhNh±Oh Ph°QhŽRh‹ShŠTh‰Uh~Vh}WhºXh²Yh¯ZhÑ_hÐ$h7aibiuci>di‚ei˜figiŒhi‹ii—jiŠki–li‰mi ni oi pi qi"ri\nsi)tiˆui‡vi¿wi¨xi§yi¦zi¥Ai¤BiåCiäDiãEiâFiáGiàHißIiÞJi KiLi MiNi Oi£Pi¢Qi¡Ri SiŸTižUiViœWi›XišYi™ZiÞ_i˜$i ajbjcj dj†ej\nfjgjhjij jjëkjêljémjnj·ojpjèqj·rjØsjwtj…uj„vjƒwj‚xjçyjæzjåAjäBj Cj DjßEjÞFj Gj Hj˜IjJj—Kj–Lj Mj"Nj\nOj)Pj\nQj\nRj€SjÿTjþUj Vj$WjXjYjýZjü_j $j$akbkck dk"ekfkûgkúhkùikjkkk (A ¿¬§—ø÷öõô½¼»¹¸·¶ \nݔ\nºË~ ( "At¬" ¬"~ (" ¬" ("!At¬" ~| ("At¬" (""At¬"~| ("¬" ("#At¬"~| ( "Al¬" ¬"~| ($"A&l¬" ("At¬"~|  ~ ~| ¬" ~|  ~|  ~|  ~ !¬" ~|  ~| A&l¬" ¬"~|  At¬~|  ~|"B€€€|"B‡|"B€€€|"B‡|"\n \nB€€€|" B€€€àƒ}>  ~  "¬"\r~| Al¬"\n ~|  ~|  At¬"~|  ~|  \n~  \r~|  ~|  ~|  ~| A&l¬ ~ #¬"\r \r~| \n ~|  ~|  ~|  ~|"\nB€€€|"\rB‡|"B€€€|"B‡|" B€€€|"B€€€àƒ}> ~  ~|  ~|  ~|  ~| B‡|" B€€€|" B€€€ðƒ}>  ~  ~| ~|  ~|  ~| B‡|" B€€€|"B€€€ðƒ}> ~  ~|  ~|  ~|  ~|  ¬"~| B‡|" B€€€|"B€€€àƒ}>  B€€€ðƒ}  B€€€`ƒ} B‡|"B€€€|"Bˆ|>  B€€€àƒ}>  ~  ~| ~|  ~|  ~| B‡|" B€€€|"B€€€ðƒ}>$  B€€€ðƒ} \n \rB€€€`ƒ} B‡B~|"B€€€|"Bˆ|>  B€€€àƒ}>  \'~  ("*¬" ("+At¬"~ 4" 4"~| (",¬"\r 4"~| ( "-¬" ( ".At¬"~| ("/¬" 4"~| ("0¬" ("1At¬"~| ("2¬" 4" ~| ("3Al¬" ($"4At¬"~| ( "5Al¬" 4 "\n~| ($"Al¬" ("At¬"~|  ~  +¬"~| \r .¬"~|  ~|  1¬"~| ~| 2Al¬" 4¬"~| \n ~|  ¬"~|  ~| ~  ~|  \r~|  ~| ~| 0Al¬" ~| \n ~| ~|  ~|  ~|""B€€€|"#B‡|"$B€€€|"%B‡|" B€€€|"B€€€àƒ}> ~  ~| \r~| -Al¬" ~| \n /Al¬"~|  ~|  ~| ~|  ~|  ~| ~  ~| ,Al¬"! ~| \n ~|  ~|  ~|  ~|  ~|  ~|  ~| *Al¬ ~  ~| \n !~|  ~|  ~|  ~|  ~| ~|  ~|  ~|"!B€€€|"&B‡|"\'B€€€|"(B‡|" B€€€|")B€€€àƒ}>  ~  ~| \r ~|  ~|  ~|  ~|  ~| 3¬"~|  ~|  \n~| B‡|" B€€€|"B€€€ðƒ}>  ~  ~| \r ~| ~|  ~| \n ~|  ~|  ~|  ~|  ~| )B‡|" B€€€|"B€€€ðƒ}> ~  \n~|  \r~|  ~|  ~|  ~|  ~|  ~| 5¬" ~|  ~| B‡|" B€€€|"B€€€àƒ}> $ %B€€€ðƒ} " #B€€€`ƒ} B‡|"B€€€|"Bˆ|>  B€€€àƒ}> \n ~  ~| \r ~|  ~|  ~|  ~|  ~|  ~| ~| ¬~| B‡|" B€€€|"B€€€ðƒ}>$ \' (B€€€ðƒ} ! &B€€€`ƒ} B‡B~|"B€€€|"Bˆ|>  B€€€àƒ}> ñ6~ 3 1B†B€€üƒ„" (":AvAÿÿÿq­"~ 3 1B†B€€üƒ„" ("9AvAÿÿÿq­" ~| 5BˆBÿÿÿƒ" (";AvAÿÿÿq­"~| (\n"s!  6 B7 AtA¤Àj!@Aø½("A t"qE@Aø½  r6  6A!A  A AvkA AGt! (!@ "(Axq F\r Av! At!  Aqj"("\r  6A! !A ! "  (" 6  6A!A!A !  j 6  6 j 6A”¾A”¾(Ak"A 6 AÀ ’~#AÀk" $@ P\r )H" B†|"7H A@k" )  V­| B=ˆ|7 AÐj! B€ BˆBÿƒ"}" X@ Bƒ!B!@ Bÿ…BZ@ Büƒ!\n@  |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B|! B|" \nR\r P\r @  |§j  §j-: B|! B|" R\r A€j"\ra  §j!  }"BÿV@@  \ra A€j! B€}"BÿV\r @ P\r Bƒ!B!B! BZ@ Büƒ!B!@ §"j j-: Ar"\rj  \rj-: Ar"\rj  \rj-: Ar"j j-: B|! B|" R\r P\r @ §"j j-: B|! B|" R\r AÀ  Bƒ!B! BZ@ B|ƒ!@  |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B|! B|" R\r P\r @  |§j  §j-: B|! B|" R\r AÀj$A A Æ#Ak"A:@ E\r Aq! AO@ A|q!@  j"- -r:  - -r:  - -r:  - -r: Aj! Aj" G\r E\r A!@  j- -r: Aj! Aj" G\r -AkAv … #A0k"$  AÐj A(j Aøj AÐj ((! (,! (! (0! (! (4! ( ! (8!\n (! (j! @@@ At(¤À"E@A!  A! A AvkA AGt!@@ (Axq k" O\r ! "\rA! !  ("   AvAqj("F ! At! \r rE@A!A t"A kr q"E\r hAt(¤À! E\r @ (Axq k" I!   !  ! ("  ( "\r E\r Aü½( kO\r (!  ( "G@ (" 6 6  (" Aj ("E\r Aj !@ ! "Aj! ("\r Aj! ("\r A6  Aü½("M@Aˆ¾(!@  k"AO@ j" Ar6 j 6 Ar6  Ar6 j" (Ar6A!A! Aü½ 6Aˆ¾ 6 Aj! A€¾("I@A€¾  k"6AŒ¾AŒ¾(" j"6  Ar6 Ar6 Aj! A! A/j"AÌÁ(@AÔÁ(  AØÁB7AÐÁB€ €€€€7AÌÁ \nA jApqAتժs6AàÁA6A°ÁA6A€ "j"A k"q" M\rA¬Á("@A¤Á(" j" M\r  I\r @A°Á-AqE@@@@@AŒ¾("@A´Á!@ (" M@   (jI\r ("\r AA"AF\r !AÐÁ("Ak" q@  k  jA kqj!  M\rA¬Á("@A¤Á(" j" M\r I\r A" G\r   k q"A" ( (jF\r ! AF\r A0j M@ !  AÔÁ("  kjA kq"AAF\r  j! !  AG\r A°ÁA°Á(Ar6 A!AA! AF\r AF\r M\r k" A(jM\r A¤ÁA¤Á( j"6A¨Á( I@A¨Á 6 @AŒ¾("@A´Á!@  (" ("jF\r ("\r  A„¾("A ME@A„¾ 6 A!A¸Á 6A´Á 6A”¾A6A˜¾AÌÁ(6AÀÁA6@ At" Aœ¾j"6¤¾  6¨¾ Aj"A G\r A€¾ A(k"Ax kAq"k"6AŒ¾  j"6  Ar6 jA(6A¾AÜÁ(6   M\r  K\r ( Aq\r  j6AŒ¾ Ax kAq"j"6A€¾A€¾( j" k"6  Ar6  jA(6A¾AÜÁ(6  A!  A!  A„¾( K@A„¾ 6  j!A´Á!@@  ("G@ ("\r  - AqE\r A´Á!@@ (" M@   (j"I\r (!  A€¾ A(k"Ax kAq"k"6AŒ¾  j"6  Ar6 jA(6A¾AÜÁ(6  A\' kAqjA/k" AjI"A6 A¼Á)7 A´Á)7A¼Á Aj6A¸Á 6A´Á 6AÀÁA6 Aj!@ A6 Aj Aj! I\r  F\r  (A~q6   k"Ar6  6 AÿM@ AøqAœ¾j!Aô½("A Avt"qE@Aô½  r6  ( ! 6  6 A !A  A! AÿÿÿM@ A& Avg"kvAq AtrA>s!  6 B7 AtA¤Àj!@@Aø½("A t"qE@Aø½  r6  6  A AvkA AGt! (!@ "(Axq F\r Av! At!  Aqj"("\r  6  6A! "!A  (" 6  6  6A!A!A j 6  j 6 A€¾(" M\rA€¾ k"6AŒ¾AŒ¾(" j"6  Ar6 Ar6 Aj!  Að½A06A!  6 ( j6 Ax kAqj" Ar6 Ax kAqj"  j"k!@AŒ¾( F@AŒ¾ 6A€¾A€¾( j"6  Ar6  Aˆ¾( F@Aˆ¾ 6Aü½Aü½( j"6  Ar6 j 6  ("AqAF@ Axq! ( !@ AÿM@ (" F@Aô½Aô½(A~ Avwq6   6  6  (!@  G@ (" 6  6  @ (" Aj ("E\r Aj !@ ! "Aj! ("\r Aj! ("\r A6  A! E\r@ ("At"(¤À F@ A¤Àj 6 \rAø½Aø½(A~ wq6  @  (F@  6   6 E\r  6 ("@  6 6 ("E\r  6 6  j!  j"(!  A~q6  Ar6  j 6 AÿM@ AøqAœ¾j!Aô½("A Avt"qE@Aô½  r6  ( ! 6  6  6  6  A! AÿÿÿM@ A& Avg"kvAq AtrA>s!  6 B7 AtA¤Àj!@@Aø½("A t"qE@Aø½  r6 6  A AvkA AGt! (!@ "(Axq F\r Av! At! Aqj"("\r  6  6  6  6  (" 6 6 A6  6  6 Aj!  @ E\r@ ("At"(¤À F@ A¤Àj 6 \rAø½ A~ wq"6  @  (F@  6   6 E\r 6 ("@ 6  6 ("E\r 6  6 @ AM@   j"Ar6 j" (Ar6   Ar6  j" Ar6  j 6 AÿM@ AøqAœ¾j!Aô½("A Avt"qE@Aô½  r6  ( ! 6  6  6  6  A! AÿÿÿM@ A& Avg"kvAq AtrA>s!  6 B7 AtA¤Àj!@@ A t"qE@Aø½  r6  6  6  A AvkA AGt! (!@ "(Axq F\r Av! At!  Aqj"("\r  6  6  6  6  (" 6  6 A6  6  6 Aj!  @ E\r@ ("At"(¤À F@ A¤Àj 6 \rAø½ A~ wq6  @  (F@ 6  6 E\r 6 ("@ 6  6 ("E\r 6  6 @ AM@   j"Ar6 j" (Ar6   Ar6  j" Ar6  j 6 @ AxqAœ¾j!Aˆ¾(!A Avt" qE@Aô½  r6  ( ! 6  6  6  6 Aˆ¾ 6Aü½ 6 Aj! \nAj$ È#Ak"$ A:A!  Aˆ·(E@  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  -\n -r:  - -r:  - -r:  -\r -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r:  - -r: -AtA€€€kAu! Aj$  }@@ "AqE\r -E@A @ Aj"AqE\r -\r  @ "Aj!A€‚„ ("k rA€‚„xqA€‚„xF\r @ "Aj! -\r  k " A€O@AÖ\nAÿ AëAã   éA!@ AÀK\r AÁk"A@I\r@ A E@ AÿqA¿M@ A@kAA¥ü BùÂø›‘£³ðÛ78 Bëú†Ú¿µöÁ70 BŸØùÙ‘ڂ›7( Bхšïúϔ‡Ñ7 Bñíôø¥§ý§¥7 B«ðÓô¯î¼·<7 B»Îª¦ØÐë³»7 ­Bˆ’÷•ÿÌù„ê…7  #A€k"$@ AÁkAÿqA¿M\r E\r AÁkAÿqA¿M\r A@kAA¥ü BùÂø›‘£³ðÛ78 Bëú†Ú¿µöÁ70 BŸØùÙ‘ڂ›7( Bхšïúϔ‡Ñ7 Bñíôø¥§ý§¥7 B«ðÓô¯î¼·<7 B»Îª¦ØÐë³»7 ­ ­B†„Bˆ’÷•ÿÌù„ê…7 AA€ü @   ü\n Aàj A€ü\n A€6à A€ A€j$A   \r A!  \r  !A ì~#A k" $@ P\r ) " B†|7 A(j! BÀ BˆB?ƒ"}" X@ Bƒ!B!@ B?…BZ@ Büƒ!\n@  |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B|! B|" \nR\r P\r @  |§j  §j-: B|! B|" R\r A€j"\r]  §j!  }"B?V@@  \r] A@k! B@|"B?V\r @ P\r Bƒ!B!B! BZ@ B<ƒ!B!@ §"j j-: Ar"\rj  \rj-: Ar"\rj  \rj-: Ar"j j-: B|! B|" R\r P\r @ §"j j-: B|! B|" R\r A   Bƒ!B! BZ@ B|ƒ!@  |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B„" |§j  §j-: B|! B|" R\r P\r @  |§j  §j-: B|! B|" R\r A j$A A \r  A A ÷~ (,"AvAÿÿÿq­ ( B\r† B†„ B†„" \rBˆ| B€€€|"B€€€ðƒ}> B † B†„ B†„ Bˆ|" B€€€|"B€€€àƒ}>  B€€€ðƒ} B\n† B†„ B†„ \nB † B†„ B†„" B€€€|"\nBˆ|" B€€€|" Bˆ|> B€€€àƒ}> B\r† B†„ B†„ B† B†„ B†„"B€€€|"Bˆ|" B€€€|"B€€€àƒ}> B†B€€ðƒ B\n† B†„„" Bˆ| B€€€|"B€€€ƒ}>$ Bˆ | \nB€€€ðƒ}>  B€€€ðƒ}  BˆB~|"B€€€|"Bˆ|>  B€€€àƒ}> •#Ak" 6  6 A;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (-sr;  / ( - (- sr;  / ( -\n (-\nsr;  / ( - (- sr;  / ( - (- sr;  / ( -\r (-\rsr;  / ( - (-sr;  / ( - (-sr;  /;  /Ak; A€Â/Av /Avs; /Ak ™AÁ!A€!@@ Aÿq"A€-G@ A‚„l!@A€‚„ ( s"k rA€‚„xqA€‚„xG\r Aj! Ak"AK\r E\r Aÿq!@ -F@  Aj! Ak"\r A A ?@ ­B€€€€ B?|Bˆ}V\r B€€€€Z\r     A´·(  \' B€€€€Z@     A°·( § #A€k"$A! -"AsAÿq - - - - - - - - - -\n - - -\r - - - - - - - - - - - - - - - - -qqqqqqqqqqqqqqqqqqqqqqqqqqqqqAsrAÿqAkAì -"kqAv A‚Â-Av AvsrrAqE@ AÐj"\r 4 A j \r A (Ä"k6” A (À"k6 A (¼"k6Œ A (¸"k6ˆ A (´"k6„ A (°"k6€ A (¬"k6ü A (¨" k6ø A (¤"\nk6ô A ( " k6ð Aj" Aðj"  6ä  6à  6Ü  6Ø  6Ô  6Ð  6Ì  6È  \n6Ä  Aj6À Aàj" AÀj" A0j"A°  (`! (0! (d! (4! (h! (8! (l! (I Aj!\r  ) 7ˆ  )7€  )7ø  )7ð  )7è  )7  )7˜  )7   )7¨  ) 7°  )7¸  )7À  )7È  )7Ð  ) 7Ø  Aèj"\n \n   Aj"   A¸j"    \n \n          \n \n          \n         A!@ Aj" Av A j j,Œ A€j" i          A>I Aj!\r Aàj$ ±#Ak" 6  6A! A;@  / ( j- ( j-sr;  / Ar" ( j- ( j-sr; Aj"A G\r  /;  /Ak; A€Â/Av /Avs; /Ak 4#A k"$A!   E@ Aж A(! A j$   A  AŒ·( €@@@ "Aÿq"@ Aq@@ -"E\r  F\r Aj"Aq\r A€‚„ ("k rA€‚„xqA€‚„xG\r A‚„l!@A€‚„  s"k rA€‚„xqA€‚„xG\r (! Aj"! A€‚„ krA€‚„xqA€‚„xF\r   j  ! @ "-"E\r Aj!  AÿqG\r "A - AÿqF ` E@A -"@@  -"G\r E\r Ak"E\r Aj! -! Aj! \r A! A -k W~@Að¶("­ ­B|Bøÿÿÿƒ|"BÿÿÿÿX@ §"?AtM\r \r Að½A06A Að¶ 6  9#A k"$ * Aèj" B ! * A  A j$A –#AÐk"$ B7H B7@ A°¬)7 A¸¬)7 AÀ¬)7 AȬ)7 AЬ)7 Aج)7( Aà¬)70 Aè¬)78      AÐj$A    AeA    A eA    AeA ¡,~#A k"$ A(j"(! (P! (,!\r (T! (0! (X! (4! (\\! (8! (`! (    q  qr"At A vr­| B ˆ|">    \rq  qrAt Avr­| B ˆ|> AØ Ý~@ )8"BR@ B }"   V"BR~ Bƒ! A@k!\nB!@ BZ@ B|ƒ!@ \n )8 |§j  §j-: \n B„" )8|§j  §j-: \n B„" )8|§j  §j-: \n B„" )8|§j  §j-: B|! B|" R\r P\r @ \n )8 |§j  §j-: B|! B|" R\r )8  |"78 BT\r A@kBk B78  }!  §j! BZ@  Bpƒ"k Bƒ!  §j! P\r Bƒ! A@k!\nB!B!@ BZ@ B ƒ! B!@ \n )8 |§j  §j-: \n B„" )8|§j  §j-: \n B„" )8|§j  §j-: \n B„" )8|§j  §j-: B|! B|" R\r P\r @ \n )8 |§j  §j-: B|! B|" R\r )8 |78 š A6 @ @B€€ B€€X" Av­Z@ A€ O\rA  A6A § (Atn"AI\rA AI\r AI@ A6 A I@ A6 AÀI@ A6 A€I@ A6 A€I@ A6 A€I@ A6 A€I@ A 6 A€I@ A\n6 A€ I@ A 6 A€ÀI@ A 6 A€€I@ A\r6 A€€I@ A6 A€€I@ A6 A€€I@ A6 A€€I@ A6 A€€ I@ A6 A€€ÀI@ A6 A€€€I@ A6 A€€€I@ A6 A€€€I@ A6 A€€€I@ A6 A€€€O\r A6 A A€ÀI\rA A€€I\rA A€€I\rA A€€I\rA A€€I\rA A€€I\rA A€€ I\rA A€€ÀI\rA\n A€€€I\rA A€€€I\rA A€€€I\rA\r A€€€I\rA A€€€I\rA A€€€ I\rA A€€€ÀI\rA A€€€€I\rA A€€€€I\rA A€€€€I\rAA AN "6 Bÿÿÿÿ Bˆ ­ˆ" BÿÿÿÿZ§ (n6 AA A€€€ I 6 û E@Ag (E@A (AI@A~ @ (\r ( E\rAn (! (E@AmAz  AI@Az @ (\r (E\rAl @ ( \r ($E\rAk (0"E@Ap AÿÿÿK@Ao Ar!@ (,"AI\r A€€€K@Aq  AtI\r ((E@At (4"E@Ad AcA AÿÿÿK!  ¨~#A€k"$ A€j A€ü\nA!@ At" A€j"j" ) j)…7  Ar"j" ) j)…7  Ar"j" ) j)…7  Ar"j" ) j)…7 Aj"A€G\r  A€ü\nA!A!@  At"j" )  j)…7  Ar"j" )  j)…7  Ar"j" )  j)…7  Ar"j" )  j)…7 Aj"A€G\r @ A€j Atj" )8" )"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" )x…B ‰" )X"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰" )(" )"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" )h…B ‰" )H" | B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B‰" ) " )"\n| \nB†Bþÿÿÿƒ Bÿÿÿÿƒ~|"\n )`…B ‰" A@k")"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" \n| Bÿÿÿÿƒ \nB†Bþÿÿÿƒ~|"\n| Bÿÿÿÿƒ \nB†Bþÿÿÿƒ~|" …B ‰" )0" )"\r| \rB†Bþÿÿÿƒ Bÿÿÿÿƒ~|"\r )p…B ‰" )P"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" \r| Bÿÿÿÿƒ \rB†Bþÿÿÿƒ~|"\r …B0‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"| Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" 7  …B0‰" 7x  | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" 7P   …B‰7(   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"  …B‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" \n …B0‰"…B ‰"\n| B†Bþÿÿÿƒ \nBÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" \n…B0‰"7`  7   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7X   …B‰70   …B‰" \r| Bÿÿÿÿƒ \rB†Bþÿÿÿƒ~|" …B ‰"  | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"| Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰"7h  7   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7   …B‰78    …B‰"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B ‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰"7p  7   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7H   …B‰7 Aj"AG\r A!@ A€j Atj" )ˆ" )ˆ"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" )ˆ…B ‰" )ˆ"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰" )ˆ" )"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" )ˆ…B ‰" )ˆ" | B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B‰" )€" )"\n| \nB†Bþÿÿÿƒ Bÿÿÿÿƒ~|"\n )€…B ‰" )€"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" \n| Bÿÿÿÿƒ \nB†Bþÿÿÿƒ~|"\n| Bÿÿÿÿƒ \nB†Bþÿÿÿƒ~|" …B ‰" )€" )€"\r| \rB†Bþÿÿÿƒ Bÿÿÿÿƒ~|"\r )€…B ‰" )€"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B(‰" \r| Bÿÿÿÿƒ \rB†Bþÿÿÿƒ~|"\r …B0‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"| Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" 7  …B0‰" 7ˆ  | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" 7€   …B‰7ˆ   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"  …B‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" \n …B0‰"…B ‰"\n| B†Bþÿÿÿƒ \nBÿÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" \n…B0‰"7€  7   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7ˆ   …B‰7€   …B‰" \r| Bÿÿÿÿƒ \rB†Bþÿÿÿƒ~|" …B ‰"  | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"| Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰"7ˆ  7€   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7€   …B‰7ˆ    …B‰"| B†Bþÿÿÿƒ Bÿÿÿÿƒ~|" …B ‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B(‰" | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|" …B0‰"7€  7ˆ   | Bÿÿÿÿƒ B†Bþÿÿÿƒ~|"7ˆ   …B‰7€ Aj"AG\r  A€ü\nA!@  At"j" ) A€j" j)…7  Ar"j" )  j)…7  Ar"j" ) A€j j)…7  Ar"j" ) A€j j)…7 Aj"A€G\r A€j$ ¨$\'#AÐk"$A!\n@ A j"ŠE\r H\r gE\r H\r A€j" ‘\r A€j"\n/ @ \nA¶B" \n B  \n B  \n   \n AÀj" % Aj! ! !\nA!A!#Aàk"$@ Aàj" j  Avj-" AqvAq:  Ar"j AqvAq: Aj"A€G\r Aþ!@ "Aj!@  Aàj"j" -E\r AþK\r@  j","E\r At" ,"j" AL@ : A:   k"AqH\r : !@ Aàj j"-E@ A:  A: Aj"A€G\r E\r@ Aj" Aàjj","E\r At" ," j"\rAN@ k"AqH\r :@ Aàj j"-@ A: Aj"A€G\r  A:  \r: A: A  AOAj"AF\r@ Aj" Aàjj"," E\r At" ,"\rj"AN@ \r k"AqH\r :@ Aàj j"-@ A: Aj"A€G\r  A:  : A: AF\r@ Aj" Aàjj"," E\r At" ,"\rj"AN@ \r k"AqH\r :@ Aàj j"-@ A: Aj"A€G\r  A:  : A: AF\r@ Aj" Aàjj"," E\r At" ,"\rj"AN@ \r k"AqH\r :@ Aàj j"-@ A: Aj"A€G\r  A:  : A: AF\r Aj" Aàjj","E\r At" ,"j" AN@  k"AqH\r :@ Aàj j"-@ A: Aj"A€G\r  A:  : A: Ak! A€G\r A!@ Aà\rj" j \n Avj-" AqvAq:  Ar"j  AqvAq: Aj"A€G\r A!Aþ!@ "Aj!@  Aà\rj"j"\n-E\r AþK\r@  j"," E\r At" \n,"j"AL@ \n : A:   k"AqH\r \n : !@ Aà\rj j" -E@ A:  A: Aj"A€G\r E\r@ Aj" Aà\rjj" ,"E\r At" \n,"j" AN@  k" AqH\r \n :@ Aà\rj j" -@ A: Aj"A€G\r  A:  \n : A: A  AOAj" AF\r@ Aj" Aà\rjj","E\r At" \n," j"\rAN@ k"AqH\r \n :@ Aà\rj j"-@ A: Aj"A€G\r  A:  \n \r: A: AF\r@ Aj" Aà\rjj","E\r At" \n," j"\rAN@ k"AqH\r \n :@ Aà\rj j"-@ A: Aj"A€G\r  A:  \n \r: A: AF\r@ Aj" Aà\rjj","E\r At" \n," j"\rAN@ k"AqH\r \n :@ Aà\rj j"-@ A: Aj"A€G\r  A:  \n \r: A: AF\r Aj" Aà\rjj"," E\r At" \n,"j"AN@  k"AqH\r \n :@ Aà\rj j"-@ A: Aj"A€G\r  A:  \n : A: Ak! A€G\r Aàj"\n   ) 7À  )7¸  )7°  )7¨  )7   )(7È  )07Ð  )87Ø  A@k)7à  )H7è  )P7ð  )X7ø  )`7€  )h7ˆ  )p7 AÀj" A j"   A¸j" A(j Aèj" Aj" AÐj   Aøj     \n    AÈj"  Aðj"   A˜j"\n   A€j"            \n   A j"            \n   AÀj"            \n   Aàj"            \n   A€\nj"            \n   A  j"            \n   AÀ j  B7 B7 B7 B7 B7 B7, A(j""A6 B74 B7< B7D B7T B€€€€7L B7\\ B7d B7l A6t AÐj!#Aÿ!@@@@ Aàj" j-\r Aà\rj" j-\r  Ak"j-E@  j-E\r ! AH\r@ AÀj" @ " Aàjj,"AJ@ A j"       \n    Aàj AþqAvA lj  AN\r A j" AÀj"      \n    AàjA kAþqAvA ljQ @ Aà\rj j,"AJ@ A j" AÀj"      \n    AþqAvAølAÀ\rji  AN\r A j AÀj"      \n   ( ! (È!\r (¤! (Ì! (¨! (Ð! (¬! (Ô! (°! (Ø! (´! (Ü! (¸! (à! (¼! (ä! (À! (è!  (ì" (Ä"!k6Œ   k6ˆ   k6„   k6€   k6ü   k6ø   k6ô   k6ð   k6ì  \r k6è  !j6ä   j6à   j6Ü   j6Ø   j6Ô   j6Ð   j6Ì   j6È   j6Ä  \rj6À  A kAþqAvAølAÀ\rj"A(j   AÐj \n (”! (! (Œ! (ˆ!! („!$ (€!% (ü!& (ø!\' (ô!( (ð!) (è! (! (ì! (”!\r (ð! (˜! (ô! (œ! (ø! ( ! (ü! (¤! (€! (¨! („! (¬! (ˆ! (°!  (Œ"* (´"+j6Œ   j6ˆ   j6„   j6€   j6ü   j6ø   j6ô   j6ð  \rj6ì   j6è  + *k6ä   k6à   k6Ü   k6Ø   k6Ô   k6Ð   k6Ì   k6È  \r k6Ä   k6À  )At" (¸"k6  (At" (¼"\rk6”  \'At" (À"k6˜  &At" (Ä"k6œ  %At" (È"k6   $At" (Ì"k6¤  !At" (Ð"k6¨  At" (Ô"k6¬  At" (Ø"k6°  At" (Ü"k6´   j6¸  \rj6¼   j6À   j6Ä   j6È   j6Ì   j6Ð   j6Ô   j6Ø   j6Ü  AÀj  "  #   Ak! AJ\r  Ak! \r Aàj$ A j" ,A  < F A 1r!\n AÐj$ \n ª"5~#A°k";$ ;Aàj"</ @ AvAÿÿÿq­ 3 1B†B€€üƒ„" ~  ("?AvAÿÿÿq­"~| 5BˆBÿÿÿƒ" ~|  Av­ 1B†„ 1B†„BˆBÿÿÿƒ|") #B˜Ú~  0B€€€ÿÿÿÿƒ} Bˆ|"B“Ø(~| "Bçö\'~| $BӌC~| %BÑ«~| (Bˆ|| )B€€@}"(B€€€ƒ}"| B€€@}"0B€€€ƒ}") . 4 5B€€€ƒ} Bƒ¡V~ !BÑ«~| 2| 3B€€€ƒ}  !BӌC~| BÑ«~| #Bƒ¡V~| 1B€€€ƒ} ~  ~|  ~| \r ~|  ~| ~|  ~|  ~| ~| \n ~| ~  ~|  ~|  ~|  ~| \r ~| ~|  ~|  ~| ~| \n ~|"1B€€@}"2Bˆ|"3B€€@}"4Bˆ|"5B€€@}"7B‡|"B€€@}"6B‡|"Bƒ¡V~ BÑ«~|| /B€€€ƒ} & BÑ«~ BӌC~|  6B€€€ƒ}"Bƒ¡V~| %B˜Ú~ $B“Ø(~| ,| * %B“Ø(~| +B€€€ƒ}  ~  ~|  ~|  ~|  ~|  ~| (\n"Av­ 1B†„ 1B†„BˆBÿÿÿƒ| AvAÿÿÿq­  ~  ~|  ~|  ~|  ~||"*B€€@}"+Bˆ|",B€€@}".Bˆ|"/B€€@}"6B‡| -B€€€ƒ}"-B€€@}"8B‡|| \'B€€€ƒ}"&B€€@}"\'B‡|"9B€€@}":B‡| )B€€@}")B€€€ƒ} 9 :B€€€ƒ} & \'B€€€ƒ} BӌC~ Bçö\'~| BÑ«~| -| 8B€€€ƒ} 5 7B€€€ƒ} BӌC~ !Bçö\'~| #BÑ«~| "Bƒ¡V~| 3| 4B€€€ƒ} Bçö\'~ !B˜Ú~| #BӌC~| 1| "BÑ«~| $Bƒ¡V~| 2B€€€ƒ} (Av­  ~  ~|  ~| \r ~| ~|  ~|  ~| ~|  ~|  ~| ~| \n ~|| (Bˆ|"B€€@}"Bˆ|"B€€@}" B‡|"B€€@}"\nB‡|"Bƒ¡V~| / B˜Ú~| 6B€€€ƒ} Bçö\'~| BӌC~| BÑ«~|  \nB€€€ƒ}"Bƒ¡V~|"\nB€€@}" B‡|" B€€@}"\rB‡| \rB€€€ƒ} \n B€€€ƒ} B“Ø(~ ,| .B€€€ƒ} B˜Ú~| Bçö\'~|  B€€€ƒ} B˜Ú~ !B“Ø(~| #Bçö\'~| "BӌC~| $BÑ«~| %Bƒ¡V~| | B€€€ƒ} 0B‡|"B€€@}"B‡|"Bƒ¡V~| BӌC~| BÑ«~| * +B€€€ƒ}  ~  ~|  ~|  ~| 5BˆBÿÿÿƒ|  ~  ~|  ~| ("Av­ 1B†„ 1B†„BˆBÿÿÿƒ|" B€€@}"\nBˆ|" B€€@}" Bˆ| B“Ø(~| B˜Ú~| BÑ«~| Bçö\'~| BӌC~|"\rB€€@}"B‡|"B€€@}"B‡|   B€€€ƒ} )B‡|"B€€@}"B‡"Bƒ¡V~| B€€€ƒ} \r BÑ«~| B€€€ƒ} B€€€ƒ} B“Ø(~| BӌC~| B˜Ú~| Bçö\'~| AvAÿÿÿq­  ~  ~||  ~ 3 1B†B€€üƒ„|" B€€@}" Bˆ|"\rB€€@}"Bˆ| \nB€€€ƒ} Bçö\'~| B“Ø(~| B˜Ú~|"B€€@}" B‡|"\nB€€@}"B‡| \n BӌC~| B€€€ƒ}  Bçö\'~| B€€€ƒ} \r B€€€ƒ} B˜Ú~| B“Ø(~| B€€€ÿÿÿƒ} B“Ø(~|"B€€@}"B‡|"B€€@}" B‡|  B˜Ú~| B€€€ƒ}  B€€€ƒ} B“Ø(~|"B‡|" B‡|"\nB‡|" B‡|" B‡|"\rB‡|"B‡|"B‡|"B‡|"B‡|"B‡  B€€€ƒ}|"B‡"B“Ø(~ Bÿÿÿƒ|"< Bˆ<! B˜Ú~ Bÿÿÿƒ| B‡|"B ˆ<$ Bˆ<# BˆBƒ B†„<" Bçö\'~ \nBÿÿÿƒ| B‡|"Bˆ<& B† B€€àƒBˆ„<% BӌC~ Bÿÿÿƒ| B‡|"B ˆ<) Bˆ<( B† B€€ÿƒBˆ„<\' BÑ«~ Bÿÿÿƒ| B‡|"B ˆ<, Bˆ<+ B† B€€øƒBˆ„<* Bƒ¡V~ \rBÿÿÿƒ| B‡|"Bˆ<. B† B€€ÀƒBˆ„<- Bÿÿÿƒ B‡|"B\nˆ<1 Bˆ<0 B† B€€þƒBˆ„</ Bÿÿÿƒ B‡|"B\rˆ<4 Bˆ<3 Bÿÿÿƒ B‡|"<5 B† B€€ðƒBˆ„<2 Bˆ<6 Bÿÿÿƒ B‡|"B ˆ<9 Bˆ<8 BˆBƒ B†„<7 Bÿÿÿƒ B‡|"Bˆ<; B† B€€àƒBˆ„<: B‡" Bÿÿÿƒ|"Bˆ<? B ˆ<> B† B€€ÿƒBˆ„<< § §jAv­<= AÀ AÀ @ BÀ7 ;A°j$A >#A k"$   A(   AjB A”·( A  A j$ Z#A@j"$  B C  )7  )7  )7  )7 AÀ AŒ·( A@k$ °#" AÀkA@q"$  6¼@ AÀM@ AÀj"AA AH\r  A¼jB AH\r   ­ AH\r    AÀj"AAAÀAH\r  A¼jB AH\r   ­ AH\r  AðjAÀAH\r )ˆ7 )€7 )x7 )p7 A j! A k"AÁO@@  )¨7h  ) 7`  )˜7X  )7P  )ˆ7H  )€7@  )x78  )p70 AðjAÀ A0jBÀAA`AH\r )ˆ7 )€7 )x7 )p7 A j! A k"AÀK\r  )¨7h  ) 7`  )˜7X  )7P  )ˆ7H  )€7@  )x78  )p70 Aðj"  A0jBÀAA`AH\r E\r  ü\n AÀjA€$ A€€€€ A A€€€€x A€À A€ Ž@ -"A:kAÿqAöI\r ! !@ ! A™³æÌK\r AÿqA0k" A\nl"AsK\r  j! Aj"-"A:kAÿqAõK\r F\r A0F Gq\r  6 !  ñ AyqAF@@@@@@@@ @@ AM@@ ! @@@@@  j," AÐÿsAjAsAvA?q AÔÿsAjAsAvA>qr A¹j Aûk AŸÿjAsqAvqAÿqr Aj A:k AÐÿjAsqAvqAÿqr AÛk AÁk"\nAsqAv \nqAÿqr"\nAk A¾ÿsAjqAvAÿq \nr"\nAÿG\rA!\n E\r  ?@ Aj" O\r  !  \n Atj! AK\r Aj!   Aj" I!  Ak!  \rM\r \rj  v: \rAj!\r A!\n Aj" I\r  @@  j," A ÿsAjAsAvA?q AÒÿsAjAsAvA>qr A¹j Aûk AŸÿjAsqAvqAÿqr Aj A:k AÐÿjAsqAvqAÿqr AÛk AÁk"\nAsqAv \nqAÿqr"\nAk A¾ÿsAjqAvAÿq \nr"\nAÿF@A!\n E\r  ?@ Aj" O\r  !  \n Atj!@ AI@ Aj!  Ak!  \rM\r \rj  v: \rAj!\r A!\n Aj" O\r !   Aj" I!  !Að½AÄ6A!\n AK\r A !A! \n@ !  A tAsq@ !  @ Aq\r Av"\nE\r E\r  K!@ F@AÄ!  @ j,"A=F@ \nAk!\n   ?\rA! !  Aj! \n\r A! E\r O\r@  j,?E\r Aj" G\r !  A!  !  AÄ! O@ !  A! j-A=G@ !  Aj! \nAF@A!   F@  K!AÄ!   j-A=F\r Að½ 6  Aj!A! \r! @ @   j6   F\rAð½A6A! @  6   •@@@@@ AyqAG\r An"At!@ A}l j"E\r AqE@ Aj!  Av jAj!  M\r@ AO@ E@A!  A!A!  E@A!  A!A!  @  j- Atr! Ar!@ j  Ak"vA?q"AÇj AæÿjAv"\nAsq AÌÿjAv" q \n AÁjqr AÁÿjAsAvAßqr Aüj AÂÿjAvq Asqr AÁÿsAjAsAvA-qr: Aj! AK\r Aj" G\r E\rAÁÿ!A-! Aß   @  j- Atr! Ar!@ j  Ak"vA?q"AÇj AæÿjAv"\nAsq AÌÿjAv" q \n AÁjqr AÁÿjAsAvA/qr Aüj AÂÿjAvq Asqr AÁÿsAjAsAvA+qr: Aj! AK\r Aj" G\r E\rAÁÿ!A+! A/ ! j A ktA?q"AÇj AæÿjAv"Asq AÌÿjAv"q  AÁjqr   jAsAvqr Aüj AÂÿjAvq Asqr AÁÿsAjAsAvqr: Aj!  K\r @  O@ !   k"E\r jA= ü  Aj"  K k"@ jA ü  AÐA AçAß  ˜~#A@j"$@ AÁkAÿqA¿K@A! )PP@ (à"AO@ A@k" )"B€|7 )H Bÿ~V­|7H Aàj"N (àA€k"6à AO\r @  Aàj ü\n (à! A@k" )" ­|" 7 )H  V­|7H -ä@ B7X B7P Aàj!A!A€ k"@  jA ü N  )7  )7  )7  )7  ) 7  )(7(  )070  )878 @   ü\n AÀ A€ A@k$   Aê\nAÒ A²Aö A  j@ j" -   j-jk": Ar"j" -  j- AvAqjk": AvAq! Aj! Aj"AÀG\r ° #A k"$ (, Bˆ§s! (( §Ats! ($ Bˆ§s!\n ( §Ats! A@k!@  )x7˜  )p7  )`7ð  )h7ø  )p7à  )x7è A€j" Aðj Aàj  )ˆ7x  )€7p  )P7Ð  )X7Ø  )`7À  )h7È  AÐj AÀj  )ˆ7h  )€7`  )7°  )7¸  )P7   )X7¨  A°j A j  )ˆ7X  )€7P  )07  )87˜  )7€  )7ˆ  Aj A€j  )ˆ7  )€7  ) 7p  )(7x  )07`  )87h  Aðj Aàj  )ˆ78  )€70  )7P  )7X  ) 7@  )(7H  AÐj A@k  )ˆ7(  )€7  )70  )78  )7  )7(  A0j A j  )ˆ7  )€7  )7  )˜7  )7  )7  Aj   )ˆ7  )€7  ( s"\r6  ( s"6  ( \ns"6  ( s"6  ( s"6  (D \ns"6D  (H s"6H  (L s"6L Aj" AG\r @@@@ Ak (! (0! ( ! (`! (P!\n (! (4! ($! (d! (T! (! (8! ((! (h! (X! ( (< (, (\\ (lssss s \rs6     ssss s s6   ssss s s6    \nssss s s6  (! (0! ( ! (! (4!\n ($! (! (8! ((! ( (< (,ss \rs6  ss s6 \n ss s6   ss s6 (P! A@k(! (p! (`! (T!\n (D! (t! (d!\r (X! (H! (x! (h! (\\ (L (| (lsss6    sss6 \n \rsss6    sss6  E\r A ü A j$ ƒ #A k"$ (! (0! (! (! (4! (! (! (8! ( ! (! ( A&l¬ ~ $¬" ~| Al¬" #At¬"~|  ~|  ~|  ~|B†"B€€€|"B‡  ~  !¬"~|  ~|  ~|  \r~|B†|"B€€€|"B‡  \r~  ~|  \n~| ~|  ~|  ~|B†|" B€€€|"B€€€àƒ}> ~  ~|  \n~|  ~|  ~|B† B‡|" B€€€|" B€€€ðƒ}>  ~  \r~| \n ~|  ~|  ~|B† B‡|" B€€€|"B€€€ðƒ}> \n ~  ~|  ~|  ~|  ~|  &¬"~|B† B‡|" B€€€|"B€€€àƒ}>  B€€€ðƒ}  B€€€`ƒ} B‡|"B€€€|" Bˆ|>  B€€€àƒ}>  \n~  ~| ~|  ~|  ~|B† B‡|" B€€€|"B€€€ðƒ}>$  B€€€ðƒ}  B€€€`ƒ} B‡B~|"B€€€|"Bˆ|>  B€€€àƒ}> ­  j!@@ ("Aq\r AqE\r (" j!@@@ k"Aˆ¾(G@ ( ! AÿM@  ("G\rAô½Aô½(A~ Avwq6  (! G@ (" 6  6  (" Aj ("E\r Aj !@ ! "Aj! ("\r Aj! ("\r A6  ("AqAG\rAü½ 6  A~q6 Ar6  6  6  6  A! E\r@ ("At"(¤À F@ A¤Àj 6 \rAø½Aø½(A~ wq6  @ (F@  6   6 E\r  6 ("@  6  6 ("E\r  6  6 @@@@ ("AqE@AŒ¾( F@AŒ¾ 6A€¾A€¾( j"6 Ar6 Aˆ¾(G\rAü½A6Aˆ¾A6 Aˆ¾(" F@Aˆ¾ 6Aü½Aü½( j"6 Ar6 j 6 Axq j! ( ! AÿM@ (" F@Aô½Aô½(A~ Avwq6   6  6  (!  G@ (" 6  6  (" Aj ("E\r Aj !@ ! "Aj! ("\r Aj! ("\r A6   A~q6 Ar6 j 6  A! E\r@ ("At"(¤À F@ A¤Àj 6 \rAø½Aø½(A~ wq6  @  (F@  6   6 E\r  6 ("@  6  6 ("E\r  6  6 Ar6 j 6 G\rAü½ 6 AÿM@ AøqAœ¾j!Aô½("A Avt"qE@Aô½  r6   ( !  6  6 6 6 A! AÿÿÿM@ A& Avg"kvAq AtrA>s! 6 B7 AtA¤Àj!@@Aø½("A t"qE@Aø½  r6  6 6  A AvkA AGt! (!@ "(Axq F\r Av! At!  Aqj"("\r  6 6 6 6 (" 6  6 A6 6 6 ‰#AÀk"$ A(j" 4 B7T A6P B7\\ B7d B7l A6t Aðj"  AÀj" A° A!  (ðAk"6ð  (ÀAj6À (ô! (ø!\n (ü! (€! („!\r (ˆ! (Œ! (! (”! Aj"        j   Aàj"      („" k6T  (€" k6P  (|" k6L  (x" k6H  (t" \rk6D  (p" k6@  (l" k6<  (h" \nk68  (d" k64  (`" k60  A0j\r@ A E@   j6$   j6   j6   j6  \r j6  j6  j6  \n j6  j6   j6 A j" \r A E\r Aà  A j \r - Aq -AvF@ A (k6 A ($k6$ A ( k6 A (k6 A (k6 A (k6 A (k6 A ( k6 A (k6 A (k6 Aøj A! AÀj$  þ A€K@A0  A€O@Að½A06A  AA A jAxq A I"AÌj"E\r Ak!@ A?qE@ !  Ak"("Axq A?jA@qAk"AÀA  kAMj" k"k! AqE@ (!  6   j6    (AqrAr6  j" (Ar6   (AqrAr6  j" (Ar6   @ ("AqE\r Axq" AjM\r   AqrAr6  j"  k"Ar6  j" (Ar6   Aj "E@A0 6A A€  A„·(  Aü¶( -~ ­ ­B †„"BZ Aj  B}  ZA    ­ ­B †„  Z    ­ ­B †„  K   ­ ­B †„  t  ­ ­B †„  Ì   ­ ­B †„ Ar    ­ ­B †„ þ    ­ ­B †„ ü    ­ ­B †„ ý   ­ ­B †„ â   ­ ­B †„ ­ ­B †„ Ð   ­ ­B †„A€·(   ­ ­B †„ Aø¶(   ­ ­B †„ Aô¶(   ­ ­B †„  ã   ­ ­B †„C   ­ ­B †„    ­ ­B †„  ` -~ ­ ­B †„"BZ Aj  B}  YA    ­ ­B †„  Y    ­ ­B †„  J   ­ ­B †„   ð   ­ ­B †„   ñ   ­ ­B †„#   ­ ­B †„ Û   ­ ­B †„ Ü ²#Ak" 6  6A! A;@  / ( j- ( j-sr;  / Ar" ( j- ( j-sr; Aj"AÀG\r  /;  /Ak; A€Â/Av /Avs; /Ak á#Ak"$ A6 Aj"  A  )7 AÐj"BÀ Aj 0 Aj" Aü¶( AÀ   A€·( Aà¶B }BƒA€·(   A€·( Aà¶B }BƒA€·(  7H  AÈj"BA€·(  7H  BA€·(  A0j"A„·( A€  5! A@ E\r @ §"@ A ü A!    Aj AjèA! AjA  Aj$  ¬#A€k" $ A6 Aj"\n  A )7 A@k"BÀ Aj" \n0 A€j" Aü¶( AÀ   A€·( Aà¶B }BƒA€·(   \nè  A€·( Aà¶B }BƒA€·( 78  A8j"BA€·( 78  BA€·(  A„·( A€ @ B7 AjA  A€j$A J#A k"$A!@ BT\r   =\r Aj  B}  Y! A  A j$  O#A k"$ BðÿÿÿT@A!   =E@ Aj    J! A  A j$   è#A k"$ -: -: -: -: -: -: -: -: -: - : -\n:\n - : - : -\r:\r -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -!  -Aøq: AÀr  Aÿq:  ; ,A! -Aÿq - - - - - - - - - - - - - - - - - -\r - - -\n - - - - - - - - - -AsrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrAkA€qE@AA A ! A j$  Ž#AÀk"$A!@ gE\r H\r  2\r hE\r -: -: -: -: -: -: -: -: -: - : -\n:\n - : - : -\r:\r -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -: -!  -Aøq: AÀr  Aÿq: A j" Ž , -Aÿq - - - - - - - - - - - - - - - - - -\r - - -\n - - - - - - - - - -AsrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrAkA€q\rAA A ! AÀj$  A€€€ I#Ak" $A! Aj"\nB7 \nA6A \n        » \nW Aj$ å#A0k"$ @ Aæ @ -A$G\r -A7G\r -A$G\r -6"\nE\r A j AjU"E\r Aj U"E\r  k Aj!@A E\r  Ak"j" -A$G\r "@  k   " j"A-j" AæK\r K\r    B \nA€k­† ( ( AjA »\r @   ü\n  j"A$: AsAæj! Aj!A!@@ ! "AK@ !  Aj"AA k" AO" j! Aj"\n j-!A!A E\r  \nj-At r!A Aj"F\r  \nj-At r!A ! E\r  A?qA€j-: AF\r  AvA?qA€j-:  j Aj F\r AF\r  A vA?qA€j-: Aj E\r AF\r  AvA€j-: Aj "k! \r AjA A! E\r  AæjO\r A: ! A0j$  ½ (q! A!@ j A j"\n j-  j-s: Ar"j  \nj-  j-s: Aj! Aj" G\r E\r j A j j-  j-s: A jAÀ A  Aðj$A „~#Aðk"$ BR@  )7  )7  )7  )7 )! B7h  7`@ BÀZ@@ Aàj AF  -hAj":h  -i Avj":i  -j Avj":j  -k Avj":k  -l Avj":l  -m Avj":m  -n Avj":n  -o Avj:o A@k! B@|"B?V\r P\r A! A j Aàj AF §"Aq!A! BZ@ As"?k6  - 2s"6x   ,s" k6H   /s"6t   .s" k6D   1s"6p   0s" k6@   5s"6l   4s" k6<   7s" 6h  6s" k68   :s"6d  \n 8s"\n k64  >s" 6`   q!A!@ j A j" j-  j-s: Ar"j  j-  j-s: Aj! Aj" G\r E\r j A j j-  j-s: A jAÀ A  Aðj$A ‹~#Aðk"$ ­ ­B †„"\nBR@  )7  )7  )7  )7 )! B7h  7`@ \nBÀZ@@ Aàj AD  -hAj":h  -i Avj":i  -j Avj":j  -k Avj":k  -l Avj":l  -m Avj":m  -n Avj":n  -o Avj:o A@k! \nB@|"\nB?V\r \nP\r A! A j Aàj AD \n§"Aq!A! \nBZ@ Aq!A!@ j A j" j-  j-s: Ar"j  j-  j-s: Aj! Aj" G\r E\r j A j j-  j-s: A jAÀ A  Aðj$A ‹~#Aðk"$ ­ ­B †„"\nBR@  )7  )7  )7  )7 )! B7h  7`@ \nBÀZ@@ Aàj AE  -hAj":h  -i Avj":i  -j Avj":j  -k Avj":k  -l Avj":l  -m Avj":m  -n Avj":n  -o Avj:o A@k! \nB@|"\nB?V\r \nP\r A! A j Aàj AE \n§"Aq!A! \nBZ@ AE@ A€j"AAA  B    B    Aàj"A A j    Î! )X7 )P7 )H7 )@7 A  A  A $    ­ ­B †„   Í d~ ­ ­B †„!#A@j"$@ A j  @A!  A! A€¶ A jA\r     Z! A  A@k$    ­ ­B †„   Î .~ ­ ­B †„"BðÿÿÿZ@ Aj    K d~ ­ ­B †„!#A@j"$@ A j  @A!  A! A€¶ A jA\r     K! A  A@k$  x~@#Ak"$ ­ ­B †„"B€€€€T@ BR@ §!@ A: jA¸· AjA: Aj" G\r Aj$  AÂ\nA¨ AÆAÄ N#A k"$   A(  ­ ­B †„ Aj ­ ­B †„ A”·( A  A j$  ­ ­B †„ B A”·( (  ­ ­B †„  ­ ­B †„ A”·(  ­ ­B †„  A·(   ­ ­B †„  b   ­ ­B †„   8  ­ ­B †„  0   ­ ­B †„  c \n mA  ­ ­B †„  ­ ­B †„ 9  ­ ­B †„  O ª~ ­ ­B †„!\n ­ ­B †„! #Ak"$ @ B7 @ Aÿ: A!\r@@ \nBT\r \nB}" BïÿÿÿZ\r A j"BÀ A j" 0 Aàj" Aü¶( AÀ   A€·( A³B }BƒA€·( B7X B7P B7H B7@ B78 B70 B7( B7  -:  BÀ A 8 - !  -:  BÀA€·(  Aj" A€·( A³ \nB}BƒA€·(  7  Aj"BA€·(  \nB/|7  BA€·(  A„·( A€   §jA1@ A    A 8 -$ -s:$ -% -s:% -& -s:& -\' -s:\' -( -s:( -) -s:) -* -s:* -+ -s:+ ó@ AqE@ AE\r  )7ø  )7ð  )7è  )7à  )$7€ Aàj" B( b )ø7 )ð7 )è7 )à7 )€!\n A6 \n7$ @  7 A!\r E\r  : Aj$ \r   Û~ ­ ­B †„!\n ­ ­B †„! #A€k"$ @ B7 \nBïÿÿÿT@ Aj"BÀ A j" 0 AÐj" Aü¶( AÀ   A€·( A³B }BƒA€·( B7 B7H B7@ B78 B70 B7( B7 B7  :  BÀ A 8  BÀA€·(  -: Aj"  \n A 8   \nA€·( A³ \nBƒA€·(  7  Aj"BA€·(  \nB@}7  BA€·(   \n§j"A„·( A€ -$ -s:$ -% -s:% -& -s:& -\' -s:\' -( -s:( -) -s:) -* -s:* -+ -s:+ ó@ AqE@ AE\r  )7è  )7à  )7Ø  )7Ð  )$7ð AÐj" B(  b )è7 )à7 )Ø7 )Ð7 )ð! A6 7$ @  \nB|7 A€j$A   1~ ­ ­B †„"BðÿÿÿZ@ Aj    JA  nA P~ ­ ­B †„! Aœ A\n@E@  A[  A’ A @E@  A[  Að½A6A N~ ­ ­B †„! Aœ A\n@E@  Ï  A’ A @E@  Õ  Að½A6A Q~ ­ ­B †„! ­ ­B †„! @@@ Ak   Ð     Ö s~ ­ ­B †„! ­ ­B †„! ­ ­B †„!\r@@@ \nAk   \r A×    \r AÑ  Að½A6A   ­ ­B †„Ï - ­ ­B †„  ­ ­B †„  ­ ­B †„ \nÑ  ­ ­B †„ A[  ­ ­B †„ A[   ­ ­B †„Õ ´ (Aÿÿÿq6 (AvAƒþÿq6 (AvAÿÿq6 ( AvAÿÿÀq6 ( ! B7 B7 A6$ AvAÿÿ?q6 (6( (6, (60 (! A:P B78 64A   ­ ­B †„ ­ ­B †„ Ö - ­ ­B †„  ­ ­B †„  ­ ­B †„ \n× l#Aðk"$ B7( A ³)7 A¨³)7 A°³)7 A¸³)7 Aj"  ­ ­B †„!  * Aðj$A   ­ ­B †„! ä#"AÀkA@q"$  (Aÿÿÿq6@  (AvAƒþÿq6D  (AvAÿÿq6H  ( AvAÿÿÀq6L ( ! B7T B7\\ A6d  AvAÿÿ?q6P  (6h  (6l  (6p (! A: B7x  6t A@k"  n  A0j"m 5 $    ­ ­B †„    Ý x~#" AÀkA@q"$A! ­ ­B †„" B0Z@ A@k"AAA  B    B    A j"A A j B }   ³! $  ¿~ ­ ­B †„! #" A€kA@q"$A! A@k" A j">E@ A€j"AAA  B    B    Aàj"A A j    ´! )X7 )P7 )H7 )@7 A  A  A $    ­ ­B †„   ³ H~ ­ ­B †„!#A k"$A!   =E@     Y! A  A j$    ­ ­B †„   ´ .~ ­ ­B †„"BðÿÿÿZ@ Aj    J H~ ­ ­B †„!#A k"$A!   =E@     J! A  A j$  }#A k"$ A@k" A +   ­ ­B †„  Aàj" Aj" BÀ   AÀ °!  AÀ1 A j$A  Fr ]#Aàk"$  A +   ­ ­B †„  A j" AÐj" BÀ   AÀ Aàj$A y#Ak"$ A j" A -   ­ ­B †„!  Aðj"* Aˆj" B !  * A  :  -^: -?:  -_: AÀA! $   ž#"! A€kA@q"$  "@A! Aàj"  E@ A€j"AAAÀ  B   A   B    B    A j"AÀ A€  - :  " -@:  -!: -A:  -": -B:  -#: -C:  -$: -D:  -%: -E:  -&: -F:  -\': -G:  -(: -H:  -): -I:  -*:\n -J:\n  -+: -K:  -,: -L:  --:\r -M:\r  -.: -N:  -/: -O:  -0: -P:  -1: -Q:  -2: -R:  -3: -S:  -4: -T:  -5: -U:  -6: -V:  -7: -W:  -8: -X:  -9: -Y:  -:: -Z:  -;: -[:  -<: -\\:  -=: -]:  ->: -^:  -?: -_: AÀA! $    A B AA` AŒ·( \n   A£ A¶ Aû AÎ #A€k"$ A j" A +   #  AÀj.  )Ø7  )Ð7  )È7  )À7  \n  u AÄ W#A@j"$@ A j  @A!  A! Aж A jA(\r    ½! A  A@k$  W#A@j"$@ A j  @A!  A! Aж A jA(\r    ¾! A  A@k$  \n       Æ \r   Ç  È Ê  Ë A® :~ ) ! )(! )0! )87 7 7 7A :~ )! )! )! )7 7 7 7A ‹@@@ BÀT\r B@|"B¿ÿÿÿV\r  A@k"  ArE\r E\r §"E\r A ü A! E\r B7A @  7 A! E\r §"E\r  ü\n  ˆ#Ak"$ A@k! §"@   ü\n A! Aj   As@ )BÀR@ @ B7 A@k"@ A ü A!  E\r  B@}7 Aj$      AsA m#A@j"$  B C  -Aøq:  -A?qAÀr: )7 )7 )7 )7 AÀ A@k$A ç\n\'~#A€k"$A!@ H\r Aàj" ‘\r hE\rA! A (¬"k6$ A (¨"k6 A (¤" k6 A ( "k6 A (œ"\nk6 A (˜"k6 A (”" k6 A ("k6 A (Œ" k6 A (ˆ"k6  3  ("\r¬" \nAt¬""~ 4" ¬"~| ("¬" ¬"~| ( "¬" At¬"#~| ("¬" ¬"~| ("¬"$ At¬"%~| ("¬". Aj¬"~| ("Al¬" At¬"&~| ( "Al¬" ¬"~| ($"Al¬" At¬"\'~|  ~  \n¬"(~|  ¬")~|  ~|  ¬"*~|  $~| Al¬" ¬"+~|  ~|  ¬",~|  ~|  #~  ~|  ~|  %~|  ~| Al¬"- &~|  ~|  \'~|  ~|  "~|"0B€€€|"1B‡|"2B€€€|"3B‡|" B€€€|"!B€€€àƒ}>H   %~  ~|  ~| Al¬" &~| Al¬" ~| \' -~|  ~|  "~|  ~|  #~|  ~  *~| Al¬"/ +~|  ~| ,~|  -~|  (~|  ~|  )~|  ~| \rAl¬ &~  ~|  /~|  \'~|  ~| " -~|  ~|  #~|  ~|  %~|"/B€€€|"4B‡|"5B€€€|"6B‡|" B€€€|"7B€€€àƒ}>8   ~  ,~|  (~|  ~|  )~|  $~| * .~| ¬" ~|  +~|  ~| !B‡|"! !B€€€|"!B€€€ðƒ}>L   ~  )~|  *~|  ~| +~|  -~|  ,~|  ~|  (~|  ~| 7B‡|" B€€€|"B€€€ðƒ}><   \'~  ~|  ~|  "~|  ~| # $~|  .~|  %~| ¬" ~|  &~| !B‡|" B€€€|"B€€€àƒ}>P  2 3B€€€ðƒ} 0 1B€€€`ƒ} B‡|"B€€€|"Bˆ|>D   B€€€àƒ}>@   ~  +~|  ,~|  ~|  (~|  $~| ) .~|  ~|  *~| ¬ ~| B‡|" B€€€|"B€€€ðƒ}>T  5 6B€€€ðƒ} / 4B€€€`ƒ} B‡B~|"B€€€|"Bˆ|>4   B€€€àƒ}>0 A0j\r A€j$  A‚ 4#A k"$A!   E@ A€¶ A! A j$  A„ A€€€€ A€€€À A A’ Ï~A!@ AÀK\r AÁk"A@I\r@ A E@ AÿqA¿K@~ E@BŸØùÙ‘ڂ›!Bхšïúϔ‡Ñ  )BŸØùÙ‘ڂ›…! )Bхšïúϔ‡Ñ… !\n~ E@BùÂø›‘£³ðÛ! Bëú†Ú¿µöÁ  )BùÂø›‘£³ðۅ! )Bëú†Ú¿µöÁ… ! A@kAA¥ü 78 70 7( \n7 Bñíôø¥§ý§¥7 B«ðÓô¯î¼·<7 B»Îª¦ØÐë³»7 ­Bˆ’÷•ÿÌù„ê…7A   E\r  #A€k"$@ AÁkAÿqA¿M\r E\r AÁkAÿqA¿M\r~ E@BŸØùÙ‘ڂ›!Bхšïúϔ‡Ñ  )BŸØùÙ‘ڂ›…! )Bхšïúϔ‡Ñ… !\n~ E@BùÂø›‘£³ðÛ! Bëú†Ú¿µöÁ  )BùÂø›‘£³ðۅ! )Bëú†Ú¿µöÁ… ! A@kAA¥ü 78 70 7( \n7 Bñíôø¥§ý§¥7 B«ðÓô¯î¼·<7 B»Îª¦ØÐë³»7 ­ ­B†„Bˆ’÷•ÿÌù„ê…7 AA€ü @   ü\n Aàj A€ü\n A€6à A€ A€j$A   \r A!  = AyqAG@ An"A}lj"AjA AqA Aq AtjAj £ @@@@@@@@ @ \rA!A!@  j-" AßqA7kAÿq" Aöÿj AðÿjsAv"\r A0s" AöÿjAv"rAÿqE\r  \nM\r \rq qr! @ AÿqE@ At!  \nj  r: \nAj!\n As! Aj" G\r !  A E\r  @@@@@  j-" AßqA7kAÿq"Aöÿj AðÿjsAv" A0s"\rAöÿjAv"rAÿqE@ Aÿq\r A!  ?E\r Aj" !  K\r  \nM\r  q \r qr" AÿqE\r \nj  r: As! \nAj!\n  @  j-" AßqA7kAÿq" Aöÿj AðÿjsAv"\r A0s"AöÿjAv"rAÿqE@  ?E\r  Aj"K\r   \nM\r \rq  qr At!Aÿ!    K!  A!  A! Aj" I\r  Að½AÄ6A! AÿqE\r Að½A6A! Ak!A!\n  \nA !\n Ak! \r  G\r     j6   Að½A6A @  \n6 @ AþÿÿÿK\r  AtM\rA! @ Atj"  j-"Aq"At AöÿjA€²qjA€®jAv:  Av" AöÿjAvAÙqjA×j: Aj" G\r AtA jA:   Aà? ­~#A€k"$ A: Aà?M@ A O@ ­! A !@ ! A0j" A - @  jA kB   A0j"     AjB   jB  -Aj: ! A j" M\r Aq"@ A0j" A - @  jA kB   A0j"  ­   AjB   Aj"B @ j  ü\n AjA  A0jAÐA  Að½A6A A€j$ 8#AÐk"$   -   ­   B A AÐj$A  B AA  ­ \n  - An A A4 •~#A0k"$  )7  )7  )7  )7  )$7  B( A j b )7 )7 )7 )7 ) ! A6 7$ A0j$ -~  A A6 )! B7, 7$A 3~ A  A A6 )! B7, 7$A à  ß  á â ã ä  å "#A@j"$ AÀ ˆ A@k$ ˆA e#A k"$A!@ A€j" :\r Aàj" :\r   A j"  Q AÀj" R GA! A j$  e#A k"$A!@ A€j" :\r Aàj" :\r   A j"   AÀj" R GA! A j$  #A k"$  : A j$E !#A k"$ A  ‰ A j$ ‰A s#A k"$A!@ A€j" 2\r IE\r Aàj" 2\r IE\r   A j"  Q AÀj" R ,A! A j$  s#A k"$A!@ A€j" 2\r IE\r Aàj" 2\r IE\r   A j"   AÀj" R ,A! A j$  @#A k"$@ gE\r H\r  2\r IE\r hAG! A j$  AÀÿ º~#Aðk"$ A: AÀÿM@ AÀO@ ­! AÀ!@ ! AÐj" AÀ+ @  jA@jBÀ# AÐj"  #  AjB#  j.  -Aj: ! A@k" M\r A?q"@ AÐj" AÀ+ @  jA@jBÀ# AÐj"  ­#  AjB#  Aj". @ j  ü\n AjAÀ AÐjA A  Að½A6A Aðj$ AÀ 8#A k"$   +   ­#  . A A j$A  . AA  ­# ¥#Ak"A6 A!  AkK  Ak"j!A!A!A!@  ( "A  k-" A€sAk Ak AkqqAvAq"k qr6  r!  r! Aj" G\r  ( k6 AÿqAkA &@AŒÂ("E\r ("E\r !   ­A ¬ 0 Ú#Ak"$@@ E@A!    Ak"qE@  As"q  As!   pk " O\r   j"M@A!  @ Aj6  j!A! A:A!@ k" - -q  sAkAv"A€qr:  - r: Aj" G\r Aj$   M#Ak"$ AO@A k p!@ A:A¸· AjA" I\r  p! Aj$  (#Ak"$ A:A¸· AjA Aj$ AÁ Ç#A@j"$ BR@ B²ÚˆËÇ®™ë7 BåðÁ‹æ™37  (6  (6  (6  ( 6  (6  (6$  (6( (!  60  6,  (64  (68  (6<   d AÀ A@k$A ½#A@j"$ BR@ B²ÚˆËÇ®™ë7 BåðÁ‹æ™37  (6  (6  (6  ( 6  (6  (6$  (6( (!  70  6,  (68  (6<   d AÀ A@k$A Ø#A@j"$ BR@ B²ÚˆËÇ®™ë7 BåðÁ‹æ™37  (6  (6  (6  ( 6  (6  (6$  (6( (! A60  6,  (64  (68  (6< §"@ A ü  d AÀ A@k$A Î#A@j"$ BR@ B²ÚˆËÇ®™ë7 BåðÁ‹æ™37  (6  (6  (6  ( 6  (6  (6$  (6( (! B70  6,  (68  (6< §"@ A ü  d AÀ A@k$A %A„Â(AçAðÁAA„ÂA6A §~#A k" $   A°jïA! AK@A !@  j A°jî "A j" M\r  Ar"O@@  j"(! (!\r (! ( ! )ˆ7ˆ )€7€ )ð7ð )ø7ø )€7à )ˆ7è Aj" Aðj Aàj )˜7ˆ )7€ )à7Ð )è7Ø )ð7À )ø7È  AÐj AÀj )˜7ø )7ð )Ð7° )Ø7¸ )à7  )è7¨  A°j A j )˜7è )7à )À7 )È7˜ )Ð7€ )Ø7ˆ  Aj A€j )˜7Ø )7Ð )°7ð )¸7ø )À7à )È7è  Aðj Aàj )˜7È )7À )€7Ð )ˆ7Ø )°7À )¸7È  AÐj AÀj  (œs6¼ (˜s6¸ \r (”s6´  (s6° "Aj" M\r Aq" @A k"@ A j rA ü @ A j  j ü\n ( ! (¤! (¨! (¬! )ˆ"!7ˆ )€""7€ )ð7° )ø7¸ "7  !7¨ Aj"\r A°j A j )˜7ˆ )7€ )à7 )è7˜ )ð7€ )ø7ˆ \r Aj A€j )˜7ø )7ð )Ð7p )Ø7x )à7` )è7h \r Aðj Aàj )˜7è )7à )À7P )È7X )Ð7@ )Ø7H \r AÐj A@k )˜7Ø )7Ð )°70 )¸78 )À7 )È7( \r A0j A j )˜7È )7À )€7 )ˆ7 )°7 )¸7 \r Aj   (œs6¼  (˜s6¸  (”s6´ (s6° @ E@A!A! AI\r@ Aj  j A°jê "Aj" M\r  A!A! AI\r@ j  j A°jê "Aj" M\r Aq"@ j Aj !  j! A°j! #Aðk"\n$ \nAÀj j!A k"E"E@ A ü E"E@ \nAÀj  ü\n (! A@k"(! (P! ( ! (0! (! (D! (T! ($! (4! (! (H! (X! ((!\r (8! \n(À! \n(Ä! \n(È! \n (, (buflen <= BLAKE2B_BLOCKBYTES$argon2i$v=$argon2id$v=curve25519ed25519hmacsha512256curve25519xsalsa20poly1305sodium_bin2base64siphash24sha512xsalsa201.0.20$argon2i$$argon2id$$7$¶xYÿ…rÓ½nÿ\nj)À˜èyÿ¼< ÿ™qÎÿ·âþ´\rHÿ° þÓɆÿži5` ½§×ûÿŸL€þjeáÿü’ ®A\r \'Yñ²þ\nå¦ÿ{Ý*þÔR€0Ñówy@ÿ2ãœÿnÅgAÀ\r À…;Œ½ñ$ÿø%Ã`Ü7·L>ÿÃB=2L¤á¤LÿL=£ÿu>Q‘@ÿvA¢sÖÿŠ.|æôÿ\nŠ4¸ôL)¾ôÿ{ªzÿbDyՓVeÿ¡g›ŒYCÿïå¾C µÆð‰þîE¼ÿC—î*lÿåUq2D‡ÿj 2gÿP¨#˜ÿ¨¹8YèÿeÒü)úG̪Oÿ.ïÿPMï½ÖKÿù&PLÿ¾UuV䪜ØÐÃϤÿ–BLÿ¯áÿPbLÛòÆ¢r.ژ›+ñþ› hÿ3»¥¯BT ÷:#A5þEì¿-†õ£{Ý nÿ4¥ºÖGé°`òï69YŠSTÿˆ d\\Žxþh|¾µ±>ÿú)U˜‚*`üö——?þï…> 8œ-§½ÿŽ…³ƒVÓ»³–þúªÿÒ£N%4—cMîœÕÿÕÀÑI.TA)6ÎOɃ’þªoÿ±!2þ«&ËÿN÷tÑݙ…€²:,É\';½ü1åÒu»uµ³¸rÛ0^“õ)8}\rÌþô­w,Ý þTêù Æì~êÿ/c¨þªâ™ÿf³ØâzÿzB™þ¶õ†ãäÖ9ëÿØ­8ÿµçÒw€ÿ_ˆÿn~3©·ÿ‚bþE°^ÿtãÙò‘ÿÊ­i\'ÿ.¯Eä/:ÿ×àEþÏ8Eÿþ‹ÿÏÔÿÊ~ÿ_Õ`ÿ °!ÈÏÿñ*€þ#!Àÿøåāxûg—ÿ4pÿŒ8Bÿ(âõÿÙF%þ¬Ö ÿHC†’ÀÖÿ,&pD¸KÿÎZû•덵ª:tôï\\f­bé‰`1Ë›”” ÿÓz "†ÿÛ̈†)ÿàS+þU÷mþ©ˆ0îwÛÿç­ÕÎþþºÿ~ o*Ho4ìþ`?“¿þÍNÀÿjí»ÛL¯ó»þiY­UY¢ó”vÑþ!ž ‹£.ÿ]F(l*ŽþoüŽÿ›ß3å§ÿIü›ÿ^t ÿ˜ Úÿœî%ÿ³êÏÿųÿš¤áÄh\n#þÑÔòÿaýÞþ¸eåÞ¤ˆ‡ÿόþ’aóÀþÉT!ÿo\nNÿ“Q²ÿ¡î×ÿ!5×ÿ)µÐÿ狝³ËÝÿÿ¹q½â¬ÿqBÖÿÊ>-ÿf@ÿN®þ…uDÿA  AÀ °&蕏²\'°EÃô‰òï˜ðÕ߬ÓÆ39±8ˆmSüÇjp=MØOº< v\rg* Sú,9ÌÆNÇýw’¬zìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÓõ\\cX֜÷¢ÞùÞAÿ ¬ñý@] j?9ÓWþ ÒºX¼tþAØÿÈ=ØB”ÿû\\$²áÿ…;Œ½ñ$ÿø%Ã`Ü7·L>ÿÃB=2L¤á¤LÿL=£ÿu>Q‘@ÿvA¢sÖÿŠ.|æôÿ\nŠ4¸ôL)¾ôÿ{ªzÿbDyՓVeÿ¡g›ŒYCÿïå¾C µÆð‰þîE¼ÿêq<ÿ%ÿ9ÿE²¶þ€Ð³v}þÖÿñ2MÿUËÅÿӇúÿ0dÿ»Õ´þXiSўsb®<þ«7nÿÙµÿ¼ª’œfþWÖ®ÿrz›é,ªïÖìê¯Û1j=ÿBÐÿjnÿQêÿ×kÀÿC—î*lÿåUq2D‡ÿj 2gÿP¨#˜ÿ¨¹8YèÿeÒü)úG̪Oÿ.ïÿPMï½ÖKÿù&PLÿ¾UuV䪜ØÐÃϤÿ–BLÿ¯áÿPbLÛòÆ¢r.ژ›+ñþ› hÿ² üþdnÔ§éï£ÿ—e’\nÿþžFþGùäX2D: ÿ¿hBÿÀ2Uÿ³Šÿ&úÉsP ƒæq}X“ZDÇýLžÿvqúþBK.æÚ+åxº”D+ˆ|î»kÅÿT5öÿ3tþÿ3»¥¯BT ÷:#A5þEì¿-†õ£{Ý nÿ4¥ºÖGé°`òï69YŠSTÿˆ d\\Žxþh|¾µ±>ÿú)U˜‚*`üö——?þï…> 8œ-§½ÿŽ…³ƒVÓ»³–þúªÿDqÿÞº;ÿBñEHVœlþ7§Ym4Ûþ\r°ÿÄ,jÿï•Gÿ¤Œ}ÿŸ­3)ç‘>!Šo]¹SEs.a—ÿä1ÙâqKêþÁ™ ÿ¶0`ÿ\r€ÃùþEÁ;„%Qþ}j<Öð©¤ãBÒ£N%4—cMîœÕÿÕÀÑI.TA)6ÎOɃ’þªoÿ±!2þ«&ËÿN÷tÑݙ…€²:,É\';½ü1åÒu»uµ³¸rÛ0^“õ)8}\rÌþô­w,Ý þTêù Æì~êÿ>݁YÖÿ7‹þD¿ÿ̲#ÃÙ/3Î&ö¥ÎþžW$Ù4’ÿ}{×ÿU<ÿ«\rÚõXþü#<7Ö ÿ…e8à þ“@ê‘¢rv}øüúe^Äÿƍâþ3*¶‡ þm¬ÒÿÅìÂñAš0œ/ÿ™C7ÿÚ¥"þJ´³ÚBGXzcÔµÛÿ\\*çÿïšõM·ÿ^QªÕØ«]G4^ø—¡þÅÑBÿ®ôþ¢0·1=ðþ¶]ÃÇäÈÿ‰-íÿl”ZOíÿ\'?Mÿ5RÏŽvÿeè\\CÈXÿ!¨Šÿ•áHÑÿ,õ¨ÜíÿÓiþî݀PõþoþÞ_¾ß ñ’LÔÿlÍhÿ?u™E0#äoÀ!ÁÿpÖ¾þs˜—fX3JøâǏþÌ¢eÿÐa½õhæöÿ”EnX4þâµYÿÐ/Zþr¡Pÿ!tø³˜WÿE±Xîÿ: qME;y4ÿ˜îS4Áç\'éÿÇ"ŠÞD­[9òþÜÒÿÀöþ—#»Ãì¥o]ÎÔ÷…š…Ñÿ›ç\n@N&zùdaÿ>[ùø…MÅ?¨þt\nR¸ìqþÔËÂÿ=düþ$Êÿw[™ÿOgg«þí×oÿØ5Eïð•Ýÿ&áÞèÿ´þvR…ÿ9ѱ‹è…ž°.þÂs.X÷åg¿ÝÞ¯þ•ë,—äþÚigŽUҕ¾ÿÕA^þu†àÿRÆuÝÜ£e$År%h¬¦þ ¶QH¼ÿa¼ÿE\nǓ‘ÿ sAÖ¯ÿÙ­ÑP¦÷åþ§·|ÿZÌþ¯;ðÿ )øl(3ÿ±Ãþ–ú~Š[Ax<ÞÿõÁïÖ½ÿ€Pš¢MÜkêÍJÿ6¦gÿtH ä^/ÿÈÿ#ÖYÿ=°ŒÿSâ£ÿK‚¬€&_‰˜ÿ×|ŸO]”RþÂûÿ(ÊLÿû~àc>þÏáÿ`D̺ÿƒçÿ*€þ4Û=þfËH ÿº¤Õzw…ò‘Ðüèÿ[Õ¶ÿúþù×J¥o« ßå{"\\‚ÿM›-Ëÿ;àNˆ÷ly Oú½ÿ`ãüþ&ñ>>®}ÿ›o]ÿ\næÎaÅ(ÿ19þAú\rû–ÿÜmÒÿ®¦þ,½ë#“ÿ%÷ÿHÿgkÿ÷Z5,*ð;?XN$q§´¾GÁÿǞ¤ÿ:¬M! A?™M!ÿ¬þfäÝÿWþ’)VÿŠÌïþlÿ»ò‡ÒÐD-þI`>Q<ÿª$ÿù#Õm6ÿ#áÿê=8ÿ:ُ|Xì~BÑ&·ÿ"îÿ®‘f_ÓÄ™þ.Tèÿu"’çúJÿ†d\\»ÃÿªÆpx*ÑFCQ¨d©­ k#u>`;ÿQ E‡ï¾ÿÜü£Ü:ÿ‰‰¼ÿSfm`LêÞÒÿ¹®Í<žÕÿ\rñÖ¬Œ]hòÀœû+uáQžèÚâËé—ÿu+ÿò/ÿ!‰û,þõÿ·Ö}þ(y•ºžÕÿYãEXþˇáɮ˓G¸y)þ^NàÖðþ$´û‡ç£ŠÔÒùtþX»1þ>ÿŸLÓÖ3RmuäþgßËÿKüšGÜÿ\r[¨`ÿµ¶…ú37êêÔþ¯?ž\'ð4ž½$ÿÕ(U ´÷ÿfTaÿEޔ‹zÿÜÕëèËÿy9“ãš5“HáR†0þS<ÿ‘H©"gïÆé/tÿ¸j ÿ·S$°æ"gHÛ¢†õ*ž •`þ¥,ÊïHþז*B$„ׯV®VÿŜÿ1è‡þg¶Rý€°™²zõú\n첉j„()2˜ÿ|i&æ¿K+ª,ƒÿ,\rÿíÿ›ŸmdÿpµÿhÜl7Ӄc Õÿ˜—‘ÿîŸa›!lQg>m"ÿú›´ GÃÿ&F‘Ÿ_õEåeˆðOàNnyÿø¨|»€÷“ëþO „F: µ£ÿO‰…ÿ%ª ÿóUÿ°ç×ÿ̖¤ÿï×\'ÿ.Wœþ£Xÿ¬"èB,fÿ6)þìcWÿ){©4r+u†(›†çÏ[þ#„&ÿf}þ$ã…ÿvqÿ\r|˜`JX’Îÿ§¿Üþ¢Xÿ¶du4Q.j EPÉÑö¬ 0àÓXtâŸzb‚Aìêáâ ÿÏâ{YÖ;p‡XZôËÿ1 &lºYpe.ÌÿÌ-þOÿÝÿ3Iÿ*eÿñÊ ãi2ìO4ÅÿhÊдeÅNÿbMË)¹ñ#Á|#›ÿÏ5À }£ùž¹ÿƒ0]oÿ=yçEÈ$ÿ¹0¹ÿoîÿ\'2ÿc×£ÿWÔÿ¤“ÿ€#lßnÿÂL²Je´ó/0®+ÿR­ý6rÀÿ(7[×l°ÿ 8àéLÑbÊþò},Á]þ˱‡°pGÕÿÎ;°CÕþ*7Ðÿ×næ³§ÿ6ü¾Ý̶þ³žAÿQÂڟªßà ÿ&Åb¨¤%X¤ºn`$†êòåúyòþpÿ/^ ïÿQ†™þÖý¨ÿC|àõ_J,þmÜÿ²YYü$LÆ.ÿLMo†êˆÿ\'^¹HêÿFD‡ÿçfþM猧/:”avÿá¦Îÿn²Öÿ´ƒ¢á\rÚNÿr™!bh̯ru§ÎKÊÄS:@CŠ/oÄ÷€ÿ‰ààþžpϚdÿ†%kƀOÿћÿ£þ¹þ<óÛpþÙAÈ\rtþ{<Äÿà;¸þòYÄ{Kþ•ÎEþ0çtßÿÑ AÈPb%¸þ”?"‹ðAÿِ„ÿ8&-þÇxÒl±¦ÿ ÞÜ~wþ¥k ÿRÜøñ¯ˆÿ©ŠT ‰NÿâvPÿ4„ÿ?`‹ÿ˜ú\'¼›è3–þ(èÿðå ÿ‰¯ÿKIaÚÔ ‡¢k¹Õùkÿ(òFÛȝ\rCRPÿÄùÿ‘•2H’^L”ûAÀ¸ÔÉÿ{é¢÷­H¢WÛþ~†YŸ þ¦iIäqx·ÿB£mԏ ÿŸç¨ÿ€Z9:þY4\nÿý£‘Òÿ\nU.µgˆ þ~¼Ñÿ"#o×ÛÿÔ ÖþevèŅÿß§mÿíPVÿF‹^žÁ¿›3ÿ¾sN‡Ïÿù\nµ}é_¬\rþªÕ¡ÿ\'ìŠÿ_]Wÿ¾€_}Φ–ŸãžÿΞxÿ*€e²xœmƒÚ,þ÷¨ÎÿÔppäÿZ%ÅÞlþÏSÿ Zóÿóô¬XsÿÍtz¿æÁ´d Ù%`ÿšNœëêÿβ²ÿ•Àû¶ú‡öi|Ámÿҕÿ©ª`nÿu 2{(ÿÁ½c"ã 0PFþÓ3ì-zõþ,®­%éÿžA«zE×ÿZPÿƒj`þãr‡Í1wþ°>@ÿR3ÿñóÿ‚\rþ€Ùóÿ¢þZvñöÆöÿ7vÿȟ£ŒkyU¡vÿ&•œ/î ¦¦Kbµÿ2JB/‹áŸLŽÿî¸ Ï5ÿ·Àº« ®ÿ¿LÝ÷ªÛ¬2þÙ éË~Dÿ·\\0§·A1þ?þªÿ;àþ0?ÿN‚þ(Ãú„pþ#ːh©¨Ïýÿh(&þ^äX΀ÿÔ7zÿßêßÅýµµ‘fvì™$ÿÔÙHÿ&þŠ>>˜ŒæÜcÿÔÿ”Éçô{ þ«Ò3:%ÿÿÿô·‘þò¦J„yØ)_Ãrþ…—ÿœâçÿ÷Mÿö”sþá\\QÿÞPöþª{YÿJǍÿŠˆFÿ]K\\ݓ1þ4~âå|. µÍ@4ƒþ—žÔƒ@NΫ拿ýnþg÷§@((*¥ñÿ;Käþ|ó½ÿÄ\\²ÿ‚ŒVÿY8“ÆÿËøžþ¢ ¬â‚*ÿ§ÿ$$ÿ0X¤þ¨ªÜbGÖ[ÐOŸLɦ*ÖÿEÿÿ€}ÿ¾Œ’SÚÿ×îHz5½t¥ÿTBÿÖÐÿÕn…è,žçE¢@Èþ[:h¶:»þùäˆË†LþcÝéKþÖþPEš@˜øþìˆÊÿi™þ•¯#ÿ|yéºúÆþ„勉P®ÿ¥}DÊ”þëïø‡¸ve^ÿzHFþE‚’ÞøEvÿR×þ¼Jÿå§ÂþuBÿAê8þÕœ—;]þ-ÿº~¤ÿ ïrcÛ4ÿc`¦þ>¾~ÿlÞ¨Kâ®æâÇÿ(kþŠšÇÿ^ßâÿ«&£±þ-vÿÞѾQÿv{è\rÕeÿ{7{þö¥2cLÿŒÖ ÿaACÿ ®VN@÷` ‡CB7óÿ“Ì`ÿ!ÿb3S™ÕÐÿ¸6ÿÚ 1Cöþ•Hÿ\rH*OÖ*&‹ÿ•»¤„õT¸þxÆhÿ~Ú`8uêÿ\rÖþD/\nÿ§š„þ˜&ÆB²YÿÈ.«ÿ\rcSÿÒ»ýÿª-*ŠÑ|Ö¢ æœf$pþ“C4×{ÿé«6ÿb‰>÷Ú\'ÿçÚì÷¿ÒT¥°\\ÿÔ^ÿJãX(™ƓÿÎCõþðÚÿ=Õÿa·jÃèëþ_VšÑ0ÍþvÑñÿðxßÕŸ£“ÿ\rÚ]UDþFPÿ½ŒRaþÿcc¿ÿ„T…ÿkÚtÿpz.i  ?ÿDÞ\'Øý\\±iÍÿ•ÉÃ*á ÿ(¢s Q¥ÚÛ´þ’üÿ’Ïá´‡`£p± Ûÿ… Áþ+N2Aqy;Ùÿn^p¬o`$U{G–ÿÐI¼À §Õõ" æ\\¢Ž\'ÿ×ZbaY^OÓZð_Ü~f°â$àþ#çèsUS‚ÒIõÿ/rÿDAÅ;H>ÿ·…­þ]yvÿ;±QÿêE­ÿ̀±Üô3ôÑIÞMÿ£`þ–•ÓžþË6‹¡à;mÿÞ*-ÿВfÿ쎻2Íõÿ\nJYþ0OŽÞL‚ÿ¦?ì \rÿ1¸ô»qfÚeý™9¶þ –*ƒíñ8ŒD[¤¬ÿN‘ºþC4ÍÛρms6:øxÿ³ÿÁìBÿÿÿýÀ0ÿEÙÖÿ@e’ß}#ÿëI³ÿù§âá¯\na¢:jp«T¬ÿ…Œ²ÿ†õŽaZ}ÿºË¹ÿßMÿÀ\\jÆsÿ٘ø«²xÿä†5°6Áúû5Õ\nd"Çj—ôþ¬àWÿíÿýUÿ\'tÿ¬hdûFÿÔЊÿýÓú°1¥L{ÿ%Ú ÿ\\‡\n~rÿFàÿ÷ùD<ñÒ½ÿÃÙ»—q—\\®ç>²ÿÛ·á!ÿ͵P9¸øÿC´ÿZ{]ÿ\'¢ÿ`ø4ÿTBŒ"äÿЦn¼›š¾ÆÿÖP;ÿHâÇÙùè¡G•¾ÉÙ¯_þq“CÿŠÇÿ̶SÎæ›ÿºÌ<\n}Uÿè`ÿÿY÷ÿÕþ¯èÁQ+œþ E“øÆ1†<#vöÿ1Xþþäºÿ¶ApÛÿ~4ÿ½51ÿp&7ÿâe£þЅ=ÿ‰E®¾v‘ÿ!sÓ¢a€ÿ¸þt¨ÿøŠ—ÿbôðºv‚røëÿi­È |Gÿ^$¤¯A’ÿîñªþÊÆÅäGŠþ-ömÿÂ4ž…»°SüšþY½ÝÿªIü”:}$D3þ*E±ÿ¨LVÿ&dÌÿ&5#¯aáîýÿQQ‡ÒÿþëIkÏsRˆTcþψd¤ePÐMÿ„Ïíÿÿ!¦nœ_Uÿ%¹o–j#ÿ¦—LrW‡ÿŸÂ@ zÿèeþ­wbšGÜþ¿95ÿ¨è ÿà cÿڜ¥—™£Ù\r”ÅqY•¡þÏi„ãÿ6æ^ÿ…­Ìÿ\\·ÿXüþf!ZŸaµÚ›ÿðrwjÖ5ÿ¥¾s˜[áÿXj,ÿÐ=q—4|¿œÿn6ì¦ÿ\'ÏåǼä¼þdëöÚ·kÁÿΠ_Lï“Ï¡u3¦ÿ4u\nþI8ãÿ˜Áá„^ˆÿe¿Ñ kåÿÆ+´dÒvrC™ÿXÿYš\\ÜxŒÿrÏÿüsúÿ"ÎHŠ…ÿ²|WKaå\\þðCƒÿv{ãþ’xhÿ‘Õÿ»FÿÛw6­-–”øSHË驎k8÷ù&-òPÿég`RFÉoQ\'ÿ¡·NÿÂê!ÿDãŒþØÎtFëÿhO¤æ]þևœš»òþ¼ƒÿ$m®Ÿpñn•$¥Ú¦².I]+ þø½íf›É]Ãÿñ‹ýÿobÿlA£þ›O¾ÿI®Áþö(0ÿkX þÊaUÿýÌÿqòBn ÂþкQ<¼h§ÿ|¦aþ҅Ž8ò‰þ)o‚o—:oՍÿ·¬ñÿ&Äÿ¹{ÿ. öõiw¡ÿÎ-ÿÊJÿS|sԍSÑþ‹èÿ¬6­þ2÷„ֽՐ¸ißþøÿ“ðÿ¼H36¼´þÜ´ÿS £½óÿ:ÑÂÿWI<j1õùÜ­§v Ãÿ~ínŸ%ÿ;R/´»V¼”Ðd%…ÿpÁ¼œÿTjÿ…áÊìoÿ(e¬¬1þ36Jÿû¹¸ÿ]›àÿ´ùà沒H96þ²>¸wÍH¹ïýÿ=ÚÄC8ÿê «.ÛäÐlêÿ?èÿ¥5Ç…äÿ4ÍkJîŒÿ–œÛþגּÿû½ßþ ŽÓÿÚŠñÄP$bþêÇ=íÜÿö9%ŽŽÿ>+î_þÙÿÕð\'Ü®ÿšÍ0þ\rÀÿô"6þŒ›ðµþ›Á<¦€ÿ$‘8ÿ–ðÛx3‘R™*Œì’k\\ø½\n?ˆòÓ\'Ê¡­ºÿÒÌïþ)Ñ¢ÿ¶þŸÿ¬t4ÃgÞþÍE;5)Ú0ÂPÒòҼϻ¡¡þ؈áqú¸?ßbþM¨¢;5¯É\nÿ‹à“ÁšÿÔ½ þÈ®ÿ2…q^³Z­¶‡^±q+Y×ÿˆüjÿ{†SþõBÿR1\'Üàa±M;Y=›Ë«Üÿ\\N‹‘!µÿ©7–³‹ìxþb{cÿ¨ÉÂþ.êÖ¿…1ÿc©w¾»#s-ÿùƒHp{ÿÖ1µþ¦é"\\ÅfþýäÍÿ;É*b.Û%#ÿ©Ã&^|Áœ+ß_H…þxοzÅïÿ±»Oÿþ.ú§¾TËq¦ÿù½þHÊÿÐGIÿÏH\nÒQLÿXÐÀÿ~ókÿîxÿÇyêÿ‰ ;ÿ$Ü{ÿ”³<þð Ba$&ÿs]ÿ`gçÿŞ;À¤ðÊÊ9ÿ®0YM›*L×ô—é0Qï4þã‚%ÿøt]|„v­þÀëSÿn¯çû¶ù]þT¸€Lµ>¯€ºd5ˆþmâÝé:cJ †\r 47ÿYŒ¯";T¥wÿàâêÿH¦ÿ{sÿÖöúGÙܹÔ#Lÿ&}¯½aÒrî,ÿ)¼©þ-ºšQ\\„ ÁyÐbÿ\rQ,ÿ˜RG:ÿÐr¿þ2&“šØÃe<ú×ÿé„ëÿg¯Ž\\nþîñ-ÿ™Ùïa¨/ÿùU¯>ÿ9þ6Þç~¦-uþ½`ÿäL2Èô^ƘxD"Eÿ A þeZ§ÅxÿD6¹ÿ)Ú¼q¨0Xi½R ÿ¹]¤äðíÿB¶5«Å\\ÿk éÇxÿN1\nÿmªiÿZÿôqÿJ: >ÜöÿyšÈþÒ²ÿ~9+úÿeo/Vñÿ=F–ÿ5IÿžÑVŠíJ¤_¼Ž<þ¢tøÿ»¯ —ÑoAþˆ\'ÿXl1ÿƒGÿÝ×þhi]ÿìþ‡ÓÿnÔIåéC§þÃÐÿ„Ýÿ3ÙZCë2ÿßҏ³5‚éjÆÙ­Üÿpåÿ¯š]þGËöÿ0B…ÿˆæÿÝqþëoÕªx_þûÝ-‚žþi^Ùÿò4´þÕD-ÿh&ôžL¡È`ÿÏ5\rÿ»C”ª6øw¢²ÿS **À’Ÿ£ÿ·èoMåÿG5L"öˆ/ÿÛ\'¶ÿ\\àÉŽÿE¶ñÿ£võ mjªµ÷ÿN/îÿTÒ°ÿÕk‹\'& H–H‚EÍM›þŽ…Go¬þâ*;ÿ³×!€ñêü\r¸OnIÿö½ªÏÚJšEÿŠö1ÿ› d}JiÿZU=ÿ#å±ÿ>}Áÿ™V¼IxÔÑ{öþ‡Ñ&ÿ—:,\\EÖÿ Xÿü™¦ÿýÏpÿ°{þ …ÿá¿>]F™µ*h¿àÿÈȌÿùê%•9Ã8Ðÿþ‚Fÿ ­ðÿÜÇndsÿ„åùäéßÿ%ØÑþ²±Ñÿ·-¥þàar‰a¨ÿáÞ¬¥\r1ÒëÌÿüþF —è¾4þSø]ÿ>×M¯¯³ÿ 2By0Ð?©ÑÿÒÈà»,I¢R °ÿLÁÿ;§+š¾¾¼èëËÿêmÿ6AŸ{„ÿ÷d½›ß˜Å!›;,ÿ–]ðWÿ_GϧUÿ¼˜tÿ\n‰Ã]6bað¨ÿ”¼†k—Lý«Z„À’6àB6þæºåÿ\'¶Ä”û‚ÿAƒlþ€ ©1§þÇþ”ÿûƒ»þÿUR>²:ÿþ„¤Õ\'†ü’þ%5Qÿ›†Rͧîÿ^-´ÿ„(¡þop6KÙ³æÝë^¿ÿó0ʑËÿ\'v*ÿuýþÞ+û26©êPDДËóþ‘‡þü¹bÿ&#HÿÓ$Ü(Y¨@ÅþÞïÿS×þ´Ÿi:sºtjÿå÷ÛÿvÁÊ®·¦¡HÉk“þíˆJéæjio¨@àåf—¯ÿÂîäÿþúÔ»íyCû`Å ·_ÌÍYŠ@Ý%ÿßÿ²0ÓÿñÈZÿ§Ñ`ÿ9‚Ý.rÈÿ=¸B7¶þn¶!«¾èÿr^Ý/çþÿpSv×ÿ­(þÀÁÿî’ÿ«Ávÿeê5þƒÔpYÀkеÙÿç•èŒì~ Çÿ Oµþ“¶Êÿm¶ÿ1ÔáJ£Ë¯é”p3ÁÁ ÿ‡ù–ã‚ÌÛòÍîÐuÿôpå"%P¼ÿ&-ÎþðZáÿ/ÿ*àLºó§ „ÿ3}‹‡ñÛ¬å…ÿöÖ2ç Ïÿ¿~S´£ªÿõ8²¤ÓÿÊb9vÿƒYþ!3ó•[ÿý4#©Cþ1Xÿ³$ÿ¥Œ·:½—XK©BBeÇÿØÇyÄÿOËþðâQÿ^\nÿSÁðÿÌÁƒÿ^VÚ(3ÁÑò±f¹÷žmt&‡[߯•ÜBÿV<è`%ÿáz¢×»¨ÿž.8«¢èðez 3 ÿ5îÿÙèþ}©”\rèf” %¥aäƒ)Þóÿþ<íjq;„½\\piÐÕ0T³ÿ»yçþØmÿ¢ÝkþIïÃÿú9ÿ•‡Yÿ¹s£ÿpú9»ÿ¡`¤/ó ûþCê¸ÿ)¡¯`ÿ ¬4þ°·ÿÆÁU|y‰ÿ—2rÿÜË<ÿÏï&kÿ7î^þF˜^ÕÜMxEÿU¤¾ÿËêQ&1%þ=|‰N1þ¨÷0_¤üi©‡ýä†@¦KQIÿÏÒ\nêj–ÿ^"ZÿþŸ9þ܅c‹“´þ¹)9ÿ½aLA»ßÿà¬%ÿ">_çðMj~þ@˜[b›âû5ÿêÓÿËÞÿ¤°Ýþç³zÍ$†ÿ}F—þaäü¬þ0ZÑÿ–àRT†ñÄ.gqêÿ.eyþ(|úÿ‡-òþ ù¨ÿŒlƒÿ£«2­ÇÿXގÿÈ_žŽÀ£ÿu‡o|ì AþD&Aÿã®þôõ&ð2Ðÿ¡?ú<Ñïz#!æþŸqjÿäÍ`‰Ò®þ´ÔÿYbš"X‹§¢pAnÅñ%©B8ƒÿ\nÉSþ…ý»ÿ±p-þÄûÄú—ÿîèÖÿ–ÑÍðvGLSìc[*úƒ`@ÿvÞ#qÖËÿzw¸ÿB$Ì@ù’Y‹†>‡hée¼T1ùÐÖKÿςMÿs¯ë«‰ÿ¯‘º7õ‡ÿšVµd:öÿmÇ<ÿR̆ÿ×1æŒåÀÿÞÁûÿQˆÿ³•¢ÿ\'ÿ_Kþ¿QÞñQZÿk1Éÿôӝތ•ÿAÛ8þ½öZÿ²;0Û4b"×»ÿ¯©\\O¡ÿìÈ“êåáŨë35ýx®Å¨ÿÊu«£ÎrUZÿ)\nÿÂcA7Øþ¢’t2ÎÔÿ@’ÿžžƒd¥‚ÿ¬ÿ}5 ÿÁ1 ÿµ®É‡Éÿd•ÛbO*cþ`0ÿÅùSþh•OÿënˆþR€,ÿA)$þXÓ\n»y»b†Ç«¼³þÒ îÿB{‚þ4ê=0qþVxÿw²õWÉòÑÊrU”¡gÃ01«ÿŠC‚¶Izþ”‚Óåš ›žTi=±Â ÿ¦YV6S»ù(uÿm×ÿ5’,?/³ÂØþTˆˆ±\rÿHóºÿu}ÿÓ:Óÿ]OßZXõÿ‹ÑoÿFÞ/\nöOÿÆÙ²ãá N~³ÿ>+~g”#¥þõð”=3ŽQІ‰sÿÓwìÿŸõøÿ†ˆÿæ‹: ¤þrUÿ1¦¶ÿFTU¶.5] ¦¡ÿ7¢²ÿ-¸¼’,þ©Z1x²ñ{ÿñǽB2ÿƏeþ½ó‡ÿþKaWvûší6œ«’ÏÿƒÄöÿˆ@q—è9ðÚs1=ÿ@Iü©ÿ(„\nZÉÁÿüyðºÎ)+Æa‘d·ÌØPþ¬–AùåÄþh{IÿMh`þ‚´h{9ÜÊåÿfùÓVèÿ¶NÑïá¤j\r ÿxIÿ†CéSþµ·ìp0@ƒÿñØóÿAÁâÎñdþd†¦ÿíÊÅ7\rQ |fÿ(ä±vµ砆ÿw»ÊŽ<ÿ€&½ÿ¦É–Ïx6¸¬ òÌþ…Bæ"&¸pP 3¥þ¿ó7:I’þ›§Íÿdh˜ÿÅþÏÿ­÷î\nÊï—ò^;\'ÿðfÿ\n\\šÿåTÛÿ¡PÐZÌðÛ®ÿžf‘5²Lÿ4l¨SÞkÓ$mv:8í ÇªÑ‰G/V ÆòÔ0ˆ\\¬ºæ—i`¿åŠP¿þð؂ÿb+þ¨Ä1ý[Iy=’\'?hÿ¸¥pþ~ëbPÕbÿ{ÿœXÒ¸bÿ¯{ÿfSåÜAt–úÿ\\ŽÜÿ"÷BÿÌá³þ—Q—G(ìÿŠ?>Oðÿ·¹µv2?ãÀ{c:2à›ÿáßþÜàMÿ,{€¯øÔȖ;·ÿ“a–̵ý%G‘UwšÈº€ùÿS|W¨3õ|—çÿÐðÅ|¾¹0:öéè}bÿ\rþÿõ±‚ÿlŽ#«}òþŒ "ÿ¥¡¢ÎÍe÷"d‘9\'F9vÌËÿò¢¥ôÆtâ€o™ÿŒ6¶ƒÿO@ þ^0qŠ2þÁÿ÷ÅC7hÍ_ÿ0%B7œ?@RJÿÈ5GþïC}àÞ߉]ÿàÊÿ ܄Æ&ëfV<+Qˆé$þÏò”¤¢?3.àÿr0Oÿ ¯âÞÁÿ/ èÿÿ]iþ*æŠRÐ+ô\'&ÿbÐÿ@•¶ÿúÑ»<þ1Úÿ©tÍÿwxœt“ÿ„5mÿ\r\nÊnS§Û‰ÿ‚ÿ2§ÿ<Ÿ/ÿ€þ^½¦DSßזZ¨AãS3ÿÍ«Bÿ6»<˜f-ÿwšáð÷ˆdŲÿ‹GßÿÌR)Î*ÿœÀÝÿØ{ôÿÚÚ¹ÿ»ºïÿü¬ ÿÃ4®µþ»dsÿÓN°ÿÁ“ÕhÿZÉ\nÿP{B!ºcþÎ\nåê5ҊÜþG7§HáVv¾¼þÁe«ù¬ÿ^ž·þ]lÿ°]LÿIcOÿJ@þö.Acñþö—fÿ,5Ðþ;fꚯ¤ÿXò o&ÿ¶¾ÿs°þ©<zíñZL?>JxÿzÃnw²Þò҂!.þœ()§’p1£oÿy°ëLÏÿÆ)ëÕU$Ö1\\mÿÈþ¨ìÑ\'|ìÕZ$¸ÿCUªÿ&#þƒ|Dÿï›#ÿ6ɤÄuÿ1Íà~qu¶ËŸß‡M°æ°ÿ¾å×ÿc%µÿ3Šÿ½Yÿ10¥þ˜-÷ªlÞPÊEgþ́ÿ´ü>þÒ[ÿ’nþÿÛ¢ßüÕ;!ÎôÓ0k Ðp;ÑmMØþ"¹ÿöc8ÿ³‹ÿ¹2ÿTYJúbÿá*ÈÿÀÙÍÿÒ§c„_+æ9þ Ëÿc¼?ÿwÁûþPi6èµ½·EpÿЫ¥ÿ/m´ÿ{S¥’¢4ÿš ÿ—ãZÿ’‰aþ=é)ÿ^*7ÿl¤ì˜Dþ\nŒƒÿ\njOþóž‰C²Bþ±{Æÿ>"ÅX*ÿ•_±ÿ˜Æÿ•þqÿáZ£ÿ}Ù÷à€BxþÀ ÿ2ÝÍ1ÔFéÿ¤Ñ Ý4Ûþ¬àôÿ^8Îò³ÿ[¤æ.Šÿ½æÜ9/=ÿo ±[˜æbaW~ÆY‘ÿ§OkùM éæÿ–Vþ< Á—%$þ¹–óÿäÔS¬—´É©›ô<êŽëCÚ<ÀqKtóÏÿA¬›QœÿPH!þçmÿŽkþ}„ÿ°;ÿ–É:ΩÉÐyâ(¬ÿ–=^ÿ89œÿ<‘ÿ-l•ÿÿÑUþÀ Òcb]þ˜—á¹Üë,ÿ ¬þGÿ\r@]þ8Ʊ>ø¶ñ¦e”ÿNQ…ÿÞ×¼©ÿèa1p<ÿÙåûwlŠ\'{þƒ1ë„T‘‚æ”ÿJ»õ6ÿ¹ÛñÂäÿñÊfiqʛëO ²ÿœïȔ=s÷Òÿ1݇:½#. QAÿ4ž¹ÿ}t.ÿJŒ\rÿÒ\\¬þ“GÙàýþsl´ÿ‘:0þÛ±ÿœÿ<š“òý†W5Kå0ÃÞÿ¯2ÿœÒxÿÐ#Þÿø³\neÿÂøÿžÌeÿhþÅÿO>²¬e`’ûÿA\nœ‰¥ÿtçò×#ÿ+¡O;•öûB°È!ÿPnŽÿáä8Bÿ{/‘þ„¤C®¬ýrWaWúÜT`[Èÿ%};Av¡4ñÿí¬ÿ°¿ÿÿA‚þß¾æeýçÿ’#múM1{Z›V ÿÚÕAo]<]©ÿ¶ºþý‰öÿÕ0þLîÿø\\Fÿcà‹¸ ÿ¤Ð̓ÆWÖǂÖ_ݕÞ&«þÅnÕ+sŒþ×±v`4Buží@¶ÿ.?®ÿž_¾ÿáͱÿ+Žÿ¬cÔÿô»“3™ÿätþeÏö–ÿ†ç}†âMAbì‚!ÿn>Elÿq‘Sþ¡çÿƒµ<Ùѱÿå”Ôþƒ¸u±»ÿ°fP2T—ÿ}6ÿ…ÿ³‹àè"uªÿ§ü«ÿIÎþú#HOìÜåÿ)Ê­ÿcLîÿÆàÿlÆÃÿ$`ìž;ÿjdWnâãêޚ]wÿJp¤ÿC[ÿ‘!ÿf։ÿ¯ægþ£ö¦]÷tþ§àÿÜ9«ÎT{äÿxww “´/áÿhȹþ¥rMNÔ-š±ÿÄyþR¶Z¾ “Å_ï˜ÿ ëGV’wÿ¬†Ö<ƒÄ¡á‚xþ_È3içÒÿ: ”ÿ+¨Ýÿ|íŽÆÓ2þ.õg¤øT˜FÐÿ´u±FO¹óJ •œÏÅÄ¡õ5ï]öþ‹ð1ÿÄX$ÿ¢&{€È®Lgÿ­©"þØ«ÿr3ˆäÂn–8þjöŸ¸Oÿ–Mðÿ›P¢5©ÿ—VD^\\nþbu•ÿùMæÿý\nŒÖ|\\þ#vëY095¦¸=ÿ³ÿÂÖø=þ;nöyQþ¦äj@ÿEè†ÿòÜ5þ.ÜUq•÷ÿa³gÿ¾ ‡Ñ¶_4ªÎÿzÈÌÿ¨d’<•þF<(z4±ÿöÓeÿ®í3x­~ïœÿ½ËĀXÿé…âÿ}­ÿÉl2{d;ÿþ£ݔµÿֈ9þÞ´‰ÿÏX6ÿ!ûÿCÖ4ÒÐdQª^‘(5àoçþ#ôÿâÇÃþîæÙÙ¤þ©ÝÚ.¢ÇÏ£ÿls¢`»ÿvçãê³ÿ"½Ôþô»ù¾\rP‚Y߅­ ÞÆÿBJ§Ø]ÿ›¨ÆB‘Df.¬ZšØ€Kÿ (3ž|ð1ìʰÿ—|Àÿ&Á¾_¶=£“|ÿÿ¥3ÿ(þ×`NV‘Úþ$ÊÿV o)Èÿíla9>,u¸-ñt˜Üÿ¥¼úƒ<,}ÿAÜûÿK2¸5Z€ÿçPÂÿˆ»ÿ-:¡ÿG“"®ù þ#ïD±ÿsn:î¾±Wõ¦ÿ¾1÷ÿ’S¸ÿ­\'ÿ’×hŽßx•È›ÿÔϑµÙ­ Wÿÿ#µwß¡Èß^ÿFºÿÀCUÿ2©˜{ÿ8ó³þDˆ\'Œ¼þýÐÿÈs‡+¬åÿœh»—û§4‡—™H“Åkþ”žÿîÎ~™‰ÿX˜ÅþD§üŸ¥ÿïN6ÿ?7ÿ&Þ^í· ÿÎÌÒ\'öþJç‡l³suvt„üÿ‘¡iCR%âÿîâäÿÌցþ¢{dÿ¹yê-lçB8ÿ„ˆ€¬àBþ¯¼æßâþòÛE¸wR¢8r{¢gUÿ1ïcþœ‡×oÿ§þ\'Ä֐&Où¨}›aœÿ4Ûÿ–,•¥ÿ(·ÄMéÿvÒÿª‡æÿÖwÆéð#ý4ÿuf0ÿ̚ÿ³ˆ±ÿ•‚YÿüŸF<k´¾<ÿ8¶;ÿnG6ÿƁÿ•àWÿߘÿжÿúœÍì-ÐÿO”òeFÑgN®e¬ÿ˜ˆí¿ÂˆqP}˜›–5ÿÄtõïrIþRÿ|}êÿ(4¿*Ҟÿ›„¥²*@\\(ÿ$UMÿ²äv‰B`þsâBnðEþ—oP§®ìÿãlkÿ¼òAÿ·Qÿ9εÿ/"µÿÕðžGK_œ(ÿfÒQ«Çäÿš")ã¯KïÊå_LÀ1u{Wãá‚}>?ÿÆ«þ$\rþ‘ºÎ”ÿôÿ#¦–Û\\äÔ\\Æ<þ>…ÈÿÉ);}îmÿ´£îŒzR Xÿŝ/ÿ™^9X¶T¡U²’|¦¦ÿÐߜ¶ò›y¹Sœ®þšvÿºSèß:yÿX#}ÿª•þ¤ ‚ÿ›Ä¡`ˆ#¢%û.òÿÙ¼9®âÎé9»ˆþ{½ ÿÉuÿº$ÌçØPNi†ÿ”ËDQ}þø¥Èÿ֐‡—7¦ÿ&ë[.šßþ–ÿ#™´ÿ}°+bÿØzæÿé  9¹ þðqÿ þ[lmÆË“(†äÿ|º(ÿrb„þ¦„cE, òîÿ¸5;„fÿ4 óþ“ßÈÿ{S³þ‡Éÿ%8—<ãÿZIœˬ»P—/ÿ^‰çÿ$¿;ÿáѵÿJ×Õþv³ÿ™6Á2çhHŒãšÿ¶âþ`á\\ÿsªþúNøK­ÿ5Yÿ´vH­@ή…ß¹>…ÿÖ bÅЫ§ôÿçµ–Ú¹÷©a¥‹÷ÿ/x•gø3²¦{„ ¡ÿ=®+ÃE/¿",N9ê4ÿ(ÿö^’Sä€?ƒ³»ÿMœ›ÿwV¤ªÐ’ÿЅšÿ”›:ÿ¢xèþü՛ñ\r*^2ƒ³ªpŒS—ÿ7wTŒ#ïÿ™-Cì¯\'6—gÿž*AÿÄï‡þV5˕a/þØ#ÿFFg$Zÿ(­¸0\r£ÛÙÿQÿݪlþéÐ]dÉùþV$#ÿњãÉûÿ½§þd9\r€)ÅdK–Ìëÿ‘®;xø•ÿU7árÒ5þÇÌw÷J?ûCh—‡‚POY7ÿuæÿ`Õ‘Eñx•ó_ÿr*ƒHš5ÿI>mÄf˜) Ìÿz& ú\n‘Ï}”öôÞÿ) UpÕ~¢ùVGÆÿQ b\'ÿÌG-Ko‰ê;ç 0_ÿÌrĵÿ3ñ§þ]mŽh-ë µÿ4p¤LþÊÿ®¢=ë“ÿ+@¹þé}ÙóX§þJ1œÌB|Ö{&Ýv’pìrb±—YÇWÅp¹•¡,`¥ø³ÿ¼ÛØþ(>\róŽåãÎÿ¬Ê#ÿu°áÿRn&*õÿSa1«\nòwxè=Ôð“ÿs8ÿ‘ïþÊûÿùõÿcu︳ÿöí3ÿ%ï‰ÿ¦p¦ÿQ¼!ÿ¹úŽÿ6»­ÐpÉö+äh¸XÿÔ4Äÿ3ulÿþu›.[ÿWÿWãÌSSŸLãŸÕ—lu³þ‰ÑR&Ÿ\ns…Éß¶œnÄ]ÿ9<é§iÿšÅ¤`"ºÿ“…%Üc¾§Tÿ‘«ÂÅûþ_N…ÿüøóÿá]ƒÿ»†ÄÿؙªvžþŒvVž-Ó)ÿ“dþqtLÿÓlg0ÁfE3_ÿk€‰«éZ|j¡¶¯Lìȍ¬ÿ£:hé´4ÿðýÿ¢qþÿ&ïŠþ4.¦ñe!þƒºœoÐ>ÿ|^ ÿ¬þp®8ÿ¼cÿCŠû}:€œ˜®ÿ² ÷ÿüTžRÅþ¬ÈSÿ%\'.jϧ½"ƒ²ÎÕ¡âÒH3iÿa-»ÿN¸ßÿ°ûO Vÿt%²RMÕRTÿâeÔ¯XÇÿõ^÷¬vmÿ¦¹¾ƒµxWþ]ÿ†ðIÿ õÿ‹¢gÿ³bþÙÌp“ßxÿ5\n󦌖}PÈÿmÛÿ[Úÿüü/þmœtÿs1ÌWÓÿ”ÊÙÿUùÿõ†LY©ÿò-æ;b¬ÿrI„þN›1ÿž~T1¯+ÿ¶Tÿg#hÁmÿCݚɬþ¢X¥ÿ}›åÿšÜgï\\ÜmÿÊÆ^Ž$6,ëâžÿªûÖÿ¹M aJòÛ£•ÿð#vÿßrXþÀÇj%ÿÉ¡vÿaYcà:gÿeǓþÞÿ\n—\nO‹²ÿxòÊÛÕ>}#ÿlÿæ!SÿQ-Øà>ÖÙ}b™™ÿ³°jþƒ]Šÿm>$ÿ²y ÿxüFÜø%ÌXg€Üûÿìãj1Æÿ<8kcrîÜÌ^I»Yš"NÙ¥ÿÃùÿ æýÿ͇õüÿT͆p%ž ç[íÿ¿ªÌÿ˜ÞmÀ1Á¦’ÿèµÿiŽ4ÿgýÈ¥ÃÙÿ4½ÿ{› þW‚6ÿNx=ÿ8))}ÿW¨õÖ¥FÔ©ÿÛÓÂþH]¤ÿÅ!gÿ+Žƒá¬ôiDDáˆT\rÿ‚9(þ‹M8T–56_\r±þ_sºuvÿô¦ñÿ º‡²jËÿaÚ]+ý-¤˜‹vï`þë™Óÿ¨nÿ2ï°r)èÁú5þ oþˆz)ÿalCטÿŒÑÔ*½£Ê*2ÿjj½ÿ¾DÙÿé:uåÜóÅ%x6þœ†ÿ$=«þ¥ˆdÿÔèZ®\nØÆAÿ @tqsÿøgç}ÿ Å¸#ßIùÿ{.þ‡8%ÿ­\råw¡"ÿõ=IÍ}p‰h†Ùöÿ펏AŸfÿl¤¾Ûu­ÿ"%xþÈEP|ÚþJ ÿºšÇÿGÇühQŸÈ\'Ó=Àî[”Ù ;[Õÿ Q·ÿæzÿrˑw´BÿHŠ´à•jwRhÿЌ+b ¶ÿÍe†ÿe&_ŦÿËñ“>Бÿ…öû©\r÷¸Žþ$ÈÿXÍß[4ÿºäÒ÷êøÿæEþ°º‡ÿîÍ4‹O+°Ùþ óCòoé,# ÿãrQG ÿ&i¿u2ÿQO?DAÿ$nÿMñÿâ-ûŽÎx{Ñþîÿ€~ÿ[Þ×ÿ¢¿VðI‡¹Qþ,ñ£ÔÛÒÿp¢›Ïev¨H8ÿÄ4H¬òÿ~ÿ’`;ÿ¢y˜þŒ_ÃþÈþR–¢w+‘þ̬Nÿ¦àŸhíÿõ~Ðÿâ;ÕuÙŘHíÜþZçÿ¼Ô@¸L@Ϭ¯Ðþ¯J%ŠÓþ”}Â\nYQ¨Ëeÿ+ÕÑëõ6#âÿ ~Fâ}^þœuÿ9øpæ0@ÿ¤\\¦àÖæÿ$x7+ÿûõjb¥Jkjþ56ÿZ²–x{ÿôYrú=ÿþ™RM9îZ_ßæì4/þg”¤ÿyÏ$¹ÿKJ» e.0ÿïÒÿMìÿoMÌÿ=HaÿÇÙûÿ*×̅‘Éÿ9æ’ëdƒI#þlÆÿ¶OÒÿRgˆöl°"<ÿJrþ¨ªNÿïÿ•)¨:yO³†ÿçy‡ÿ®Ñbÿóz¾«¦ÍÔt0lBÿ¢Þ¶wÕ\'ùÿþßäÿ·¥Æ…¾0|Ðmÿw¯Uÿ Ñy0«½ÿÃG†ˆÛ3ÿ¶[þ1ŸH#võÿpºãÿ;‰‰,£rg<þՖ¢\nqÿÂhH܃tÿ²O\\ËúÕþ]Á½ÿ‚ÿ"þÔ¼—ˆÿeSÿÔΦåîIÿ—Jÿ¨Wכ¼…ÿ¦IðO…ÿ²ÓQÿËH£þÁ¨¥¤ÇþÿÌAH[¦JfÿÈ*ÿÂqãÿBÐåØdÿï\né>ÿ{\n²$®ÿwÛÇ-£¾¨*¦9Æÿ~¥çûldÿ=åyÿ:vŠLÏ\r"pþY¨%Ðiÿ#É×ÿ(jeþïr(gâþönÿ?§:„ðŽžXÿIžÿ^Y’æ6’-­O©sº÷T@ƒCàýÿϽ@šQ-¸6ÿWÔàÿ`Iÿ!ë4BPÿû®›ÿ³%ê¤]þ]¯ýÆEWÿàj.cÒ>¼rÿ,ꩯ÷ÿm‰ÿå¶\'À¥^þõeÙ¿X`Ä^cÿjî þ5~ó^eÿ.“É||ÿ Ú\r¦0ûíÿ›ú|ÿj”’ÿ¶\rÊ=§Ù˜þ܂-ÿÈæÿ7AWÿ]¿aþrû i\\ύÏ\rþ20ÿº”tÿÓ+á%"¢þ¤Ò*ÿD`ÿ¶Öÿõu‰ÿBÃ2K SþPŒ¤ ¥$änãñZ4Ôß ÿ‹ó9 qKö·¿ÿÕ¿EÿæŽÃÄÿŠ«/ÿ@?j©ÖÿÏ®8XI…ÿ¶…Œ±ÿ“¸5ÿ\nã¡ÿxØôÿIMéî‹;AéFûØ)¸™ÿ Ëp’“ýWem,R…ÿô–5ÿ^˜èÿ;]\'ÿX“ÜÿNQ\r /üÿ rÿ]k\'ÿvÓ¹wÑÿãÛþXiìÿ¢nÿ$¦nÿ[ìÝÿBêtoôþ\né ·þ¿òڜ5þ)­o¥övs[ÿ€T<§ËW\róä±q’ÿªæþü™ÿ‘á+Fçÿzi~þVö”ÿn%šþÑ[D‘>ä¥ÿ7Ýùþ²Ò[S’âþE’º]Òhþ­çº&½zŒÿû\rpÿin]ûHªÀßÿÊá]䙓Çþmªøeöÿ²| ÿ²þfþ7A}Ö´·`“-uþ„¿ù°Ëþˆ·6ÿ’ê±’eVÿ,{!јÀZ)þS}ÿÕ¬Rש\r" ÑdÿTùÅìÿÙºæ1 °ÿovaÿíhëO;\\þEù ÿ#¬JvDÞ|¥ÿ´B#ÿV®ö+Joÿ~Vÿäê[òÕþE,ëÿÜ´#øÿf/\\ÿðÍfÿq櫹ÉÿÂöFÿz»†FÇÿ•–ÿu?gAh{ÿÔ6XS†óÿˆ5g©´±1o6§Ã=×ÿl<*F¹¢ÿ•(ÿö&þ¾w&ÿ=w`¡Ûÿ*Ëݱò¤ÿõŸ\ntÄ]Íþ€³}íöÿ•¢ÙÿW%þŒîÀ Áaâ&\nˆ?ÿåHÒþ&†\\ÿNÚÐh$Tÿ Áÿò¯=ÿ¿©.³““ÿq¾‹þ}¬Küþ×$ÁÿE•ÿnvË]ùЉ@þ&F™tÞ¡J{ÁcOÿv;^ÿ= +’±.“¿ÿ& 3<:bÿoÂMš[ôŒ(­\nûËÑ2þl‚Nä´Z®ú®<)«tcRÿvÁ‹ÿ»­ÆþÚo8¹{Øùž44´]ÿÉ [ÿ8-¦þ„›Ëÿ:èn4ÓYÿý¢ W·‘ˆ,^zõU¼«“\\Æh_®Ýæ4÷÷ëÿ‰®5ÿ#ÌÿGãÖèR 0ãÿªI¸ÿÆûüþ,p"ƒeƒÿH¨»„‡}ÿŠhaÿÿóhTÿ‡Øâÿ‹í¼‰–P8ŒÿV©§ÿÂNÿÜ´ÿ\rÁu‰Ôÿà—1ô¯Ác¯ÿcšÿA>ÿœÒ7ÿòôÿú•žXÙÿÏ†þûè.œûÿ«8¸ÿï3ꎊƒÿþó\nÉÂ?aKÒï¢ÀÈuÖóGÞþ6(èÿL·oþWÿÖOˆÿØÄԄŒþƒý|lÿ×KLÞ7þé¶?D«¿þ4oÞÿ\niMÿPªëXÿ-çy”à=öTý.ÛÿïL!1”þæ%EC†þŽ›^ÓþÕ*ÿä÷þü°\rÿ\'þñôÿÿª-\nþýÞùÞr„ÿ/ÿ´£³T^—ÿYÑRþå4©ÿÕìÖ8äÿ‡w—ÿpÉÁS 5þ—B¢éa[ƒNµx5ÿu_?ÿíu¹¿~ˆÿwé·9a/É»ÿ§¥w-d~bþ‘–_ÿx6˜Ñbhoþ¸”ùëØ.øÊ”ÿ9_òá£é÷èÿG«ÿgô1ÿTg]ÿDyôRà\r)O+ÿùΧÿ×4þÀ ÿ÷o<eJ&ÿ[Tþ\rÿÆç×þôšÈ߉íӄ_@Îÿ>÷ÿéƒy]MÍÌ4þQ½ˆ´ÛŠ^Ì+Œþ¼¯Ûobÿ—?¢ÿÓ2Gþ’5’-Sþ²Rîÿ…TÿâÆ]ÿÉaÿxv#ÿr2çÿ¢åœÿÓ r\'sÿÎԆÅÙ ÿt^þÇ×ÛÿKßùýtµÿè×hÿä‚öÿ¹uVï=íW…ÿ}’‰þ̨ß.¨õšiÜÔ¡ÿkEÿ‰ÚµÿñTÆÿ‚zÓÿ™ÿ¾±v`Y²ÿ0þz`iÿu6èÿ"~iÿÌC¦è4Šÿӓ 6,×þ3ì-¾Dj“á]-þìÿ=¡ÜsÀì‘þo¨©à:?ÿ¤¼RêKàž†ÑDnÙ¦ÙFᦻÁÿXÿ\n͌uÀœ8&|l«×7ÿ_ýԛ‡¨ÿö²™þšDJè=`þi„;!Lǽ°‚ÿ hþKÆfÿéplÜÿræFŒÂ…ÿ9ž¤þ’Pÿ©ÄaU·‚FžÞ;íêÿ`ÿè¯aÿ yøþX#ÂÛ´üþJãÃãI¸n¡ÿ1餀5/RyÿÁ¾:0®uÿ„ (\n†3ÿð °ÿn9’uïevÿ6TL͸ÿ/HÿNpUÿÁ2B]4ÿi† mHÿ:œû#Ì, uþ2kÂD¥ÿon¢žS(þLÖê:ØÍÿ«`“ÿ(ãr°ãñFù·ˆT‹ÿ÷ÿ-@8ÿ¡ô"98iÊS€“Ðg\nÿJŠAÿaPdÿÖ®!ÿ2†Jÿn—‚þoT¬TÇKþø;pÿز ·_îþªÍÜÃå‡bLíÿâ[RÛ\'ÿá¾ÇÙÈyÿQ³ÿŒAβÏWþúü.ÿhYný½žÿÖžÿ õ6ÿ5·\\ÈÂÿ’!qÑÿëj+ÿ§4èåÝ3úÝA“WÿO{ÄAÄßÿL,UñDÊ·ùÿAÔÔÿ !šG;P¯Â;ÿH d ôæÐ8;KþPÂÂÈþ Ÿs„÷o]9ÿ:í †Þ‡ÿz£l{+¾ÿû½ÎþP¶HÿÐöà< ¡Ï&m[ØÓÿˆNnb£hÿPyÿ­²·hÿ3ÿÒÿ>ìþ7àÿr\'ôÀ¼úÿäL5bTQÿ­Ë=þ“27ÿÌë¿4ÅôX+Óþ¿w¼çšBQ¡\\Á úãx{7â¸H…¨\nþ‡œÿ)gÿ0Ê:º•Qÿ¼†ïëµ½þً¼ÿJ0R.Úå½ýû2å ÿӍ¿€ôÿ©çzþV/½ÿ„·ÿ%²–ÿ3‰ýÈNi2‚<„£[þç»ÀOïf¤ÿÀRµgÿð ê{¤ÿ…éÿÊòò<ºõñÇÿàtžþ¿}[ÿàVÏy%çÿã Æÿ™ïÿyèÙþKpR_ 9þ3Öiÿ”ÜaÇb$œÑ þ\nÔ4Ù´7þÔªèÿØTÿú‡cþÎ)•$F6ÄÉÿWtþ뫖£êʇ´Ð_þ{œ]·>K‰ë¶Ìáÿÿ֋Òÿsÿ o4œýûÿ%¥þ ‚Ój5þ*cšÙ=þØ \\ÿÈÅpþ“&Ç$üxþk©M{ŸÿÏKf£¯Ä,ðxº°þ\rbLÿí|ñÿ蒼ÿÈ`àÌ)ÐÈ\rá`ÿ¯œÄ÷Ð~>¸ôþ«QUsž6@-ÿŠr‡GÍã/“ÚçBýÑô­ÿvþ–Ðÿ¹2ÿVpÏÿKq×?’+ÿáþã>ÿÿÖþ-ÍÿWŗþÒR×ÿõø÷ÿ€øFá÷WZxFÕõ\\\r…â/µ\\£iÿ…þè²=ÿæ•ÿ1žäd=þtóûÿMK\\QۓÿL£þþÕöè%˜þa,dÉ%2Ôô9®«·ÿùJp¦œÞÝaÿó]IþûedÿØÙ]ÿþŠ»ÿ޾4ÿ;˱ÿÈ^4sržÿ¥˜h~câÿvôkÈÁZåyXœ ]þ}ñÓÿíÿ¥šÿ¸àÿú˜ÿqM÷«ÿí±Ìÿ4‰‘ÿ¶ràê•\nogɁîŽN4(ÿnÕ¥þ<Ïý>×E`aÿ1-Êxyÿë‹0Æ-"ÿ¶2ƒÒ[ÿ.6€¯{iÿƍNþCôïÿõ6gþN&òÿ\\ùþû®Wÿ‹?lÿ"f"˜Båvþ2c©•v˜²yŸZeæÿwD$ è·7ÿ`ÿ¡)Áÿ?‹Þ³óÿdÿR5‡‰9•cðªÿæäþ1´Rÿ=R+nõÙÇ}=.ý4ÅÛӟÁ7yiþ·©wªÿ˲‹ÿ‡(¶ÿ¬\rÊÿA²”Ï+z5J¡0ãրþV óÿdVõD†ÿ=+˜T^ÿ¾<úþïvèÿֈ%qLkÿ]hdÎÿn–šäg¹Ú12þ‡M‹ÿ¹N¡”ÿaéÿϔ•ÿ ¨[€«ÿþ o÷\'»–ÿŠè•u>Dÿ?ؼÿëê þ9 ÿ ñ©<¿ ƒÿíŸ{ÿ^Å^þtþÿ\\³aþya\\ÿªp•øøãP`mKÀJ Zâÿ¡jDÐrÿr*ÿþJJÿ÷³–þyŒ<“FÈÿÖ(¡ÿ¡¼ÉÿA‡ÿòsü>/Ê´•ÿþ‚7í¥ºÿ\n©ÂœmÚÿpŒ{ÿh€ßþ±Žlÿy%Ûÿ€Mÿol[ÀK®õÿì>ÿ+@™ã­þíz„YºÿŽR€þüT®Z³±óÖWÿg<¢ÿЂÿ ‚‹ÎÛÿ^ٝÿïææÿtsŸþ¤k_3ÚØ}ÆÿŒÊ€þ _Dÿ7 ]þ®™ÿ̬`E nÕ&1þPÕv}rFFCÿŽIÿƒz¹ÿó2þ‚í(ҟŒŗAÿT™BÃ~Zîìv»fÿ…ÿ»Eæ8Å\\ÕE^ÿPŠåÎæÞoæ[éwÿ Yb”J…ÿ3ö´ÿä±p:½lÿÂËíþÑÓ\n#Vâ£‹þ8Kÿ>Ztµ<©Š¢ÔþQ§ÍZpÿ!pãS—u±àIÿ®ÙÿæÌOÿMèÿrNêà9~þ 1ò“¥h¶Œÿ§„ {DáW\'ûlÆÁy‡Ïÿ¬F2Dtÿe¯(ÿøié¦ËnÅÚ×þþ¨âý` g)·Ëþd÷JÿÕ~„Ò“,Çê”/µ›[ž6i¯ÿN‘þfš_€Ïþ4|ìÿ‚TGÝóӘªÏÞjÇ·T^þ\\È8ÿжsŽ`’…ˆäa–7ûBŒfÊg—øÿ3¸ÏÊÆY7Åáþ©_ùÿBADÿ¼ê~¦ßdpïôÂ:\'¶ô,þ¯D³ÿ˜v𰢂ÙrÌþ­~Nÿ!Þÿ$[ÿó ë׫—×õÿ¨/¤þñ’ÏE´Dóq5Hþû-n¨DDOÿnF_þ®[ÿ!Î_ÿ‰)ÿ»™þ#ÿpÿ ‘¹þ2% p1f¾ÿêó©ÿaæGÿf=LÔìÿ¤aÆ;’£Ä8=µbÁû“åÿb½ÿ.6ÎÿêRö·g&m>Ì\nðà’uÿŽšxEÔ#ÐcvyÿÿHÂuÅÿ}šO™Ö^Åÿ¹7“ÿ>þNþR™nf?ÿlR¡ÿi»ÔPŠ\'<ÿ]ÿH ºÒû¾§ÿä,þ€CèÖùkþˆ‘Vÿ„.°½»ãÿÐŒÙÓt2Qºþ‹ú@Ƈ›d Îþ»¢Óÿ¼?þÐ1UT¿ñÀòÿ™~‘ꢢÿæaØ@‡~¾”ß4+ÿ\'½@ˆî¯Ä¹bâÕÿŸôâ¯< éŽ´óÏÿE˜Ye¤þ‹¿Ñ[y “\'º{ÿ?sæÿ]§ÆÿÕÜÿ³œÿBzÖ Ùÿ->ÿjO’þ3‰cÿWdçÿ¯‘èÿe¸ÿ® }R%¡$rÿ0ގÿõºš®Ýþ?r›ÿ‡7 P‡~ú³ìÚ-‘“Iù½„½ÀÿߎÆÿHÿú5íþ ÓqþÕk8ÿ®“’ÿ`~0Ám%¢^ǝùþ€»ÿÍ1²þ]¤*ÿ+wëX·íÿÚÒÿkþ*æ\ncÿ¢âÛí[²ËÐ2_þÎÐ_ÿ÷¿YþnêOÿ¥=ózpÿöö¹þg{écæÛ[üÿÇÞÿ³õéÿÓñêoúÀÿUTˆe:2ÿƒ­œþw-3ÿvéþòZÖ^ŸÛêÿbL\\þP6æäçþ5ßÿq8v„ÿ«Òì8ñžÿºsÿå®0,rr¦ÿIâÿÍYô‰ãKø­8Jxöþw ÿQxÆÿˆzbÿ’ñÝmÂNÿßñFÖÈ©ÿa¾/ÿ/g®ÿc\\Hþvé´ÿÁ#éþå ÿÞüÆÌ+GÿÇT¬†f¾oîaþæ(æãÍ@þÈ á¦ÞqE3ÿŸ§¸JàtþžÐéÁt~ÿÔ …ÿ:ŒÌ$3ÿè+ëFµÿ@8’þ©Tÿâ\rÿÈ2°ÿ4Õõþ¨Ña¿G7"Nœè:¹J½ºŽ•þ@Eÿ¡Ë“ÿ°—¿ˆçËþ£¶‰¡~ûþé BDÏB%]r`þ\\÷ÿ,«EÊw ÿ¼v2ÿSˆÿGRFã ëyµ)šG†åþÊÿ$)˜š?Iÿ"¶|yݖÿÌÕ)¬WZ’ÿm‚GkÈÿóf½Ñþ.XuÎã¿nýÿm€þ†U3ÿ‰±pØ"ÿƒÐÿy•ªr¦Pÿqðzè³úDn´þÒªwßl¤ÿÏOéÿåâþÑbQÿODƒ¹dª¢ÿ¢kÿ9 dȵÿA¦¥†Ìh§¨¤O’‡;F2€ÿfw\rþã‡¢Ž³ÿ dÞàÛž]Ãÿꍉ}ÿîÎ/ÿabÿtn ÿ`sM[ãèÿøþOÿ\\åþXƋÎKúMÎÿô{ŠEÜ —ƒ§ÿíD§þǽ–£«Šÿ3¼ÿ_‰þ”â³µkÐÿ†Rÿ—e-ÿÊáàH“0Š—ÿÃ@Îþíڞj‰þý½éÿgÿÂaÿ²-©þÆá›\'0uÿ‡jsa&µ–/AÿS‚åþö&\\ïšþ[c¡o!ÿîÙòÿƒ¹ÃÿÕ¿žÿ)–Ú„©ƒYTü«F€ÿ£øËþ2´ÿ|LUûoPcBïÿší¶ÿÝ~…þJÌcÿA“wÿc8§ÿOø•ÿt›äÿí+þE‰ ÿúñ[zÿÍùóÔ<ÿ0¶°0¿ÿËy˜þ-JÕÿ>Zþõ£æÿ¹jtÿS#Ÿ !ÿP">W®ÿ­eUÊ$Qþ EÌÿ@á»:Î^V/åVõ?‘¾%\'mû‰“ê¢y‘ÿtÎÿÅè¹ÿ·¾ŒÿI þÿ‹òÿªZïÿaB»ÿõµ‡þވ4õ3þË/N˜eØI}þ`!ëÒIÿ+ÑXmzhäþªòËò̇ÿÊéÿAŸGdŒ_N–\rûkv¶:}ÿ&lÿ½Ñÿ›}q£[ÿyO¾ÿ†ïlÿL/ø£äïo\nX•Kÿ×ë履ÿ/—lÿkѼéçcþʔÿ®#ŠÿnDÿEµkfRfí\\$íÿÝ¢S7Êÿ‡ê‡ÿúÞA^¨þõøÒÿ§lÉþÿ¡oÍþˆ\rtd°„ÿ+×~ÿ±…‚ÿžO”Cà% Îÿ>"níh¯ÿP„oÿŽ®HTå´þi³Œ@øÿéŠõC{þÚyÔÿ?_ÚՅ‰ÿ¶Rÿ0 ôrѯLÿµ–ÿºåÿ¤o罋wʾÿÚj@ÿDë?þ`¬ÿ»/ ×ûÿQTYD:€^q\\ÐÿaSþ ¼ï ¤<͘À£bÿ¸<Ù¶‹m;xÿÀû©Òðÿ%¬\\þ”Óõÿ³A4ý\rs¹®Îr¼•ÿíZ­+ÇÀÿXlq4#LB”ÿÝÿ—ñrÿ¾Ñèb2Ǘ–ÕÿJ$5(‡Aÿ¬E®íUc_)8\' ±ÿÈjÚþ¹DTÿ[º=þCÿ\rô¦ÿcrÆÇn£ÿÁº|ïönDë.Ôdÿµì^þ¤LpÿxfOÊÀåȰ×)@ôÿθN§-? #ÿ; ŽÿÌ ÿÛ^åzp½imÿ@ÐJÿû7âÆ,Lї˜MÿÒ.É«Eÿ,Óç¾%àÿõÄ>ÿ©µÞÿ"ÓwñÅÿå#˜E(ÿ²â¡”³ÁÛÂþ(Î3ÿç\\úC™ª”ñªERÿyçÿ\\r¸>æáÉWÿ’`¢ÿµòÜ­»Ýâ>ªÿ8~Ùu\rãÿ³,›ÿÝSëÑÐ*¥ûQ…|õÉþaÓÿSÖ¦š$ ÿø/Zیÿ¡Ù&þԓ?ÿBT”Ïæ†YNzÿà›ÿRˆJ²œÐÿº1ÿÞÒ喾ÿU¢4ÿ)TÿI{Tþ]–w ×ÿÌÿŽñ4ÿä4}LÏ×§úþ¯¤æ7Ïim»õÿ¡,Ü)e€ÿ§^]ÖkÿvHþP=êÿy¯}‹©ûa\'“þúÄ1ÿ¥³nþßF»ÿŽ}š³Šÿv°*\n®™œ\\f¨\r¡ÿ úÅ´ÿË£,W $¡™ÿ{üãPþÄáºþ{¬U)ÿâo·Õç—;ÿB“!ÿöÿэtÿhpX¡¬S׿þ/o—-&4„-̊€mþéu†ÿó¾­þñìðRìþ(ß¡ÿn¶áÿ{®ï‡ò‘3њ–sþÙ¤üÿ7œET^ÿÿèI-Ôÿ`Å;þ`û!&ÇI@¬÷ÿut8ÿä>Šgöå¤ÿôvÉþV Ÿÿm"‰UÓº\nÁÁþz±zîfÿ¢Ú«lÙ¡žª"°/›µä ÿœK]Îbÿ:š# ó¸þCuBÿæå{É*n†ä²þºlvÿ:šÿR©>ÿrsïÄ2ÿ­0Áÿ“Tÿ–†“þ_èImã4þ¿‰\n(ÌþL4aÿ¤ë~þ|¼J¶y#ÿñþUÚÖÿT–þQuÿ Ÿ˜þBÝÿã\n<‡fн–u³\\„ˆÿxǁOþ¶ AÚ£©ö“Æÿk&N¯ÍÿÖúþ/Xÿ¤/Ìÿ+7ÿƒ†ÏþtdÖ`ŒKjܐà ¬Qÿdz4ÿ%T˪p® [Eôuƒ\\!˜¯ÿŒ™kÿû‡+þWŠÿÆê“þy˜TÿÍe› Hjþl™ÿ½åºÁ°ÿ®•Ñî‚éÖ~=âf9£Æo3ÿ-ONsÒ\nÿÚ ÿž‹ÆÿÓR»þP…Sæó…†ÿ(ˆMkOÿ·U\\±ÌÊ£G“ÿ˜E¾¬3¼úÒ¬ÿÓòqYYÿ@Boþt˜*¡\'ÿ6PþjÑsg|aÝæbÿç²ÀxþÙËÿ|žOp‘÷\\ú0£µÁÿ%/Žþ½¥ÿ.’ðK€)ÈþWyÕqì-ú Rlçáïwÿ§½ÿ»ä„ÿn½"^,Ì¢4ÅN¼ñþ9ô’/Îd3}k”þÃM˜ýZÿ3%"w&ÿÅv™¼Ó—tþõA4ÿ´ýn/±Ñ¡cÿvÞÊ}³ü{6~ÿ‘9¿7ºy\nóŠÍÓåÿ}œñþ”œ¹ÿã¼ÿ|) ÿ"Îþ9SÌ%ÿ*`bwf¸¾nRÚÿÈÌÀÿɑvu̒„ bÀÂyj¡øíX|ÔÍ«Zÿø0؍%æÿ|Ëþž¨ÿÖøp»ÿK…ïÿJãóÿú“FÖx¢§ ³ÿžÚMÑamQÿô!³ÿ949ÿA¬ÒÿùGÑÿŽ©îž½™ÿ®þgþb!Læÿq‹4ÿ:Ô¨×ÉÿøÌ×ßD ÿ9š·þ/çyj¦‰QˆŠ¥+3ç‹=9_;þvbÿ—?ì^¾úÿ©¹rú:ÿKia×߆qc£€>pcj“£Ã\n!ͶÖ®ÿ&çÿ5¶ßb*Ÿÿ÷\r(¼Ò±ÿÿ=”þ‰-ÿYtþ~&rû2òþy†€ÿÌù§þ¥ë×ʱó…>ð‚¾n¯ÿ’%Òyÿ\'‚ŽúTÿÈÏ _hÿ ô®†è~§{þÁ•ÿèéïÕFpÿüt þòÞÜÿÍUã¹:v÷?tM±ÿ>õÈþ?%ÿk5èþ2ÝÓ¢Ûþ^+¶>¶þ NÈÿ‡Œªë¸ä¯5ŠþP:Mÿ˜É?Ä"¸«°šy;Î&c\'¬PMþ†—º!ñþ^ýßÿ,rül~9ÿÉ(\rÿ\'åÿ\'ï—y3ÿ™–ø\nê®ÿvöþÈõ&E¡ò²–q8‚«iXlÿ1*jû©BE]•9þ¤oZ¼ZÿÌÅ(Õ2Ô`„ÿXŠ´þä’|ÿ¸ö÷AuVÿýfÒþþy$‰sÿ<؆;âa°ŽGÑ¡½T3þ›úHÕTëÿ-Þàÿª*5ÿN§uº(ÿ}±gÿEáBãXK¬©-ã$Fÿ2 ÿ‹Á·çþÚE2ì8¡Ճ*Š‘,þˆå(ÿ1?#ÿ=‘õÿeÀþè§q˜h&y¹Úy‹Óþwð#A½Ùþ»³¢ÿ »æ>øÿçÿÜøl 粏P[ƒ]eÿ\'ÿú²ìþ‹ .̼&þõs4ÿ¿qIþ¿lEÿEõ˲ªcªAøo%l™ÿ@%EX>þY”ÿ¿Dàñ\'5)Ëíÿ‘~ÂÿÝ*ýÿc—aýßJs1ÿ¯Hÿ;°Ë|·ùääc Ïþ¨ÀÃÿ̰þ˜ê«M%Uÿ!x‡ÿŽÂãÖ:Õ»}ÿè.<ÿ¾t*þ—²ÿ3>íþÌìÁÂè<¬"ÿ½¸þg_ÿé$þ) ÿævõ-CՕÿŸ ÿ»¤ã  NÃ+Åá0Ž)þě<ÿßÇ‘ˆœüu©þ‘âîïkmµ¼ÿæp1þIªíÿç·ãÿPÜÂkÍe.4ÅÒ«$ÿXZÿ8—`»ÿÿ*NÈþFFô}¨ÌDŠ|×FfBÈþ4äu܏þËø{8®ÿº—¤ÿ3èРä+ÿùD¾?\rÿõûýóó óýÿõÿÿA¬‰ +vÁ_epÿPü¡þòjÆÿ…²äßpßîUþ3ó>+‹þËA\nAà‰ W3M푪Vÿ6&3ÿñ€eÿ)yJÿìN›©—iþœ)HÂf¯ÿ΢eÿ.{¨ýÿÓ¯—þÃÛ`8v¾þþÑõÿ™d~þèÿ5¸òÿǤÝAàŠ A€‹ ñ&àëz|;A¸®VãúñŸÄjÚ ëœ2±ý†b_I¸_œ•¼£PŒ$±Ð±Uœƒï[D\\ÄXކØ"NÝПWìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆcc¥ø||„îww™ö{{ÿòò\rÖkk½Þoo±‘ÅÅT`00PÎgg©V++}çþþµ××bM««æìvvšÊÊE‚‚‰ÉÉ@ú}}‡ïúú²YYëŽGGÉûðð A­­ì³ÔÔg_¢¢ýE¯¯ê#œœ¿S¤¤÷ärr–›ÀÀ[u··Âáýý=““®L&&jl66Z~??Aõ÷÷ƒÌÌOh44\\Q¥¥ôÑåå4ùññâqq“«ØØsb11S*? •ÇÇRF##eÃÃ^0(7––¡\n/ššµ $6€€›ßââ=Íëë&N\'\'i²²ÍêuuŸ ƒƒžX,,t4.6-Ünn²´ZZî[  û¤RRöv;;M·ÖÖa}³³ÎR)){Ýãã>^//q„„—¦SSõ¹ÑÑhÁíí,@ `ãüüy±±È¶[[íÔjj¾ËËFg¾¾Ùr99K”JJޘLLÔ°XXè…ÏÏJ»ÐÐkÅïï*Oªªåíûû†CCŚMM×f33U……”ŠEEÏéùùþ PPðx<!–KKÝa½½Ü\r‹‹†ŠŠ…àpp|>>BqµµÄÌffªHHØ÷ööÂaa£j55_®WWùi¹¹Ð††‘™ÁÁX:\'\'žž¹Ùáá8ëøø+˜˜³"3Òii»©ÙÙpŽŽ‰3””§-››¶<"‡‡’Ééé ‡ÎÎIªUUÿP((x¥ßßzŒŒY¡¡ø ‰‰€\r\re¿¿Ú׿æ1„BBÆÐhh¸‚AAÃ)™™°Z--w{°°Ë¨TTüm»»Ö,:¥Æcc„ø||™îwwö{{\rÿòò½Ökk±ÞooT‘ÅÅP`00©Îgg}V++çþþbµ×׿M««šìvvEÊʝ‚‚@‰Éɇú}}ïúúë²YYɎGG ûððìA­­g³ÔÔý_¢¢êE¯¯¿#œœ÷S¤¤–ärr[›ÀÀÂu··áýý®=““jL&&Zl66A~??õ÷÷OƒÌÌ\\h44ôQ¥¥4Ñååùññ“âqqs«ØØSb11?* R•ÇÇeF##^ÃÃ(0¡7––\nµ/šš 6$›€€=ßââ&ÍëëiN\'\'Ͳ²Ÿêuu žƒƒtX,,.4-6²Ünnî´ZZû[  ö¤RRMv;;a·ÖÖÎ}³³{R))>Ýããq^//—„„õ¦SSh¹ÑÑ,Áíí`@ ãüüÈy±±í¶[[¾ÔjjFËËÙg¾¾Kr99ޔJJԘLLè°XXJ…ÏÏk»ÐÐ*ÅïïåOªªíûûņCCךMMUf33”……ÏŠEEéùùþð PPDx<<º%ŸŸãK¨¨ó¢QQþ]££À€@@Š­?’’¼!Hp88ñõõßc¼¼Áw¶¶u¯ÚÚcB!!0 åÿÿýóóm¿ÒÒLÍÍ 5&/Ãììá¾__¢5——̈DD9.W“ÄÄòU§§‚ü~~Gz==¬Èddçº]]+2•æss À``˜ÑžOO£ÜÜfD""~T**«;ƒ ˆˆÊŒFF)ÇîîÓk¸¸<(y§ÞÞâ¼^^ v­ÛÛ;ÛààVd22Nt::\n\nےII\n lH$$ä¸\\\\]ŸÂÂn½ÓÓïC¬¬¦Äbb¨9‘‘¤1••7Óää‹òyy2ÕççC‹ÈÈYn77·ÚmmŒd±ÕÕҜNNàI©©´Øllú¬VVóôô%Ïêê¯ÊeeŽôzzéG®®ÕoººˆðxxoJ%%r\\..$8ñW¦¦Çs´´Q—ÆÆ#Ëèè|¡Ýݜètt!>ݖKKÜa½½†\r‹‹…ŠŠàppB|>>ÄqµµªÌffؐHH÷öö£Âaa_j55ù®WWÐi¹¹‘††X™ÁÁ\':¹\'žž8Ùááëøø³+˜˜3"»Òiip©ÙىŽŽ§3””¶-››"<’‡‡ ÉééI‡ÎÎÿªUUxP((z¥ßߏŒŒøY¡¡€ ‰‰\r\rÚe¿¿1×ææÆ„BB¸ÐhhÂAA°)™™wZ--Ë{°°ü¨TTÖm»»:,c¥Æc|„ø|w™îw{ö{ò\rÿòk½Öko±ÞoÅT‘Å0P`0g©Îg+}V+þçþ×bµ×«æM«všìvÊEÊ‚‚É@‰É}‡ú}úïúYë²YGɎGð ûð­ìA­Ôg³Ô¢ý_¢¯êE¯œ¿#œ¤÷S¤r–ärÀ[›À·Âu·ýáý“®=“&jL&6Zl6?A~?÷õ÷ÌOƒÌ4\\h4¥ôQ¥å4Ñåñùñq“âqØs«Ø1Sb1?* ÇR•Ç#eF#Ã^Ã(0–¡7–\nšµ/š 6$€›€â=ßâë&Íë\'iN\'²Í²uŸêu  ƒžƒ,tX,.4-6n²ÜnZî´Z û[ Rö¤R;Mv;Öa·Ö³Î}³){R)ã>Ýã/q^/„—„Sõ¦SÑh¹Ñí,Áí `@ üãü±Èy±[í¶[j¾ÔjËFË¾Ùg¾9Kr9JޔJLԘLXè°XÏJ…ÏÐk»Ðï*ÅïªåOªûíûCņCMךM3Uf3…”…EϊEùéùþPð PKݖK½Üa½‹†\r‹Š…Špàp>B|>µÄqµfªÌfHؐHö÷öa£Âa5_j5Wù®W¹Ði¹†‘†ÁX™Á\':ž¹\'žá8Ùáøëø˜³+˜3"i»ÒiÙp©ÙމŽ”§3”›¶-›"<‡’‡é ÉéÎI‡ÎUÿªU(xP(ßz¥ßŒŒ¡øY¡‰€ ‰\r\r¿Úe¿æ1׿BƄBh¸ÐhAÂA™°)™-wZ-°Ë{°Tü¨T»Öm»:,cc¥Æ||„øww™î{{öòò\rÿkk½Öoo±ÞÅÅT‘00P`gg©Î++}Vþþç××bµ««æMvvšìÊÊE‚‚ÉÉ@‰}}‡úúúïYYë²GGɎðð û­­ìAÔÔg³¢¢ý_¯¯êEœœ¿#¤¤÷Srr–äÀÀ[›··Âuýýᓓ®=&&jL66Zl??A~÷÷õÌÌOƒ44\\h¥¥ôQåå4Ñññùqq“âØØs«11Sb?* ÇÇR•##eFÃÃ^(0––¡7\nššµ/ 6$€€›ââ=ßëë&Í\'\'iN²²ÍuuŸê ƒƒž,,tX.4-6nn²ÜZZî´  û[RRö¤;;MvÖÖa·³³Î})){Rãã>Ý//q^„„—SSõ¦ÑÑh¹íí,Á `@üüã±±Èy[[í¶jj¾ÔËËF¾¾Ùg99KrJJޔLLԘXXè°ÏÏJ…ÐÐk»ïï*ŪªåOûûíCCņMMך33Uf……”EEϊùùéþPPð <KKݖ½½Üa‹‹†\rŠŠ…ppà>>B|µµÄqffªÌHHؐöö÷aa£Â55_jWWù®¹¹Ði††‘ÁÁX™\':žž¹\'áá8Ùøø똘³+3"ii»ÒÙÙp©ŽŽ‰””§3››¶-"<‡‡’éé ÉÎÎI‡UUÿª((xPßßz¥ŒŒ¡¡øY‰‰€ \r\r¿¿Úeææ1×BBƄhh¸ÐAA™™°)--wZ°°Ë{TTü¨»»Öm:,LibsodiumDRGɼógæ j;§Ê„…®g»+ø”þrón<ñ6_:õO¥Ñ‚æ­RQl>+Œh›k½Aû«Ùƒy!~Íà["®(ט/ŠBÍeï#‘D7q/;MìÏûÀµ¼Û‰¥Ûµé8µHó[ÂV9жññY›O¯¤‚?’mÚÕ^«B£˜ªؾopE[ƒŒ²äN¾…1$â´ÿÕÃ} Uo‰{òt]¾r±–;þ±Þ€5Ç%§ܛ”&iÏtñ›ÁÒJñžÁi›äã%O8†G¾ïµÕŒ‹ÆÁeœ¬wÌ¡ $u+Yo,é-ƒä¦nª„tJÔûA½Ü©°\\µSƒÚˆùv«ßfîRQ>˜2´-mÆ1¨?!û˜È\'°äï¾ÇY¿Â¨=ó àÆ%§\n“G‘§Õo‚àQcÊpn\ng))ü/ÒF…\n·\'&É&\\8!.í*ÄZüm,Mß³•\r8SÞc¯‹Ts\ne¨²w<»\njvæ®íG.Ɂ;5‚…,r’dñL¡è¿¢0B¼Kf¨‘—øÐp‹KÂ0¾T£QlÇRïÖè’Ñ©eU$™Ö* qW…5ô¸Ñ»2p jÈÐÒ¸Á¤S«AQl7™ëŽßLwH\'¨H›áµ¼°4cZÉų 9ˊAãJªØNsãcwOʜ[£¸²Öóo.hü²ï]t`/Coc¥xr«ð¡xȄì9dnj(c#úÿ¾é½‚ÞëlP¤yƲ÷£ù¾+SrãòxqƜa&êÎ>\'ÊÂÀ!Ǹ†ÑëàÍÖ}ÚêxÑnîO}õºorªgð¦˜È¢Å}c\n®\rù¾˜?G5 q„}#õwÛ(“$Ç@{«Ê2¼¾É\n¾žË¾ÔÅL*~eüœ)YìúÖ:«oË_XGJŒDl€Að² íÓõ\\cX֜÷¢ÞùÞA³ A ³ ¡gæ j…®g»rón<:õO¥RQŒh›«ÙƒÍà[˜/ŠB‘D7qÏûÀµ¥Ûµé[ÂV9ññY¤‚?’Õ^«˜ªØ[ƒ¾…1$Ã} Ut]¾rþ±Þ€§ܛtñ›ÁÁi›ä†G¾ïƝÁÌ¡ $o,é-ª„tJÜ©°\\ڈùvRQ>˜mÆ1¨È\'°ÇY¿ó àÆG‘§ÕQcÊg))…\n·\'8!.üm,M\r8STs\ne»\njv.Ɂ…,r’¡è¿¢Kf¨p‹K£QlÇè’Ñ$™Ö…5ôp jÁ¤l7LwH\'µ¼°4³ 9JªØNOʜ[óo.htoc¥xxȄnjúÿ¾ëlP¤÷£ù¾òxqƀA¶ !SigEd25519 no Ed25519 collisionsAð¶ E¡ \n \r')}function getBinarySync(file){return file}async function getWasmBinary(binaryFile){return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason);}}async function instantiateAsync(binary,binaryFile,imports){return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();removeRunDependency();return wasmExports}addRunDependency();function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(inst,mod)=>{resolve(receiveInstance(inst));});})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports$1=receiveInstantiationResult(result);return exports$1}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module);}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var runDependencies=0;var dependenciesFulfilled=null;var removeRunDependency=id=>{runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}};var addRunDependency=id=>{runDependencies++;Module["monitorRunDependencies"]?.(runDependencies);};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case "i1":return HEAP8[ptr];case "i8":return HEAP8[ptr];case "i16":return HEAP16[ptr>>1];case "i32":return HEAP32[ptr>>2];case "i64":abort("to do getValue(i64) use WASM_BIGINT");case "float":return HEAPF32[ptr>>2];case "double":return HEAPF64[ptr>>3];case "*":return HEAPU32[ptr>>2];default:abort(`invalid type for getValue: ${type}`);}}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case "i1":HEAP8[ptr]=value;break;case "i8":HEAP8[ptr]=value;break;case "i16":HEAP16[ptr>>1]=value;break;case "i32":HEAP32[ptr>>2]=value;break;case "i64":abort("to do setValue(i64) use WASM_BIGINT");case "float":HEAPF32[ptr>>2]=value;break;case "double":HEAPF64[ptr>>3]=value;break;case "*":HEAPU32[ptr>>2]=value;break;default:abort(`invalid type for setValue: ${type}`);}}var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023);}}return str};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):"";var ___assert_fail=(condition,filename,line,func)=>abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"]);var __abort_js=()=>abort("");var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4;}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};var _emscripten_asm_const_int=(code,sigPtr,argbuf)=>runEmAsmFunction(code,sigPtr,argbuf);var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};for(var base64ReverseLookup=new Uint8Array(123),i=25;i>=0;--i){base64ReverseLookup[48+i]=52+i;base64ReverseLookup[65+i]=i;base64ReverseLookup[97+i]=26+i;}base64ReverseLookup[43]=62;base64ReverseLookup[47]=63;{if(Module["noExitRuntime"])Module["noExitRuntime"];if(Module["print"])Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])Module["arguments"];if(Module["thisProgram"])Module["thisProgram"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()();}}}Module["setValue"]=setValue;Module["getValue"]=getValue;Module["UTF8ToString"]=UTF8ToString;var ASM_CONSTS={39864:()=>Module.getRandomValue(),39900:()=>{if(Module.getRandomValue===undefined){try{var window_="object"===typeof window?window:self;var crypto_=typeof window_.crypto!=="undefined"?window_.crypto:window_.msCrypto;crypto_=crypto_===undefined?crypto:crypto_;var randomValuesStandard=function(){var buf=new Uint32Array(1);crypto_.getRandomValues(buf);return buf[0]>>>0};randomValuesStandard();Module.getRandomValue=randomValuesStandard;}catch(e){try{var crypto=null;var randomValueNodeJS=function(){var buf=crypto["randomBytes"](4);return (buf[0]<<24|buf[1]<<16|buf[2]<<8|buf[3])>>>0};randomValueNodeJS();Module.getRandomValue=randomValueNodeJS;}catch(e){throw "No secure random number generator found"}}}}};var wasmMemory;function assignWasmExports(wasmExports){Module["_crypto_aead_aegis128l_keybytes"]=wasmExports["f"];Module["_crypto_aead_aegis128l_nsecbytes"]=wasmExports["g"];Module["_crypto_aead_aegis128l_npubbytes"]=wasmExports["h"];Module["_crypto_aead_aegis128l_abytes"]=wasmExports["i"];Module["_crypto_aead_aegis128l_messagebytes_max"]=wasmExports["j"];Module["_crypto_aead_aegis128l_keygen"]=wasmExports["k"];Module["_crypto_aead_aegis128l_encrypt"]=wasmExports["l"];Module["_crypto_aead_aegis128l_encrypt_detached"]=wasmExports["m"];Module["_crypto_aead_aegis128l_decrypt"]=wasmExports["n"];Module["_crypto_aead_aegis128l_decrypt_detached"]=wasmExports["o"];Module["_crypto_aead_aegis256_keybytes"]=wasmExports["p"];Module["_crypto_aead_aegis256_nsecbytes"]=wasmExports["q"];Module["_crypto_aead_aegis256_npubbytes"]=wasmExports["r"];Module["_crypto_aead_aegis256_abytes"]=wasmExports["s"];Module["_crypto_aead_aegis256_messagebytes_max"]=wasmExports["t"];Module["_crypto_aead_aegis256_keygen"]=wasmExports["u"];Module["_crypto_aead_aegis256_encrypt"]=wasmExports["v"];Module["_crypto_aead_aegis256_encrypt_detached"]=wasmExports["w"];Module["_crypto_aead_aegis256_decrypt"]=wasmExports["x"];Module["_crypto_aead_aegis256_decrypt_detached"]=wasmExports["y"];Module["_crypto_aead_aes256gcm_is_available"]=wasmExports["z"];Module["_crypto_aead_chacha20poly1305_encrypt_detached"]=wasmExports["A"];Module["_crypto_aead_chacha20poly1305_encrypt"]=wasmExports["B"];Module["_crypto_aead_chacha20poly1305_ietf_encrypt_detached"]=wasmExports["C"];Module["_crypto_aead_chacha20poly1305_ietf_encrypt"]=wasmExports["D"];Module["_crypto_aead_chacha20poly1305_decrypt_detached"]=wasmExports["E"];Module["_crypto_aead_chacha20poly1305_decrypt"]=wasmExports["F"];Module["_crypto_aead_chacha20poly1305_ietf_decrypt_detached"]=wasmExports["G"];Module["_crypto_aead_chacha20poly1305_ietf_decrypt"]=wasmExports["H"];Module["_crypto_aead_chacha20poly1305_ietf_keybytes"]=wasmExports["I"];Module["_crypto_aead_chacha20poly1305_ietf_npubbytes"]=wasmExports["J"];Module["_crypto_aead_chacha20poly1305_ietf_nsecbytes"]=wasmExports["K"];Module["_crypto_aead_chacha20poly1305_ietf_abytes"]=wasmExports["L"];Module["_crypto_aead_chacha20poly1305_ietf_messagebytes_max"]=wasmExports["M"];Module["_crypto_aead_chacha20poly1305_ietf_keygen"]=wasmExports["N"];Module["_crypto_aead_chacha20poly1305_keybytes"]=wasmExports["O"];Module["_crypto_aead_chacha20poly1305_npubbytes"]=wasmExports["P"];Module["_crypto_aead_chacha20poly1305_nsecbytes"]=wasmExports["Q"];Module["_crypto_aead_chacha20poly1305_abytes"]=wasmExports["R"];Module["_crypto_aead_chacha20poly1305_messagebytes_max"]=wasmExports["S"];Module["_crypto_aead_chacha20poly1305_keygen"]=wasmExports["T"];Module["_crypto_aead_xchacha20poly1305_ietf_encrypt_detached"]=wasmExports["U"];Module["_crypto_aead_xchacha20poly1305_ietf_encrypt"]=wasmExports["V"];Module["_crypto_aead_xchacha20poly1305_ietf_decrypt_detached"]=wasmExports["W"];Module["_crypto_aead_xchacha20poly1305_ietf_decrypt"]=wasmExports["X"];Module["_crypto_aead_xchacha20poly1305_ietf_keybytes"]=wasmExports["Y"];Module["_crypto_aead_xchacha20poly1305_ietf_npubbytes"]=wasmExports["Z"];Module["_crypto_aead_xchacha20poly1305_ietf_nsecbytes"]=wasmExports["_"];Module["_crypto_aead_xchacha20poly1305_ietf_abytes"]=wasmExports["$"];Module["_crypto_aead_xchacha20poly1305_ietf_messagebytes_max"]=wasmExports["aa"];Module["_crypto_aead_xchacha20poly1305_ietf_keygen"]=wasmExports["ba"];Module["_crypto_auth_bytes"]=wasmExports["ca"];Module["_crypto_auth_keybytes"]=wasmExports["da"];Module["_crypto_auth_primitive"]=wasmExports["ea"];Module["_crypto_auth"]=wasmExports["fa"];Module["_crypto_auth_verify"]=wasmExports["ga"];Module["_crypto_auth_keygen"]=wasmExports["ha"];Module["_crypto_auth_hmacsha256_bytes"]=wasmExports["ia"];Module["_crypto_auth_hmacsha256_keybytes"]=wasmExports["ja"];Module["_crypto_auth_hmacsha256_statebytes"]=wasmExports["ka"];Module["_crypto_auth_hmacsha256_keygen"]=wasmExports["la"];Module["_crypto_auth_hmacsha256_init"]=wasmExports["ma"];Module["_crypto_auth_hmacsha256_update"]=wasmExports["na"];Module["_crypto_auth_hmacsha256_final"]=wasmExports["oa"];Module["_crypto_auth_hmacsha256"]=wasmExports["pa"];Module["_crypto_auth_hmacsha256_verify"]=wasmExports["qa"];Module["_crypto_auth_hmacsha512_bytes"]=wasmExports["ra"];Module["_crypto_auth_hmacsha512_keybytes"]=wasmExports["sa"];Module["_crypto_auth_hmacsha512_statebytes"]=wasmExports["ta"];Module["_crypto_auth_hmacsha512_keygen"]=wasmExports["ua"];Module["_crypto_auth_hmacsha512_init"]=wasmExports["va"];Module["_crypto_auth_hmacsha512_update"]=wasmExports["wa"];Module["_crypto_auth_hmacsha512_final"]=wasmExports["xa"];Module["_crypto_auth_hmacsha512"]=wasmExports["ya"];Module["_crypto_auth_hmacsha512_verify"]=wasmExports["za"];Module["_crypto_auth_hmacsha512256_bytes"]=wasmExports["Aa"];Module["_crypto_auth_hmacsha512256_keybytes"]=wasmExports["Ba"];Module["_crypto_auth_hmacsha512256_statebytes"]=wasmExports["Ca"];Module["_crypto_auth_hmacsha512256_keygen"]=wasmExports["Da"];Module["_crypto_auth_hmacsha512256_init"]=wasmExports["Ea"];Module["_crypto_auth_hmacsha512256_update"]=wasmExports["Fa"];Module["_crypto_auth_hmacsha512256_final"]=wasmExports["Ga"];Module["_crypto_auth_hmacsha512256"]=wasmExports["Ha"];Module["_crypto_auth_hmacsha512256_verify"]=wasmExports["Ia"];Module["_crypto_box_seedbytes"]=wasmExports["Ja"];Module["_crypto_box_publickeybytes"]=wasmExports["Ka"];Module["_crypto_box_secretkeybytes"]=wasmExports["La"];Module["_crypto_box_beforenmbytes"]=wasmExports["Ma"];Module["_crypto_box_noncebytes"]=wasmExports["Na"];Module["_crypto_box_zerobytes"]=wasmExports["Oa"];Module["_crypto_box_boxzerobytes"]=wasmExports["Pa"];Module["_crypto_box_macbytes"]=wasmExports["Qa"];Module["_crypto_box_messagebytes_max"]=wasmExports["Ra"];Module["_crypto_box_primitive"]=wasmExports["Sa"];Module["_crypto_box_seed_keypair"]=wasmExports["Ta"];Module["_crypto_box_keypair"]=wasmExports["Ua"];Module["_crypto_box_beforenm"]=wasmExports["Va"];Module["_crypto_box_afternm"]=wasmExports["Wa"];Module["_crypto_box_open_afternm"]=wasmExports["Xa"];Module["_crypto_box"]=wasmExports["Ya"];Module["_crypto_box_open"]=wasmExports["Za"];Module["_crypto_box_detached_afternm"]=wasmExports["_a"];Module["_crypto_box_detached"]=wasmExports["$a"];Module["_crypto_box_easy_afternm"]=wasmExports["ab"];Module["_crypto_box_easy"]=wasmExports["bb"];Module["_crypto_box_open_detached_afternm"]=wasmExports["cb"];Module["_crypto_box_open_detached"]=wasmExports["db"];Module["_crypto_box_open_easy_afternm"]=wasmExports["eb"];Module["_crypto_box_open_easy"]=wasmExports["fb"];Module["_crypto_box_seal"]=wasmExports["gb"];Module["_crypto_box_seal_open"]=wasmExports["hb"];Module["_crypto_box_sealbytes"]=wasmExports["ib"];Module["_crypto_box_curve25519xsalsa20poly1305_seed_keypair"]=wasmExports["jb"];Module["_crypto_box_curve25519xsalsa20poly1305_keypair"]=wasmExports["kb"];Module["_crypto_box_curve25519xsalsa20poly1305_beforenm"]=wasmExports["lb"];Module["_crypto_box_curve25519xsalsa20poly1305_afternm"]=wasmExports["mb"];Module["_crypto_box_curve25519xsalsa20poly1305_open_afternm"]=wasmExports["nb"];Module["_crypto_box_curve25519xsalsa20poly1305"]=wasmExports["ob"];Module["_crypto_box_curve25519xsalsa20poly1305_open"]=wasmExports["pb"];Module["_crypto_box_curve25519xsalsa20poly1305_seedbytes"]=wasmExports["qb"];Module["_crypto_box_curve25519xsalsa20poly1305_publickeybytes"]=wasmExports["rb"];Module["_crypto_box_curve25519xsalsa20poly1305_secretkeybytes"]=wasmExports["sb"];Module["_crypto_box_curve25519xsalsa20poly1305_beforenmbytes"]=wasmExports["tb"];Module["_crypto_box_curve25519xsalsa20poly1305_noncebytes"]=wasmExports["ub"];Module["_crypto_box_curve25519xsalsa20poly1305_zerobytes"]=wasmExports["vb"];Module["_crypto_box_curve25519xsalsa20poly1305_boxzerobytes"]=wasmExports["wb"];Module["_crypto_box_curve25519xsalsa20poly1305_macbytes"]=wasmExports["xb"];Module["_crypto_box_curve25519xsalsa20poly1305_messagebytes_max"]=wasmExports["yb"];Module["_crypto_core_hchacha20"]=wasmExports["zb"];Module["_crypto_core_hchacha20_outputbytes"]=wasmExports["Ab"];Module["_crypto_core_hchacha20_inputbytes"]=wasmExports["Bb"];Module["_crypto_core_hchacha20_keybytes"]=wasmExports["Cb"];Module["_crypto_core_hchacha20_constbytes"]=wasmExports["Db"];Module["_crypto_core_hsalsa20"]=wasmExports["Eb"];Module["_crypto_core_hsalsa20_outputbytes"]=wasmExports["Fb"];Module["_crypto_core_hsalsa20_inputbytes"]=wasmExports["Gb"];Module["_crypto_core_hsalsa20_keybytes"]=wasmExports["Hb"];Module["_crypto_core_hsalsa20_constbytes"]=wasmExports["Ib"];Module["_crypto_core_salsa20"]=wasmExports["Jb"];Module["_crypto_core_salsa20_outputbytes"]=wasmExports["Kb"];Module["_crypto_core_salsa20_inputbytes"]=wasmExports["Lb"];Module["_crypto_core_salsa20_keybytes"]=wasmExports["Mb"];Module["_crypto_core_salsa20_constbytes"]=wasmExports["Nb"];Module["_crypto_core_salsa2012"]=wasmExports["Ob"];Module["_crypto_core_salsa2012_outputbytes"]=wasmExports["Pb"];Module["_crypto_core_salsa2012_inputbytes"]=wasmExports["Qb"];Module["_crypto_core_salsa2012_keybytes"]=wasmExports["Rb"];Module["_crypto_core_salsa2012_constbytes"]=wasmExports["Sb"];Module["_crypto_core_salsa208"]=wasmExports["Tb"];Module["_crypto_core_salsa208_outputbytes"]=wasmExports["Ub"];Module["_crypto_core_salsa208_inputbytes"]=wasmExports["Vb"];Module["_crypto_core_salsa208_keybytes"]=wasmExports["Wb"];Module["_crypto_core_salsa208_constbytes"]=wasmExports["Xb"];Module["_crypto_generichash_bytes_min"]=wasmExports["Yb"];Module["_crypto_generichash_bytes_max"]=wasmExports["Zb"];Module["_crypto_generichash_bytes"]=wasmExports["_b"];Module["_crypto_generichash_keybytes_min"]=wasmExports["$b"];Module["_crypto_generichash_keybytes_max"]=wasmExports["ac"];Module["_crypto_generichash_keybytes"]=wasmExports["bc"];Module["_crypto_generichash_primitive"]=wasmExports["cc"];Module["_crypto_generichash_statebytes"]=wasmExports["dc"];Module["_crypto_generichash"]=wasmExports["ec"];Module["_crypto_generichash_init"]=wasmExports["fc"];Module["_crypto_generichash_update"]=wasmExports["gc"];Module["_crypto_generichash_final"]=wasmExports["hc"];Module["_crypto_generichash_keygen"]=wasmExports["ic"];Module["_crypto_generichash_blake2b_bytes_min"]=wasmExports["jc"];Module["_crypto_generichash_blake2b_bytes_max"]=wasmExports["kc"];Module["_crypto_generichash_blake2b_bytes"]=wasmExports["lc"];Module["_crypto_generichash_blake2b_keybytes_min"]=wasmExports["mc"];Module["_crypto_generichash_blake2b_keybytes_max"]=wasmExports["nc"];Module["_crypto_generichash_blake2b_keybytes"]=wasmExports["oc"];Module["_crypto_generichash_blake2b_saltbytes"]=wasmExports["pc"];Module["_crypto_generichash_blake2b_personalbytes"]=wasmExports["qc"];Module["_crypto_generichash_blake2b_statebytes"]=wasmExports["rc"];Module["_crypto_generichash_blake2b_keygen"]=wasmExports["sc"];Module["_crypto_generichash_blake2b"]=wasmExports["tc"];Module["_crypto_generichash_blake2b_salt_personal"]=wasmExports["uc"];Module["_crypto_generichash_blake2b_init"]=wasmExports["vc"];Module["_crypto_generichash_blake2b_init_salt_personal"]=wasmExports["wc"];Module["_crypto_generichash_blake2b_update"]=wasmExports["xc"];Module["_crypto_generichash_blake2b_final"]=wasmExports["yc"];Module["_crypto_hash_bytes"]=wasmExports["zc"];Module["_crypto_hash"]=wasmExports["Ac"];Module["_crypto_hash_primitive"]=wasmExports["Bc"];Module["_crypto_hash_sha256_bytes"]=wasmExports["Cc"];Module["_crypto_hash_sha256_statebytes"]=wasmExports["Dc"];Module["_crypto_hash_sha256_init"]=wasmExports["Ec"];Module["_crypto_hash_sha256_update"]=wasmExports["Fc"];Module["_crypto_hash_sha256_final"]=wasmExports["Gc"];Module["_crypto_hash_sha256"]=wasmExports["Hc"];Module["_crypto_hash_sha512_bytes"]=wasmExports["Ic"];Module["_crypto_hash_sha512_statebytes"]=wasmExports["Jc"];Module["_crypto_hash_sha512_init"]=wasmExports["Kc"];Module["_crypto_hash_sha512_update"]=wasmExports["Lc"];Module["_crypto_hash_sha512_final"]=wasmExports["Mc"];Module["_crypto_hash_sha512"]=wasmExports["Nc"];Module["_crypto_kdf_blake2b_bytes_min"]=wasmExports["Oc"];Module["_crypto_kdf_blake2b_bytes_max"]=wasmExports["Pc"];Module["_crypto_kdf_blake2b_contextbytes"]=wasmExports["Qc"];Module["_crypto_kdf_blake2b_keybytes"]=wasmExports["Rc"];Module["_crypto_kdf_blake2b_derive_from_key"]=wasmExports["Sc"];Module["_crypto_kdf_primitive"]=wasmExports["Tc"];Module["_crypto_kdf_bytes_min"]=wasmExports["Uc"];Module["_crypto_kdf_bytes_max"]=wasmExports["Vc"];Module["_crypto_kdf_contextbytes"]=wasmExports["Wc"];Module["_crypto_kdf_keybytes"]=wasmExports["Xc"];Module["_crypto_kdf_derive_from_key"]=wasmExports["Yc"];Module["_crypto_kdf_keygen"]=wasmExports["Zc"];Module["_crypto_kdf_hkdf_sha256_extract_init"]=wasmExports["_c"];Module["_crypto_kdf_hkdf_sha256_extract_update"]=wasmExports["$c"];Module["_crypto_kdf_hkdf_sha256_extract_final"]=wasmExports["ad"];Module["_crypto_kdf_hkdf_sha256_extract"]=wasmExports["bd"];Module["_crypto_kdf_hkdf_sha256_keygen"]=wasmExports["cd"];Module["_crypto_kdf_hkdf_sha256_expand"]=wasmExports["dd"];Module["_crypto_kdf_hkdf_sha256_keybytes"]=wasmExports["ed"];Module["_crypto_kdf_hkdf_sha256_bytes_min"]=wasmExports["fd"];Module["_crypto_kdf_hkdf_sha256_bytes_max"]=wasmExports["gd"];Module["_crypto_kdf_hkdf_sha256_statebytes"]=wasmExports["hd"];Module["_crypto_kdf_hkdf_sha512_extract_init"]=wasmExports["id"];Module["_crypto_kdf_hkdf_sha512_extract_update"]=wasmExports["jd"];Module["_crypto_kdf_hkdf_sha512_extract_final"]=wasmExports["kd"];Module["_crypto_kdf_hkdf_sha512_extract"]=wasmExports["ld"];Module["_crypto_kdf_hkdf_sha512_keygen"]=wasmExports["md"];Module["_crypto_kdf_hkdf_sha512_expand"]=wasmExports["nd"];Module["_crypto_kdf_hkdf_sha512_keybytes"]=wasmExports["od"];Module["_crypto_kdf_hkdf_sha512_bytes_min"]=wasmExports["pd"];Module["_crypto_kdf_hkdf_sha512_bytes_max"]=wasmExports["qd"];Module["_crypto_kdf_hkdf_sha512_statebytes"]=wasmExports["rd"];Module["_crypto_kx_seed_keypair"]=wasmExports["sd"];Module["_crypto_kx_keypair"]=wasmExports["td"];Module["_crypto_kx_client_session_keys"]=wasmExports["ud"];Module["_crypto_kx_server_session_keys"]=wasmExports["vd"];Module["_crypto_kx_publickeybytes"]=wasmExports["wd"];Module["_crypto_kx_secretkeybytes"]=wasmExports["xd"];Module["_crypto_kx_seedbytes"]=wasmExports["yd"];Module["_crypto_kx_sessionkeybytes"]=wasmExports["zd"];Module["_crypto_kx_primitive"]=wasmExports["Ad"];Module["_crypto_onetimeauth_statebytes"]=wasmExports["Bd"];Module["_crypto_onetimeauth_bytes"]=wasmExports["Cd"];Module["_crypto_onetimeauth_keybytes"]=wasmExports["Dd"];Module["_crypto_onetimeauth"]=wasmExports["Ed"];Module["_crypto_onetimeauth_verify"]=wasmExports["Fd"];Module["_crypto_onetimeauth_init"]=wasmExports["Gd"];Module["_crypto_onetimeauth_update"]=wasmExports["Hd"];Module["_crypto_onetimeauth_final"]=wasmExports["Id"];Module["_crypto_onetimeauth_primitive"]=wasmExports["Jd"];Module["_crypto_onetimeauth_keygen"]=wasmExports["Kd"];Module["_crypto_onetimeauth_poly1305"]=wasmExports["Ld"];Module["_crypto_onetimeauth_poly1305_verify"]=wasmExports["Md"];Module["_crypto_onetimeauth_poly1305_init"]=wasmExports["Nd"];Module["_crypto_onetimeauth_poly1305_update"]=wasmExports["Od"];Module["_crypto_onetimeauth_poly1305_final"]=wasmExports["Pd"];Module["_crypto_onetimeauth_poly1305_bytes"]=wasmExports["Qd"];Module["_crypto_onetimeauth_poly1305_keybytes"]=wasmExports["Rd"];Module["_crypto_onetimeauth_poly1305_statebytes"]=wasmExports["Sd"];Module["_crypto_onetimeauth_poly1305_keygen"]=wasmExports["Td"];Module["_crypto_pwhash_argon2i_alg_argon2i13"]=wasmExports["Ud"];Module["_crypto_pwhash_argon2i_bytes_min"]=wasmExports["Vd"];Module["_crypto_pwhash_argon2i_bytes_max"]=wasmExports["Wd"];Module["_crypto_pwhash_argon2i_passwd_min"]=wasmExports["Xd"];Module["_crypto_pwhash_argon2i_passwd_max"]=wasmExports["Yd"];Module["_crypto_pwhash_argon2i_saltbytes"]=wasmExports["Zd"];Module["_crypto_pwhash_argon2i_strbytes"]=wasmExports["_d"];Module["_crypto_pwhash_argon2i_strprefix"]=wasmExports["$d"];Module["_crypto_pwhash_argon2i_opslimit_min"]=wasmExports["ae"];Module["_crypto_pwhash_argon2i_opslimit_max"]=wasmExports["be"];Module["_crypto_pwhash_argon2i_memlimit_min"]=wasmExports["ce"];Module["_crypto_pwhash_argon2i_memlimit_max"]=wasmExports["de"];Module["_crypto_pwhash_argon2i_opslimit_interactive"]=wasmExports["ee"];Module["_crypto_pwhash_argon2i_memlimit_interactive"]=wasmExports["fe"];Module["_crypto_pwhash_argon2i_opslimit_moderate"]=wasmExports["ge"];Module["_crypto_pwhash_argon2i_memlimit_moderate"]=wasmExports["he"];Module["_crypto_pwhash_argon2i_opslimit_sensitive"]=wasmExports["ie"];Module["_crypto_pwhash_argon2i_memlimit_sensitive"]=wasmExports["je"];Module["_crypto_pwhash_argon2i"]=wasmExports["ke"];Module["_crypto_pwhash_argon2i_str"]=wasmExports["le"];Module["_crypto_pwhash_argon2i_str_verify"]=wasmExports["me"];Module["_crypto_pwhash_argon2i_str_needs_rehash"]=wasmExports["ne"];Module["_crypto_pwhash_argon2id_str_needs_rehash"]=wasmExports["oe"];Module["_crypto_pwhash_argon2id_alg_argon2id13"]=wasmExports["pe"];Module["_crypto_pwhash_argon2id_bytes_min"]=wasmExports["qe"];Module["_crypto_pwhash_argon2id_bytes_max"]=wasmExports["re"];Module["_crypto_pwhash_argon2id_passwd_min"]=wasmExports["se"];Module["_crypto_pwhash_argon2id_passwd_max"]=wasmExports["te"];Module["_crypto_pwhash_argon2id_saltbytes"]=wasmExports["ue"];Module["_crypto_pwhash_argon2id_strbytes"]=wasmExports["ve"];Module["_crypto_pwhash_argon2id_strprefix"]=wasmExports["we"];Module["_crypto_pwhash_argon2id_opslimit_min"]=wasmExports["xe"];Module["_crypto_pwhash_argon2id_opslimit_max"]=wasmExports["ye"];Module["_crypto_pwhash_argon2id_memlimit_min"]=wasmExports["ze"];Module["_crypto_pwhash_argon2id_memlimit_max"]=wasmExports["Ae"];Module["_crypto_pwhash_argon2id_opslimit_interactive"]=wasmExports["Be"];Module["_crypto_pwhash_argon2id_memlimit_interactive"]=wasmExports["Ce"];Module["_crypto_pwhash_argon2id_opslimit_moderate"]=wasmExports["De"];Module["_crypto_pwhash_argon2id_memlimit_moderate"]=wasmExports["Ee"];Module["_crypto_pwhash_argon2id_opslimit_sensitive"]=wasmExports["Fe"];Module["_crypto_pwhash_argon2id_memlimit_sensitive"]=wasmExports["Ge"];Module["_crypto_pwhash_argon2id"]=wasmExports["He"];Module["_crypto_pwhash_argon2id_str"]=wasmExports["Ie"];Module["_crypto_pwhash_argon2id_str_verify"]=wasmExports["Je"];Module["_crypto_pwhash_alg_argon2i13"]=wasmExports["Ke"];Module["_crypto_pwhash_alg_argon2id13"]=wasmExports["Le"];Module["_crypto_pwhash_alg_default"]=wasmExports["Me"];Module["_crypto_pwhash_bytes_min"]=wasmExports["Ne"];Module["_crypto_pwhash_bytes_max"]=wasmExports["Oe"];Module["_crypto_pwhash_passwd_min"]=wasmExports["Pe"];Module["_crypto_pwhash_passwd_max"]=wasmExports["Qe"];Module["_crypto_pwhash_saltbytes"]=wasmExports["Re"];Module["_crypto_pwhash_strbytes"]=wasmExports["Se"];Module["_crypto_pwhash_strprefix"]=wasmExports["Te"];Module["_crypto_pwhash_opslimit_min"]=wasmExports["Ue"];Module["_crypto_pwhash_opslimit_max"]=wasmExports["Ve"];Module["_crypto_pwhash_memlimit_min"]=wasmExports["We"];Module["_crypto_pwhash_memlimit_max"]=wasmExports["Xe"];Module["_crypto_pwhash_opslimit_interactive"]=wasmExports["Ye"];Module["_crypto_pwhash_memlimit_interactive"]=wasmExports["Ze"];Module["_crypto_pwhash_opslimit_moderate"]=wasmExports["_e"];Module["_crypto_pwhash_memlimit_moderate"]=wasmExports["$e"];Module["_crypto_pwhash_opslimit_sensitive"]=wasmExports["af"];Module["_crypto_pwhash_memlimit_sensitive"]=wasmExports["bf"];Module["_crypto_pwhash"]=wasmExports["cf"];Module["_crypto_pwhash_str"]=wasmExports["df"];Module["_crypto_pwhash_str_alg"]=wasmExports["ef"];Module["_crypto_pwhash_str_verify"]=wasmExports["ff"];Module["_crypto_pwhash_str_needs_rehash"]=wasmExports["gf"];Module["_crypto_pwhash_primitive"]=wasmExports["hf"];Module["_crypto_scalarmult_primitive"]=wasmExports["jf"];Module["_crypto_scalarmult_base"]=wasmExports["kf"];Module["_crypto_scalarmult"]=wasmExports["lf"];Module["_crypto_scalarmult_bytes"]=wasmExports["mf"];Module["_crypto_scalarmult_scalarbytes"]=wasmExports["nf"];Module["_crypto_scalarmult_curve25519"]=wasmExports["of"];Module["_crypto_scalarmult_curve25519_base"]=wasmExports["pf"];Module["_crypto_scalarmult_curve25519_bytes"]=wasmExports["qf"];Module["_crypto_scalarmult_curve25519_scalarbytes"]=wasmExports["rf"];Module["_crypto_secretbox_keybytes"]=wasmExports["sf"];Module["_crypto_secretbox_noncebytes"]=wasmExports["tf"];Module["_crypto_secretbox_zerobytes"]=wasmExports["uf"];Module["_crypto_secretbox_boxzerobytes"]=wasmExports["vf"];Module["_crypto_secretbox_macbytes"]=wasmExports["wf"];Module["_crypto_secretbox_messagebytes_max"]=wasmExports["xf"];Module["_crypto_secretbox_primitive"]=wasmExports["yf"];Module["_crypto_secretbox"]=wasmExports["zf"];Module["_crypto_secretbox_open"]=wasmExports["Af"];Module["_crypto_secretbox_keygen"]=wasmExports["Bf"];Module["_crypto_secretbox_detached"]=wasmExports["Cf"];Module["_crypto_secretbox_easy"]=wasmExports["Df"];Module["_crypto_secretbox_open_detached"]=wasmExports["Ef"];Module["_crypto_secretbox_open_easy"]=wasmExports["Ff"];Module["_crypto_secretbox_xsalsa20poly1305"]=wasmExports["Gf"];Module["_crypto_secretbox_xsalsa20poly1305_open"]=wasmExports["Hf"];Module["_crypto_secretbox_xsalsa20poly1305_keybytes"]=wasmExports["If"];Module["_crypto_secretbox_xsalsa20poly1305_noncebytes"]=wasmExports["Jf"];Module["_crypto_secretbox_xsalsa20poly1305_zerobytes"]=wasmExports["Kf"];Module["_crypto_secretbox_xsalsa20poly1305_boxzerobytes"]=wasmExports["Lf"];Module["_crypto_secretbox_xsalsa20poly1305_macbytes"]=wasmExports["Mf"];Module["_crypto_secretbox_xsalsa20poly1305_messagebytes_max"]=wasmExports["Nf"];Module["_crypto_secretbox_xsalsa20poly1305_keygen"]=wasmExports["Of"];Module["_crypto_secretstream_xchacha20poly1305_keygen"]=wasmExports["Pf"];Module["_crypto_secretstream_xchacha20poly1305_init_push"]=wasmExports["Qf"];Module["_crypto_secretstream_xchacha20poly1305_init_pull"]=wasmExports["Rf"];Module["_crypto_secretstream_xchacha20poly1305_rekey"]=wasmExports["Sf"];Module["_crypto_secretstream_xchacha20poly1305_push"]=wasmExports["Tf"];Module["_crypto_secretstream_xchacha20poly1305_pull"]=wasmExports["Uf"];Module["_crypto_secretstream_xchacha20poly1305_statebytes"]=wasmExports["Vf"];Module["_crypto_secretstream_xchacha20poly1305_abytes"]=wasmExports["Wf"];Module["_crypto_secretstream_xchacha20poly1305_headerbytes"]=wasmExports["Xf"];Module["_crypto_secretstream_xchacha20poly1305_keybytes"]=wasmExports["Yf"];Module["_crypto_secretstream_xchacha20poly1305_messagebytes_max"]=wasmExports["Zf"];Module["_crypto_secretstream_xchacha20poly1305_tag_message"]=wasmExports["_f"];Module["_crypto_secretstream_xchacha20poly1305_tag_push"]=wasmExports["$f"];Module["_crypto_secretstream_xchacha20poly1305_tag_rekey"]=wasmExports["ag"];Module["_crypto_secretstream_xchacha20poly1305_tag_final"]=wasmExports["bg"];Module["_crypto_shorthash_bytes"]=wasmExports["cg"];Module["_crypto_shorthash_keybytes"]=wasmExports["dg"];Module["_crypto_shorthash_primitive"]=wasmExports["eg"];Module["_crypto_shorthash"]=wasmExports["fg"];Module["_crypto_shorthash_keygen"]=wasmExports["gg"];Module["_crypto_shorthash_siphash24_bytes"]=wasmExports["hg"];Module["_crypto_shorthash_siphash24_keybytes"]=wasmExports["ig"];Module["_crypto_shorthash_siphash24"]=wasmExports["jg"];Module["_crypto_sign_statebytes"]=wasmExports["kg"];Module["_crypto_sign_bytes"]=wasmExports["lg"];Module["_crypto_sign_seedbytes"]=wasmExports["mg"];Module["_crypto_sign_publickeybytes"]=wasmExports["ng"];Module["_crypto_sign_secretkeybytes"]=wasmExports["og"];Module["_crypto_sign_messagebytes_max"]=wasmExports["pg"];Module["_crypto_sign_primitive"]=wasmExports["qg"];Module["_crypto_sign_seed_keypair"]=wasmExports["rg"];Module["_crypto_sign_keypair"]=wasmExports["sg"];Module["_crypto_sign"]=wasmExports["tg"];Module["_crypto_sign_open"]=wasmExports["ug"];Module["_crypto_sign_detached"]=wasmExports["vg"];Module["_crypto_sign_verify_detached"]=wasmExports["wg"];Module["_crypto_sign_init"]=wasmExports["xg"];Module["_crypto_sign_update"]=wasmExports["yg"];Module["_crypto_sign_final_create"]=wasmExports["zg"];Module["_crypto_sign_final_verify"]=wasmExports["Ag"];Module["_crypto_sign_ed25519ph_statebytes"]=wasmExports["Bg"];Module["_crypto_sign_ed25519_bytes"]=wasmExports["Cg"];Module["_crypto_sign_ed25519_seedbytes"]=wasmExports["Dg"];Module["_crypto_sign_ed25519_publickeybytes"]=wasmExports["Eg"];Module["_crypto_sign_ed25519_secretkeybytes"]=wasmExports["Fg"];Module["_crypto_sign_ed25519_messagebytes_max"]=wasmExports["Gg"];Module["_crypto_sign_ed25519_sk_to_seed"]=wasmExports["Hg"];Module["_crypto_sign_ed25519_sk_to_pk"]=wasmExports["Ig"];Module["_crypto_sign_ed25519ph_init"]=wasmExports["Jg"];Module["_crypto_sign_ed25519ph_update"]=wasmExports["Kg"];Module["_crypto_sign_ed25519ph_final_create"]=wasmExports["Lg"];Module["_crypto_sign_ed25519ph_final_verify"]=wasmExports["Mg"];Module["_crypto_sign_ed25519_seed_keypair"]=wasmExports["Ng"];Module["_crypto_sign_ed25519_keypair"]=wasmExports["Og"];Module["_crypto_sign_ed25519_pk_to_curve25519"]=wasmExports["Pg"];Module["_crypto_sign_ed25519_sk_to_curve25519"]=wasmExports["Qg"];Module["_crypto_sign_ed25519_verify_detached"]=wasmExports["Rg"];Module["_crypto_sign_ed25519_open"]=wasmExports["Sg"];Module["_crypto_sign_ed25519_detached"]=wasmExports["Tg"];Module["_crypto_sign_ed25519"]=wasmExports["Ug"];Module["_crypto_stream_chacha20_keybytes"]=wasmExports["Vg"];Module["_crypto_stream_chacha20_noncebytes"]=wasmExports["Wg"];Module["_crypto_stream_chacha20_messagebytes_max"]=wasmExports["Xg"];Module["_crypto_stream_chacha20_ietf_keybytes"]=wasmExports["Yg"];Module["_crypto_stream_chacha20_ietf_noncebytes"]=wasmExports["Zg"];Module["_crypto_stream_chacha20_ietf_messagebytes_max"]=wasmExports["_g"];Module["_crypto_stream_chacha20"]=wasmExports["$g"];Module["_crypto_stream_chacha20_xor_ic"]=wasmExports["ah"];Module["_crypto_stream_chacha20_xor"]=wasmExports["bh"];Module["_crypto_stream_chacha20_ietf"]=wasmExports["ch"];Module["_crypto_stream_chacha20_ietf_xor_ic"]=wasmExports["dh"];Module["_crypto_stream_chacha20_ietf_xor"]=wasmExports["eh"];Module["_crypto_stream_chacha20_ietf_keygen"]=wasmExports["fh"];Module["_crypto_stream_chacha20_keygen"]=wasmExports["gh"];Module["_crypto_stream_keybytes"]=wasmExports["hh"];Module["_crypto_stream_noncebytes"]=wasmExports["ih"];Module["_crypto_stream_messagebytes_max"]=wasmExports["jh"];Module["_crypto_stream_primitive"]=wasmExports["kh"];Module["_crypto_stream"]=wasmExports["lh"];Module["_crypto_stream_xor"]=wasmExports["mh"];Module["_crypto_stream_keygen"]=wasmExports["nh"];Module["_crypto_stream_salsa20_keybytes"]=wasmExports["oh"];Module["_crypto_stream_salsa20_noncebytes"]=wasmExports["ph"];Module["_crypto_stream_salsa20_messagebytes_max"]=wasmExports["qh"];Module["_crypto_stream_salsa20"]=wasmExports["rh"];Module["_crypto_stream_salsa20_xor_ic"]=wasmExports["sh"];Module["_crypto_stream_salsa20_xor"]=wasmExports["th"];Module["_crypto_stream_salsa20_keygen"]=wasmExports["uh"];Module["_crypto_stream_xsalsa20"]=wasmExports["vh"];Module["_crypto_stream_xsalsa20_xor_ic"]=wasmExports["wh"];Module["_crypto_stream_xsalsa20_xor"]=wasmExports["xh"];Module["_crypto_stream_xsalsa20_keybytes"]=wasmExports["yh"];Module["_crypto_stream_xsalsa20_noncebytes"]=wasmExports["zh"];Module["_crypto_stream_xsalsa20_messagebytes_max"]=wasmExports["Ah"];Module["_crypto_stream_xsalsa20_keygen"]=wasmExports["Bh"];Module["_crypto_verify_16_bytes"]=wasmExports["Ch"];Module["_crypto_verify_32_bytes"]=wasmExports["Dh"];Module["_crypto_verify_64_bytes"]=wasmExports["Eh"];Module["_crypto_verify_16"]=wasmExports["Fh"];Module["_crypto_verify_32"]=wasmExports["Gh"];Module["_crypto_verify_64"]=wasmExports["Hh"];Module["_randombytes_implementation_name"]=wasmExports["Ih"];Module["_randombytes_random"]=wasmExports["Jh"];Module["_randombytes_stir"]=wasmExports["Kh"];Module["_randombytes_uniform"]=wasmExports["Lh"];Module["_randombytes_buf"]=wasmExports["Mh"];Module["_randombytes_buf_deterministic"]=wasmExports["Nh"];Module["_randombytes_seedbytes"]=wasmExports["Oh"];Module["_randombytes_close"]=wasmExports["Ph"];Module["_randombytes"]=wasmExports["Qh"];Module["_sodium_bin2hex"]=wasmExports["Rh"];Module["_sodium_hex2bin"]=wasmExports["Sh"];Module["_sodium_base64_encoded_len"]=wasmExports["Th"];Module["_sodium_bin2base64"]=wasmExports["Uh"];Module["_sodium_base642bin"]=wasmExports["Vh"];Module["_sodium_init"]=wasmExports["Wh"];Module["_sodium_pad"]=wasmExports["Xh"];Module["_sodium_unpad"]=wasmExports["Yh"];Module["_sodium_version_string"]=wasmExports["Zh"];Module["_sodium_library_version_major"]=wasmExports["_h"];Module["_sodium_library_version_minor"]=wasmExports["$h"];Module["_sodium_library_minimal"]=wasmExports["ai"];Module["_crypto_box_curve25519xchacha20poly1305_seed_keypair"]=wasmExports["bi"];Module["_crypto_box_curve25519xchacha20poly1305_keypair"]=wasmExports["ci"];Module["_crypto_box_curve25519xchacha20poly1305_beforenm"]=wasmExports["di"];Module["_crypto_box_curve25519xchacha20poly1305_detached_afternm"]=wasmExports["ei"];Module["_crypto_box_curve25519xchacha20poly1305_detached"]=wasmExports["fi"];Module["_crypto_box_curve25519xchacha20poly1305_easy_afternm"]=wasmExports["gi"];Module["_crypto_box_curve25519xchacha20poly1305_easy"]=wasmExports["hi"];Module["_crypto_box_curve25519xchacha20poly1305_open_detached_afternm"]=wasmExports["ii"];Module["_crypto_box_curve25519xchacha20poly1305_open_detached"]=wasmExports["ji"];Module["_crypto_box_curve25519xchacha20poly1305_open_easy_afternm"]=wasmExports["ki"];Module["_crypto_box_curve25519xchacha20poly1305_open_easy"]=wasmExports["li"];Module["_crypto_box_curve25519xchacha20poly1305_seedbytes"]=wasmExports["mi"];Module["_crypto_box_curve25519xchacha20poly1305_publickeybytes"]=wasmExports["ni"];Module["_crypto_box_curve25519xchacha20poly1305_secretkeybytes"]=wasmExports["oi"];Module["_crypto_box_curve25519xchacha20poly1305_beforenmbytes"]=wasmExports["pi"];Module["_crypto_box_curve25519xchacha20poly1305_noncebytes"]=wasmExports["qi"];Module["_crypto_box_curve25519xchacha20poly1305_macbytes"]=wasmExports["ri"];Module["_crypto_box_curve25519xchacha20poly1305_messagebytes_max"]=wasmExports["si"];Module["_crypto_box_curve25519xchacha20poly1305_seal"]=wasmExports["ti"];Module["_crypto_box_curve25519xchacha20poly1305_seal_open"]=wasmExports["ui"];Module["_crypto_box_curve25519xchacha20poly1305_sealbytes"]=wasmExports["vi"];Module["_crypto_core_ed25519_is_valid_point"]=wasmExports["wi"];Module["_crypto_core_ed25519_add"]=wasmExports["xi"];Module["_crypto_core_ed25519_sub"]=wasmExports["yi"];Module["_crypto_core_ed25519_from_uniform"]=wasmExports["zi"];Module["_crypto_core_ed25519_random"]=wasmExports["Ai"];Module["_crypto_core_ed25519_scalar_random"]=wasmExports["Bi"];Module["_crypto_core_ed25519_scalar_invert"]=wasmExports["Ci"];Module["_crypto_core_ed25519_scalar_negate"]=wasmExports["Di"];Module["_crypto_core_ed25519_scalar_complement"]=wasmExports["Ei"];Module["_crypto_core_ed25519_scalar_add"]=wasmExports["Fi"];Module["_crypto_core_ed25519_scalar_reduce"]=wasmExports["Gi"];Module["_crypto_core_ed25519_scalar_sub"]=wasmExports["Hi"];Module["_crypto_core_ed25519_scalar_mul"]=wasmExports["Ii"];Module["_crypto_core_ed25519_bytes"]=wasmExports["Ji"];Module["_crypto_core_ed25519_nonreducedscalarbytes"]=wasmExports["Ki"];Module["_crypto_core_ed25519_uniformbytes"]=wasmExports["Li"];Module["_crypto_core_ed25519_hashbytes"]=wasmExports["Mi"];Module["_crypto_core_ed25519_scalarbytes"]=wasmExports["Ni"];Module["_crypto_core_ristretto255_is_valid_point"]=wasmExports["Oi"];Module["_crypto_core_ristretto255_add"]=wasmExports["Pi"];Module["_crypto_core_ristretto255_sub"]=wasmExports["Qi"];Module["_crypto_core_ristretto255_from_hash"]=wasmExports["Ri"];Module["_crypto_core_ristretto255_random"]=wasmExports["Si"];Module["_crypto_core_ristretto255_scalar_random"]=wasmExports["Ti"];Module["_crypto_core_ristretto255_scalar_invert"]=wasmExports["Ui"];Module["_crypto_core_ristretto255_scalar_negate"]=wasmExports["Vi"];Module["_crypto_core_ristretto255_scalar_complement"]=wasmExports["Wi"];Module["_crypto_core_ristretto255_scalar_add"]=wasmExports["Xi"];Module["_crypto_core_ristretto255_scalar_sub"]=wasmExports["Yi"];Module["_crypto_core_ristretto255_scalar_mul"]=wasmExports["Zi"];Module["_crypto_core_ristretto255_scalar_reduce"]=wasmExports["_i"];Module["_crypto_core_ristretto255_bytes"]=wasmExports["$i"];Module["_crypto_core_ristretto255_nonreducedscalarbytes"]=wasmExports["aj"];Module["_crypto_core_ristretto255_hashbytes"]=wasmExports["bj"];Module["_crypto_core_ristretto255_scalarbytes"]=wasmExports["cj"];Module["_crypto_pwhash_scryptsalsa208sha256_ll"]=wasmExports["dj"];Module["_crypto_pwhash_scryptsalsa208sha256_bytes_min"]=wasmExports["ej"];Module["_crypto_pwhash_scryptsalsa208sha256_bytes_max"]=wasmExports["fj"];Module["_crypto_pwhash_scryptsalsa208sha256_passwd_min"]=wasmExports["gj"];Module["_crypto_pwhash_scryptsalsa208sha256_passwd_max"]=wasmExports["hj"];Module["_crypto_pwhash_scryptsalsa208sha256_saltbytes"]=wasmExports["ij"];Module["_crypto_pwhash_scryptsalsa208sha256_strbytes"]=wasmExports["jj"];Module["_crypto_pwhash_scryptsalsa208sha256_strprefix"]=wasmExports["kj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_min"]=wasmExports["lj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_max"]=wasmExports["mj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_min"]=wasmExports["nj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_max"]=wasmExports["oj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_interactive"]=wasmExports["pj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_interactive"]=wasmExports["qj"];Module["_crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive"]=wasmExports["rj"];Module["_crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive"]=wasmExports["sj"];Module["_crypto_pwhash_scryptsalsa208sha256"]=wasmExports["tj"];Module["_crypto_pwhash_scryptsalsa208sha256_str"]=wasmExports["uj"];Module["_crypto_pwhash_scryptsalsa208sha256_str_verify"]=wasmExports["vj"];Module["_crypto_pwhash_scryptsalsa208sha256_str_needs_rehash"]=wasmExports["wj"];Module["_crypto_scalarmult_ed25519"]=wasmExports["xj"];Module["_crypto_scalarmult_ed25519_noclamp"]=wasmExports["yj"];Module["_crypto_scalarmult_ed25519_base"]=wasmExports["zj"];Module["_crypto_scalarmult_ed25519_base_noclamp"]=wasmExports["Aj"];Module["_crypto_scalarmult_ed25519_bytes"]=wasmExports["Bj"];Module["_crypto_scalarmult_ed25519_scalarbytes"]=wasmExports["Cj"];Module["_crypto_scalarmult_ristretto255"]=wasmExports["Dj"];Module["_crypto_scalarmult_ristretto255_base"]=wasmExports["Ej"];Module["_crypto_scalarmult_ristretto255_bytes"]=wasmExports["Fj"];Module["_crypto_scalarmult_ristretto255_scalarbytes"]=wasmExports["Gj"];Module["_crypto_secretbox_xchacha20poly1305_detached"]=wasmExports["Hj"];Module["_crypto_secretbox_xchacha20poly1305_easy"]=wasmExports["Ij"];Module["_crypto_secretbox_xchacha20poly1305_open_detached"]=wasmExports["Jj"];Module["_crypto_secretbox_xchacha20poly1305_open_easy"]=wasmExports["Kj"];Module["_crypto_secretbox_xchacha20poly1305_keybytes"]=wasmExports["Lj"];Module["_crypto_secretbox_xchacha20poly1305_noncebytes"]=wasmExports["Mj"];Module["_crypto_secretbox_xchacha20poly1305_macbytes"]=wasmExports["Nj"];Module["_crypto_secretbox_xchacha20poly1305_messagebytes_max"]=wasmExports["Oj"];Module["_crypto_shorthash_siphashx24_bytes"]=wasmExports["Pj"];Module["_crypto_shorthash_siphashx24_keybytes"]=wasmExports["Qj"];Module["_crypto_shorthash_siphashx24"]=wasmExports["Rj"];Module["_crypto_stream_salsa2012"]=wasmExports["Sj"];Module["_crypto_stream_salsa2012_xor"]=wasmExports["Tj"];Module["_crypto_stream_salsa2012_keybytes"]=wasmExports["Uj"];Module["_crypto_stream_salsa2012_noncebytes"]=wasmExports["Vj"];Module["_crypto_stream_salsa2012_messagebytes_max"]=wasmExports["Wj"];Module["_crypto_stream_salsa2012_keygen"]=wasmExports["Xj"];Module["_crypto_stream_salsa208"]=wasmExports["Yj"];Module["_crypto_stream_salsa208_xor"]=wasmExports["Zj"];Module["_crypto_stream_salsa208_keybytes"]=wasmExports["_j"];Module["_crypto_stream_salsa208_noncebytes"]=wasmExports["$j"];Module["_crypto_stream_salsa208_messagebytes_max"]=wasmExports["ak"];Module["_crypto_stream_salsa208_keygen"]=wasmExports["bk"];Module["_crypto_stream_xchacha20_keybytes"]=wasmExports["ck"];Module["_crypto_stream_xchacha20_noncebytes"]=wasmExports["dk"];Module["_crypto_stream_xchacha20_messagebytes_max"]=wasmExports["ek"];Module["_crypto_stream_xchacha20"]=wasmExports["fk"];Module["_crypto_stream_xchacha20_xor_ic"]=wasmExports["gk"];Module["_crypto_stream_xchacha20_xor"]=wasmExports["hk"];Module["_crypto_stream_xchacha20_keygen"]=wasmExports["ik"];Module["_malloc"]=wasmExports["jk"];Module["_free"]=wasmExports["kk"];wasmExports["dynCall_iiiji"];wasmExports["dynCall_iiij"];wasmExports["dynCall_iijii"];wasmExports["dynCall_iiijiji"];wasmExports["dynCall_iiijiii"];wasmMemory=wasmExports["e"];wasmExports["__indirect_function_table"];}var wasmImports={b:___assert_fail,c:__abort_js,a:_emscripten_asm_const_int,d:_emscripten_resize_heap};function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;Module["onRuntimeInitialized"]?.();postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun();},1);}else {doRun();}}var wasmExports;createWasm();run(); + }).catch(function() { + return _Module.useBackupModule(); + }); +const e = Module; + +let a;const r={},t$1=e.ready.then(function(){function t(){if(a._sodium_init()<0)throw new Error("libsodium was not correctly initialized.");for(var e=["crypto_aead_aegis128l_decrypt","crypto_aead_aegis128l_decrypt_detached","crypto_aead_aegis128l_encrypt","crypto_aead_aegis128l_encrypt_detached","crypto_aead_aegis128l_keygen","crypto_aead_aegis256_decrypt","crypto_aead_aegis256_decrypt_detached","crypto_aead_aegis256_encrypt","crypto_aead_aegis256_encrypt_detached","crypto_aead_aegis256_keygen","crypto_aead_chacha20poly1305_decrypt","crypto_aead_chacha20poly1305_decrypt_detached","crypto_aead_chacha20poly1305_encrypt","crypto_aead_chacha20poly1305_encrypt_detached","crypto_aead_chacha20poly1305_ietf_decrypt","crypto_aead_chacha20poly1305_ietf_decrypt_detached","crypto_aead_chacha20poly1305_ietf_encrypt","crypto_aead_chacha20poly1305_ietf_encrypt_detached","crypto_aead_chacha20poly1305_ietf_keygen","crypto_aead_chacha20poly1305_keygen","crypto_aead_xchacha20poly1305_ietf_decrypt","crypto_aead_xchacha20poly1305_ietf_decrypt_detached","crypto_aead_xchacha20poly1305_ietf_encrypt","crypto_aead_xchacha20poly1305_ietf_encrypt_detached","crypto_aead_xchacha20poly1305_ietf_keygen","crypto_auth","crypto_auth_hmacsha256","crypto_auth_hmacsha256_final","crypto_auth_hmacsha256_init","crypto_auth_hmacsha256_keygen","crypto_auth_hmacsha256_update","crypto_auth_hmacsha256_verify","crypto_auth_hmacsha512","crypto_auth_hmacsha512256","crypto_auth_hmacsha512256_final","crypto_auth_hmacsha512256_init","crypto_auth_hmacsha512256_keygen","crypto_auth_hmacsha512256_update","crypto_auth_hmacsha512256_verify","crypto_auth_hmacsha512_final","crypto_auth_hmacsha512_init","crypto_auth_hmacsha512_keygen","crypto_auth_hmacsha512_update","crypto_auth_hmacsha512_verify","crypto_auth_keygen","crypto_auth_verify","crypto_box_beforenm","crypto_box_curve25519xchacha20poly1305_beforenm","crypto_box_curve25519xchacha20poly1305_detached","crypto_box_curve25519xchacha20poly1305_detached_afternm","crypto_box_curve25519xchacha20poly1305_easy","crypto_box_curve25519xchacha20poly1305_easy_afternm","crypto_box_curve25519xchacha20poly1305_keypair","crypto_box_curve25519xchacha20poly1305_open_detached","crypto_box_curve25519xchacha20poly1305_open_detached_afternm","crypto_box_curve25519xchacha20poly1305_open_easy","crypto_box_curve25519xchacha20poly1305_open_easy_afternm","crypto_box_curve25519xchacha20poly1305_seal","crypto_box_curve25519xchacha20poly1305_seal_open","crypto_box_curve25519xchacha20poly1305_seed_keypair","crypto_box_detached","crypto_box_easy","crypto_box_easy_afternm","crypto_box_keypair","crypto_box_open_detached","crypto_box_open_easy","crypto_box_open_easy_afternm","crypto_box_seal","crypto_box_seal_open","crypto_box_seed_keypair","crypto_core_ed25519_add","crypto_core_ed25519_from_hash","crypto_core_ed25519_from_uniform","crypto_core_ed25519_is_valid_point","crypto_core_ed25519_random","crypto_core_ed25519_scalar_add","crypto_core_ed25519_scalar_complement","crypto_core_ed25519_scalar_invert","crypto_core_ed25519_scalar_mul","crypto_core_ed25519_scalar_negate","crypto_core_ed25519_scalar_random","crypto_core_ed25519_scalar_reduce","crypto_core_ed25519_scalar_sub","crypto_core_ed25519_sub","crypto_core_hchacha20","crypto_core_hsalsa20","crypto_core_ristretto255_add","crypto_core_ristretto255_from_hash","crypto_core_ristretto255_is_valid_point","crypto_core_ristretto255_random","crypto_core_ristretto255_scalar_add","crypto_core_ristretto255_scalar_complement","crypto_core_ristretto255_scalar_invert","crypto_core_ristretto255_scalar_mul","crypto_core_ristretto255_scalar_negate","crypto_core_ristretto255_scalar_random","crypto_core_ristretto255_scalar_reduce","crypto_core_ristretto255_scalar_sub","crypto_core_ristretto255_sub","crypto_generichash","crypto_generichash_blake2b_salt_personal","crypto_generichash_final","crypto_generichash_init","crypto_generichash_keygen","crypto_generichash_update","crypto_hash","crypto_hash_sha256","crypto_hash_sha256_final","crypto_hash_sha256_init","crypto_hash_sha256_update","crypto_hash_sha512","crypto_hash_sha512_final","crypto_hash_sha512_init","crypto_hash_sha512_update","crypto_kdf_derive_from_key","crypto_kdf_keygen","crypto_kx_client_session_keys","crypto_kx_keypair","crypto_kx_seed_keypair","crypto_kx_server_session_keys","crypto_onetimeauth","crypto_onetimeauth_final","crypto_onetimeauth_init","crypto_onetimeauth_keygen","crypto_onetimeauth_update","crypto_onetimeauth_verify","crypto_pwhash","crypto_pwhash_scryptsalsa208sha256","crypto_pwhash_scryptsalsa208sha256_ll","crypto_pwhash_scryptsalsa208sha256_str","crypto_pwhash_scryptsalsa208sha256_str_verify","crypto_pwhash_str","crypto_pwhash_str_needs_rehash","crypto_pwhash_str_verify","crypto_scalarmult","crypto_scalarmult_base","crypto_scalarmult_ed25519","crypto_scalarmult_ed25519_base","crypto_scalarmult_ed25519_base_noclamp","crypto_scalarmult_ed25519_noclamp","crypto_scalarmult_ristretto255","crypto_scalarmult_ristretto255_base","crypto_secretbox_detached","crypto_secretbox_easy","crypto_secretbox_keygen","crypto_secretbox_open_detached","crypto_secretbox_open_easy","crypto_secretstream_xchacha20poly1305_init_pull","crypto_secretstream_xchacha20poly1305_init_push","crypto_secretstream_xchacha20poly1305_keygen","crypto_secretstream_xchacha20poly1305_pull","crypto_secretstream_xchacha20poly1305_push","crypto_secretstream_xchacha20poly1305_rekey","crypto_shorthash","crypto_shorthash_keygen","crypto_shorthash_siphashx24","crypto_sign","crypto_sign_detached","crypto_sign_ed25519_pk_to_curve25519","crypto_sign_ed25519_sk_to_curve25519","crypto_sign_ed25519_sk_to_pk","crypto_sign_ed25519_sk_to_seed","crypto_sign_final_create","crypto_sign_final_verify","crypto_sign_init","crypto_sign_keypair","crypto_sign_open","crypto_sign_seed_keypair","crypto_sign_update","crypto_sign_verify_detached","crypto_stream_chacha20","crypto_stream_chacha20_ietf_xor","crypto_stream_chacha20_ietf_xor_ic","crypto_stream_chacha20_keygen","crypto_stream_chacha20_xor","crypto_stream_chacha20_xor_ic","crypto_stream_keygen","crypto_stream_xchacha20_keygen","crypto_stream_xchacha20_xor","crypto_stream_xchacha20_xor_ic","randombytes_buf","randombytes_buf_deterministic","randombytes_close","randombytes_random","randombytes_set_implementation","randombytes_stir","randombytes_uniform","sodium_version_string"],t=[x,k,S,T,w,Y,B,A,M,I,K,N,L,O,U,C,P,R,X,G,D,F,V,H,W,q,z,j,J,Q,Z,$,ee,ae,re,te,_e,ne,se,ce,he,oe,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Me,Ie,Ke,Ne,Le,Oe,Ue,Ce,Pe,Re,Xe,Ge,De,Fe,Ve,He,We,qe,ze,je,Je,Qe,Ze,$e,ea,aa,ra,ta,_a,na,sa,ca,ha,oa,pa,ya,ia,la,ua,da,va,ga,ba,fa,ma,Ea,xa,ka,Sa,Ta,wa,Ya,Ba,Aa,Ma,Ia,Ka,Na,La,Oa,Ua,Ca,Pa,Ra,Xa,Ga,Da,Fa,Va,Ha,Wa,qa,za,ja,Ja,Qa,Za,$a,er,ar,rr,tr,_r,nr,sr,cr,hr,or,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Mr,Ir,Kr,Nr,Lr,Or,Ur,Cr,Pr,Rr,Xr,Gr,Dr,Fr,Vr,Hr,Wr,qr],_=0;_=240?(p=4,h=true):y>=224?(p=3,h=true):y>=192?(p=2,h=true):y<128&&(p=1,h=true);}while(!h);for(var i=p-(c.length-o),l=0;l>8&-39)<<8|87+(a=e[n]>>>4)+(a-10>>8&-39),_+=String.fromCharCode(255&t)+String.fromCharCode(t>>>8);return _}var c={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function h(e){if(void 0===e)return c.URLSAFE_NO_PADDING;if(e!==c.ORIGINAL&&e!==c.ORIGINAL_NO_PADDING&&e!==c.URLSAFE&&e!==c.URLSAFE_NO_PADDING)throw new Error("unsupported base64 variant");return e}function o(e,r){r=h(r);var t=[];e=E(t,e,"input");var _,s=0|Math.floor(e.length/3),c=e.length-3*s,o=4*s+(0!==c?2&r?2+(c>>>1):4:0),p=new l(o+1),y=u(e);return t.push(y),t.push(p.address),0===a._sodium_bin2base64(p.address,p.length,y,e.length,r)&&b(t,"conversion failed"),p.length=o,_=n(p.to_Uint8Array()),g(t),_}function p(e,a){var r=a||"uint8array";if(!y(r))throw new Error(r+" output format is not available");if(e instanceof l){if("uint8array"===r)return e.to_Uint8Array();if("text"===r)return n(e.to_Uint8Array());if("hex"===r)return s(e.to_Uint8Array());if("base64"===r)return o(e.to_Uint8Array(),c.URLSAFE_NO_PADDING);throw new Error('What is output format "'+r+'"?')}if("object"==typeof e){for(var t=Object.keys(e),_={},h=0;h=BigInt(0)){const e=r>>BigInt(32);e>BigInt(4294967295)&&f(c,"subkey_id cannot be more than 64 bits"),o=Number(e),h=Number(r&BigInt(4294967295));}else "number"==typeof r&&(0|r)===r&&r>=0?h=r:f(c,"subkey_id must be an unsigned integer or bigint");"string"!=typeof t&&f(c,"ctx must be a string"),(t=_(t+"\0")).length-1!==a._crypto_kdf_contextbytes()&&f(c,"invalid ctx length");var y=u(t);t.length,c.push(y),n=E(c,n,"key");var d,v=0|a._crypto_kdf_keybytes();n.length!==v&&f(c,"invalid key length"),d=u(n),c.push(d);var b=new l(0|e),x=b.address;c.push(x),a._crypto_kdf_derive_from_key(x,e,h,o,y,d);var k=p(b,s);return g(c),k}function Aa(e){var r=[];i(e);var t=new l(0|a._crypto_kdf_keybytes()),_=t.address;r.push(_),a._crypto_kdf_keygen(_);var n=p(t,e);return g(r),n}function Ma(e,r,t,_){var n=[];i(_),e=E(n,e,"clientPublicKey");var s,c=0|a._crypto_kx_publickeybytes();e.length!==c&&f(n,"invalid clientPublicKey length"),s=u(e),n.push(s),r=E(n,r,"clientSecretKey");var h,o=0|a._crypto_kx_secretkeybytes();r.length!==o&&f(n,"invalid clientSecretKey length"),h=u(r),n.push(h),t=E(n,t,"serverPublicKey");var y,d=0|a._crypto_kx_publickeybytes();t.length!==d&&f(n,"invalid serverPublicKey length"),y=u(t),n.push(y);var v=new l(0|a._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var x=new l(0|a._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),!(0|a._crypto_kx_client_session_keys(m,k,s,h,y))){var S=p({sharedRx:v,sharedTx:x},_);return g(n),S}b(n,"invalid usage");}function Ia(e){var r=[];i(e);var t=new l(0|a._crypto_kx_publickeybytes()),_=t.address;r.push(_);var n=new l(0|a._crypto_kx_secretkeybytes()),s=n.address;if(r.push(s),!(0|a._crypto_kx_keypair(_,s))){var c={publicKey:p(t,e),privateKey:p(n,e),keyType:"x25519"};return g(r),c}b(r,"internal error");}function Ka(e,r){var t=[];i(r),e=E(t,e,"seed");var _,n=0|a._crypto_kx_seedbytes();e.length!==n&&f(t,"invalid seed length"),_=u(e),t.push(_);var s=new l(0|a._crypto_kx_publickeybytes()),c=s.address;t.push(c);var h=new l(0|a._crypto_kx_secretkeybytes()),o=h.address;if(t.push(o),!(0|a._crypto_kx_seed_keypair(c,o,_))){var y={publicKey:p(s,r),privateKey:p(h,r),keyType:"x25519"};return g(t),y}b(t,"internal error");}function Na(e,r,t,_){var n=[];i(_),e=E(n,e,"serverPublicKey");var s,c=0|a._crypto_kx_publickeybytes();e.length!==c&&f(n,"invalid serverPublicKey length"),s=u(e),n.push(s),r=E(n,r,"serverSecretKey");var h,o=0|a._crypto_kx_secretkeybytes();r.length!==o&&f(n,"invalid serverSecretKey length"),h=u(r),n.push(h),t=E(n,t,"clientPublicKey");var y,d=0|a._crypto_kx_publickeybytes();t.length!==d&&f(n,"invalid clientPublicKey length"),y=u(t),n.push(y);var v=new l(0|a._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var x=new l(0|a._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),!(0|a._crypto_kx_server_session_keys(m,k,s,h,y))){var S=p({sharedRx:v,sharedTx:x},_);return g(n),S}b(n,"invalid usage");}function La(e,r,t){var _=[];i(t);var n=u(e=E(_,e,"message")),s=e.length;_.push(n),r=E(_,r,"key");var c,h=0|a._crypto_onetimeauth_keybytes();r.length!==h&&f(_,"invalid key length"),c=u(r),_.push(c);var o=new l(0|a._crypto_onetimeauth_bytes()),y=o.address;if(_.push(y),!(0|a._crypto_onetimeauth(y,n,s,0,c))){var d=p(o,t);return g(_),d}b(_,"invalid usage");}function Oa(e,r){var t=[];i(r),m(t,e,"state_address");var _=new l(0|a._crypto_onetimeauth_bytes()),n=_.address;if(t.push(n),!(0|a._crypto_onetimeauth_final(e,n))){var s=(a._free(e),p(_,r));return g(t),s}b(t,"invalid usage");}function Ua(e,r){var t=[];i(r);var _=null;null!=e&&(_=u(e=E(t,e,"key")),e.length,t.push(_));var n=new l(144).address;if(!(0|a._crypto_onetimeauth_init(n,_))){var s=n;return g(t),s}b(t,"invalid usage");}function Ca(e){var r=[];i(e);var t=new l(0|a._crypto_onetimeauth_keybytes()),_=t.address;r.push(_),a._crypto_onetimeauth_keygen(_);var n=p(t,e);return g(r),n}function Pa(e,r,t){var _=[];i(t),m(_,e,"state_address");var n=u(r=E(_,r,"message_chunk")),s=r.length;_.push(n),0|a._crypto_onetimeauth_update(e,n,s)&&b(_,"invalid usage"),g(_);}function Ra(e,r,t){var _=[];e=E(_,e,"hash");var n,s=0|a._crypto_onetimeauth_bytes();e.length!==s&&f(_,"invalid hash length"),n=u(e),_.push(n);var c=u(r=E(_,r,"message")),h=r.length;_.push(c),t=E(_,t,"key");var o,p=0|a._crypto_onetimeauth_keybytes();t.length!==p&&f(_,"invalid key length"),o=u(t),_.push(o);var y=!(0|a._crypto_onetimeauth_verify(n,c,h,0,o));return g(_),y}function Xa(e,r,t,_,n,s,c){var h=[];i(c),m(h,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&f(h,"keyLength must be an unsigned integer");var o=u(r=E(h,r,"password")),y=r.length;h.push(o),t=E(h,t,"salt");var d,v=0|a._crypto_pwhash_saltbytes();t.length!==v&&f(h,"invalid salt length"),d=u(t),h.push(d),m(h,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&f(h,"opsLimit must be an unsigned integer"),m(h,n,"memLimit"),("number"!=typeof n||(0|n)!==n||n<0)&&f(h,"memLimit must be an unsigned integer"),m(h,s,"algorithm"),("number"!=typeof s||(0|s)!==s||s<0)&&f(h,"algorithm must be an unsigned integer");var x=new l(0|e),k=x.address;if(h.push(k),!(0|a._crypto_pwhash(k,e,0,o,y,0,d,_,0,n,s))){var S=p(x,c);return g(h),S}b(h,"invalid usage");}function Ga(e,r,t,_,n,s){var c=[];i(s),m(c,e,"keyLength"),("number"!=typeof e||(0|e)!==e||e<0)&&f(c,"keyLength must be an unsigned integer");var h=u(r=E(c,r,"password")),o=r.length;c.push(h),t=E(c,t,"salt");var y,d=0|a._crypto_pwhash_scryptsalsa208sha256_saltbytes();t.length!==d&&f(c,"invalid salt length"),y=u(t),c.push(y),m(c,_,"opsLimit"),("number"!=typeof _||(0|_)!==_||_<0)&&f(c,"opsLimit must be an unsigned integer"),m(c,n,"memLimit"),("number"!=typeof n||(0|n)!==n||n<0)&&f(c,"memLimit must be an unsigned integer");var v=new l(0|e),x=v.address;if(c.push(x),!(0|a._crypto_pwhash_scryptsalsa208sha256(x,e,0,h,o,0,y,_,0,n))){var k=p(v,s);return g(c),k}b(c,"invalid usage");}function Da(e,r,t,_,n,s,c){var h=[];i(c);var o=u(e=E(h,e,"password")),y=e.length;h.push(o);var d=u(r=E(h,r,"salt")),v=r.length;h.push(d),m(h,t,"opsLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&f(h,"opsLimit must be an unsigned integer"),m(h,_,"r"),("number"!=typeof _||(0|_)!==_||_<0)&&f(h,"r must be an unsigned integer"),m(h,n,"p"),("number"!=typeof n||(0|n)!==n||n<0)&&f(h,"p must be an unsigned integer"),m(h,s,"keyLength"),("number"!=typeof s||(0|s)!==s||s<0)&&f(h,"keyLength must be an unsigned integer");var x=new l(0|s),k=x.address;if(h.push(k),!(0|a._crypto_pwhash_scryptsalsa208sha256_ll(o,y,d,v,t,0,_,n,k,s))){var S=p(x,c);return g(h),S}b(h,"invalid usage");}function Fa(e,r,t,_){var n=[];i(_);var s=u(e=E(n,e,"password")),c=e.length;n.push(s),m(n,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(n,"opsLimit must be an unsigned integer"),m(n,t,"memLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&f(n,"memLimit must be an unsigned integer");var h=new l(0|a._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(n.push(h),!(0|a._crypto_pwhash_scryptsalsa208sha256_str(h,s,c,0,r,0,t))){var o=a.UTF8ToString(h);return g(n),o}b(n,"invalid usage");}function Va(e,r,t){var n=[];i(t),"string"!=typeof e&&f(n,"hashed_password must be a string");var s=u(e=_(e+"\0"));e.length,n.push(s);var c=u(r=E(n,r,"password")),h=r.length;n.push(c);var o=!(0|a._crypto_pwhash_scryptsalsa208sha256_str_verify(s,c,h,0));return g(n),o}function Ha(e,r,t,_){var n=[];i(_);var s=u(e=E(n,e,"password")),c=e.length;n.push(s),m(n,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(n,"opsLimit must be an unsigned integer"),m(n,t,"memLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&f(n,"memLimit must be an unsigned integer");var h=new l(0|a._crypto_pwhash_strbytes()).address;if(n.push(h),!(0|a._crypto_pwhash_str(h,s,c,0,r,0,t))){var o=a.UTF8ToString(h);return g(n),o}b(n,"invalid usage");}function Wa(e,r,t,n){var s=[];i(n),"string"!=typeof e&&f(s,"hashed_password must be a string");var c=u(e=_(e+"\0"));e.length,s.push(c),m(s,r,"opsLimit"),("number"!=typeof r||(0|r)!==r||r<0)&&f(s,"opsLimit must be an unsigned integer"),m(s,t,"memLimit"),("number"!=typeof t||(0|t)!==t||t<0)&&f(s,"memLimit must be an unsigned integer");var h=!!(0|a._crypto_pwhash_str_needs_rehash(c,r,0,t));return g(s),h}function qa(e,r,t){var n=[];i(t),"string"!=typeof e&&f(n,"hashed_password must be a string");var s=u(e=_(e+"\0"));e.length,n.push(s);var c=u(r=E(n,r,"password")),h=r.length;n.push(c);var o=!(0|a._crypto_pwhash_str_verify(s,c,h,0));return g(n),o}function za(e,r,t){var _=[];i(t),e=E(_,e,"privateKey");var n,s=0|a._crypto_scalarmult_scalarbytes();e.length!==s&&f(_,"invalid privateKey length"),n=u(e),_.push(n),r=E(_,r,"publicKey");var c,h=0|a._crypto_scalarmult_bytes();r.length!==h&&f(_,"invalid publicKey length"),c=u(r),_.push(c);var o=new l(0|a._crypto_scalarmult_bytes()),y=o.address;if(_.push(y),!(0|a._crypto_scalarmult(y,n,c))){var d=p(o,t);return g(_),d}b(_,"weak public key");}function ja(e,r){var t=[];i(r),e=E(t,e,"privateKey");var _,n=0|a._crypto_scalarmult_scalarbytes();e.length!==n&&f(t,"invalid privateKey length"),_=u(e),t.push(_);var s=new l(0|a._crypto_scalarmult_bytes()),c=s.address;if(t.push(c),!(0|a._crypto_scalarmult_base(c,_))){var h=p(s,r);return g(t),h}b(t,"unknown error");}function Ja(e,r,t){var _=[];i(t),e=E(_,e,"n");var n,s=0|a._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,"invalid n length"),n=u(e),_.push(n),r=E(_,r,"p");var c,h=0|a._crypto_scalarmult_ed25519_bytes();r.length!==h&&f(_,"invalid p length"),c=u(r),_.push(c);var o=new l(0|a._crypto_scalarmult_ed25519_bytes()),y=o.address;if(_.push(y),!(0|a._crypto_scalarmult_ed25519(y,n,c))){var d=p(o,t);return g(_),d}b(_,"invalid point or scalar is 0");}function Qa(e,r){var t=[];i(r),e=E(t,e,"scalar");var _,n=0|a._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(t,"invalid scalar length"),_=u(e),t.push(_);var s=new l(0|a._crypto_scalarmult_ed25519_bytes()),c=s.address;if(t.push(c),!(0|a._crypto_scalarmult_ed25519_base(c,_))){var h=p(s,r);return g(t),h}b(t,"scalar is 0");}function Za(e,r){var t=[];i(r),e=E(t,e,"scalar");var _,n=0|a._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(t,"invalid scalar length"),_=u(e),t.push(_);var s=new l(0|a._crypto_scalarmult_ed25519_bytes()),c=s.address;if(t.push(c),!(0|a._crypto_scalarmult_ed25519_base_noclamp(c,_))){var h=p(s,r);return g(t),h}b(t,"scalar is 0");}function $a(e,r,t){var _=[];i(t),e=E(_,e,"n");var n,s=0|a._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,"invalid n length"),n=u(e),_.push(n),r=E(_,r,"p");var c,h=0|a._crypto_scalarmult_ed25519_bytes();r.length!==h&&f(_,"invalid p length"),c=u(r),_.push(c);var o=new l(0|a._crypto_scalarmult_ed25519_bytes()),y=o.address;if(_.push(y),!(0|a._crypto_scalarmult_ed25519_noclamp(y,n,c))){var d=p(o,t);return g(_),d}b(_,"invalid point or scalar is 0");}function er(e,r,t){var _=[];i(t),e=E(_,e,"scalar");var n,s=0|a._crypto_scalarmult_ristretto255_scalarbytes();e.length!==s&&f(_,"invalid scalar length"),n=u(e),_.push(n),r=E(_,r,"element");var c,h=0|a._crypto_scalarmult_ristretto255_bytes();r.length!==h&&f(_,"invalid element length"),c=u(r),_.push(c);var o=new l(0|a._crypto_scalarmult_ristretto255_bytes()),y=o.address;if(_.push(y),!(0|a._crypto_scalarmult_ristretto255(y,n,c))){var d=p(o,t);return g(_),d}b(_,"result is identity element");}function ar(e,r){var t=[];i(r),e=E(t,e,"scalar");var _,n=0|a._crypto_core_ristretto255_scalarbytes();e.length!==n&&f(t,"invalid scalar length"),_=u(e),t.push(_);var s=new l(0|a._crypto_core_ristretto255_bytes()),c=s.address;if(t.push(c),!(0|a._crypto_scalarmult_ristretto255_base(c,_))){var h=p(s,r);return g(t),h}b(t,"scalar is 0");}function rr(e,r,t,_){var n=[];i(_);var s=u(e=E(n,e,"message")),c=e.length;n.push(s),r=E(n,r,"nonce");var h,o=0|a._crypto_secretbox_noncebytes();r.length!==o&&f(n,"invalid nonce length"),h=u(r),n.push(h),t=E(n,t,"key");var y,d=0|a._crypto_secretbox_keybytes();t.length!==d&&f(n,"invalid key length"),y=u(t),n.push(y);var v=new l(0|c),m=v.address;n.push(m);var x=new l(0|a._crypto_secretbox_macbytes()),k=x.address;if(n.push(k),!(0|a._crypto_secretbox_detached(m,k,s,c,0,h,y))){var S=p({mac:x,cipher:v},_);return g(n),S}b(n,"invalid usage");}function tr(e,r,t,_){var n=[];i(_);var s=u(e=E(n,e,"message")),c=e.length;n.push(s),r=E(n,r,"nonce");var h,o=0|a._crypto_secretbox_noncebytes();r.length!==o&&f(n,"invalid nonce length"),h=u(r),n.push(h),t=E(n,t,"key");var y,d=0|a._crypto_secretbox_keybytes();t.length!==d&&f(n,"invalid key length"),y=u(t),n.push(y);var v=new l(c+a._crypto_secretbox_macbytes()|0),m=v.address;if(n.push(m),!(0|a._crypto_secretbox_easy(m,s,c,0,h,y))){var x=p(v,_);return g(n),x}b(n,"invalid usage");}function _r(e){var r=[];i(e);var t=new l(0|a._crypto_secretbox_keybytes()),_=t.address;r.push(_),a._crypto_secretbox_keygen(_);var n=p(t,e);return g(r),n}function nr(e,r,t,_,n){var s=[];i(n);var c=u(e=E(s,e,"ciphertext")),h=e.length;s.push(c),r=E(s,r,"mac");var o,y=0|a._crypto_secretbox_macbytes();r.length!==y&&f(s,"invalid mac length"),o=u(r),s.push(o),t=E(s,t,"nonce");var d,v=0|a._crypto_secretbox_noncebytes();t.length!==v&&f(s,"invalid nonce length"),d=u(t),s.push(d),_=E(s,_,"key");var m,x=0|a._crypto_secretbox_keybytes();_.length!==x&&f(s,"invalid key length"),m=u(_),s.push(m);var k=new l(0|h),S=k.address;if(s.push(S),!(0|a._crypto_secretbox_open_detached(S,c,o,h,0,d,m))){var T=p(k,n);return g(s),T}b(s,"wrong secret key for the given ciphertext");}function sr(e,r,t,_){var n=[];i(_),e=E(n,e,"ciphertext");var s,c=a._crypto_secretbox_macbytes(),h=e.length;h>>0;return g([]),r}function Vr(e,r){var t=[];i(r);for(var _=a._malloc(24),n=0;n<6;n++)a.setValue(_+4*n,a.Runtime.addFunction(e[["implementation_name","random","stir","uniform","buf","close"][n]]),"i32");0|a._randombytes_set_implementation(_)&&b(t,"unsupported implementation"),g(t);}function Hr(e){i(e),a._randombytes_stir();}function Wr(e,r){var t=[];i(r),m(t,e,"upper_bound"),("number"!=typeof e||(0|e)!==e||e<0)&&f(t,"upper_bound must be an unsigned integer");var _=a._randombytes_uniform(e)>>>0;return g(t),_}function qr(){var e=a._sodium_version_string(),r=a.UTF8ToString(e);return g([]),r}l.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(a.HEAPU8.subarray(this.address,this.address+this.length)),e},r.add=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be added");var r=e.length,t=0,_=0;if(a.length!==e.length)throw new TypeError("Arguments must have the same length");for(_=0;_>=8,t+=e[_]+a[_],e[_]=255&t;},r.base64_variants=c,r.compare=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be compared");if(e.length!==a.length)throw new TypeError("Only instances of identical length can be compared");for(var r=0,t=1,_=e.length;_-- >0;)r|=a[_]-e[_]>>8&t,t&=(a[_]^e[_])-1>>8;return r+r+t-1},r.from_base64=function(e,r){r=h(r);var t,_=[],n=new l(3*(e=E(_,e,"input")).length/4),s=u(e),c=d(4),o=d(4);return _.push(s),_.push(n.address),_.push(c),_.push(o),0!==a._sodium_base642bin(n.address,n.length,s,e.length,0,c,o,r)&&b(_,"invalid input"),a.getValue(o,"i32")-s!==e.length&&b(_,"incomplete input"),n.length=a.getValue(c,"i32"),t=n.to_Uint8Array(),g(_),t},r.from_hex=function(e){var r,t=[],_=new l((e=E(t,e,"input")).length/2),n=u(e),s=d(4);return t.push(n),t.push(_.address),t.push(s),0!==a._sodium_hex2bin(_.address,_.length,n,e.length,0,0,s)&&b(t,"invalid input"),a.getValue(s,"i32")-n!==e.length&&b(t,"incomplete input"),r=_.to_Uint8Array(),g(t),r},r.from_string=_,r.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be incremented");for(var a=256,r=0,t=e.length;r>=8,a+=e[r],e[r]=255&a;},r.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError("Only Uint8Array instances can be checked");for(var a=0,r=0,t=e.length;r 0");var t,_=[],n=d(4),s=1,c=0,h=0|e.length,o=new l(h+r);_.push(n),_.push(o.address);for(var p=o.address,y=o.address+h+r;p>>48|h>>>32|h>>>16|h))-1>>16);return 0!==a._sodium_pad(n,o.address,e.length,r,o.length)&&b(_,"internal error"),o.length=a.getValue(n,"i32"),t=o.to_Uint8Array(),g(_),t},r.unpad=function(e,r){if(!(e instanceof Uint8Array))throw new TypeError("buffer must be a Uint8Array");if((r|=0)<=0)throw new Error("block size must be > 0");var t=[],_=u(e),n=d(4);return t.push(_),t.push(n),0!==a._sodium_unpad(n,_,e.length,r)&&b(t,"unsupported/invalid padding"),e=(e=new Uint8Array(e)).subarray(0,a.getValue(n,"i32")),g(t),e},r.ready=t$1,r.symbols=function(){return Object.keys(r).sort()},r.to_base64=o,r.to_hex=s,r.to_string=n; + +function t(key, fallback) { + return window.__XFTP_I18N__?.[key] ?? fallback; +} + +class WorkerBackend { + worker; + pending = /* @__PURE__ */ new Map(); + nextId = 1; + progressCb = null; + ready; + constructor() { + this.worker = new Worker(new URL(/* @vite-ignore */ ""+new URL('crypto.worker.js', import.meta.url).href+"", import.meta.url), { type: "module" }); + let rejectReady; + this.ready = new Promise((resolve, reject) => { + rejectReady = reject; + this.worker.onmessage = (e) => { + if (e.data?.type === "ready") { + this.worker.onmessage = (e2) => this.handleMessage(e2.data); + resolve(); + } else { + reject(new Error("Worker: unexpected first message")); + } + }; + }); + this.worker.onerror = (e) => { + rejectReady(new Error("Worker failed to load: " + e.message)); + for (const p of this.pending.values()) p.reject(new Error("Worker error: " + e.message)); + this.pending.clear(); + }; + } + handleMessage(msg) { + if (msg.type === "progress") { + this.progressCb?.(msg.done, msg.total); + return; + } + const p = this.pending.get(msg.id); + if (!p) return; + this.pending.delete(msg.id); + if (msg.type === "error") { + p.reject(new Error(msg.message)); + } else { + p.resolve(msg); + } + } + async send(msg, transfer) { + await this.ready; + const id = this.nextId++; + return new Promise((resolve, reject) => { + this.pending.set(id, { resolve, reject }); + this.worker.postMessage({ ...msg, id }, transfer ?? []); + }); + } + toTransferable(data) { + if (data.byteOffset !== 0 || data.byteLength !== data.buffer.byteLength) { + return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength); + } + return data.buffer; + } + async encrypt(data, fileName, onProgress) { + this.progressCb = onProgress ?? null; + const buf = this.toTransferable(data); + const resp = await this.send({ type: "encrypt", data: buf, fileName }, [buf]); + this.progressCb = null; + return { digest: resp.digest, key: resp.key, nonce: resp.nonce, chunkSizes: resp.chunkSizes }; + } + async readChunk(offset, size) { + const resp = await this.send({ type: "readChunk", offset, size }); + return new Uint8Array(resp.data); + } + async decryptAndStoreChunk(dhSecret, nonce, body, digest, chunkNo) { + const dhSecretCopy = new Uint8Array(dhSecret); + const nonceCopy = new Uint8Array(nonce); + const digestCopy = new Uint8Array(digest); + const buf = this.toTransferable(body); + const hex = (b, n = 8) => { + const u = b instanceof ArrayBuffer ? new Uint8Array(b) : b; + return Array.from(u.slice(0, n)).map((x) => x.toString(16).padStart(2, "0")).join(""); + }; + console.log(`[BACKEND-DBG] chunk=${chunkNo} body.len=${body.length} body.byteOff=${body.byteOffset} buf.byteLen=${buf.byteLength} nonce=${hex(nonceCopy, 24)} dhSecret=${hex(dhSecretCopy)} digest=${hex(digestCopy, 32)} buf[0..8]=${hex(buf)} body[-8..]=${hex(body.slice(-8))}`); + await this.send( + { type: "decryptAndStoreChunk", dhSecret: dhSecretCopy, nonce: nonceCopy, body: buf, chunkDigest: digestCopy, chunkNo }, + [buf] + ); + } + async verifyAndDecrypt(params, onProgress) { + this.progressCb = onProgress ?? null; + const resp = await this.send({ + type: "verifyAndDecrypt", + size: params.size, + digest: params.digest, + key: params.key, + nonce: params.nonce + }); + this.progressCb = null; + return { header: resp.header, content: new Uint8Array(resp.content) }; + } + async cleanup() { + await this.send({ type: "cleanup" }); + this.worker.terminate(); + } +} +function createCryptoBackend() { + if (typeof Worker === "undefined") { + throw new Error(t("workersRequired", "Web Workers required — update your browser")); + } + return new WorkerBackend(); +} + +const B64URL = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"; +const B64_DECODE = new Uint8Array(128); +B64_DECODE.fill(255); +for (let i = 0; i < 64; i++) B64_DECODE[B64URL.charCodeAt(i)] = i; +function base64urlEncode(data) { + let result = ""; + const len = data.length; + let i = 0; + for (; i + 2 < len; i += 3) { + const b0 = data[i], b1 = data[i + 1], b2 = data[i + 2]; + result += B64URL[b0 >>> 2]; + result += B64URL[(b0 & 3) << 4 | b1 >>> 4]; + result += B64URL[(b1 & 15) << 2 | b2 >>> 6]; + result += B64URL[b2 & 63]; + } + if (i < len) { + const b0 = data[i]; + result += B64URL[b0 >>> 2]; + if (i + 1 < len) { + const b1 = data[i + 1]; + result += B64URL[(b0 & 3) << 4 | b1 >>> 4]; + result += B64URL[(b1 & 15) << 2]; + result += "="; + } else { + result += B64URL[(b0 & 3) << 4]; + result += "=="; + } + } + return result; +} +function base64urlDecode$1(s) { + let end = s.length; + while (end > 0 && s.charCodeAt(end - 1) === 61) end--; + const n = end; + const out = new Uint8Array(n * 3 >>> 2); + let j = 0, i = 0; + for (; i + 3 < n; i += 4) { + const a = B64_DECODE[s.charCodeAt(i)], b = B64_DECODE[s.charCodeAt(i + 1)]; + const c = B64_DECODE[s.charCodeAt(i + 2)], d = B64_DECODE[s.charCodeAt(i + 3)]; + out[j++] = a << 2 | b >>> 4; + out[j++] = (b & 15) << 4 | c >>> 2; + out[j++] = (c & 3) << 6 | d; + } + if (n - i >= 2) { + const a = B64_DECODE[s.charCodeAt(i)], b = B64_DECODE[s.charCodeAt(i + 1)]; + out[j++] = a << 2 | b >>> 4; + if (n - i >= 3) { + const c = B64_DECODE[s.charCodeAt(i + 2)]; + out[j++] = (b & 15) << 4 | c >>> 2; + } + } + return out; +} +const kb = (n) => n * 1024; +const mb = (n) => n * 1048576; +function encodeFileSize(bytes) { + const ks = Math.floor(bytes / 1024); + if (bytes % 1024 !== 0) return String(bytes); + const ms = Math.floor(ks / 1024); + if (ks % 1024 !== 0) return ks + "kb"; + const gs = Math.floor(ms / 1024); + if (ms % 1024 !== 0) return ms + "mb"; + return gs + "gb"; +} +function decodeFileSize(s) { + if (s.endsWith("gb")) return parseInt(s) * 1073741824; + if (s.endsWith("mb")) return parseInt(s) * 1048576; + if (s.endsWith("kb")) return parseInt(s) * 1024; + return parseInt(s); +} +function encodeServerReplica(r) { + let s = r.chunkNo + ":" + base64urlEncode(r.replicaId) + ":" + base64urlEncode(r.replicaKey); + if (r.digest !== null) s += ":" + base64urlEncode(r.digest); + if (r.chunkSize !== null) s += ":" + encodeFileSize(r.chunkSize); + return s; +} +function decodeServerReplica(server, s) { + const parts = s.split(":"); + if (parts.length < 3) throw new Error("invalid server replica: " + s); + return { + chunkNo: parseInt(parts[0]), + server, + replicaId: base64urlDecode$1(parts[1]), + replicaKey: base64urlDecode$1(parts[2]), + digest: parts.length >= 4 ? base64urlDecode$1(parts[3]) : null, + chunkSize: parts.length >= 5 ? decodeFileSize(parts[4]) : null + }; +} +function unfoldChunksToReplicas(defChunkSize, chunks) { + const result = []; + for (const c of chunks) { + c.replicas.forEach((r, idx) => { + result.push({ + chunkNo: c.chunkNo, + server: r.server, + replicaId: r.replicaId, + replicaKey: r.replicaKey, + digest: idx === 0 ? c.digest : null, + chunkSize: c.chunkSize !== defChunkSize && idx === 0 ? c.chunkSize : null + }); + }); + } + return result; +} +function encodeFileReplicas(defChunkSize, chunks) { + const flat = unfoldChunksToReplicas(defChunkSize, chunks); + flat.sort((a, b) => a.server < b.server ? -1 : a.server > b.server ? 1 : 0); + const groups = []; + for (const r of flat) { + if (groups.length === 0 || groups[groups.length - 1].server !== r.server) { + groups.push({ server: r.server, chunks: [encodeServerReplica(r)] }); + } else { + groups[groups.length - 1].chunks.push(encodeServerReplica(r)); + } + } + return groups; +} +function bytesEqual(a, b) { + if (a.length !== b.length) return false; + for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false; + return true; +} +function foldReplicasToChunks(defChunkSize, replicas) { + const sizes = /* @__PURE__ */ new Map(); + const digests = /* @__PURE__ */ new Map(); + for (const r of replicas) { + if (r.chunkSize !== null) { + const existing = sizes.get(r.chunkNo); + if (existing !== void 0 && existing !== r.chunkSize) + throw new Error("different size in chunk replicas"); + sizes.set(r.chunkNo, r.chunkSize); + } + if (r.digest !== null) { + const existing = digests.get(r.chunkNo); + if (existing !== void 0 && !bytesEqual(existing, r.digest)) + throw new Error("different digest in chunk replicas"); + digests.set(r.chunkNo, r.digest); + } + } + const chunkMap = /* @__PURE__ */ new Map(); + for (const r of replicas) { + const existing = chunkMap.get(r.chunkNo); + if (existing) { + existing.replicas.push({ server: r.server, replicaId: r.replicaId, replicaKey: r.replicaKey }); + } else { + const digest = digests.get(r.chunkNo); + if (!digest) throw new Error("no digest for chunk"); + chunkMap.set(r.chunkNo, { + chunkNo: r.chunkNo, + chunkSize: sizes.get(r.chunkNo) ?? defChunkSize, + digest, + replicas: [{ server: r.server, replicaId: r.replicaId, replicaKey: r.replicaKey }] + }); + } + } + return Array.from(chunkMap.values()).sort((a, b) => a.chunkNo - b.chunkNo); +} +function encodeFileDescription(fd) { + const lines = []; + lines.push("chunkSize: " + encodeFileSize(fd.chunkSize)); + lines.push("digest: " + base64urlEncode(fd.digest)); + lines.push("key: " + base64urlEncode(fd.key)); + lines.push("nonce: " + base64urlEncode(fd.nonce)); + lines.push("party: " + fd.party); + if (fd.redirect !== null) { + lines.push("redirect:"); + lines.push(" digest: " + base64urlEncode(fd.redirect.digest)); + lines.push(" size: " + fd.redirect.size); + } + const groups = encodeFileReplicas(fd.chunkSize, fd.chunks); + lines.push("replicas:"); + for (const g of groups) { + lines.push("- chunks:"); + for (const c of g.chunks) { + lines.push(" - " + c); + } + lines.push(" server: " + g.server); + } + lines.push("size: " + encodeFileSize(fd.size)); + return lines.join("\n") + "\n"; +} +function decodeFileDescription(yaml) { + const lines = yaml.split("\n"); + const topLevel = {}; + const replicaGroups = []; + let redirect = null; + let i = 0; + while (i < lines.length) { + const line = lines[i]; + if (line.length === 0) { + i++; + continue; + } + if (line === "replicas:") { + i++; + while (i < lines.length && lines[i].startsWith("- ")) { + const group = { server: "", chunks: [] }; + i = parseReplicaItem(lines, i, group); + replicaGroups.push(group); + } + } else if (line === "redirect:") { + i++; + let digestStr = "", sizeStr = ""; + while (i < lines.length && lines[i].startsWith(" ")) { + const kv = lines[i].substring(2); + const ci = kv.indexOf(": "); + if (ci >= 0) { + const k = kv.substring(0, ci), v = kv.substring(ci + 2); + if (k === "digest") digestStr = v; + if (k === "size") sizeStr = v; + } + i++; + } + redirect = { size: parseInt(sizeStr), digest: base64urlDecode$1(digestStr) }; + } else { + const ci = line.indexOf(": "); + if (ci >= 0) topLevel[line.substring(0, ci)] = line.substring(ci + 2); + i++; + } + } + const chunkSize = decodeFileSize(topLevel["chunkSize"]); + const serverReplicas = []; + for (const g of replicaGroups) { + for (const c of g.chunks) serverReplicas.push(decodeServerReplica(g.server, c)); + } + return { + party: topLevel["party"], + size: decodeFileSize(topLevel["size"]), + digest: base64urlDecode$1(topLevel["digest"]), + key: base64urlDecode$1(topLevel["key"]), + nonce: base64urlDecode$1(topLevel["nonce"]), + chunkSize, + chunks: foldReplicasToChunks(chunkSize, serverReplicas), + redirect + }; +} +function parseReplicaItem(lines, startIdx, group) { + let i = startIdx; + const first = lines[i].substring(2); + i = parseReplicaField(first, lines, i + 1, group); + while (i < lines.length && lines[i].startsWith(" ") && !lines[i].startsWith("- ")) { + i = parseReplicaField(lines[i].substring(2), lines, i + 1, group); + } + return i; +} +function parseReplicaField(entry, lines, nextIdx, group) { + if (entry === "chunks:" || entry.startsWith("chunks:")) { + let i = nextIdx; + while (i < lines.length && lines[i].startsWith(" - ")) { + group.chunks.push(lines[i].substring(4)); + i++; + } + return i; + } + const ci = entry.indexOf(": "); + if (ci >= 0) { + const k = entry.substring(0, ci), v = entry.substring(ci + 2); + if (k === "server") group.server = v; + } + return nextIdx; +} +function validateFileDescription(fd) { + for (let i = 0; i < fd.chunks.length; i++) { + if (fd.chunks[i].chunkNo !== i + 1) return "chunk numbers are not sequential"; + } + let total = 0; + for (const c of fd.chunks) total += c.chunkSize; + if (total !== fd.size) return "chunks total size is different than file size"; + return null; +} + +function base64urlDecode(s) { + let b64 = s.replace(/-/g, "+").replace(/_/g, "/"); + while (b64.length % 4 !== 0) b64 += "="; + const bin = atob(b64); + const bytes = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i); + return bytes; +} +function parseXFTPServer(address) { + const m = address.match(/^xftp:\/\/([A-Za-z0-9_-]+={0,2})@(.+)$/); + if (!m) throw new Error("parseXFTPServer: invalid address format"); + const keyHash = base64urlDecode(m[1]); + if (keyHash.length !== 32) throw new Error("parseXFTPServer: keyHash must be 32 bytes"); + const hostPart = m[2]; + const firstHost = hostPart.split(",")[0]; + const colonIdx = firstHost.lastIndexOf(":"); + let host; + let port; + if (colonIdx > 0) { + host = firstHost.substring(0, colonIdx); + port = firstHost.substring(colonIdx + 1); + } else { + host = firstHost; + port = "443"; + } + return { keyHash, host, port }; +} +function formatXFTPServer(srv) { + return "xftp://" + base64urlEncode(srv.keyHash) + "@" + srv.host + ":" + srv.port; +} +function getDescriptionServers(fd) { + const seen = /* @__PURE__ */ new Set(); + const servers = []; + for (const chunk of fd.chunks) { + for (const replica of chunk.replicas) { + if (!seen.has(replica.server)) { + seen.add(replica.server); + servers.push(parseXFTPServer(replica.server)); + } + } + } + return servers; +} +function serverOrigin(server) { + return server.port === "443" ? `https://${server.host}` : `https://${server.host}:${server.port}`; +} + +var define_XFTP_SERVERS_default = ["xftp://da1aH3nOT-9G8lV7bWamhxpDYdJ1xmW7j3JpGaDR5Ug=@xftp1.simplex.im", "xftp://5vog2Imy1ExJB_7zDZrkV1KDWi96jYFyy9CL6fndBVw=@xftp2.simplex.im", "xftp://PYa32DdYNFWi0uZZOprWQoQpIk5qyjRJ3EF7bVpbsn8=@xftp3.simplex.im", "xftp://k_GgQl40UZVV0Y4BX9ZTyMVqX5ZewcLW0waQIl7AYDE=@xftp4.simplex.im", "xftp://-bIo6o8wuVc4wpZkZD3tH-rCeYaeER_0lz1ffQcSJDs=@xftp5.simplex.im", "xftp://6nSvtY9pJn6PXWTAIMNl95E1Kk1vD7FM2TeOA64CFLg=@xftp6.simplex.im"]; +const serverAddresses = define_XFTP_SERVERS_default; +function getServers() { + const addrs = window.__XFTP_SERVERS__ ?? serverAddresses; + return addrs.map(parseXFTPServer); +} + +const SIZE = 120; +const LINE_WIDTH = 8; +const RADIUS = (SIZE - LINE_WIDTH) / 2; +const CENTER = SIZE / 2; +const LERP_SPEED = 0.12; +function createProgressRing() { + const canvas = document.createElement("canvas"); + canvas.width = SIZE * devicePixelRatio; + canvas.height = SIZE * devicePixelRatio; + canvas.style.width = SIZE + "px"; + canvas.style.height = SIZE + "px"; + canvas.className = "progress-ring"; + const ctx = canvas.getContext("2d"); + ctx.scale(devicePixelRatio, devicePixelRatio); + let displayed = 0; + let target = 0; + let animId = 0; + let spinAngle = 0; + let spinning = false; + let fillResolve = null; + function getColors() { + const appEl = document.querySelector("[data-xftp-app]") ?? document.getElementById("app"); + const s = appEl ? getComputedStyle(appEl) : null; + return { + bg: s?.getPropertyValue("--xftp-ring-bg").trim() || "#e0e0e0", + fg: s?.getPropertyValue("--xftp-ring-fg").trim() || "#3b82f6", + text: s?.getPropertyValue("--xftp-ring-text").trim() || "#333", + done: s?.getPropertyValue("--xftp-ring-done").trim() || "#16a34a" + }; + } + function drawBgRing(c, color) { + ctx.beginPath(); + ctx.arc(CENTER, CENTER, RADIUS, 0, 2 * Math.PI); + ctx.strokeStyle = color ?? c.bg; + ctx.lineWidth = LINE_WIDTH; + ctx.lineCap = "round"; + ctx.stroke(); + } + function render(fraction) { + const c = getColors(); + ctx.clearRect(0, 0, SIZE, SIZE); + drawBgRing(c, fraction >= 1 ? c.done : void 0); + if (fraction > 0 && fraction < 1) { + ctx.beginPath(); + ctx.arc(CENTER, CENTER, RADIUS, -Math.PI / 2, -Math.PI / 2 + 2 * Math.PI * fraction); + ctx.strokeStyle = c.fg; + ctx.lineWidth = LINE_WIDTH; + ctx.lineCap = "round"; + ctx.stroke(); + } + if (fraction >= 1) { + ctx.strokeStyle = c.done; + ctx.lineWidth = 5; + ctx.lineCap = "round"; + ctx.lineJoin = "round"; + ctx.beginPath(); + ctx.moveTo(CENTER - 18, CENTER + 2); + ctx.lineTo(CENTER - 4, CENTER + 16); + ctx.lineTo(CENTER + 22, CENTER - 14); + ctx.stroke(); + } else { + const pct = Math.round(fraction * 100); + ctx.fillStyle = c.text; + ctx.font = "600 20px system-ui, sans-serif"; + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; + ctx.fillText(pct + "%", CENTER, CENTER); + } + } + function tick() { + if (spinning) return; + const diff = target - displayed; + if (Math.abs(diff) < 2e-3) { + displayed = target; + render(displayed); + animId = 0; + return; + } + displayed += diff * LERP_SPEED; + render(displayed); + animId = requestAnimationFrame(tick); + } + function startTick() { + if (!animId && !spinning) { + animId = requestAnimationFrame(tick); + } + } + function stopAnim() { + if (animId) { + cancelAnimationFrame(animId); + animId = 0; + } + spinning = false; + if (fillResolve) { + fillResolve(); + fillResolve = null; + } + } + function spinFrame() { + const c = getColors(); + ctx.clearRect(0, 0, SIZE, SIZE); + drawBgRing(c); + ctx.beginPath(); + ctx.arc(CENTER, CENTER, RADIUS, spinAngle, spinAngle + Math.PI * 0.75); + ctx.strokeStyle = c.fg; + ctx.lineWidth = LINE_WIDTH; + ctx.lineCap = "round"; + ctx.stroke(); + spinAngle += 0.06; + if (spinning) animId = requestAnimationFrame(spinFrame); + } + function redraw() { + if (spinning) return; + render(displayed); + } + const mql = matchMedia("(prefers-color-scheme: dark)"); + mql.addEventListener("change", redraw); + const observer = new MutationObserver(redraw); + observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] }); + render(0); + return { + canvas, + update(fraction) { + stopAnim(); + if (fraction === 0 && target > 0 || fraction >= 1) { + displayed = fraction; + target = fraction; + render(fraction); + return; + } + target = fraction; + startTick(); + }, + fillTo(fraction, durationMs) { + stopAnim(); + const from = displayed; + const start = performance.now(); + return new Promise((resolve) => { + fillResolve = resolve; + function frame() { + const t = Math.min(1, (performance.now() - start) / durationMs); + const eased = 1 - (1 - t) * (1 - t); + displayed = from + (fraction - from) * eased; + target = displayed; + render(displayed); + if (t < 1) { + animId = requestAnimationFrame(frame); + } else { + animId = 0; + fillResolve = null; + resolve(); + } + } + animId = requestAnimationFrame(frame); + }); + }, + setIndeterminate(on) { + stopAnim(); + if (on) { + spinning = true; + spinFrame(); + } + }, + destroy() { + stopAnim(); + mql.removeEventListener("change", redraw); + observer.disconnect(); + } + }; +} + +/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */ +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +/* eslint-disable space-unary-ops */ + +/* Public constants ==========================================================*/ +/* ===========================================================================*/ + + +//const Z_FILTERED = 1; +//const Z_HUFFMAN_ONLY = 2; +//const Z_RLE = 3; +const Z_FIXED$1 = 4; +//const Z_DEFAULT_STRATEGY = 0; + +/* Possible values of the data_type field (though see inflate()) */ +const Z_BINARY = 0; +const Z_TEXT = 1; +//const Z_ASCII = 1; // = Z_TEXT +const Z_UNKNOWN$1 = 2; + +/*============================================================================*/ + + +function zero$1(buf) { let len = buf.length; while (--len >= 0) { buf[len] = 0; } } + +// From zutil.h + +const STORED_BLOCK = 0; +const STATIC_TREES = 1; +const DYN_TREES = 2; +/* The three kinds of block type */ + +const MIN_MATCH$1 = 3; +const MAX_MATCH$1 = 258; +/* The minimum and maximum match lengths */ + +// From deflate.h +/* =========================================================================== + * Internal compression state. + */ + +const LENGTH_CODES$1 = 29; +/* number of length codes, not counting the special END_BLOCK code */ + +const LITERALS$1 = 256; +/* number of literal bytes 0..255 */ + +const L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1; +/* number of Literal or Length codes, including the END_BLOCK code */ + +const D_CODES$1 = 30; +/* number of distance codes */ + +const BL_CODES$1 = 19; +/* number of codes used to transfer the bit lengths */ + +const HEAP_SIZE$1 = 2 * L_CODES$1 + 1; +/* maximum heap size */ + +const MAX_BITS$1 = 15; +/* All codes must not exceed MAX_BITS bits */ + +const Buf_size = 16; +/* size of bit buffer in bi_buf */ + + +/* =========================================================================== + * Constants + */ + +const MAX_BL_BITS = 7; +/* Bit length codes must not exceed MAX_BL_BITS bits */ + +const END_BLOCK = 256; +/* end of block literal code */ + +const REP_3_6 = 16; +/* repeat previous bit length 3-6 times (2 bits of repeat count) */ + +const REPZ_3_10 = 17; +/* repeat a zero length 3-10 times (3 bits of repeat count) */ + +const REPZ_11_138 = 18; +/* repeat a zero length 11-138 times (7 bits of repeat count) */ + +/* eslint-disable comma-spacing,array-bracket-spacing */ +const extra_lbits = /* extra bits for each length code */ + new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]); + +const extra_dbits = /* extra bits for each distance code */ + new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]); + +const extra_blbits = /* extra bits for each bit length code */ + new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]); + +const bl_order = + new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]); +/* eslint-enable comma-spacing,array-bracket-spacing */ + +/* The lengths of the bit length codes are sent in order of decreasing + * probability, to avoid transmitting the lengths for unused bit length codes. + */ + +/* =========================================================================== + * Local data. These are initialized only once. + */ + +// We pre-fill arrays with 0 to avoid uninitialized gaps + +const DIST_CODE_LEN = 512; /* see definition of array dist_code below */ + +// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1 +const static_ltree = new Array((L_CODES$1 + 2) * 2); +zero$1(static_ltree); +/* The static literal tree. Since the bit lengths are imposed, there is no + * need for the L_CODES extra codes used during heap construction. However + * The codes 286 and 287 are needed to build a canonical tree (see _tr_init + * below). + */ + +const static_dtree = new Array(D_CODES$1 * 2); +zero$1(static_dtree); +/* The static distance tree. (Actually a trivial tree since all codes use + * 5 bits.) + */ + +const _dist_code = new Array(DIST_CODE_LEN); +zero$1(_dist_code); +/* Distance codes. The first 256 values correspond to the distances + * 3 .. 258, the last 256 values correspond to the top 8 bits of + * the 15 bit distances. + */ + +const _length_code = new Array(MAX_MATCH$1 - MIN_MATCH$1 + 1); +zero$1(_length_code); +/* length code for each normalized match length (0 == MIN_MATCH) */ + +const base_length = new Array(LENGTH_CODES$1); +zero$1(base_length); +/* First normalized length for each code (0 = MIN_MATCH) */ + +const base_dist = new Array(D_CODES$1); +zero$1(base_dist); +/* First normalized distance for each code (0 = distance of 1) */ + + +function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + + this.static_tree = static_tree; /* static tree or NULL */ + this.extra_bits = extra_bits; /* extra bits for each code or NULL */ + this.extra_base = extra_base; /* base index for extra_bits */ + this.elems = elems; /* max number of elements in the tree */ + this.max_length = max_length; /* max bit length for the codes */ + + // show if `static_tree` has data or dummy - needed for monomorphic objects + this.has_stree = static_tree && static_tree.length; +} + + +let static_l_desc; +let static_d_desc; +let static_bl_desc; + + +function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; /* the dynamic tree */ + this.max_code = 0; /* largest code with non zero frequency */ + this.stat_desc = stat_desc; /* the corresponding static tree */ +} + + + +const d_code = (dist) => { + + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; +}; + + +/* =========================================================================== + * Output a short LSB first on the stream. + * IN assertion: there is enough room in pendingBuf. + */ +const put_short = (s, w) => { +// put_byte(s, (uch)((w) & 0xff)); +// put_byte(s, (uch)((ush)(w) >> 8)); + s.pending_buf[s.pending++] = (w) & 0xff; + s.pending_buf[s.pending++] = (w >>> 8) & 0xff; +}; + + +/* =========================================================================== + * Send a value on a given number of bits. + * IN assertion: length <= 16 and value fits in length bits. + */ +const send_bits = (s, value, length) => { + + if (s.bi_valid > (Buf_size - length)) { + s.bi_buf |= (value << s.bi_valid) & 0xffff; + put_short(s, s.bi_buf); + s.bi_buf = value >> (Buf_size - s.bi_valid); + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= (value << s.bi_valid) & 0xffff; + s.bi_valid += length; + } +}; + + +const send_code = (s, c, tree) => { + + send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/); +}; + + +/* =========================================================================== + * Reverse the first len bits of a code, using straightforward code (a faster + * method would use a table) + * IN assertion: 1 <= len <= 15 + */ +const bi_reverse = (code, len) => { + + let res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; +}; + + +/* =========================================================================== + * Flush the bit buffer, keeping at most 7 bits in it. + */ +const bi_flush = (s) => { + + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 0xff; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } +}; + + +/* =========================================================================== + * Compute the optimal bit lengths for a tree and update the total bit length + * for the current block. + * IN assertion: the fields freq and dad are set, heap[heap_max] and + * above are the tree nodes sorted by increasing frequency. + * OUT assertions: the field len is set to the optimal bit length, the + * array bl_count contains the frequencies for each bit length. + * The length opt_len is updated; static_len is also updated if stree is + * not null. + */ +const gen_bitlen = (s, desc) => { +// deflate_state *s; +// tree_desc *desc; /* the tree descriptor */ + + const tree = desc.dyn_tree; + const max_code = desc.max_code; + const stree = desc.stat_desc.static_tree; + const has_stree = desc.stat_desc.has_stree; + const extra = desc.stat_desc.extra_bits; + const base = desc.stat_desc.extra_base; + const max_length = desc.stat_desc.max_length; + let h; /* heap index */ + let n, m; /* iterate over the tree elements */ + let bits; /* bit length */ + let xbits; /* extra bits */ + let f; /* frequency */ + let overflow = 0; /* number of elements with bit length too large */ + + for (bits = 0; bits <= MAX_BITS$1; bits++) { + s.bl_count[bits] = 0; + } + + /* In a first pass, compute the optimal bit lengths (which may + * overflow in the case of the bit length tree). + */ + tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */ + + for (h = s.heap_max + 1; h < HEAP_SIZE$1; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1]/*.Len*/ = bits; + /* We overwrite tree[n].Dad which is no longer needed */ + + if (n > max_code) { continue; } /* not a leaf node */ + + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]/*.Freq*/; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits); + } + } + if (overflow === 0) { return; } + + // Tracev((stderr,"\nbit length overflow\n")); + /* This happens for example on obj2 and pic of the Calgary corpus */ + + /* Find the first bit length which could increase: */ + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { bits--; } + s.bl_count[bits]--; /* move one leaf down the tree */ + s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */ + s.bl_count[max_length]--; + /* The brother of the overflow item also moves one step up, + * but this does not affect bl_count[max_length] + */ + overflow -= 2; + } while (overflow > 0); + + /* Now recompute all bit lengths, scanning in increasing frequency. + * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all + * lengths instead of fixing only the wrong ones. This idea is taken + * from 'ar' written by Haruhiko Okumura.) + */ + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { continue; } + if (tree[m * 2 + 1]/*.Len*/ !== bits) { + // Tracev((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); + s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/; + tree[m * 2 + 1]/*.Len*/ = bits; + } + n--; + } + } +}; + + +/* =========================================================================== + * Generate the codes for a given tree and bit counts (which need not be + * optimal). + * IN assertion: the array bl_count contains the bit length statistics for + * the given tree and the field len is set for all tree elements. + * OUT assertion: the field code is set for all tree elements of non + * zero code length. + */ +const gen_codes = (tree, max_code, bl_count) => { +// ct_data *tree; /* the tree to decorate */ +// int max_code; /* largest code with non zero frequency */ +// ushf *bl_count; /* number of codes at each bit length */ + + const next_code = new Array(MAX_BITS$1 + 1); /* next code value for each bit length */ + let code = 0; /* running code value */ + let bits; /* bit index */ + let n; /* code index */ + + /* The distribution counts are first used to generate the code values + * without bit reversal. + */ + for (bits = 1; bits <= MAX_BITS$1; bits++) { + code = (code + bl_count[bits - 1]) << 1; + next_code[bits] = code; + } + /* Check that the bit counts in bl_count are consistent. The last code + * must be all ones. + */ + //Assert (code + bl_count[MAX_BITS]-1 == (1< { + + let n; /* iterates over tree elements */ + let bits; /* bit counter */ + let length; /* length value */ + let code; /* code value */ + let dist; /* distance index */ + const bl_count = new Array(MAX_BITS$1 + 1); + /* number of codes at each bit length for an optimal tree */ + + // do check in _tr_init() + //if (static_init_done) return; + + /* For some embedded targets, global variables are not initialized: */ +/*#ifdef NO_INIT_GLOBAL_POINTERS + static_l_desc.static_tree = static_ltree; + static_l_desc.extra_bits = extra_lbits; + static_d_desc.static_tree = static_dtree; + static_d_desc.extra_bits = extra_dbits; + static_bl_desc.extra_bits = extra_blbits; +#endif*/ + + /* Initialize the mapping length (0..255) -> length code (0..28) */ + length = 0; + for (code = 0; code < LENGTH_CODES$1 - 1; code++) { + base_length[code] = length; + for (n = 0; n < (1 << extra_lbits[code]); n++) { + _length_code[length++] = code; + } + } + //Assert (length == 256, "tr_static_init: length != 256"); + /* Note that the length 255 (match length 258) can be represented + * in two different ways: code 284 + 5 bits or code 285, so we + * overwrite length_code[255] to use the best encoding: + */ + _length_code[length - 1] = code; + + /* Initialize the mapping dist (0..32K) -> dist code (0..29) */ + dist = 0; + for (code = 0; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < (1 << extra_dbits[code]); n++) { + _dist_code[dist++] = code; + } + } + //Assert (dist == 256, "tr_static_init: dist != 256"); + dist >>= 7; /* from now on, all distances are divided by 128 */ + for (; code < D_CODES$1; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) { + _dist_code[256 + dist++] = code; + } + } + //Assert (dist == 256, "tr_static_init: 256+dist != 512"); + + /* Construct the codes of the static literal tree */ + for (bits = 0; bits <= MAX_BITS$1; bits++) { + bl_count[bits] = 0; + } + + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1]/*.Len*/ = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1]/*.Len*/ = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1]/*.Len*/ = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1]/*.Len*/ = 8; + n++; + bl_count[8]++; + } + /* Codes 286 and 287 do not exist, but we must include them in the + * tree construction to get a canonical Huffman tree (longest code + * all ones) + */ + gen_codes(static_ltree, L_CODES$1 + 1, bl_count); + + /* The static distance tree is trivial: */ + for (n = 0; n < D_CODES$1; n++) { + static_dtree[n * 2 + 1]/*.Len*/ = 5; + static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5); + } + + // Now data ready and we can init static trees + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS$1 + 1, L_CODES$1, MAX_BITS$1); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES$1, MAX_BITS$1); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES$1, MAX_BL_BITS); + + //static_init_done = true; +}; + + +/* =========================================================================== + * Initialize a new block. + */ +const init_block = (s) => { + + let n; /* iterates over tree elements */ + + /* Initialize the trees. */ + for (n = 0; n < L_CODES$1; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; } + for (n = 0; n < D_CODES$1; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; } + for (n = 0; n < BL_CODES$1; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; } + + s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1; + s.opt_len = s.static_len = 0; + s.sym_next = s.matches = 0; +}; + + +/* =========================================================================== + * Flush the bit buffer and align the output on a byte boundary + */ +const bi_windup = (s) => +{ + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + //put_byte(s, (Byte)s->bi_buf); + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; +}; + +/* =========================================================================== + * Compares to subtrees, using the tree depth as tie breaker when + * the subtrees have equal frequency. This minimizes the worst case length. + */ +const smaller = (tree, n, m, depth) => { + + const _n2 = n * 2; + const _m2 = m * 2; + return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ || + (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m])); +}; + +/* =========================================================================== + * Restore the heap property by moving down the tree starting at node k, + * exchanging a node with the smallest of its two sons if necessary, stopping + * when the heap property is re-established (each father smaller than its + * two sons). + */ +const pqdownheap = (s, tree, k) => { +// deflate_state *s; +// ct_data *tree; /* the tree to restore */ +// int k; /* node to move down */ + + const v = s.heap[k]; + let j = k << 1; /* left son of k */ + while (j <= s.heap_len) { + /* Set j to the smallest of the two sons: */ + if (j < s.heap_len && + smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; + } + /* Exit if v is smaller than both sons */ + if (smaller(tree, v, s.heap[j], s.depth)) { break; } + + /* Exchange v with the smallest son */ + s.heap[k] = s.heap[j]; + k = j; + + /* And continue down the tree, setting j to the left son of k */ + j <<= 1; + } + s.heap[k] = v; +}; + + +// inlined manually +// const SMALLEST = 1; + +/* =========================================================================== + * Send the block data compressed using the given Huffman trees + */ +const compress_block = (s, ltree, dtree) => { +// deflate_state *s; +// const ct_data *ltree; /* literal tree */ +// const ct_data *dtree; /* distance tree */ + + let dist; /* distance of matched string */ + let lc; /* match length or unmatched char (if dist == 0) */ + let sx = 0; /* running index in sym_buf */ + let code; /* the code to send */ + let extra; /* number of extra bits to send */ + + if (s.sym_next !== 0) { + do { + dist = s.pending_buf[s.sym_buf + sx++] & 0xff; + dist += (s.pending_buf[s.sym_buf + sx++] & 0xff) << 8; + lc = s.pending_buf[s.sym_buf + sx++]; + if (dist === 0) { + send_code(s, lc, ltree); /* send a literal byte */ + //Tracecv(isgraph(lc), (stderr," '%c' ", lc)); + } else { + /* Here, lc is the match length - MIN_MATCH */ + code = _length_code[lc]; + send_code(s, code + LITERALS$1 + 1, ltree); /* send the length code */ + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); /* send the extra length bits */ + } + dist--; /* dist is now the match distance - 1 */ + code = d_code(dist); + //Assert (code < D_CODES, "bad d_code"); + + send_code(s, code, dtree); /* send the distance code */ + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); /* send the extra distance bits */ + } + } /* literal or match pair ? */ + + /* Check that the overlay between pending_buf and sym_buf is ok: */ + //Assert(s->pending < s->lit_bufsize + sx, "pendingBuf overflow"); + + } while (sx < s.sym_next); + } + + send_code(s, END_BLOCK, ltree); +}; + + +/* =========================================================================== + * Construct one Huffman tree and assigns the code bit strings and lengths. + * Update the total bit length for the current block. + * IN assertion: the field freq is set for all tree elements. + * OUT assertions: the fields len and code are set to the optimal bit length + * and corresponding code. The length opt_len is updated; static_len is + * also updated if stree is not null. The field max_code is set. + */ +const build_tree = (s, desc) => { +// deflate_state *s; +// tree_desc *desc; /* the tree descriptor */ + + const tree = desc.dyn_tree; + const stree = desc.stat_desc.static_tree; + const has_stree = desc.stat_desc.has_stree; + const elems = desc.stat_desc.elems; + let n, m; /* iterate over heap elements */ + let max_code = -1; /* largest code with non zero frequency */ + let node; /* new node being created */ + + /* Construct the initial heap, with least frequent element in + * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. + * heap[0] is not used. + */ + s.heap_len = 0; + s.heap_max = HEAP_SIZE$1; + + for (n = 0; n < elems; n++) { + if (tree[n * 2]/*.Freq*/ !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + + } else { + tree[n * 2 + 1]/*.Len*/ = 0; + } + } + + /* The pkzip format requires that at least one distance code exists, + * and that at least one bit should be sent even if there is only one + * possible code. So to avoid special checks later on we force at least + * two codes of non zero frequency. + */ + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0); + tree[node * 2]/*.Freq*/ = 1; + s.depth[node] = 0; + s.opt_len--; + + if (has_stree) { + s.static_len -= stree[node * 2 + 1]/*.Len*/; + } + /* node is 0 or 1 so it does not have extra bits */ + } + desc.max_code = max_code; + + /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, + * establish sub-heaps of increasing lengths: + */ + for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); } + + /* Construct the Huffman tree by repeatedly combining the least two + * frequent nodes. + */ + node = elems; /* next internal node of the tree */ + do { + //pqremove(s, tree, n); /* n = node of least frequency */ + /*** pqremove ***/ + n = s.heap[1/*SMALLEST*/]; + s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--]; + pqdownheap(s, tree, 1/*SMALLEST*/); + /***/ + + m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */ + + s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */ + s.heap[--s.heap_max] = m; + + /* Create a new node father of n and m */ + tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node; + + /* and insert the new node in the heap */ + s.heap[1/*SMALLEST*/] = node++; + pqdownheap(s, tree, 1/*SMALLEST*/); + + } while (s.heap_len >= 2); + + s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/]; + + /* At this point, the fields freq and dad are set. We can now + * generate the bit lengths. + */ + gen_bitlen(s, desc); + + /* The field len is now set, we can generate the bit codes */ + gen_codes(tree, max_code, s.bl_count); +}; + + +/* =========================================================================== + * Scan a literal or distance tree to determine the frequencies of the codes + * in the bit length tree. + */ +const scan_tree = (s, tree, max_code) => { +// deflate_state *s; +// ct_data *tree; /* the tree to be scanned */ +// int max_code; /* and its largest code of non zero frequency */ + + let n; /* iterates over all tree elements */ + let prevlen = -1; /* last emitted length */ + let curlen; /* length of current code */ + + let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */ + + let count = 0; /* repeat count of the current code */ + let max_count = 7; /* max repeat count */ + let min_count = 4; /* min repeat count */ + + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */ + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]/*.Len*/; + + if (++count < max_count && curlen === nextlen) { + continue; + + } else if (count < min_count) { + s.bl_tree[curlen * 2]/*.Freq*/ += count; + + } else if (curlen !== 0) { + + if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; } + s.bl_tree[REP_3_6 * 2]/*.Freq*/++; + + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++; + + } else { + s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++; + } + + count = 0; + prevlen = curlen; + + if (nextlen === 0) { + max_count = 138; + min_count = 3; + + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + + } else { + max_count = 7; + min_count = 4; + } + } +}; + + +/* =========================================================================== + * Send a literal or distance tree in compressed form, using the codes in + * bl_tree. + */ +const send_tree = (s, tree, max_code) => { +// deflate_state *s; +// ct_data *tree; /* the tree to be scanned */ +// int max_code; /* and its largest code of non zero frequency */ + + let n; /* iterates over all tree elements */ + let prevlen = -1; /* last emitted length */ + let curlen; /* length of current code */ + + let nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */ + + let count = 0; /* repeat count of the current code */ + let max_count = 7; /* max repeat count */ + let min_count = 4; /* min repeat count */ + + /* tree[max_code+1].Len = -1; */ /* guard already set */ + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]/*.Len*/; + + if (++count < max_count && curlen === nextlen) { + continue; + + } else if (count < min_count) { + do { send_code(s, curlen, s.bl_tree); } while (--count !== 0); + + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + //Assert(count >= 3 && count <= 6, " 3_6?"); + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); + } + + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + + } else { + max_count = 7; + min_count = 4; + } + } +}; + + +/* =========================================================================== + * Construct the Huffman tree for the bit lengths and return the index in + * bl_order of the last bit length code to send. + */ +const build_bl_tree = (s) => { + + let max_blindex; /* index of last bit length code of non zero freq */ + + /* Determine the bit length frequencies for literal and distance trees */ + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + + /* Build the bit length tree: */ + build_tree(s, s.bl_desc); + /* opt_len now includes the length of the tree representations, except + * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. + */ + + /* Determine the number of bit length codes to send. The pkzip format + * requires that at least 4 bit length codes be sent. (appnote.txt says + * 3 but the actual value used is 4.) + */ + for (max_blindex = BL_CODES$1 - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) { + break; + } + } + /* Update opt_len to include the bit length tree and counts */ + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + //Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", + // s->opt_len, s->static_len)); + + return max_blindex; +}; + + +/* =========================================================================== + * Send the header for a block using dynamic Huffman trees: the counts, the + * lengths of the bit length codes, the literal tree and the distance tree. + * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. + */ +const send_all_trees = (s, lcodes, dcodes, blcodes) => { +// deflate_state *s; +// int lcodes, dcodes, blcodes; /* number of codes for each tree */ + + let rank; /* index in bl_order */ + + //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); + //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, + // "too many codes"); + //Tracev((stderr, "\nbl counts: ")); + send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */ + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */ + for (rank = 0; rank < blcodes; rank++) { + //Tracev((stderr, "\nbl code %2d ", bl_order[rank])); + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3); + } + //Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); + + send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */ + //Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); + + send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */ + //Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); +}; + + +/* =========================================================================== + * Check if the data type is TEXT or BINARY, using the following algorithm: + * - TEXT if the two conditions below are satisfied: + * a) There are no non-portable control characters belonging to the + * "block list" (0..6, 14..25, 28..31). + * b) There is at least one printable character belonging to the + * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). + * - BINARY otherwise. + * - The following partially-portable control characters form a + * "gray list" that is ignored in this detection algorithm: + * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). + * IN assertion: the fields Freq of dyn_ltree are set. + */ +const detect_data_type = (s) => { + /* block_mask is the bit mask of block-listed bytes + * set bits 0..6, 14..25, and 28..31 + * 0xf3ffc07f = binary 11110011111111111100000001111111 + */ + let block_mask = 0xf3ffc07f; + let n; + + /* Check for non-textual ("block-listed") bytes. */ + for (n = 0; n <= 31; n++, block_mask >>>= 1) { + if ((block_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) { + return Z_BINARY; + } + } + + /* Check for textual ("allow-listed") bytes. */ + if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 || + s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS$1; n++) { + if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) { + return Z_TEXT; + } + } + + /* There are no "block-listed" or "allow-listed" bytes: + * this stream either is empty or has tolerated ("gray-listed") bytes only. + */ + return Z_BINARY; +}; + + +let static_init_done = false; + +/* =========================================================================== + * Initialize the tree data structures for a new zlib stream. + */ +const _tr_init$1 = (s) => +{ + + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + + s.bi_buf = 0; + s.bi_valid = 0; + + /* Initialize the first block of the first file: */ + init_block(s); +}; + + +/* =========================================================================== + * Send a stored block + */ +const _tr_stored_block$1 = (s, buf, stored_len, last) => { +//DeflateState *s; +//charf *buf; /* input block */ +//ulg stored_len; /* length of input block */ +//int last; /* one if this is the last block for a file */ + + send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */ + bi_windup(s); /* align on byte boundary */ + put_short(s, stored_len); + put_short(s, ~stored_len); + if (stored_len) { + s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending); + } + s.pending += stored_len; +}; + + +/* =========================================================================== + * Send one empty static block to give enough lookahead for inflate. + * This takes 10 bits, of which 7 may remain in the bit buffer. + */ +const _tr_align$1 = (s) => { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); +}; + + +/* =========================================================================== + * Determine the best encoding for the current block: dynamic trees, static + * trees or store, and write out the encoded block. + */ +const _tr_flush_block$1 = (s, buf, stored_len, last) => { +//DeflateState *s; +//charf *buf; /* input block, or NULL if too old */ +//ulg stored_len; /* length of input block */ +//int last; /* one if this is the last block for a file */ + + let opt_lenb, static_lenb; /* opt_len and static_len in bytes */ + let max_blindex = 0; /* index of last bit length code of non zero freq */ + + /* Build the Huffman trees unless a stored block is forced */ + if (s.level > 0) { + + /* Check if the file is binary or text */ + if (s.strm.data_type === Z_UNKNOWN$1) { + s.strm.data_type = detect_data_type(s); + } + + /* Construct the literal and distance trees */ + build_tree(s, s.l_desc); + // Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, + // s->static_len)); + + build_tree(s, s.d_desc); + // Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, + // s->static_len)); + /* At this point, opt_len and static_len are the total bit lengths of + * the compressed block data, excluding the tree representations. + */ + + /* Build the bit length tree for the above two trees, and get the index + * in bl_order of the last bit length code to send. + */ + max_blindex = build_bl_tree(s); + + /* Determine the best encoding. Compute the block lengths in bytes. */ + opt_lenb = (s.opt_len + 3 + 7) >>> 3; + static_lenb = (s.static_len + 3 + 7) >>> 3; + + // Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", + // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, + // s->sym_next / 3)); + + if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; } + + } else { + // Assert(buf != (char*)0, "lost buf"); + opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ + } + + if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) { + /* 4: two words for the lengths */ + + /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. + * Otherwise we can't have processed more than WSIZE input bytes since + * the last block flush, because compression would have been + * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to + * transform a block into a stored block. + */ + _tr_stored_block$1(s, buf, stored_len, last); + + } else if (s.strategy === Z_FIXED$1 || static_lenb === opt_lenb) { + + send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + + } else { + send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + // Assert (s->compressed_len == s->bits_sent, "bad compressed size"); + /* The above check is made mod 2^32, for files larger than 512 MB + * and uLong implemented on 32 bits. + */ + init_block(s); + + if (last) { + bi_windup(s); + } + // Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, + // s->compressed_len-7*last)); +}; + +/* =========================================================================== + * Save the match info and tally the frequency counts. Return true if + * the current block must be flushed. + */ +const _tr_tally$1 = (s, dist, lc) => { +// deflate_state *s; +// unsigned dist; /* distance of matched string */ +// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ + + s.pending_buf[s.sym_buf + s.sym_next++] = dist; + s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8; + s.pending_buf[s.sym_buf + s.sym_next++] = lc; + if (dist === 0) { + /* lc is the unmatched char */ + s.dyn_ltree[lc * 2]/*.Freq*/++; + } else { + s.matches++; + /* Here, lc is the match length - MIN_MATCH */ + dist--; /* dist = match distance - 1 */ + //Assert((ush)dist < (ush)MAX_DIST(s) && + // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && + // (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); + + s.dyn_ltree[(_length_code[lc] + LITERALS$1 + 1) * 2]/*.Freq*/++; + s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++; + } + + return (s.sym_next === s.sym_end); +}; + +var _tr_init_1 = _tr_init$1; +var _tr_stored_block_1 = _tr_stored_block$1; +var _tr_flush_block_1 = _tr_flush_block$1; +var _tr_tally_1 = _tr_tally$1; +var _tr_align_1 = _tr_align$1; + +var trees = { + _tr_init: _tr_init_1, + _tr_stored_block: _tr_stored_block_1, + _tr_flush_block: _tr_flush_block_1, + _tr_tally: _tr_tally_1, + _tr_align: _tr_align_1 +}; + +// Note: adler32 takes 12% for level 0 and 2% for level 6. +// It isn't worth it to make additional optimizations as in original. +// Small size is preferable. + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +const adler32 = (adler, buf, len, pos) => { + let s1 = (adler & 0xffff) |0, + s2 = ((adler >>> 16) & 0xffff) |0, + n = 0; + + while (len !== 0) { + // Set limit ~ twice less than 5552, to keep + // s2 in 31-bits, because we force signed ints. + // in other case %= will fail. + n = len > 2000 ? 2000 : len; + len -= n; + + do { + s1 = (s1 + buf[pos++]) |0; + s2 = (s2 + s1) |0; + } while (--n); + + s1 %= 65521; + s2 %= 65521; + } + + return (s1 | (s2 << 16)) |0; +}; + + +var adler32_1 = adler32; + +// Note: we can't get significant speed boost here. +// So write code to minimize size - no pregenerated tables +// and array tools dependencies. + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +// Use ordinary array, since untyped makes no boost here +const makeTable = () => { + let c, table = []; + + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); + } + table[n] = c; + } + + return table; +}; + +// Create table on load. Just 255 signed longs. Not a problem. +const crcTable = new Uint32Array(makeTable()); + + +const crc32 = (crc, buf, len, pos) => { + const t = crcTable; + const end = pos + len; + + crc ^= -1; + + for (let i = pos; i < end; i++) { + crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; + } + + return (crc ^ (-1)); // >>> 0; +}; + + +var crc32_1 = crc32; + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +var messages = { + 2: 'need dictionary', /* Z_NEED_DICT 2 */ + 1: 'stream end', /* Z_STREAM_END 1 */ + 0: '', /* Z_OK 0 */ + '-1': 'file error', /* Z_ERRNO (-1) */ + '-2': 'stream error', /* Z_STREAM_ERROR (-2) */ + '-3': 'data error', /* Z_DATA_ERROR (-3) */ + '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */ + '-5': 'buffer error', /* Z_BUF_ERROR (-5) */ + '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */ +}; + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +var constants$2 = { + + /* Allowed flush values; see deflate() and inflate() below for details */ + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + + /* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + Z_MEM_ERROR: -4, + Z_BUF_ERROR: -5, + //Z_VERSION_ERROR: -6, + + /* compression levels */ + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + + + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + + /* Possible values of the data_type field (though see inflate()) */ + Z_BINARY: 0, + Z_TEXT: 1, + //Z_ASCII: 1, // = Z_TEXT (deprecated) + Z_UNKNOWN: 2, + + /* The deflate compression method */ + Z_DEFLATED: 8 + //Z_NULL: null // Use -1 or null inline, depending on var type +}; + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +const { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = trees; + + + + +/* Public constants ==========================================================*/ +/* ===========================================================================*/ + +const { + Z_NO_FLUSH: Z_NO_FLUSH$2, Z_PARTIAL_FLUSH, Z_FULL_FLUSH: Z_FULL_FLUSH$1, Z_FINISH: Z_FINISH$3, Z_BLOCK: Z_BLOCK$1, + Z_OK: Z_OK$3, Z_STREAM_END: Z_STREAM_END$3, Z_STREAM_ERROR: Z_STREAM_ERROR$2, Z_DATA_ERROR: Z_DATA_ERROR$2, Z_BUF_ERROR: Z_BUF_ERROR$1, + Z_DEFAULT_COMPRESSION: Z_DEFAULT_COMPRESSION$1, + Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE, Z_FIXED, Z_DEFAULT_STRATEGY: Z_DEFAULT_STRATEGY$1, + Z_UNKNOWN, + Z_DEFLATED: Z_DEFLATED$2 +} = constants$2; + +/*============================================================================*/ + + +const MAX_MEM_LEVEL = 9; +/* Maximum value for memLevel in deflateInit2 */ +const MAX_WBITS$1 = 15; +/* 32K LZ77 window */ +const DEF_MEM_LEVEL = 8; + + +const LENGTH_CODES = 29; +/* number of length codes, not counting the special END_BLOCK code */ +const LITERALS = 256; +/* number of literal bytes 0..255 */ +const L_CODES = LITERALS + 1 + LENGTH_CODES; +/* number of Literal or Length codes, including the END_BLOCK code */ +const D_CODES = 30; +/* number of distance codes */ +const BL_CODES = 19; +/* number of codes used to transfer the bit lengths */ +const HEAP_SIZE = 2 * L_CODES + 1; +/* maximum heap size */ +const MAX_BITS = 15; +/* All codes must not exceed MAX_BITS bits */ + +const MIN_MATCH = 3; +const MAX_MATCH = 258; +const MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1); + +const PRESET_DICT = 0x20; + +const INIT_STATE = 42; /* zlib header -> BUSY_STATE */ +//#ifdef GZIP +const GZIP_STATE = 57; /* gzip header -> BUSY_STATE | EXTRA_STATE */ +//#endif +const EXTRA_STATE = 69; /* gzip extra block -> NAME_STATE */ +const NAME_STATE = 73; /* gzip file name -> COMMENT_STATE */ +const COMMENT_STATE = 91; /* gzip comment -> HCRC_STATE */ +const HCRC_STATE = 103; /* gzip header CRC -> BUSY_STATE */ +const BUSY_STATE = 113; /* deflate -> FINISH_STATE */ +const FINISH_STATE = 666; /* stream complete */ + +const BS_NEED_MORE = 1; /* block not completed, need more input or more output */ +const BS_BLOCK_DONE = 2; /* block flush performed */ +const BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */ +const BS_FINISH_DONE = 4; /* finish done, accept no more input or output */ + +const OS_CODE = 0x03; // Unix :) . Don't detect, use this default. + +const err = (strm, errorCode) => { + strm.msg = messages[errorCode]; + return errorCode; +}; + +const rank = (f) => { + return ((f) * 2) - ((f) > 4 ? 9 : 0); +}; + +const zero = (buf) => { + let len = buf.length; while (--len >= 0) { buf[len] = 0; } +}; + +/* =========================================================================== + * Slide the hash table when sliding the window down (could be avoided with 32 + * bit values at the expense of memory usage). We slide even when level == 0 to + * keep the hash table consistent if we switch back to level > 0 later. + */ +const slide_hash = (s) => { + let n, m; + let p; + let wsize = s.w_size; + + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = (m >= wsize ? m - wsize : 0); + } while (--n); + n = wsize; +//#ifndef FASTEST + p = n; + do { + m = s.prev[--p]; + s.prev[p] = (m >= wsize ? m - wsize : 0); + /* If n is not on any hash chain, prev[n] is garbage but + * its value will never be used. + */ + } while (--n); +//#endif +}; + +/* eslint-disable new-cap */ +let HASH_ZLIB = (s, prev, data) => ((prev << s.hash_shift) ^ data) & s.hash_mask; +// This hash causes less collisions, https://github.com/nodeca/pako/issues/135 +// But breaks binary compatibility +//let HASH_FAST = (s, prev, data) => ((prev << 8) + (prev >> 8) + (data << 4)) & s.hash_mask; +let HASH = HASH_ZLIB; + + +/* ========================================================================= + * Flush as much pending output as possible. All deflate() output, except for + * some deflate_stored() output, goes through this function so some + * applications may wish to modify it to avoid allocating a large + * strm->next_out buffer and copying into it. (See also read_buf()). + */ +const flush_pending = (strm) => { + const s = strm.state; + + //_tr_flush_bits(s); + let len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { return; } + + strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } +}; + + +const flush_block_only = (s, last) => { + _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last); + s.block_start = s.strstart; + flush_pending(s.strm); +}; + + +const put_byte = (s, b) => { + s.pending_buf[s.pending++] = b; +}; + + +/* ========================================================================= + * Put a short in the pending buffer. The 16-bit value is put in MSB order. + * IN assertion: the stream state is correct and there is enough room in + * pending_buf. + */ +const putShortMSB = (s, b) => { + + // put_byte(s, (Byte)(b >> 8)); +// put_byte(s, (Byte)(b & 0xff)); + s.pending_buf[s.pending++] = (b >>> 8) & 0xff; + s.pending_buf[s.pending++] = b & 0xff; +}; + + +/* =========================================================================== + * Read a new buffer from the current input stream, update the adler32 + * and total number of bytes read. All deflate() input goes through + * this function so some applications may wish to modify it to avoid + * allocating a large strm->input buffer and copying from it. + * (See also flush_pending()). + */ +const read_buf = (strm, buf, start, size) => { + + let len = strm.avail_in; + + if (len > size) { len = size; } + if (len === 0) { return 0; } + + strm.avail_in -= len; + + // zmemcpy(buf, strm->next_in, len); + buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start); + if (strm.state.wrap === 1) { + strm.adler = adler32_1(strm.adler, buf, len, start); + } + + else if (strm.state.wrap === 2) { + strm.adler = crc32_1(strm.adler, buf, len, start); + } + + strm.next_in += len; + strm.total_in += len; + + return len; +}; + + +/* =========================================================================== + * Set match_start to the longest match starting at the given string and + * return its length. Matches shorter or equal to prev_length are discarded, + * in which case the result is equal to prev_length and match_start is + * garbage. + * IN assertions: cur_match is the head of the hash chain for the current + * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 + * OUT assertion: the match length is not greater than s->lookahead. + */ +const longest_match = (s, cur_match) => { + + let chain_length = s.max_chain_length; /* max hash chain length */ + let scan = s.strstart; /* current string */ + let match; /* matched string */ + let len; /* length of current match */ + let best_len = s.prev_length; /* best match length so far */ + let nice_match = s.nice_match; /* stop if match long enough */ + const limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ? + s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/; + + const _win = s.window; // shortcut + + const wmask = s.w_mask; + const prev = s.prev; + + /* Stop when cur_match becomes <= limit. To simplify the code, + * we prevent matches with the string of window index 0. + */ + + const strend = s.strstart + MAX_MATCH; + let scan_end1 = _win[scan + best_len - 1]; + let scan_end = _win[scan + best_len]; + + /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. + * It is easy to get rid of this optimization if necessary. + */ + // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); + + /* Do not waste too much time if we already have a good match: */ + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + /* Do not look for matches beyond the end of the input. This is necessary + * to make deflate deterministic. + */ + if (nice_match > s.lookahead) { nice_match = s.lookahead; } + + // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); + + do { + // Assert(cur_match < s->strstart, "no future"); + match = cur_match; + + /* Skip to next match if the match length cannot increase + * or if the match length is less than 2. Note that the checks below + * for insufficient lookahead only occur occasionally for performance + * reasons. Therefore uninitialized memory will be accessed, and + * conditional jumps will be made that depend on those values. + * However the length of the match is limited to the lookahead, so + * the output of deflate is not affected by the uninitialized values. + */ + + if (_win[match + best_len] !== scan_end || + _win[match + best_len - 1] !== scan_end1 || + _win[match] !== _win[scan] || + _win[++match] !== _win[scan + 1]) { + continue; + } + + /* The check at best_len-1 can be removed because it will be made + * again later. (This heuristic is not always a win.) + * It is not necessary to compare scan[2] and match[2] since they + * are always equal when the other bytes match, given that + * the hash keys are equal and that HASH_BITS >= 8. + */ + scan += 2; + match++; + // Assert(*scan == *match, "match[2]?"); + + /* We check for insufficient lookahead only every 8th comparison; + * the 256th check will be made at strstart+258. + */ + do { + /*jshint noempty:false*/ + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && + scan < strend); + + // Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; +}; + + +/* =========================================================================== + * Fill the window when the lookahead becomes insufficient. + * Updates strstart and lookahead. + * + * IN assertion: lookahead < MIN_LOOKAHEAD + * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD + * At least one byte has been read, or avail_in == 0; reads are + * performed for at least two bytes (required for the zip translate_eol + * option -- not supported here). + */ +const fill_window = (s) => { + + const _w_size = s.w_size; + let n, more, str; + + //Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); + + do { + more = s.window_size - s.lookahead - s.strstart; + + // JS ints have 32 bit, block below not needed + /* Deal with !@#$% 64K limit: */ + //if (sizeof(int) <= 2) { + // if (more == 0 && s->strstart == 0 && s->lookahead == 0) { + // more = wsize; + // + // } else if (more == (unsigned)(-1)) { + // /* Very unlikely, but possible on 16 bit machine if + // * strstart == 0 && lookahead == 1 (input done a byte at time) + // */ + // more--; + // } + //} + + + /* If the window is almost full and there is insufficient lookahead, + * move the upper half to the lower one to make room in the upper half. + */ + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + + s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + /* we now have strstart >= MAX_DIST */ + s.block_start -= _w_size; + if (s.insert > s.strstart) { + s.insert = s.strstart; + } + slide_hash(s); + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + + /* If there was no sliding: + * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && + * more == window_size - lookahead - strstart + * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) + * => more >= window_size - 2*WSIZE + 2 + * In the BIG_MEM or MMAP case (not yet supported), + * window_size == input_size + MIN_LOOKAHEAD && + * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. + * Otherwise, window_size == 2*WSIZE so more >= 2. + * If there was sliding, more >= WSIZE. So in all cases, more >= 2. + */ + //Assert(more >= 2, "more < 2"); + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + + /* Initialize the hash value now that we have some input: */ + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + + /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */ + s.ins_h = HASH(s, s.ins_h, s.window[str + 1]); +//#if MIN_MATCH != 3 +// Call update_hash() MIN_MATCH-3 more times +//#endif + while (s.insert) { + /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */ + s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]); + + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, + * but this is not important since only literal bytes will be emitted. + */ + + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + + /* If the WIN_INIT bytes after the end of the current data have never been + * written, then zero those bytes in order to avoid memory check reports of + * the use of uninitialized (or uninitialised as Julian writes) bytes by + * the longest match routines. Update the high water mark for the next + * time through here. WIN_INIT is set to MAX_MATCH since the longest match + * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead. + */ +// if (s.high_water < s.window_size) { +// const curr = s.strstart + s.lookahead; +// let init = 0; +// +// if (s.high_water < curr) { +// /* Previous high water mark below current data -- zero WIN_INIT +// * bytes or up to end of window, whichever is less. +// */ +// init = s.window_size - curr; +// if (init > WIN_INIT) +// init = WIN_INIT; +// zmemzero(s->window + curr, (unsigned)init); +// s->high_water = curr + init; +// } +// else if (s->high_water < (ulg)curr + WIN_INIT) { +// /* High water mark at or above current data, but below current data +// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up +// * to end of window, whichever is less. +// */ +// init = (ulg)curr + WIN_INIT - s->high_water; +// if (init > s->window_size - s->high_water) +// init = s->window_size - s->high_water; +// zmemzero(s->window + s->high_water, (unsigned)init); +// s->high_water += init; +// } +// } +// +// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, +// "not enough room for search"); +}; + +/* =========================================================================== + * Copy without compression as much as possible from the input stream, return + * the current block state. + * + * In case deflateParams() is used to later switch to a non-zero compression + * level, s->matches (otherwise unused when storing) keeps track of the number + * of hash table slides to perform. If s->matches is 1, then one hash table + * slide will be done when switching. If s->matches is 2, the maximum value + * allowed here, then the hash table will be cleared, since two or more slides + * is the same as a clear. + * + * deflate_stored() is written to minimize the number of times an input byte is + * copied. It is most efficient with large input and output buffers, which + * maximizes the opportunites to have a single copy from next_in to next_out. + */ +const deflate_stored = (s, flush) => { + + /* Smallest worthy block size when not flushing or finishing. By default + * this is 32K. This can be as small as 507 bytes for memLevel == 1. For + * large input and output buffers, the stored block size will be larger. + */ + let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5; + + /* Copy as many min_block or larger stored blocks directly to next_out as + * possible. If flushing, copy the remaining available input to next_out as + * stored blocks, if there is enough space. + */ + let len, left, have, last = 0; + let used = s.strm.avail_in; + do { + /* Set len to the maximum size block that we can copy directly with the + * available input data and output space. Set left to how much of that + * would be copied from what's left in the window. + */ + len = 65535/* MAX_STORED */; /* maximum deflate stored block length */ + have = (s.bi_valid + 42) >> 3; /* number of header bytes */ + if (s.strm.avail_out < have) { /* need room for header */ + break; + } + /* maximum stored block length that will fit in avail_out: */ + have = s.strm.avail_out - have; + left = s.strstart - s.block_start; /* bytes left in window */ + if (len > left + s.strm.avail_in) { + len = left + s.strm.avail_in; /* limit len to the input */ + } + if (len > have) { + len = have; /* limit len to the output */ + } + + /* If the stored block would be less than min_block in length, or if + * unable to copy all of the available input when flushing, then try + * copying to the window and the pending buffer instead. Also don't + * write an empty block when flushing -- deflate() does that. + */ + if (len < min_block && ((len === 0 && flush !== Z_FINISH$3) || + flush === Z_NO_FLUSH$2 || + len !== left + s.strm.avail_in)) { + break; + } + + /* Make a dummy stored block in pending to get the header bytes, + * including any pending bits. This also updates the debugging counts. + */ + last = flush === Z_FINISH$3 && len === left + s.strm.avail_in ? 1 : 0; + _tr_stored_block(s, 0, 0, last); + + /* Replace the lengths in the dummy stored block with len. */ + s.pending_buf[s.pending - 4] = len; + s.pending_buf[s.pending - 3] = len >> 8; + s.pending_buf[s.pending - 2] = ~len; + s.pending_buf[s.pending - 1] = ~len >> 8; + + /* Write the stored block header bytes. */ + flush_pending(s.strm); + +//#ifdef ZLIB_DEBUG +// /* Update debugging counts for the data about to be copied. */ +// s->compressed_len += len << 3; +// s->bits_sent += len << 3; +//#endif + + /* Copy uncompressed bytes from the window to next_out. */ + if (left) { + if (left > len) { + left = len; + } + //zmemcpy(s->strm->next_out, s->window + s->block_start, left); + s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out); + s.strm.next_out += left; + s.strm.avail_out -= left; + s.strm.total_out += left; + s.block_start += left; + len -= left; + } + + /* Copy uncompressed bytes directly from next_in to next_out, updating + * the check value. + */ + if (len) { + read_buf(s.strm, s.strm.output, s.strm.next_out, len); + s.strm.next_out += len; + s.strm.avail_out -= len; + s.strm.total_out += len; + } + } while (last === 0); + + /* Update the sliding window with the last s->w_size bytes of the copied + * data, or append all of the copied data to the existing window if less + * than s->w_size bytes were copied. Also update the number of bytes to + * insert in the hash tables, in the event that deflateParams() switches to + * a non-zero compression level. + */ + used -= s.strm.avail_in; /* number of input bytes directly copied */ + if (used) { + /* If any input was used, then no unused input remains in the window, + * therefore s->block_start == s->strstart. + */ + if (used >= s.w_size) { /* supplant the previous history */ + s.matches = 2; /* clear hash */ + //zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size); + s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0); + s.strstart = s.w_size; + s.insert = s.strstart; + } + else { + if (s.window_size - s.strstart <= used) { + /* Slide the window down. */ + s.strstart -= s.w_size; + //zmemcpy(s->window, s->window + s->w_size, s->strstart); + s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0); + if (s.matches < 2) { + s.matches++; /* add a pending slide_hash() */ + } + if (s.insert > s.strstart) { + s.insert = s.strstart; + } + } + //zmemcpy(s->window + s->strstart, s->strm->next_in - used, used); + s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart); + s.strstart += used; + s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used; + } + s.block_start = s.strstart; + } + if (s.high_water < s.strstart) { + s.high_water = s.strstart; + } + + /* If the last block was written to next_out, then done. */ + if (last) { + return BS_FINISH_DONE; + } + + /* If flushing and all input has been consumed, then done. */ + if (flush !== Z_NO_FLUSH$2 && flush !== Z_FINISH$3 && + s.strm.avail_in === 0 && s.strstart === s.block_start) { + return BS_BLOCK_DONE; + } + + /* Fill the window with any remaining input. */ + have = s.window_size - s.strstart; + if (s.strm.avail_in > have && s.block_start >= s.w_size) { + /* Slide the window down. */ + s.block_start -= s.w_size; + s.strstart -= s.w_size; + //zmemcpy(s->window, s->window + s->w_size, s->strstart); + s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0); + if (s.matches < 2) { + s.matches++; /* add a pending slide_hash() */ + } + have += s.w_size; /* more space now */ + if (s.insert > s.strstart) { + s.insert = s.strstart; + } + } + if (have > s.strm.avail_in) { + have = s.strm.avail_in; + } + if (have) { + read_buf(s.strm, s.window, s.strstart, have); + s.strstart += have; + s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have; + } + if (s.high_water < s.strstart) { + s.high_water = s.strstart; + } + + /* There was not enough avail_out to write a complete worthy or flushed + * stored block to next_out. Write a stored block to pending instead, if we + * have enough input for a worthy block, or if flushing and there is enough + * room for the remaining input as a stored block in the pending buffer. + */ + have = (s.bi_valid + 42) >> 3; /* number of header bytes */ + /* maximum stored block length that will fit in pending: */ + have = s.pending_buf_size - have > 65535/* MAX_STORED */ ? 65535/* MAX_STORED */ : s.pending_buf_size - have; + min_block = have > s.w_size ? s.w_size : have; + left = s.strstart - s.block_start; + if (left >= min_block || + ((left || flush === Z_FINISH$3) && flush !== Z_NO_FLUSH$2 && + s.strm.avail_in === 0 && left <= have)) { + len = left > have ? have : left; + last = flush === Z_FINISH$3 && s.strm.avail_in === 0 && + len === left ? 1 : 0; + _tr_stored_block(s, s.block_start, len, last); + s.block_start += len; + flush_pending(s.strm); + } + + /* We've done all we can with the available input and output. */ + return last ? BS_FINISH_STARTED : BS_NEED_MORE; +}; + + +/* =========================================================================== + * Compress as much as possible from the input stream, return the current + * block state. + * This function does not perform lazy evaluation of matches and inserts + * new strings in the dictionary only for unmatched strings or for short + * matches. It is used only for the fast compression options. + */ +const deflate_fast = (s, flush) => { + + let hash_head; /* head of the hash chain */ + let bflush; /* set if current block must be flushed */ + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; /* flush the current block */ + } + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + hash_head = 0/*NIL*/; + if (s.lookahead >= MIN_MATCH) { + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + } + + /* Find the longest match, discarding those <= prev_length. + * At this point we have always match_length < MIN_MATCH + */ + if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + s.match_length = longest_match(s, hash_head); + /* longest_match() sets match_start */ + } + if (s.match_length >= MIN_MATCH) { + // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only + + /*** _tr_tally_dist(s, s.strstart - s.match_start, + s.match_length - MIN_MATCH, bflush); ***/ + bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + + s.lookahead -= s.match_length; + + /* Insert new strings in the hash table only if the match length + * is not too large. This saves time but degrades compression. + */ + if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) { + s.match_length--; /* string at strstart already in table */ + do { + s.strstart++; + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + /* strstart never exceeds WSIZE-MAX_MATCH, so there are + * always MIN_MATCH bytes ahead. + */ + } while (--s.match_length !== 0); + s.strstart++; + } else + { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */ + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]); + +//#if MIN_MATCH != 3 +// Call UPDATE_HASH() MIN_MATCH-3 more times +//#endif + /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not + * matter since it will be recomputed at next deflate call. + */ + } + } else { + /* No match, output a literal byte */ + //Tracevv((stderr,"%c", s.window[s.strstart])); + /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ + bflush = _tr_tally(s, 0, s.window[s.strstart]); + + s.lookahead--; + s.strstart++; + } + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1); + if (flush === Z_FINISH$3) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.sym_next) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + return BS_BLOCK_DONE; +}; + +/* =========================================================================== + * Same as above, but achieves better compression. We use a lazy + * evaluation for matches: a match is finally adopted only if there is + * no better match at the next window position. + */ +const deflate_slow = (s, flush) => { + + let hash_head; /* head of hash chain */ + let bflush; /* set if current block must be flushed */ + + let max_insert; + + /* Process the input block. */ + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH$2) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { break; } /* flush the current block */ + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + hash_head = 0/*NIL*/; + if (s.lookahead >= MIN_MATCH) { + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + } + + /* Find the longest match, discarding those <= prev_length. + */ + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH - 1; + + if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match && + s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + s.match_length = longest_match(s, hash_head); + /* longest_match() sets match_start */ + + if (s.match_length <= 5 && + (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) { + + /* If prev_match is also MIN_MATCH, match_start is garbage + * but we will ignore the current match anyway. + */ + s.match_length = MIN_MATCH - 1; + } + } + /* If there was a match at the previous step and the current + * match is not better, output the previous match: + */ + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + /* Do not insert strings in hash table beyond this. */ + + //check_match(s, s.strstart-1, s.prev_match, s.prev_length); + + /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match, + s.prev_length - MIN_MATCH, bflush);***/ + bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); + /* Insert in hash table all strings up to the end of the match. + * strstart-1 and strstart are already inserted. If there is not + * enough lookahead, the last two strings are not inserted in + * the hash table. + */ + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + /*** INSERT_STRING(s, s.strstart, hash_head); ***/ + s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]); + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + /***/ + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH - 1; + s.strstart++; + + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + + } else if (s.match_available) { + /* If there was no match at the previous position, output a + * single literal. If there was a match but the current match + * is longer, truncate the previous match to a single literal. + */ + //Tracevv((stderr,"%c", s->window[s->strstart-1])); + /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/ + bflush = _tr_tally(s, 0, s.window[s.strstart - 1]); + + if (bflush) { + /*** FLUSH_BLOCK_ONLY(s, 0) ***/ + flush_block_only(s, false); + /***/ + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + /* There is no previous match to compare with, wait for + * the next step to decide. + */ + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + //Assert (flush != Z_NO_FLUSH, "no flush?"); + if (s.match_available) { + //Tracevv((stderr,"%c", s->window[s->strstart-1])); + /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/ + bflush = _tr_tally(s, 0, s.window[s.strstart - 1]); + + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush === Z_FINISH$3) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.sym_next) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + + return BS_BLOCK_DONE; +}; + + +/* =========================================================================== + * For Z_RLE, simply look for runs of bytes, generate matches only of distance + * one. Do not maintain a hash table. (It will be regenerated if this run of + * deflate switches away from Z_RLE.) + */ +const deflate_rle = (s, flush) => { + + let bflush; /* set if current block must be flushed */ + let prev; /* byte at distance one to match */ + let scan, strend; /* scan goes up to strend for length of run */ + + const _win = s.window; + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the longest run, plus one for the unrolled loop. + */ + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH$2) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { break; } /* flush the current block */ + } + + /* See how many times the previous byte repeats */ + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + /*jshint noempty:false*/ + } while (prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + prev === _win[++scan] && prev === _win[++scan] && + scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + //Assert(scan <= s->window+(uInt)(s->window_size-1), "wild scan"); + } + + /* Emit match if have run of MIN_MATCH or longer, else emit literal */ + if (s.match_length >= MIN_MATCH) { + //check_match(s, s.strstart, s.strstart - 1, s.match_length); + + /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/ + bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH); + + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + /* No match, output a literal byte */ + //Tracevv((stderr,"%c", s->window[s->strstart])); + /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ + bflush = _tr_tally(s, 0, s.window[s.strstart]); + + s.lookahead--; + s.strstart++; + } + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + s.insert = 0; + if (flush === Z_FINISH$3) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.sym_next) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + return BS_BLOCK_DONE; +}; + +/* =========================================================================== + * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table. + * (It will be regenerated if this run of deflate switches away from Huffman.) + */ +const deflate_huff = (s, flush) => { + + let bflush; /* set if current block must be flushed */ + + for (;;) { + /* Make sure that we have a literal to write. */ + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush === Z_NO_FLUSH$2) { + return BS_NEED_MORE; + } + break; /* flush the current block */ + } + } + + /* Output a literal byte */ + s.match_length = 0; + //Tracevv((stderr,"%c", s->window[s->strstart])); + /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/ + bflush = _tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + } + s.insert = 0; + if (flush === Z_FINISH$3) { + /*** FLUSH_BLOCK(s, 1); ***/ + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + /***/ + return BS_FINISH_DONE; + } + if (s.sym_next) { + /*** FLUSH_BLOCK(s, 0); ***/ + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + /***/ + } + return BS_BLOCK_DONE; +}; + +/* Values for max_lazy_match, good_match and max_chain_length, depending on + * the desired pack level (0..9). The values given below have been tuned to + * exclude worst case performance for pathological files. Better values may be + * found for specific files. + */ +function Config(good_length, max_lazy, nice_length, max_chain, func) { + + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; +} + +const configuration_table = [ + /* good lazy nice chain */ + new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */ + new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */ + new Config(4, 5, 16, 8, deflate_fast), /* 2 */ + new Config(4, 6, 32, 32, deflate_fast), /* 3 */ + + new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */ + new Config(8, 16, 32, 32, deflate_slow), /* 5 */ + new Config(8, 16, 128, 128, deflate_slow), /* 6 */ + new Config(8, 32, 128, 256, deflate_slow), /* 7 */ + new Config(32, 128, 258, 1024, deflate_slow), /* 8 */ + new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */ +]; + + +/* =========================================================================== + * Initialize the "longest match" routines for a new zlib stream + */ +const lm_init = (s) => { + + s.window_size = 2 * s.w_size; + + /*** CLEAR_HASH(s); ***/ + zero(s.head); // Fill with NIL (= 0); + + /* Set the default configuration parameters: + */ + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; +}; + + +function DeflateState() { + this.strm = null; /* pointer back to this zlib stream */ + this.status = 0; /* as the name implies */ + this.pending_buf = null; /* output still pending */ + this.pending_buf_size = 0; /* size of pending_buf */ + this.pending_out = 0; /* next pending byte to output to the stream */ + this.pending = 0; /* nb of bytes in the pending buffer */ + this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */ + this.gzhead = null; /* gzip header information to write */ + this.gzindex = 0; /* where in extra, name, or comment */ + this.method = Z_DEFLATED$2; /* can only be DEFLATED */ + this.last_flush = -1; /* value of flush param for previous deflate call */ + + this.w_size = 0; /* LZ77 window size (32K by default) */ + this.w_bits = 0; /* log2(w_size) (8..16) */ + this.w_mask = 0; /* w_size - 1 */ + + this.window = null; + /* Sliding window. Input bytes are read into the second half of the window, + * and move to the first half later to keep a dictionary of at least wSize + * bytes. With this organization, matches are limited to a distance of + * wSize-MAX_MATCH bytes, but this ensures that IO is always + * performed with a length multiple of the block size. + */ + + this.window_size = 0; + /* Actual size of window: 2*wSize, except when the user input buffer + * is directly used as sliding window. + */ + + this.prev = null; + /* Link to older string with same hash index. To limit the size of this + * array to 64K, this link is maintained only for the last 32K strings. + * An index in this array is thus a window index modulo 32K. + */ + + this.head = null; /* Heads of the hash chains or NIL. */ + + this.ins_h = 0; /* hash index of string to be inserted */ + this.hash_size = 0; /* number of elements in hash table */ + this.hash_bits = 0; /* log2(hash_size) */ + this.hash_mask = 0; /* hash_size-1 */ + + this.hash_shift = 0; + /* Number of bits by which ins_h must be shifted at each input + * step. It must be such that after MIN_MATCH steps, the oldest + * byte no longer takes part in the hash key, that is: + * hash_shift * MIN_MATCH >= hash_bits + */ + + this.block_start = 0; + /* Window position at the beginning of the current output block. Gets + * negative when the window is moved backwards. + */ + + this.match_length = 0; /* length of best match */ + this.prev_match = 0; /* previous match */ + this.match_available = 0; /* set if previous match exists */ + this.strstart = 0; /* start of string to insert */ + this.match_start = 0; /* start of matching string */ + this.lookahead = 0; /* number of valid bytes ahead in window */ + + this.prev_length = 0; + /* Length of the best match at previous step. Matches not greater than this + * are discarded. This is used in the lazy match evaluation. + */ + + this.max_chain_length = 0; + /* To speed up deflation, hash chains are never searched beyond this + * length. A higher limit improves compression ratio but degrades the + * speed. + */ + + this.max_lazy_match = 0; + /* Attempt to find a better match only when the current match is strictly + * smaller than this value. This mechanism is used only for compression + * levels >= 4. + */ + // That's alias to max_lazy_match, don't use directly + //this.max_insert_length = 0; + /* Insert new strings in the hash table only if the match length is not + * greater than this length. This saves time but degrades compression. + * max_insert_length is used only for compression levels <= 3. + */ + + this.level = 0; /* compression level (1..9) */ + this.strategy = 0; /* favor or force Huffman coding*/ + + this.good_match = 0; + /* Use a faster search when the previous match is longer than this */ + + this.nice_match = 0; /* Stop searching when current match exceeds this */ + + /* used by trees.c: */ + + /* Didn't use ct_data typedef below to suppress compiler warning */ + + // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ + // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ + // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ + + // Use flat array of DOUBLE size, with interleaved fata, + // because JS does not support effective + this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2); + this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2); + this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2); + zero(this.dyn_ltree); + zero(this.dyn_dtree); + zero(this.bl_tree); + + this.l_desc = null; /* desc. for literal tree */ + this.d_desc = null; /* desc. for distance tree */ + this.bl_desc = null; /* desc. for bit length tree */ + + //ush bl_count[MAX_BITS+1]; + this.bl_count = new Uint16Array(MAX_BITS + 1); + /* number of codes at each bit length for an optimal tree */ + + //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ + this.heap = new Uint16Array(2 * L_CODES + 1); /* heap used to build the Huffman trees */ + zero(this.heap); + + this.heap_len = 0; /* number of elements in the heap */ + this.heap_max = 0; /* element of largest frequency */ + /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. + * The same heap array is used to build all trees. + */ + + this.depth = new Uint16Array(2 * L_CODES + 1); //uch depth[2*L_CODES+1]; + zero(this.depth); + /* Depth of each subtree used as tie breaker for trees of equal frequency + */ + + this.sym_buf = 0; /* buffer for distances and literals/lengths */ + + this.lit_bufsize = 0; + /* Size of match buffer for literals/lengths. There are 4 reasons for + * limiting lit_bufsize to 64K: + * - frequencies can be kept in 16 bit counters + * - if compression is not successful for the first block, all input + * data is still in the window so we can still emit a stored block even + * when input comes from standard input. (This can also be done for + * all blocks if lit_bufsize is not greater than 32K.) + * - if compression is not successful for a file smaller than 64K, we can + * even emit a stored file instead of a stored block (saving 5 bytes). + * This is applicable only for zip (not gzip or zlib). + * - creating new Huffman trees less frequently may not provide fast + * adaptation to changes in the input data statistics. (Take for + * example a binary file with poorly compressible code followed by + * a highly compressible string table.) Smaller buffer sizes give + * fast adaptation but have of course the overhead of transmitting + * trees more frequently. + * - I can't count above 4 + */ + + this.sym_next = 0; /* running index in sym_buf */ + this.sym_end = 0; /* symbol table full when sym_next reaches this */ + + this.opt_len = 0; /* bit length of current block with optimal trees */ + this.static_len = 0; /* bit length of current block with static trees */ + this.matches = 0; /* number of string matches in current block */ + this.insert = 0; /* bytes at end of window left to insert */ + + + this.bi_buf = 0; + /* Output buffer. bits are inserted starting at the bottom (least + * significant bits). + */ + this.bi_valid = 0; + /* Number of valid bits in bi_buf. All bits above the last valid bit + * are always zero. + */ + + // Used for window memory init. We safely ignore it for JS. That makes + // sense only for pointers and memory check tools. + //this.high_water = 0; + /* High water mark offset in window for initialized bytes -- bytes above + * this are set to zero in order to avoid memory check warnings when + * longest match routines access bytes past the input. This is then + * updated to the new high water mark. + */ +} + + +/* ========================================================================= + * Check for a valid deflate stream state. Return 0 if ok, 1 if not. + */ +const deflateStateCheck = (strm) => { + + if (!strm) { + return 1; + } + const s = strm.state; + if (!s || s.strm !== strm || (s.status !== INIT_STATE && +//#ifdef GZIP + s.status !== GZIP_STATE && +//#endif + s.status !== EXTRA_STATE && + s.status !== NAME_STATE && + s.status !== COMMENT_STATE && + s.status !== HCRC_STATE && + s.status !== BUSY_STATE && + s.status !== FINISH_STATE)) { + return 1; + } + return 0; +}; + + +const deflateResetKeep = (strm) => { + + if (deflateStateCheck(strm)) { + return err(strm, Z_STREAM_ERROR$2); + } + + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + + const s = strm.state; + s.pending = 0; + s.pending_out = 0; + + if (s.wrap < 0) { + s.wrap = -s.wrap; + /* was made negative by deflate(..., Z_FINISH); */ + } + s.status = +//#ifdef GZIP + s.wrap === 2 ? GZIP_STATE : +//#endif + s.wrap ? INIT_STATE : BUSY_STATE; + strm.adler = (s.wrap === 2) ? + 0 // crc32(0, Z_NULL, 0) + : + 1; // adler32(0, Z_NULL, 0) + s.last_flush = -2; + _tr_init(s); + return Z_OK$3; +}; + + +const deflateReset = (strm) => { + + const ret = deflateResetKeep(strm); + if (ret === Z_OK$3) { + lm_init(strm.state); + } + return ret; +}; + + +const deflateSetHeader = (strm, head) => { + + if (deflateStateCheck(strm) || strm.state.wrap !== 2) { + return Z_STREAM_ERROR$2; + } + strm.state.gzhead = head; + return Z_OK$3; +}; + + +const deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => { + + if (!strm) { // === Z_NULL + return Z_STREAM_ERROR$2; + } + let wrap = 1; + + if (level === Z_DEFAULT_COMPRESSION$1) { + level = 6; + } + + if (windowBits < 0) { /* suppress zlib wrapper */ + wrap = 0; + windowBits = -windowBits; + } + + else if (windowBits > 15) { + wrap = 2; /* write gzip wrapper instead */ + windowBits -= 16; + } + + + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED$2 || + windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || + strategy < 0 || strategy > Z_FIXED || (windowBits === 8 && wrap !== 1)) { + return err(strm, Z_STREAM_ERROR$2); + } + + + if (windowBits === 8) { + windowBits = 9; + } + /* until 256-byte window bug fixed */ + + const s = new DeflateState(); + + strm.state = s; + s.strm = strm; + s.status = INIT_STATE; /* to pass state test in deflateReset() */ + + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + + s.window = new Uint8Array(s.w_size * 2); + s.head = new Uint16Array(s.hash_size); + s.prev = new Uint16Array(s.w_size); + + // Don't need mem init magic for JS. + //s.high_water = 0; /* nothing written to s->window yet */ + + s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ + + /* We overlay pending_buf and sym_buf. This works since the average size + * for length/distance pairs over any compressed block is assured to be 31 + * bits or less. + * + * Analysis: The longest fixed codes are a length code of 8 bits plus 5 + * extra bits, for lengths 131 to 257. The longest fixed distance codes are + * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest + * possible fixed-codes length/distance pair is then 31 bits total. + * + * sym_buf starts one-fourth of the way into pending_buf. So there are + * three bytes in sym_buf for every four bytes in pending_buf. Each symbol + * in sym_buf is three bytes -- two for the distance and one for the + * literal/length. As each symbol is consumed, the pointer to the next + * sym_buf value to read moves forward three bytes. From that symbol, up to + * 31 bits are written to pending_buf. The closest the written pending_buf + * bits gets to the next sym_buf symbol to read is just before the last + * code is written. At that time, 31*(n-2) bits have been written, just + * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at + * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1 + * symbols are written.) The closest the writing gets to what is unread is + * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and + * can range from 128 to 32768. + * + * Therefore, at a minimum, there are 142 bits of space between what is + * written and what is read in the overlain buffers, so the symbols cannot + * be overwritten by the compressed data. That space is actually 139 bits, + * due to the three-bit fixed-code block header. + * + * That covers the case where either Z_FIXED is specified, forcing fixed + * codes, or when the use of fixed codes is chosen, because that choice + * results in a smaller compressed block than dynamic codes. That latter + * condition then assures that the above analysis also covers all dynamic + * blocks. A dynamic-code block will only be chosen to be emitted if it has + * fewer bits than a fixed-code block would for the same set of symbols. + * Therefore its average symbol length is assured to be less than 31. So + * the compressed data for a dynamic block also cannot overwrite the + * symbols from which it is being constructed. + */ + + s.pending_buf_size = s.lit_bufsize * 4; + s.pending_buf = new Uint8Array(s.pending_buf_size); + + // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`) + //s->sym_buf = s->pending_buf + s->lit_bufsize; + s.sym_buf = s.lit_bufsize; + + //s->sym_end = (s->lit_bufsize - 1) * 3; + s.sym_end = (s.lit_bufsize - 1) * 3; + /* We avoid equality with lit_bufsize*3 because of wraparound at 64K + * on 16 bit machines and because stored blocks are restricted to + * 64K-1 bytes. + */ + + s.level = level; + s.strategy = strategy; + s.method = method; + + return deflateReset(strm); +}; + +const deflateInit = (strm, level) => { + + return deflateInit2(strm, level, Z_DEFLATED$2, MAX_WBITS$1, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY$1); +}; + + +/* ========================================================================= */ +const deflate$2 = (strm, flush) => { + + if (deflateStateCheck(strm) || flush > Z_BLOCK$1 || flush < 0) { + return strm ? err(strm, Z_STREAM_ERROR$2) : Z_STREAM_ERROR$2; + } + + const s = strm.state; + + if (!strm.output || + (strm.avail_in !== 0 && !strm.input) || + (s.status === FINISH_STATE && flush !== Z_FINISH$3)) { + return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR$1 : Z_STREAM_ERROR$2); + } + + const old_flush = s.last_flush; + s.last_flush = flush; + + /* Flush as much pending output as possible */ + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + /* Since avail_out is 0, deflate will be called again with + * more output space, but possibly with both pending and + * avail_in equal to zero. There won't be anything to do, + * but this is not an error situation so make sure we + * return OK instead of BUF_ERROR at next call of deflate: + */ + s.last_flush = -1; + return Z_OK$3; + } + + /* Make sure there is something to do and avoid duplicate consecutive + * flushes. For repeated and useless calls with Z_FINISH, we keep + * returning Z_STREAM_END instead of Z_BUF_ERROR. + */ + } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && + flush !== Z_FINISH$3) { + return err(strm, Z_BUF_ERROR$1); + } + + /* User must not provide more input after the first FINISH: */ + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR$1); + } + + /* Write the header */ + if (s.status === INIT_STATE && s.wrap === 0) { + s.status = BUSY_STATE; + } + if (s.status === INIT_STATE) { + /* zlib header */ + let header = (Z_DEFLATED$2 + ((s.w_bits - 8) << 4)) << 8; + let level_flags = -1; + + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= (level_flags << 6); + if (s.strstart !== 0) { header |= PRESET_DICT; } + header += 31 - (header % 31); + + putShortMSB(s, header); + + /* Save the adler32 of the preset dictionary: */ + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 0xffff); + } + strm.adler = 1; // adler32(0L, Z_NULL, 0); + s.status = BUSY_STATE; + + /* Compression must start with an empty pending buffer */ + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK$3; + } + } +//#ifdef GZIP + if (s.status === GZIP_STATE) { + /* gzip header */ + strm.adler = 0; //crc32(0L, Z_NULL, 0); + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { // s->gzhead == Z_NULL + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : + (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? + 4 : 0)); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + + /* Compression must start with an empty pending buffer */ + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK$3; + } + } + else { + put_byte(s, (s.gzhead.text ? 1 : 0) + + (s.gzhead.hcrc ? 2 : 0) + + (!s.gzhead.extra ? 0 : 4) + + (!s.gzhead.name ? 0 : 8) + + (!s.gzhead.comment ? 0 : 16) + ); + put_byte(s, s.gzhead.time & 0xff); + put_byte(s, (s.gzhead.time >> 8) & 0xff); + put_byte(s, (s.gzhead.time >> 16) & 0xff); + put_byte(s, (s.gzhead.time >> 24) & 0xff); + put_byte(s, s.level === 9 ? 2 : + (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? + 4 : 0)); + put_byte(s, s.gzhead.os & 0xff); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 0xff); + put_byte(s, (s.gzhead.extra.length >> 8) & 0xff); + } + if (s.gzhead.hcrc) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra/* != Z_NULL*/) { + let beg = s.pending; /* start of bytes to update crc */ + let left = (s.gzhead.extra.length & 0xffff) - s.gzindex; + while (s.pending + left > s.pending_buf_size) { + let copy = s.pending_buf_size - s.pending; + // zmemcpy(s.pending_buf + s.pending, + // s.gzhead.extra + s.gzindex, copy); + s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending); + s.pending = s.pending_buf_size; + //--- HCRC_UPDATE(beg) ---// + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + //---// + s.gzindex += copy; + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK$3; + } + beg = 0; + left -= copy; + } + // JS specific: s.gzhead.extra may be TypedArray or Array for backward compatibility + // TypedArray.slice and TypedArray.from don't exist in IE10-IE11 + let gzhead_extra = new Uint8Array(s.gzhead.extra); + // zmemcpy(s->pending_buf + s->pending, + // s->gzhead->extra + s->gzindex, left); + s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending); + s.pending += left; + //--- HCRC_UPDATE(beg) ---// + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + //---// + s.gzindex = 0; + } + s.status = NAME_STATE; + } + if (s.status === NAME_STATE) { + if (s.gzhead.name/* != Z_NULL*/) { + let beg = s.pending; /* start of bytes to update crc */ + let val; + do { + if (s.pending === s.pending_buf_size) { + //--- HCRC_UPDATE(beg) ---// + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + //---// + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK$3; + } + beg = 0; + } + // JS specific: little magic to add zero terminator to end of string + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + //--- HCRC_UPDATE(beg) ---// + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + //---// + s.gzindex = 0; + } + s.status = COMMENT_STATE; + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment/* != Z_NULL*/) { + let beg = s.pending; /* start of bytes to update crc */ + let val; + do { + if (s.pending === s.pending_buf_size) { + //--- HCRC_UPDATE(beg) ---// + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + //---// + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK$3; + } + beg = 0; + } + // JS specific: little magic to add zero terminator to end of string + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + //--- HCRC_UPDATE(beg) ---// + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc32_1(strm.adler, s.pending_buf, s.pending - beg, beg); + } + //---// + } + s.status = HCRC_STATE; + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK$3; + } + } + put_byte(s, strm.adler & 0xff); + put_byte(s, (strm.adler >> 8) & 0xff); + strm.adler = 0; //crc32(0L, Z_NULL, 0); + } + s.status = BUSY_STATE; + + /* Compression must start with an empty pending buffer */ + flush_pending(strm); + if (s.pending !== 0) { + s.last_flush = -1; + return Z_OK$3; + } + } +//#endif + + /* Start a new block or continue the current one. + */ + if (strm.avail_in !== 0 || s.lookahead !== 0 || + (flush !== Z_NO_FLUSH$2 && s.status !== FINISH_STATE)) { + let bstate = s.level === 0 ? deflate_stored(s, flush) : + s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : + s.strategy === Z_RLE ? deflate_rle(s, flush) : + configuration_table[s.level].func(s, flush); + + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + /* avoid BUF_ERROR next call, see above */ + } + return Z_OK$3; + /* If flush != Z_NO_FLUSH && avail_out == 0, the next call + * of deflate should use the same flush parameter to make sure + * that the flush is complete. So we don't have to output an + * empty block here, this will be done at next call. This also + * ensures that for a very small output buffer, we emit at most + * one empty block. + */ + } + if (bstate === BS_BLOCK_DONE) { + if (flush === Z_PARTIAL_FLUSH) { + _tr_align(s); + } + else if (flush !== Z_BLOCK$1) { /* FULL_FLUSH or SYNC_FLUSH */ + + _tr_stored_block(s, 0, 0, false); + /* For a full flush, this empty block will be recognized + * as a special marker by inflate_sync(). + */ + if (flush === Z_FULL_FLUSH$1) { + /*** CLEAR_HASH(s); ***/ /* forget history */ + zero(s.head); // Fill with NIL (= 0); + + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */ + return Z_OK$3; + } + } + } + + if (flush !== Z_FINISH$3) { return Z_OK$3; } + if (s.wrap <= 0) { return Z_STREAM_END$3; } + + /* Write the trailer */ + if (s.wrap === 2) { + put_byte(s, strm.adler & 0xff); + put_byte(s, (strm.adler >> 8) & 0xff); + put_byte(s, (strm.adler >> 16) & 0xff); + put_byte(s, (strm.adler >> 24) & 0xff); + put_byte(s, strm.total_in & 0xff); + put_byte(s, (strm.total_in >> 8) & 0xff); + put_byte(s, (strm.total_in >> 16) & 0xff); + put_byte(s, (strm.total_in >> 24) & 0xff); + } + else + { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 0xffff); + } + + flush_pending(strm); + /* If avail_out is zero, the application will call deflate again + * to flush the rest. + */ + if (s.wrap > 0) { s.wrap = -s.wrap; } + /* write the trailer only once! */ + return s.pending !== 0 ? Z_OK$3 : Z_STREAM_END$3; +}; + + +const deflateEnd = (strm) => { + + if (deflateStateCheck(strm)) { + return Z_STREAM_ERROR$2; + } + + const status = strm.state.status; + + strm.state = null; + + return status === BUSY_STATE ? err(strm, Z_DATA_ERROR$2) : Z_OK$3; +}; + + +/* ========================================================================= + * Initializes the compression dictionary from the given byte + * sequence without producing any compressed output. + */ +const deflateSetDictionary = (strm, dictionary) => { + + let dictLength = dictionary.length; + + if (deflateStateCheck(strm)) { + return Z_STREAM_ERROR$2; + } + + const s = strm.state; + const wrap = s.wrap; + + if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) { + return Z_STREAM_ERROR$2; + } + + /* when using zlib wrappers, compute Adler-32 for provided dictionary */ + if (wrap === 1) { + /* adler32(strm->adler, dictionary, dictLength); */ + strm.adler = adler32_1(strm.adler, dictionary, dictLength, 0); + } + + s.wrap = 0; /* avoid computing Adler-32 in read_buf */ + + /* if dictionary would fill window, just replace the history */ + if (dictLength >= s.w_size) { + if (wrap === 0) { /* already empty otherwise */ + /*** CLEAR_HASH(s); ***/ + zero(s.head); // Fill with NIL (= 0); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + /* use the tail */ + // dictionary = dictionary.slice(dictLength - s.w_size); + let tmpDict = new Uint8Array(s.w_size); + tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + /* insert dictionary into window and hash */ + const avail = strm.avail_in; + const next = strm.next_in; + const input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH) { + let str = s.strstart; + let n = s.lookahead - (MIN_MATCH - 1); + do { + /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */ + s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]); + + s.prev[str & s.w_mask] = s.head[s.ins_h]; + + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK$3; +}; + + +var deflateInit_1 = deflateInit; +var deflateInit2_1 = deflateInit2; +var deflateReset_1 = deflateReset; +var deflateResetKeep_1 = deflateResetKeep; +var deflateSetHeader_1 = deflateSetHeader; +var deflate_2$1 = deflate$2; +var deflateEnd_1 = deflateEnd; +var deflateSetDictionary_1 = deflateSetDictionary; +var deflateInfo = 'pako deflate (from Nodeca project)'; + +/* Not implemented +module.exports.deflateBound = deflateBound; +module.exports.deflateCopy = deflateCopy; +module.exports.deflateGetDictionary = deflateGetDictionary; +module.exports.deflateParams = deflateParams; +module.exports.deflatePending = deflatePending; +module.exports.deflatePrime = deflatePrime; +module.exports.deflateTune = deflateTune; +*/ + +var deflate_1$2 = { + deflateInit: deflateInit_1, + deflateInit2: deflateInit2_1, + deflateReset: deflateReset_1, + deflateResetKeep: deflateResetKeep_1, + deflateSetHeader: deflateSetHeader_1, + deflate: deflate_2$1, + deflateEnd: deflateEnd_1, + deflateSetDictionary: deflateSetDictionary_1, + deflateInfo: deflateInfo +}; + +const _has = (obj, key) => { + return Object.prototype.hasOwnProperty.call(obj, key); +}; + +var assign = function (obj /*from1, from2, from3, ...*/) { + const sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + const source = sources.shift(); + if (!source) { continue; } + + if (typeof source !== 'object') { + throw new TypeError(source + 'must be non-object'); + } + + for (const p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + + return obj; +}; + + +// Join array of chunks to single array. +var flattenChunks = (chunks) => { + // calculate data length + let len = 0; + + for (let i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + + // join chunks + const result = new Uint8Array(len); + + for (let i = 0, pos = 0, l = chunks.length; i < l; i++) { + let chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + + return result; +}; + +var common = { + assign: assign, + flattenChunks: flattenChunks +}; + +// String encode/decode helpers + + +// Quick check if we can use fast array to bin string conversion +// +// - apply(Array) can fail on Android 2.2 +// - apply(Uint8Array) can fail on iOS 5.1 Safari +// +let STR_APPLY_UIA_OK = true; + +try { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; } + + +// Table with utf8 lengths (calculated by first byte of sequence) +// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, +// because max possible codepoint is 0x10ffff +const _utf8len = new Uint8Array(256); +for (let q = 0; q < 256; q++) { + _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1); +} +_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start + + +// convert string to array (typed, when possible) +var string2buf = (str) => { + if (typeof TextEncoder === 'function' && TextEncoder.prototype.encode) { + return new TextEncoder().encode(str); + } + + let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + + // count binary size + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; + } + + // allocate buffer + buf = new Uint8Array(buf_len); + + // convert + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 0xfc00) === 0xdc00) { + c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); + m_pos++; + } + } + if (c < 0x80) { + /* one byte */ + buf[i++] = c; + } else if (c < 0x800) { + /* two bytes */ + buf[i++] = 0xC0 | (c >>> 6); + buf[i++] = 0x80 | (c & 0x3f); + } else if (c < 0x10000) { + /* three bytes */ + buf[i++] = 0xE0 | (c >>> 12); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } else { + /* four bytes */ + buf[i++] = 0xf0 | (c >>> 18); + buf[i++] = 0x80 | (c >>> 12 & 0x3f); + buf[i++] = 0x80 | (c >>> 6 & 0x3f); + buf[i++] = 0x80 | (c & 0x3f); + } + } + + return buf; +}; + +// Helper +const buf2binstring = (buf, len) => { + // On Chrome, the arguments in a function call that are allowed is `65534`. + // If the length of the buffer is smaller than that, we can use this optimization, + // otherwise we will take a slower path. + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK) { + return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len)); + } + } + + let result = ''; + for (let i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; +}; + + +// convert array to string +var buf2string = (buf, max) => { + const len = max || buf.length; + + if (typeof TextDecoder === 'function' && TextDecoder.prototype.decode) { + return new TextDecoder().decode(buf.subarray(0, max)); + } + + let i, out; + + // Reserve max possible length (2 words per char) + // NB: by unknown reasons, Array is significantly faster for + // String.fromCharCode.apply than Uint16Array. + const utf16buf = new Array(len * 2); + + for (out = 0, i = 0; i < len;) { + let c = buf[i++]; + // quick process ascii + if (c < 0x80) { utf16buf[out++] = c; continue; } + + let c_len = _utf8len[c]; + // skip 5 & 6 byte codes + if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; } + + // apply mask on first byte + c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; + // join the rest + while (c_len > 1 && i < len) { + c = (c << 6) | (buf[i++] & 0x3f); + c_len--; + } + + // terminated by end of string? + if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } + + if (c < 0x10000) { + utf16buf[out++] = c; + } else { + c -= 0x10000; + utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); + utf16buf[out++] = 0xdc00 | (c & 0x3ff); + } + } + + return buf2binstring(utf16buf, out); +}; + + +// Calculate max possible position in utf8 buffer, +// that will not break sequence. If that's not possible +// - (very small limits) return max size as is. +// +// buf[] - utf8 bytes array +// max - length limit (mandatory); +var utf8border = (buf, max) => { + + max = max || buf.length; + if (max > buf.length) { max = buf.length; } + + // go back from last position, until start of sequence found + let pos = max - 1; + while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } + + // Very small and broken sequence, + // return max, because we should return something anyway. + if (pos < 0) { return max; } + + // If we came to start of buffer - that means buffer is too small, + // return max too. + if (pos === 0) { return max; } + + return (pos + _utf8len[buf[pos]] > max) ? pos : max; +}; + +var strings = { + string2buf: string2buf, + buf2string: buf2string, + utf8border: utf8border +}; + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +function ZStream() { + /* next input byte */ + this.input = null; // JS specific, because we have no pointers + this.next_in = 0; + /* number of bytes available at input */ + this.avail_in = 0; + /* total number of input bytes read so far */ + this.total_in = 0; + /* next output byte should be put there */ + this.output = null; // JS specific, because we have no pointers + this.next_out = 0; + /* remaining free space at output */ + this.avail_out = 0; + /* total number of bytes output so far */ + this.total_out = 0; + /* last error message, NULL if no error */ + this.msg = ''/*Z_NULL*/; + /* not visible by applications */ + this.state = null; + /* best guess about the data type: binary or text */ + this.data_type = 2/*Z_UNKNOWN*/; + /* adler32 value of the uncompressed data */ + this.adler = 0; +} + +var zstream = ZStream; + +const toString$1 = Object.prototype.toString; + +/* Public constants ==========================================================*/ +/* ===========================================================================*/ + +const { + Z_NO_FLUSH: Z_NO_FLUSH$1, Z_SYNC_FLUSH, Z_FULL_FLUSH, Z_FINISH: Z_FINISH$2, + Z_OK: Z_OK$2, Z_STREAM_END: Z_STREAM_END$2, + Z_DEFAULT_COMPRESSION, + Z_DEFAULT_STRATEGY, + Z_DEFLATED: Z_DEFLATED$1 +} = constants$2; + +/* ===========================================================================*/ + + +/** + * class Deflate + * + * Generic JS-style wrapper for zlib calls. If you don't need + * streaming behaviour - use more simple functions: [[deflate]], + * [[deflateRaw]] and [[gzip]]. + **/ + +/* internal + * Deflate.chunks -> Array + * + * Chunks of output data, if [[Deflate#onData]] not overridden. + **/ + +/** + * Deflate.result -> Uint8Array + * + * Compressed result, generated by default [[Deflate#onData]] + * and [[Deflate#onEnd]] handlers. Filled after you push last chunk + * (call [[Deflate#push]] with `Z_FINISH` / `true` param). + **/ + +/** + * Deflate.err -> Number + * + * Error code after deflate finished. 0 (Z_OK) on success. + * You will not need it in real life, because deflate errors + * are possible only on wrong options or bad `onData` / `onEnd` + * custom handlers. + **/ + +/** + * Deflate.msg -> String + * + * Error message, if [[Deflate.err]] != 0 + **/ + + +/** + * new Deflate(options) + * - options (Object): zlib deflate options. + * + * Creates new deflator instance with specified params. Throws exception + * on bad params. Supported options: + * + * - `level` + * - `windowBits` + * - `memLevel` + * - `strategy` + * - `dictionary` + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information on these. + * + * Additional options, for internal needs: + * + * - `chunkSize` - size of generated data chunks (16K by default) + * - `raw` (Boolean) - do raw deflate + * - `gzip` (Boolean) - create gzip wrapper + * - `header` (Object) - custom header for gzip + * - `text` (Boolean) - true if compressed data believed to be text + * - `time` (Number) - modification time, unix timestamp + * - `os` (Number) - operation system code + * - `extra` (Array) - array of bytes with extra data (max 65536) + * - `name` (String) - file name (binary string) + * - `comment` (String) - comment (binary string) + * - `hcrc` (Boolean) - true if header crc should be added + * + * ##### Example: + * + * ```javascript + * const pako = require('pako') + * , chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9]) + * , chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]); + * + * const deflate = new pako.Deflate({ level: 3}); + * + * deflate.push(chunk1, false); + * deflate.push(chunk2, true); // true -> last chunk + * + * if (deflate.err) { throw new Error(deflate.err); } + * + * console.log(deflate.result); + * ``` + **/ +function Deflate$1(options) { + this.options = common.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED$1, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY + }, options || {}); + + let opt = this.options; + + if (opt.raw && (opt.windowBits > 0)) { + opt.windowBits = -opt.windowBits; + } + + else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) { + opt.windowBits += 16; + } + + this.err = 0; // error code, if happens (0 = Z_OK) + this.msg = ''; // error message + this.ended = false; // used to avoid multiple onEnd() calls + this.chunks = []; // chunks of compressed data + + this.strm = new zstream(); + this.strm.avail_out = 0; + + let status = deflate_1$2.deflateInit2( + this.strm, + opt.level, + opt.method, + opt.windowBits, + opt.memLevel, + opt.strategy + ); + + if (status !== Z_OK$2) { + throw new Error(messages[status]); + } + + if (opt.header) { + deflate_1$2.deflateSetHeader(this.strm, opt.header); + } + + if (opt.dictionary) { + let dict; + // Convert data if needed + if (typeof opt.dictionary === 'string') { + // If we need to compress text, change encoding to utf8. + dict = strings.string2buf(opt.dictionary); + } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') { + dict = new Uint8Array(opt.dictionary); + } else { + dict = opt.dictionary; + } + + status = deflate_1$2.deflateSetDictionary(this.strm, dict); + + if (status !== Z_OK$2) { + throw new Error(messages[status]); + } + + this._dict_set = true; + } +} + +/** + * Deflate#push(data[, flush_mode]) -> Boolean + * - data (Uint8Array|ArrayBuffer|String): input data. Strings will be + * converted to utf8 byte sequence. + * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes. + * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH. + * + * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with + * new compressed chunks. Returns `true` on success. The last data block must + * have `flush_mode` Z_FINISH (or `true`). That will flush internal pending + * buffers and call [[Deflate#onEnd]]. + * + * On fail call [[Deflate#onEnd]] with error code and return false. + * + * ##### Example + * + * ```javascript + * push(chunk, false); // push one of data chunks + * ... + * push(chunk, true); // push last chunk + * ``` + **/ +Deflate$1.prototype.push = function (data, flush_mode) { + const strm = this.strm; + const chunkSize = this.options.chunkSize; + let status, _flush_mode; + + if (this.ended) { return false; } + + if (flush_mode === ~~flush_mode) _flush_mode = flush_mode; + else _flush_mode = flush_mode === true ? Z_FINISH$2 : Z_NO_FLUSH$1; + + // Convert data if needed + if (typeof data === 'string') { + // If we need to compress text, change encoding to utf8. + strm.input = strings.string2buf(data); + } else if (toString$1.call(data) === '[object ArrayBuffer]') { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + + strm.next_in = 0; + strm.avail_in = strm.input.length; + + for (;;) { + if (strm.avail_out === 0) { + strm.output = new Uint8Array(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + + // Make sure avail_out > 6 to avoid repeating markers + if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) { + this.onData(strm.output.subarray(0, strm.next_out)); + strm.avail_out = 0; + continue; + } + + status = deflate_1$2.deflate(strm, _flush_mode); + + // Ended => flush and finish + if (status === Z_STREAM_END$2) { + if (strm.next_out > 0) { + this.onData(strm.output.subarray(0, strm.next_out)); + } + status = deflate_1$2.deflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return status === Z_OK$2; + } + + // Flush if out buffer full + if (strm.avail_out === 0) { + this.onData(strm.output); + continue; + } + + // Flush if requested and has data + if (_flush_mode > 0 && strm.next_out > 0) { + this.onData(strm.output.subarray(0, strm.next_out)); + strm.avail_out = 0; + continue; + } + + if (strm.avail_in === 0) break; + } + + return true; +}; + + +/** + * Deflate#onData(chunk) -> Void + * - chunk (Uint8Array): output data. + * + * By default, stores data blocks in `chunks[]` property and glue + * those in `onEnd`. Override this handler, if you need another behaviour. + **/ +Deflate$1.prototype.onData = function (chunk) { + this.chunks.push(chunk); +}; + + +/** + * Deflate#onEnd(status) -> Void + * - status (Number): deflate status. 0 (Z_OK) on success, + * other if not. + * + * Called once after you tell deflate that the input stream is + * complete (Z_FINISH). By default - join collected chunks, + * free memory and fill `results` / `err` properties. + **/ +Deflate$1.prototype.onEnd = function (status) { + // On success - join + if (status === Z_OK$2) { + this.result = common.flattenChunks(this.chunks); + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; +}; + + +/** + * deflate(data[, options]) -> Uint8Array + * - data (Uint8Array|ArrayBuffer|String): input data to compress. + * - options (Object): zlib deflate options. + * + * Compress `data` with deflate algorithm and `options`. + * + * Supported options are: + * + * - level + * - windowBits + * - memLevel + * - strategy + * - dictionary + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information on these. + * + * Sugar (options): + * + * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify + * negative windowBits implicitly. + * + * ##### Example: + * + * ```javascript + * const pako = require('pako') + * const data = new Uint8Array([1,2,3,4,5,6,7,8,9]); + * + * console.log(pako.deflate(data)); + * ``` + **/ +function deflate$1(input, options) { + const deflator = new Deflate$1(options); + + deflator.push(input, true); + + // That will never happens, if you don't cheat with options :) + if (deflator.err) { throw deflator.msg || messages[deflator.err]; } + + return deflator.result; +} + + +/** + * deflateRaw(data[, options]) -> Uint8Array + * - data (Uint8Array|ArrayBuffer|String): input data to compress. + * - options (Object): zlib deflate options. + * + * The same as [[deflate]], but creates raw data, without wrapper + * (header and adler32 crc). + **/ +function deflateRaw$1(input, options) { + options = options || {}; + options.raw = true; + return deflate$1(input, options); +} + + +/** + * gzip(data[, options]) -> Uint8Array + * - data (Uint8Array|ArrayBuffer|String): input data to compress. + * - options (Object): zlib deflate options. + * + * The same as [[deflate]], but create gzip wrapper instead of + * deflate one. + **/ +function gzip$1(input, options) { + options = options || {}; + options.gzip = true; + return deflate$1(input, options); +} + + +var Deflate_1$1 = Deflate$1; +var deflate_2 = deflate$1; +var deflateRaw_1$1 = deflateRaw$1; +var gzip_1$1 = gzip$1; + +var deflate_1$1 = { + Deflate: Deflate_1$1, + deflate: deflate_2, + deflateRaw: deflateRaw_1$1, + gzip: gzip_1$1}; + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +// See state defs from inflate.js +const BAD$1 = 16209; /* got a data error -- remain here until reset */ +const TYPE$1 = 16191; /* i: waiting for type bits, including last-flag bit */ + +/* + Decode literal, length, and distance codes and write out the resulting + literal and match bytes until either not enough input or output is + available, an end-of-block is encountered, or a data error is encountered. + When large enough input and output buffers are supplied to inflate(), for + example, a 16K input buffer and a 64K output buffer, more than 95% of the + inflate execution time is spent in this routine. + + Entry assumptions: + + state.mode === LEN + strm.avail_in >= 6 + strm.avail_out >= 258 + start >= strm.avail_out + state.bits < 8 + + On return, state.mode is one of: + + LEN -- ran out of enough output space or enough available input + TYPE -- reached end of block code, inflate() to interpret next block + BAD -- error in block data + + Notes: + + - The maximum input bits used by a length/distance pair is 15 bits for the + length code, 5 bits for the length extra, 15 bits for the distance code, + and 13 bits for the distance extra. This totals 48 bits, or six bytes. + Therefore if strm.avail_in >= 6, then there is enough input to avoid + checking for available input while decoding. + + - The maximum bytes that a single length/distance pair can output is 258 + bytes, which is the maximum length that can be coded. inflate_fast() + requires strm.avail_out >= 258 for each loop to avoid checking for + output space. + */ +var inffast = function inflate_fast(strm, start) { + let _in; /* local strm.input */ + let last; /* have enough input while in < last */ + let _out; /* local strm.output */ + let beg; /* inflate()'s initial strm.output */ + let end; /* while out < end, enough space available */ +//#ifdef INFLATE_STRICT + let dmax; /* maximum distance from zlib header */ +//#endif + let wsize; /* window size or zero if not using window */ + let whave; /* valid bytes in the window */ + let wnext; /* window write index */ + // Use `s_window` instead `window`, avoid conflict with instrumentation tools + let s_window; /* allocated sliding window, if wsize != 0 */ + let hold; /* local strm.hold */ + let bits; /* local strm.bits */ + let lcode; /* local strm.lencode */ + let dcode; /* local strm.distcode */ + let lmask; /* mask for first level of length codes */ + let dmask; /* mask for first level of distance codes */ + let here; /* retrieved table entry */ + let op; /* code bits, operation, extra bits, or */ + /* window position, window bytes to copy */ + let len; /* match length, unused bytes */ + let dist; /* match distance */ + let from; /* where to copy match from */ + let from_source; + + + let input, output; // JS specific, because we have no pointers + + /* copy state to local variables */ + const state = strm.state; + //here = state.here; + _in = strm.next_in; + input = strm.input; + last = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); +//#ifdef INFLATE_STRICT + dmax = state.dmax; +//#endif + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + + + /* decode literals and length/distances until end-of-block or not enough + input data or output space */ + + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + + here = lcode[hold & lmask]; + + dolen: + for (;;) { // Goto emulation + op = here >>> 24/*here.bits*/; + hold >>>= op; + bits -= op; + op = (here >>> 16) & 0xff/*here.op*/; + if (op === 0) { /* literal */ + //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + // "inflate: literal '%c'\n" : + // "inflate: literal 0x%02x\n", here.val)); + output[_out++] = here & 0xffff/*here.val*/; + } + else if (op & 16) { /* length base */ + len = here & 0xffff/*here.val*/; + op &= 15; /* number of extra bits */ + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & ((1 << op) - 1); + hold >>>= op; + bits -= op; + } + //Tracevv((stderr, "inflate: length %u\n", len)); + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + + dodist: + for (;;) { // goto emulation + op = here >>> 24/*here.bits*/; + hold >>>= op; + bits -= op; + op = (here >>> 16) & 0xff/*here.op*/; + + if (op & 16) { /* distance base */ + dist = here & 0xffff/*here.val*/; + op &= 15; /* number of extra bits */ + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & ((1 << op) - 1); +//#ifdef INFLATE_STRICT + if (dist > dmax) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD$1; + break top; + } +//#endif + hold >>>= op; + bits -= op; + //Tracevv((stderr, "inflate: distance %u\n", dist)); + op = _out - beg; /* max distance in output */ + if (dist > op) { /* see if copy from window */ + op = dist - op; /* distance back in window */ + if (op > whave) { + if (state.sane) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD$1; + break top; + } + +// (!) This block is disabled in zlib defaults, +// don't enable it for binary compatibility +//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR +// if (len <= op - whave) { +// do { +// output[_out++] = 0; +// } while (--len); +// continue top; +// } +// len -= op - whave; +// do { +// output[_out++] = 0; +// } while (--op > whave); +// if (op === 0) { +// from = _out - dist; +// do { +// output[_out++] = output[from++]; +// } while (--len); +// continue top; +// } +//#endif + } + from = 0; // window index + from_source = s_window; + if (wnext === 0) { /* very common case */ + from += wsize - op; + if (op < len) { /* some from window */ + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; /* rest from output */ + from_source = output; + } + } + else if (wnext < op) { /* wrap around window */ + from += wsize + wnext - op; + op -= wnext; + if (op < len) { /* some from end of window */ + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { /* some from start of window */ + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; /* rest from output */ + from_source = output; + } + } + } + else { /* contiguous in window */ + from += wnext - op; + if (op < len) { /* some from window */ + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; /* rest from output */ + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } + else { + from = _out - dist; /* copy direct from output */ + do { /* minimum length is three */ + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } + else if ((op & 64) === 0) { /* 2nd level distance code */ + here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; + continue dodist; + } + else { + strm.msg = 'invalid distance code'; + state.mode = BAD$1; + break top; + } + + break; // need to emulate goto via "continue" + } + } + else if ((op & 64) === 0) { /* 2nd level length code */ + here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))]; + continue dolen; + } + else if (op & 32) { /* end-of-block */ + //Tracevv((stderr, "inflate: end of block\n")); + state.mode = TYPE$1; + break top; + } + else { + strm.msg = 'invalid literal/length code'; + state.mode = BAD$1; + break top; + } + + break; // need to emulate goto via "continue" + } + } while (_in < last && _out < end); + + /* return unused bytes (on entry, bits < 8, so in won't go too far back) */ + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + + /* update state and return */ + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last)); + strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end)); + state.hold = hold; + state.bits = bits; + return; +}; + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +const MAXBITS = 15; +const ENOUGH_LENS$1 = 852; +const ENOUGH_DISTS$1 = 592; +//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); + +const CODES$1 = 0; +const LENS$1 = 1; +const DISTS$1 = 2; + +const lbase = new Uint16Array([ /* Length codes 257..285 base */ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 +]); + +const lext = new Uint8Array([ /* Length codes 257..285 extra */ + 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78 +]); + +const dbase = new Uint16Array([ /* Distance codes 0..29 base */ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577, 0, 0 +]); + +const dext = new Uint8Array([ /* Distance codes 0..29 extra */ + 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, + 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, + 28, 28, 29, 29, 64, 64 +]); + +const inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) => +{ + const bits = opts.bits; + //here = opts.here; /* table entry for duplication */ + + let len = 0; /* a code's length in bits */ + let sym = 0; /* index of code symbols */ + let min = 0, max = 0; /* minimum and maximum code lengths */ + let root = 0; /* number of index bits for root table */ + let curr = 0; /* number of index bits for current table */ + let drop = 0; /* code bits to drop for sub-table */ + let left = 0; /* number of prefix codes available */ + let used = 0; /* code entries in table used */ + let huff = 0; /* Huffman code */ + let incr; /* for incrementing code, index */ + let fill; /* index for replicating entries */ + let low; /* low bits for current root entry */ + let mask; /* mask for low root bits */ + let next; /* next available space in table */ + let base = null; /* base value table to use */ +// let shoextra; /* extra bits table to use */ + let match; /* use base and extra for symbol >= match */ + const count = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */ + const offs = new Uint16Array(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */ + let extra = null; + + let here_bits, here_op, here_val; + + /* + Process a set of code lengths to create a canonical Huffman code. The + code lengths are lens[0..codes-1]. Each length corresponds to the + symbols 0..codes-1. The Huffman code is generated by first sorting the + symbols by length from short to long, and retaining the symbol order + for codes with equal lengths. Then the code starts with all zero bits + for the first code of the shortest length, and the codes are integer + increments for the same length, and zeros are appended as the length + increases. For the deflate format, these bits are stored backwards + from their more natural integer increment ordering, and so when the + decoding tables are built in the large loop below, the integer codes + are incremented backwards. + + This routine assumes, but does not check, that all of the entries in + lens[] are in the range 0..MAXBITS. The caller must assure this. + 1..MAXBITS is interpreted as that code length. zero means that that + symbol does not occur in this code. + + The codes are sorted by computing a count of codes for each length, + creating from that a table of starting indices for each length in the + sorted table, and then entering the symbols in order in the sorted + table. The sorted table is work[], with that space being provided by + the caller. + + The length counts are used for other purposes as well, i.e. finding + the minimum and maximum length codes, determining if there are any + codes at all, checking for a valid set of lengths, and looking ahead + at length counts to determine sub-table sizes when building the + decoding tables. + */ + + /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */ + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + + /* bound code lengths, force root to be within code lengths */ + root = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { break; } + } + if (root > max) { + root = max; + } + if (max === 0) { /* no symbols to code at all */ + //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */ + //table.bits[opts.table_index] = 1; //here.bits = (var char)1; + //table.val[opts.table_index++] = 0; //here.val = (var short)0; + table[table_index++] = (1 << 24) | (64 << 16) | 0; + + + //table.op[opts.table_index] = 64; + //table.bits[opts.table_index] = 1; + //table.val[opts.table_index++] = 0; + table[table_index++] = (1 << 24) | (64 << 16) | 0; + + opts.bits = 1; + return 0; /* no symbols, but wait for decoding to report error */ + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { break; } + } + if (root < min) { + root = min; + } + + /* check for an over-subscribed or incomplete set of lengths */ + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } /* over-subscribed */ + } + if (left > 0 && (type === CODES$1 || max !== 1)) { + return -1; /* incomplete set */ + } + + /* generate offsets into symbol table for each length for sorting */ + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + + /* sort symbols by length, by symbol order within each length */ + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + + /* + Create and fill in decoding tables. In this loop, the table being + filled is at next and has curr index bits. The code being used is huff + with length len. That code is converted to an index by dropping drop + bits off of the bottom. For codes where len is less than drop + curr, + those top drop + curr - len bits are incremented through all values to + fill the table with replicated entries. + + root is the number of index bits for the root table. When len exceeds + root, sub-tables are created pointed to by the root entry with an index + of the low root bits of huff. This is saved in low to check for when a + new sub-table should be started. drop is zero when the root table is + being filled, and drop is root when sub-tables are being filled. + + When a new sub-table is needed, it is necessary to look ahead in the + code lengths to determine what size sub-table is needed. The length + counts are used for this, and so count[] is decremented as codes are + entered in the tables. + + used keeps track of how many table entries have been allocated from the + provided *table space. It is checked for LENS and DIST tables against + the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in + the initial root table size constants. See the comments in inftrees.h + for more information. + + sym increments through all symbols, and the loop terminates when + all codes of length max, i.e. all codes, have been processed. This + routine permits incomplete codes, so another loop after this one fills + in the rest of the decoding tables with invalid code markers. + */ + + /* set up for code type */ + // poor man optimization - use if-else instead of switch, + // to avoid deopts in old v8 + if (type === CODES$1) { + base = extra = work; /* dummy value--not used */ + match = 20; + + } else if (type === LENS$1) { + base = lbase; + extra = lext; + match = 257; + + } else { /* DISTS */ + base = dbase; + extra = dext; + match = 0; + } + + /* initialize opts for loop */ + huff = 0; /* starting code */ + sym = 0; /* starting code symbol */ + len = min; /* starting code length */ + next = table_index; /* current table to fill in */ + curr = root; /* current table index bits */ + drop = 0; /* current bits to drop from code for index */ + low = -1; /* trigger new sub-table when len > root */ + used = 1 << root; /* use root table entries */ + mask = used - 1; /* mask for comparing low */ + + /* check available table space */ + if ((type === LENS$1 && used > ENOUGH_LENS$1) || + (type === DISTS$1 && used > ENOUGH_DISTS$1)) { + return 1; + } + + /* process all codes and make table entries */ + for (;;) { + /* create table entry */ + here_bits = len - drop; + if (work[sym] + 1 < match) { + here_op = 0; + here_val = work[sym]; + } + else if (work[sym] >= match) { + here_op = extra[work[sym] - match]; + here_val = base[work[sym] - match]; + } + else { + here_op = 32 + 64; /* end of block */ + here_val = 0; + } + + /* replicate for those indices with low len bits equal to huff */ + incr = 1 << (len - drop); + fill = 1 << curr; + min = fill; /* save offset to next table */ + do { + fill -= incr; + table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0; + } while (fill !== 0); + + /* backwards increment the len-bit code huff */ + incr = 1 << (len - 1); + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + + /* go to next symbol, update count, len */ + sym++; + if (--count[len] === 0) { + if (len === max) { break; } + len = lens[lens_index + work[sym]]; + } + + /* create new sub-table if needed */ + if (len > root && (huff & mask) !== low) { + /* if first time, transition to sub-tables */ + if (drop === 0) { + drop = root; + } + + /* increment past last table */ + next += min; /* here min is 1 << curr */ + + /* determine length of next table */ + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { break; } + curr++; + left <<= 1; + } + + /* check for enough space */ + used += 1 << curr; + if ((type === LENS$1 && used > ENOUGH_LENS$1) || + (type === DISTS$1 && used > ENOUGH_DISTS$1)) { + return 1; + } + + /* point entry in root table to sub-table */ + low = huff & mask; + /*table.op[low] = curr; + table.bits[low] = root; + table.val[low] = next - opts.table_index;*/ + table[low] = (root << 24) | (curr << 16) | (next - table_index) |0; + } + } + + /* fill in remaining table entry if code is incomplete (guaranteed to have + at most one remaining entry, since if the code is incomplete, the + maximum code length that was allowed to get this far is one bit) */ + if (huff !== 0) { + //table.op[next + huff] = 64; /* invalid code marker */ + //table.bits[next + huff] = len - drop; + //table.val[next + huff] = 0; + table[next + huff] = ((len - drop) << 24) | (64 << 16) |0; + } + + /* set return parameters */ + //opts.table_index += used; + opts.bits = root; + return 0; +}; + + +var inftrees = inflate_table; + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + + + + + + +const CODES = 0; +const LENS = 1; +const DISTS = 2; + +/* Public constants ==========================================================*/ +/* ===========================================================================*/ + +const { + Z_FINISH: Z_FINISH$1, Z_BLOCK, Z_TREES, + Z_OK: Z_OK$1, Z_STREAM_END: Z_STREAM_END$1, Z_NEED_DICT: Z_NEED_DICT$1, Z_STREAM_ERROR: Z_STREAM_ERROR$1, Z_DATA_ERROR: Z_DATA_ERROR$1, Z_MEM_ERROR: Z_MEM_ERROR$1, Z_BUF_ERROR, + Z_DEFLATED +} = constants$2; + + +/* STATES ====================================================================*/ +/* ===========================================================================*/ + + +const HEAD = 16180; /* i: waiting for magic header */ +const FLAGS = 16181; /* i: waiting for method and flags (gzip) */ +const TIME = 16182; /* i: waiting for modification time (gzip) */ +const OS = 16183; /* i: waiting for extra flags and operating system (gzip) */ +const EXLEN = 16184; /* i: waiting for extra length (gzip) */ +const EXTRA = 16185; /* i: waiting for extra bytes (gzip) */ +const NAME = 16186; /* i: waiting for end of file name (gzip) */ +const COMMENT = 16187; /* i: waiting for end of comment (gzip) */ +const HCRC = 16188; /* i: waiting for header crc (gzip) */ +const DICTID = 16189; /* i: waiting for dictionary check value */ +const DICT = 16190; /* waiting for inflateSetDictionary() call */ +const TYPE = 16191; /* i: waiting for type bits, including last-flag bit */ +const TYPEDO = 16192; /* i: same, but skip check to exit inflate on new block */ +const STORED = 16193; /* i: waiting for stored size (length and complement) */ +const COPY_ = 16194; /* i/o: same as COPY below, but only first time in */ +const COPY = 16195; /* i/o: waiting for input or output to copy stored block */ +const TABLE = 16196; /* i: waiting for dynamic block table lengths */ +const LENLENS = 16197; /* i: waiting for code length code lengths */ +const CODELENS = 16198; /* i: waiting for length/lit and distance code lengths */ +const LEN_ = 16199; /* i: same as LEN below, but only first time in */ +const LEN = 16200; /* i: waiting for length/lit/eob code */ +const LENEXT = 16201; /* i: waiting for length extra bits */ +const DIST = 16202; /* i: waiting for distance code */ +const DISTEXT = 16203; /* i: waiting for distance extra bits */ +const MATCH = 16204; /* o: waiting for output space to copy string */ +const LIT = 16205; /* o: waiting for output space to write literal */ +const CHECK = 16206; /* i: waiting for 32-bit check value */ +const LENGTH = 16207; /* i: waiting for 32-bit length (gzip) */ +const DONE = 16208; /* finished check, done -- remain here until reset */ +const BAD = 16209; /* got a data error -- remain here until reset */ +const MEM = 16210; /* got an inflate() memory error -- remain here until reset */ +const SYNC = 16211; /* looking for synchronization bytes to restart inflate() */ + +/* ===========================================================================*/ + + + +const ENOUGH_LENS = 852; +const ENOUGH_DISTS = 592; +//const ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS); + +const MAX_WBITS = 15; +/* 32K LZ77 window */ +const DEF_WBITS = MAX_WBITS; + + +const zswap32 = (q) => { + + return (((q >>> 24) & 0xff) + + ((q >>> 8) & 0xff00) + + ((q & 0xff00) << 8) + + ((q & 0xff) << 24)); +}; + + +function InflateState() { + this.strm = null; /* pointer back to this zlib stream */ + this.mode = 0; /* current inflate mode */ + this.last = false; /* true if processing last block */ + this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip, + bit 2 true to validate check value */ + this.havedict = false; /* true if dictionary provided */ + this.flags = 0; /* gzip header method and flags (0 if zlib), or + -1 if raw or no header yet */ + this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */ + this.check = 0; /* protected copy of check value */ + this.total = 0; /* protected copy of output count */ + // TODO: may be {} + this.head = null; /* where to save gzip header information */ + + /* sliding window */ + this.wbits = 0; /* log base 2 of requested window size */ + this.wsize = 0; /* window size or zero if not using window */ + this.whave = 0; /* valid bytes in the window */ + this.wnext = 0; /* window write index */ + this.window = null; /* allocated sliding window, if needed */ + + /* bit accumulator */ + this.hold = 0; /* input bit accumulator */ + this.bits = 0; /* number of bits in "in" */ + + /* for string and stored block copying */ + this.length = 0; /* literal or length of data to copy */ + this.offset = 0; /* distance back to copy string from */ + + /* for table and code decoding */ + this.extra = 0; /* extra bits needed */ + + /* fixed and dynamic code tables */ + this.lencode = null; /* starting table for length/literal codes */ + this.distcode = null; /* starting table for distance codes */ + this.lenbits = 0; /* index bits for lencode */ + this.distbits = 0; /* index bits for distcode */ + + /* dynamic table building */ + this.ncode = 0; /* number of code length code lengths */ + this.nlen = 0; /* number of length code lengths */ + this.ndist = 0; /* number of distance code lengths */ + this.have = 0; /* number of code lengths in lens[] */ + this.next = null; /* next available space in codes[] */ + + this.lens = new Uint16Array(320); /* temporary storage for code lengths */ + this.work = new Uint16Array(288); /* work area for code table building */ + + /* + because we don't have pointers in js, we use lencode and distcode directly + as buffers so we don't need codes + */ + //this.codes = new Int32Array(ENOUGH); /* space for code tables */ + this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */ + this.distdyn = null; /* dynamic table for distance codes (JS specific) */ + this.sane = 0; /* if false, allow invalid distance too far */ + this.back = 0; /* bits back of last unprocessed length/lit */ + this.was = 0; /* initial length of match */ +} + + +const inflateStateCheck = (strm) => { + + if (!strm) { + return 1; + } + const state = strm.state; + if (!state || state.strm !== strm || + state.mode < HEAD || state.mode > SYNC) { + return 1; + } + return 0; +}; + + +const inflateResetKeep = (strm) => { + + if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; } + const state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ''; /*Z_NULL*/ + if (state.wrap) { /* to support ill-conceived Java test suite */ + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.flags = -1; + state.dmax = 32768; + state.head = null/*Z_NULL*/; + state.hold = 0; + state.bits = 0; + //state.lencode = state.distcode = state.next = state.codes; + state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS); + state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS); + + state.sane = 1; + state.back = -1; + //Tracev((stderr, "inflate: reset\n")); + return Z_OK$1; +}; + + +const inflateReset = (strm) => { + + if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; } + const state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + +}; + + +const inflateReset2 = (strm, windowBits) => { + let wrap; + + /* get the state */ + if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; } + const state = strm.state; + + /* extract wrap request from windowBits parameter */ + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } + else { + wrap = (windowBits >> 4) + 5; + if (windowBits < 48) { + windowBits &= 15; + } + } + + /* set number of window bits, free window if different */ + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR$1; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + + /* update state and reset the rest of it */ + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); +}; + + +const inflateInit2 = (strm, windowBits) => { + + if (!strm) { return Z_STREAM_ERROR$1; } + //strm.msg = Z_NULL; /* in case we return an error */ + + const state = new InflateState(); + + //if (state === Z_NULL) return Z_MEM_ERROR; + //Tracev((stderr, "inflate: allocated\n")); + strm.state = state; + state.strm = strm; + state.window = null/*Z_NULL*/; + state.mode = HEAD; /* to pass state test in inflateReset2() */ + const ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK$1) { + strm.state = null/*Z_NULL*/; + } + return ret; +}; + + +const inflateInit = (strm) => { + + return inflateInit2(strm, DEF_WBITS); +}; + + +/* + Return state with length and distance decoding tables and index sizes set to + fixed code decoding. Normally this returns fixed tables from inffixed.h. + If BUILDFIXED is defined, then instead this routine builds the tables the + first time it's called, and returns those tables the first time and + thereafter. This reduces the size of the code by about 2K bytes, in + exchange for a little execution time. However, BUILDFIXED should not be + used for threaded applications, since the rewriting of the tables and virgin + may not be thread-safe. + */ +let virgin = true; + +let lenfix, distfix; // We have no pointers in JS, so keep tables separate + + +const fixedtables = (state) => { + + /* build fixed huffman tables if first call (may not be thread safe) */ + if (virgin) { + lenfix = new Int32Array(512); + distfix = new Int32Array(32); + + /* literal/length table */ + let sym = 0; + while (sym < 144) { state.lens[sym++] = 8; } + while (sym < 256) { state.lens[sym++] = 9; } + while (sym < 280) { state.lens[sym++] = 7; } + while (sym < 288) { state.lens[sym++] = 8; } + + inftrees(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + + /* distance table */ + sym = 0; + while (sym < 32) { state.lens[sym++] = 5; } + + inftrees(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + + /* do this just once */ + virgin = false; + } + + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; +}; + + +/* + Update the window with the last wsize (normally 32K) bytes written before + returning. If window does not exist yet, create it. This is only called + when a window is already in use, or when output has been written during this + inflate call, but the end of the deflate stream has not been reached yet. + It is also called to create a window for dictionary data when a dictionary + is loaded. + + Providing output buffers larger than 32K to inflate() should provide a speed + advantage, since only the last 32K of output is copied to the sliding window + upon return from inflate(), and since all distances after the first 32K of + output will fall in the output data, making match copies simpler and faster. + The advantage may be dependent on the size of the processor's data caches. + */ +const updatewindow = (strm, src, end, copy) => { + + let dist; + const state = strm.state; + + /* if it hasn't been done already, allocate space for the window */ + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + + state.window = new Uint8Array(state.wsize); + } + + /* copy state->wsize or less output bytes into the circular window */ + if (copy >= state.wsize) { + state.window.set(src.subarray(end - state.wsize, end), 0); + state.wnext = 0; + state.whave = state.wsize; + } + else { + dist = state.wsize - state.wnext; + if (dist > copy) { + dist = copy; + } + //zmemcpy(state->window + state->wnext, end - copy, dist); + state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext); + copy -= dist; + if (copy) { + //zmemcpy(state->window, end - copy, copy); + state.window.set(src.subarray(end - copy, end), 0); + state.wnext = copy; + state.whave = state.wsize; + } + else { + state.wnext += dist; + if (state.wnext === state.wsize) { state.wnext = 0; } + if (state.whave < state.wsize) { state.whave += dist; } + } + } + return 0; +}; + + +const inflate$2 = (strm, flush) => { + + let state; + let input, output; // input/output buffers + let next; /* next input INDEX */ + let put; /* next output INDEX */ + let have, left; /* available input and output */ + let hold; /* bit buffer */ + let bits; /* bits in bit buffer */ + let _in, _out; /* save starting available input and output */ + let copy; /* number of stored or match bytes to copy */ + let from; /* where to copy match bytes from */ + let from_source; + let here = 0; /* current decoding table entry */ + let here_bits, here_op, here_val; // paked "here" denormalized (JS specific) + //let last; /* parent table entry */ + let last_bits, last_op, last_val; // paked "last" denormalized (JS specific) + let len; /* length to copy for repeats, bits to drop */ + let ret; /* return code */ + const hbuf = new Uint8Array(4); /* buffer for gzip header crc calculation */ + let opts; + + let n; // temporary variable for NEED_BITS + + const order = /* permutation of code lengths */ + new Uint8Array([ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ]); + + + if (inflateStateCheck(strm) || !strm.output || + (!strm.input && strm.avail_in !== 0)) { + return Z_STREAM_ERROR$1; + } + + state = strm.state; + if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */ + + + //--- LOAD() --- + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + //--- + + _in = have; + _out = left; + ret = Z_OK$1; + + inf_leave: // goto emulation + for (;;) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + //=== NEEDBITS(16); + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */ + if (state.wbits === 0) { + state.wbits = 15; + } + state.check = 0/*crc32(0L, Z_NULL, 0)*/; + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32_1(state.check, hbuf, 2, 0); + //===// + + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = FLAGS; + break; + } + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || /* check if zlib header allowed */ + (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) { + strm.msg = 'incorrect header check'; + state.mode = BAD; + break; + } + if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) { + strm.msg = 'unknown compression method'; + state.mode = BAD; + break; + } + //--- DROPBITS(4) ---// + hold >>>= 4; + bits -= 4; + //---// + len = (hold & 0x0f)/*BITS(4)*/ + 8; + if (state.wbits === 0) { + state.wbits = len; + } + if (len > 15 || len > state.wbits) { + strm.msg = 'invalid window size'; + state.mode = BAD; + break; + } + + // !!! pako patch. Force use `options.windowBits` if passed. + // Required to always use max window size by default. + state.dmax = 1 << state.wbits; + //state.dmax = 1 << len; + + state.flags = 0; /* indicate zlib header */ + //Tracev((stderr, "inflate: zlib header ok\n")); + strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; + state.mode = hold & 0x200 ? DICTID : TYPE; + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + break; + case FLAGS: + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.flags = hold; + if ((state.flags & 0xff) !== Z_DEFLATED) { + strm.msg = 'unknown compression method'; + state.mode = BAD; + break; + } + if (state.flags & 0xe000) { + strm.msg = 'unknown header flags set'; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = ((hold >> 8) & 1); + } + if ((state.flags & 0x0200) && (state.wrap & 4)) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32_1(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = TIME; + /* falls through */ + case TIME: + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (state.head) { + state.head.time = hold; + } + if ((state.flags & 0x0200) && (state.wrap & 4)) { + //=== CRC4(state.check, hold) + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + hbuf[2] = (hold >>> 16) & 0xff; + hbuf[3] = (hold >>> 24) & 0xff; + state.check = crc32_1(state.check, hbuf, 4, 0); + //=== + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = OS; + /* falls through */ + case OS: + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if (state.head) { + state.head.xflags = (hold & 0xff); + state.head.os = (hold >> 8); + } + if ((state.flags & 0x0200) && (state.wrap & 4)) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32_1(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = EXLEN; + /* falls through */ + case EXLEN: + if (state.flags & 0x0400) { + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if ((state.flags & 0x0200) && (state.wrap & 4)) { + //=== CRC2(state.check, hold); + hbuf[0] = hold & 0xff; + hbuf[1] = (hold >>> 8) & 0xff; + state.check = crc32_1(state.check, hbuf, 2, 0); + //===// + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + } + else if (state.head) { + state.head.extra = null/*Z_NULL*/; + } + state.mode = EXTRA; + /* falls through */ + case EXTRA: + if (state.flags & 0x0400) { + copy = state.length; + if (copy > have) { copy = have; } + if (copy) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + // Use untyped array for more convenient processing later + state.head.extra = new Uint8Array(state.head.extra_len); + } + state.head.extra.set( + input.subarray( + next, + // extra field is limited to 65536 bytes + // - no need for additional size check + next + copy + ), + /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ + len + ); + //zmemcpy(state.head.extra + len, next, + // len + copy > state.head.extra_max ? + // state.head.extra_max - len : copy); + } + if ((state.flags & 0x0200) && (state.wrap & 4)) { + state.check = crc32_1(state.check, input, copy, next); + } + have -= copy; + next += copy; + state.length -= copy; + } + if (state.length) { break inf_leave; } + } + state.length = 0; + state.mode = NAME; + /* falls through */ + case NAME: + if (state.flags & 0x0800) { + if (have === 0) { break inf_leave; } + copy = 0; + do { + // TODO: 2 or 1 bytes? + len = input[next + copy++]; + /* use constant limit because in js we should not preallocate memory */ + if (state.head && len && + (state.length < 65536 /*state.head.name_max*/)) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy < have); + + if ((state.flags & 0x0200) && (state.wrap & 4)) { + state.check = crc32_1(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { break inf_leave; } + } + else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + /* falls through */ + case COMMENT: + if (state.flags & 0x1000) { + if (have === 0) { break inf_leave; } + copy = 0; + do { + len = input[next + copy++]; + /* use constant limit because in js we should not preallocate memory */ + if (state.head && len && + (state.length < 65536 /*state.head.comm_max*/)) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy < have); + if ((state.flags & 0x0200) && (state.wrap & 4)) { + state.check = crc32_1(state.check, input, copy, next); + } + have -= copy; + next += copy; + if (len) { break inf_leave; } + } + else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + /* falls through */ + case HCRC: + if (state.flags & 0x0200) { + //=== NEEDBITS(16); */ + while (bits < 16) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if ((state.wrap & 4) && hold !== (state.check & 0xffff)) { + strm.msg = 'header crc mismatch'; + state.mode = BAD; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + } + if (state.head) { + state.head.hcrc = ((state.flags >> 9) & 1); + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE; + break; + case DICTID: + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + strm.adler = state.check = zswap32(hold); + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = DICT; + /* falls through */ + case DICT: + if (state.havedict === 0) { + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + return Z_NEED_DICT$1; + } + strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/; + state.mode = TYPE; + /* falls through */ + case TYPE: + if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; } + /* falls through */ + case TYPEDO: + if (state.last) { + //--- BYTEBITS() ---// + hold >>>= bits & 7; + bits -= bits & 7; + //---// + state.mode = CHECK; + break; + } + //=== NEEDBITS(3); */ + while (bits < 3) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.last = (hold & 0x01)/*BITS(1)*/; + //--- DROPBITS(1) ---// + hold >>>= 1; + bits -= 1; + //---// + + switch ((hold & 0x03)/*BITS(2)*/) { + case 0: /* stored block */ + //Tracev((stderr, "inflate: stored block%s\n", + // state.last ? " (last)" : "")); + state.mode = STORED; + break; + case 1: /* fixed block */ + fixedtables(state); + //Tracev((stderr, "inflate: fixed codes block%s\n", + // state.last ? " (last)" : "")); + state.mode = LEN_; /* decode codes */ + if (flush === Z_TREES) { + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + break inf_leave; + } + break; + case 2: /* dynamic block */ + //Tracev((stderr, "inflate: dynamic codes block%s\n", + // state.last ? " (last)" : "")); + state.mode = TABLE; + break; + case 3: + strm.msg = 'invalid block type'; + state.mode = BAD; + } + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + break; + case STORED: + //--- BYTEBITS() ---// /* go to byte boundary */ + hold >>>= bits & 7; + bits -= bits & 7; + //---// + //=== NEEDBITS(32); */ + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) { + strm.msg = 'invalid stored block lengths'; + state.mode = BAD; + break; + } + state.length = hold & 0xffff; + //Tracev((stderr, "inflate: stored length %u\n", + // state.length)); + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + state.mode = COPY_; + if (flush === Z_TREES) { break inf_leave; } + /* falls through */ + case COPY_: + state.mode = COPY; + /* falls through */ + case COPY: + copy = state.length; + if (copy) { + if (copy > have) { copy = have; } + if (copy > left) { copy = left; } + if (copy === 0) { break inf_leave; } + //--- zmemcpy(put, next, copy); --- + output.set(input.subarray(next, next + copy), put); + //---// + have -= copy; + next += copy; + left -= copy; + put += copy; + state.length -= copy; + break; + } + //Tracev((stderr, "inflate: stored end\n")); + state.mode = TYPE; + break; + case TABLE: + //=== NEEDBITS(14); */ + while (bits < 14) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257; + //--- DROPBITS(5) ---// + hold >>>= 5; + bits -= 5; + //---// + state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1; + //--- DROPBITS(5) ---// + hold >>>= 5; + bits -= 5; + //---// + state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4; + //--- DROPBITS(4) ---// + hold >>>= 4; + bits -= 4; + //---// +//#ifndef PKZIP_BUG_WORKAROUND + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = 'too many length or distance symbols'; + state.mode = BAD; + break; + } +//#endif + //Tracev((stderr, "inflate: table sizes ok\n")); + state.have = 0; + state.mode = LENLENS; + /* falls through */ + case LENLENS: + while (state.have < state.ncode) { + //=== NEEDBITS(3); + while (bits < 3) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.lens[order[state.have++]] = (hold & 0x07);//BITS(3); + //--- DROPBITS(3) ---// + hold >>>= 3; + bits -= 3; + //---// + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + // We have separate tables & no pointers. 2 commented lines below not needed. + //state.next = state.codes; + //state.lencode = state.next; + // Switch to use dynamic table + state.lencode = state.lendyn; + state.lenbits = 7; + + opts = { bits: state.lenbits }; + ret = inftrees(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + + if (ret) { + strm.msg = 'invalid code lengths set'; + state.mode = BAD; + break; + } + //Tracev((stderr, "inflate: code lengths ok\n")); + state.have = 0; + state.mode = CODELENS; + /* falls through */ + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (;;) { + here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/ + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if (here_val < 16) { + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.lens[state.have++] = here_val; + } + else { + if (here_val === 16) { + //=== NEEDBITS(here.bits + 2); + n = here_bits + 2; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + if (state.have === 0) { + strm.msg = 'invalid bit length repeat'; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy = 3 + (hold & 0x03);//BITS(2); + //--- DROPBITS(2) ---// + hold >>>= 2; + bits -= 2; + //---// + } + else if (here_val === 17) { + //=== NEEDBITS(here.bits + 3); + n = here_bits + 3; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + len = 0; + copy = 3 + (hold & 0x07);//BITS(3); + //--- DROPBITS(3) ---// + hold >>>= 3; + bits -= 3; + //---// + } + else { + //=== NEEDBITS(here.bits + 7); + n = here_bits + 7; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + len = 0; + copy = 11 + (hold & 0x7f);//BITS(7); + //--- DROPBITS(7) ---// + hold >>>= 7; + bits -= 7; + //---// + } + if (state.have + copy > state.nlen + state.ndist) { + strm.msg = 'invalid bit length repeat'; + state.mode = BAD; + break; + } + while (copy--) { + state.lens[state.have++] = len; + } + } + } + + /* handle error breaks in while */ + if (state.mode === BAD) { break; } + + /* check for end-of-block code (better have one) */ + if (state.lens[256] === 0) { + strm.msg = 'invalid code -- missing end-of-block'; + state.mode = BAD; + break; + } + + /* build code tables -- note: do not change the lenbits or distbits + values here (9 and 6) without reading the comments in inftrees.h + concerning the ENOUGH constants, which depend on those values */ + state.lenbits = 9; + + opts = { bits: state.lenbits }; + ret = inftrees(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + // We have separate tables & no pointers. 2 commented lines below not needed. + // state.next_index = opts.table_index; + state.lenbits = opts.bits; + // state.lencode = state.next; + + if (ret) { + strm.msg = 'invalid literal/lengths set'; + state.mode = BAD; + break; + } + + state.distbits = 6; + //state.distcode.copy(state.codes); + // Switch to use dynamic table + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inftrees(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + // We have separate tables & no pointers. 2 commented lines below not needed. + // state.next_index = opts.table_index; + state.distbits = opts.bits; + // state.distcode = state.next; + + if (ret) { + strm.msg = 'invalid distances set'; + state.mode = BAD; + break; + } + //Tracev((stderr, 'inflate: codes ok\n')); + state.mode = LEN_; + if (flush === Z_TREES) { break inf_leave; } + /* falls through */ + case LEN_: + state.mode = LEN; + /* falls through */ + case LEN: + if (have >= 6 && left >= 258) { + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + inffast(strm, _out); + //--- LOAD() --- + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + //--- + + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (;;) { + here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/ + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if (here_bits <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if (here_op && (here_op & 0xf0) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (;;) { + here = state.lencode[last_val + + ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((last_bits + here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + //--- DROPBITS(last.bits) ---// + hold >>>= last_bits; + bits -= last_bits; + //---// + state.back += last_bits; + } + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + // "inflate: literal '%c'\n" : + // "inflate: literal 0x%02x\n", here.val)); + state.mode = LIT; + break; + } + if (here_op & 32) { + //Tracevv((stderr, "inflate: end of block\n")); + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = 'invalid literal/length code'; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + /* falls through */ + case LENEXT: + if (state.extra) { + //=== NEEDBITS(state.extra); + n = state.extra; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; + //--- DROPBITS(state.extra) ---// + hold >>>= state.extra; + bits -= state.extra; + //---// + state.back += state.extra; + } + //Tracevv((stderr, "inflate: length %u\n", state.length)); + state.was = state.length; + state.mode = DIST; + /* falls through */ + case DIST: + for (;;) { + here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/ + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + if ((here_op & 0xf0) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (;;) { + here = state.distcode[last_val + + ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)]; + here_bits = here >>> 24; + here_op = (here >>> 16) & 0xff; + here_val = here & 0xffff; + + if ((last_bits + here_bits) <= bits) { break; } + //--- PULLBYTE() ---// + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + //---// + } + //--- DROPBITS(last.bits) ---// + hold >>>= last_bits; + bits -= last_bits; + //---// + state.back += last_bits; + } + //--- DROPBITS(here.bits) ---// + hold >>>= here_bits; + bits -= here_bits; + //---// + state.back += here_bits; + if (here_op & 64) { + strm.msg = 'invalid distance code'; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = (here_op) & 15; + state.mode = DISTEXT; + /* falls through */ + case DISTEXT: + if (state.extra) { + //=== NEEDBITS(state.extra); + n = state.extra; + while (bits < n) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/; + //--- DROPBITS(state.extra) ---// + hold >>>= state.extra; + bits -= state.extra; + //---// + state.back += state.extra; + } +//#ifdef INFLATE_STRICT + if (state.offset > state.dmax) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD; + break; + } +//#endif + //Tracevv((stderr, "inflate: distance %u\n", state.offset)); + state.mode = MATCH; + /* falls through */ + case MATCH: + if (left === 0) { break inf_leave; } + copy = _out - left; + if (state.offset > copy) { /* copy from window */ + copy = state.offset - copy; + if (copy > state.whave) { + if (state.sane) { + strm.msg = 'invalid distance too far back'; + state.mode = BAD; + break; + } +// (!) This block is disabled in zlib defaults, +// don't enable it for binary compatibility +//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR +// Trace((stderr, "inflate.c too far\n")); +// copy -= state.whave; +// if (copy > state.length) { copy = state.length; } +// if (copy > left) { copy = left; } +// left -= copy; +// state.length -= copy; +// do { +// output[put++] = 0; +// } while (--copy); +// if (state.length === 0) { state.mode = LEN; } +// break; +//#endif + } + if (copy > state.wnext) { + copy -= state.wnext; + from = state.wsize - copy; + } + else { + from = state.wnext - copy; + } + if (copy > state.length) { copy = state.length; } + from_source = state.window; + } + else { /* copy from output */ + from_source = output; + from = put - state.offset; + copy = state.length; + } + if (copy > left) { copy = left; } + left -= copy; + state.length -= copy; + do { + output[put++] = from_source[from++]; + } while (--copy); + if (state.length === 0) { state.mode = LEN; } + break; + case LIT: + if (left === 0) { break inf_leave; } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + //=== NEEDBITS(32); + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + // Use '|' instead of '+' to make sure that result is signed + hold |= input[next++] << bits; + bits += 8; + } + //===// + _out -= left; + strm.total_out += _out; + state.total += _out; + if ((state.wrap & 4) && _out) { + strm.adler = state.check = + /*UPDATE_CHECK(state.check, put - _out, _out);*/ + (state.flags ? crc32_1(state.check, output, _out, put - _out) : adler32_1(state.check, output, _out, put - _out)); + + } + _out = left; + // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too + if ((state.wrap & 4) && (state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = 'incorrect data check'; + state.mode = BAD; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + //Tracev((stderr, "inflate: check matches trailer\n")); + } + state.mode = LENGTH; + /* falls through */ + case LENGTH: + if (state.wrap && state.flags) { + //=== NEEDBITS(32); + while (bits < 32) { + if (have === 0) { break inf_leave; } + have--; + hold += input[next++] << bits; + bits += 8; + } + //===// + if ((state.wrap & 4) && hold !== (state.total & 0xffffffff)) { + strm.msg = 'incorrect length check'; + state.mode = BAD; + break; + } + //=== INITBITS(); + hold = 0; + bits = 0; + //===// + //Tracev((stderr, "inflate: length matches trailer\n")); + } + state.mode = DONE; + /* falls through */ + case DONE: + ret = Z_STREAM_END$1; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR$1; + break inf_leave; + case MEM: + return Z_MEM_ERROR$1; + case SYNC: + /* falls through */ + default: + return Z_STREAM_ERROR$1; + } + } + + // inf_leave <- here is real place for "goto inf_leave", emulated via "break inf_leave" + + /* + Return from inflate(), updating the total counts and the check value. + If there was no progress during the inflate() call, return a buffer + error. Call updatewindow() to create and/or update the window state. + Note: a memory error from inflate() is non-recoverable. + */ + + //--- RESTORE() --- + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + //--- + + if (state.wsize || (_out !== strm.avail_out && state.mode < BAD && + (state.mode < CHECK || flush !== Z_FINISH$1))) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ; + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if ((state.wrap & 4) && _out) { + strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/ + (state.flags ? crc32_1(state.check, output, _out, strm.next_out - _out) : adler32_1(state.check, output, _out, strm.next_out - _out)); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + + (state.mode === TYPE ? 128 : 0) + + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) { + ret = Z_BUF_ERROR; + } + return ret; +}; + + +const inflateEnd = (strm) => { + + if (inflateStateCheck(strm)) { + return Z_STREAM_ERROR$1; + } + + let state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK$1; +}; + + +const inflateGetHeader = (strm, head) => { + + /* check state */ + if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; } + const state = strm.state; + if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; } + + /* save header structure */ + state.head = head; + head.done = false; + return Z_OK$1; +}; + + +const inflateSetDictionary = (strm, dictionary) => { + const dictLength = dictionary.length; + + let state; + let dictid; + let ret; + + /* check state */ + if (inflateStateCheck(strm)) { return Z_STREAM_ERROR$1; } + state = strm.state; + + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR$1; + } + + /* check for correct dictionary identifier */ + if (state.mode === DICT) { + dictid = 1; /* adler32(0, null, 0)*/ + /* dictid = adler32(dictid, dictionary, dictLength); */ + dictid = adler32_1(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR$1; + } + } + /* copy dictionary to window using updatewindow(), which will amend the + existing dictionary if appropriate */ + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR$1; + } + state.havedict = 1; + // Tracev((stderr, "inflate: dictionary set\n")); + return Z_OK$1; +}; + + +var inflateReset_1 = inflateReset; +var inflateReset2_1 = inflateReset2; +var inflateResetKeep_1 = inflateResetKeep; +var inflateInit_1 = inflateInit; +var inflateInit2_1 = inflateInit2; +var inflate_2$1 = inflate$2; +var inflateEnd_1 = inflateEnd; +var inflateGetHeader_1 = inflateGetHeader; +var inflateSetDictionary_1 = inflateSetDictionary; +var inflateInfo = 'pako inflate (from Nodeca project)'; + +/* Not implemented +module.exports.inflateCodesUsed = inflateCodesUsed; +module.exports.inflateCopy = inflateCopy; +module.exports.inflateGetDictionary = inflateGetDictionary; +module.exports.inflateMark = inflateMark; +module.exports.inflatePrime = inflatePrime; +module.exports.inflateSync = inflateSync; +module.exports.inflateSyncPoint = inflateSyncPoint; +module.exports.inflateUndermine = inflateUndermine; +module.exports.inflateValidate = inflateValidate; +*/ + +var inflate_1$2 = { + inflateReset: inflateReset_1, + inflateReset2: inflateReset2_1, + inflateResetKeep: inflateResetKeep_1, + inflateInit: inflateInit_1, + inflateInit2: inflateInit2_1, + inflate: inflate_2$1, + inflateEnd: inflateEnd_1, + inflateGetHeader: inflateGetHeader_1, + inflateSetDictionary: inflateSetDictionary_1, + inflateInfo: inflateInfo +}; + +// (C) 1995-2013 Jean-loup Gailly and Mark Adler +// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. + +function GZheader() { + /* true if compressed data believed to be text */ + this.text = 0; + /* modification time */ + this.time = 0; + /* extra flags (not used when writing a gzip file) */ + this.xflags = 0; + /* operating system */ + this.os = 0; + /* pointer to extra field or Z_NULL if none */ + this.extra = null; + /* extra field length (valid if extra != Z_NULL) */ + this.extra_len = 0; // Actually, we don't need it in JS, + // but leave for few code modifications + + // + // Setup limits is not necessary because in js we should not preallocate memory + // for inflate use constant limit in 65536 bytes + // + + /* space at extra (only when reading header) */ + // this.extra_max = 0; + /* pointer to zero-terminated file name or Z_NULL */ + this.name = ''; + /* space at name (only when reading header) */ + // this.name_max = 0; + /* pointer to zero-terminated comment or Z_NULL */ + this.comment = ''; + /* space at comment (only when reading header) */ + // this.comm_max = 0; + /* true if there was or will be a header crc */ + this.hcrc = 0; + /* true when done reading gzip header (not used when writing a gzip file) */ + this.done = false; +} + +var gzheader = GZheader; + +const toString = Object.prototype.toString; + +/* Public constants ==========================================================*/ +/* ===========================================================================*/ + +const { + Z_NO_FLUSH, Z_FINISH, + Z_OK, Z_STREAM_END, Z_NEED_DICT, Z_STREAM_ERROR, Z_DATA_ERROR, Z_MEM_ERROR +} = constants$2; + +/* ===========================================================================*/ + + +/** + * class Inflate + * + * Generic JS-style wrapper for zlib calls. If you don't need + * streaming behaviour - use more simple functions: [[inflate]] + * and [[inflateRaw]]. + **/ + +/* internal + * inflate.chunks -> Array + * + * Chunks of output data, if [[Inflate#onData]] not overridden. + **/ + +/** + * Inflate.result -> Uint8Array|String + * + * Uncompressed result, generated by default [[Inflate#onData]] + * and [[Inflate#onEnd]] handlers. Filled after you push last chunk + * (call [[Inflate#push]] with `Z_FINISH` / `true` param). + **/ + +/** + * Inflate.err -> Number + * + * Error code after inflate finished. 0 (Z_OK) on success. + * Should be checked if broken data possible. + **/ + +/** + * Inflate.msg -> String + * + * Error message, if [[Inflate.err]] != 0 + **/ + + +/** + * new Inflate(options) + * - options (Object): zlib inflate options. + * + * Creates new inflator instance with specified params. Throws exception + * on bad params. Supported options: + * + * - `windowBits` + * - `dictionary` + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information on these. + * + * Additional options, for internal needs: + * + * - `chunkSize` - size of generated data chunks (16K by default) + * - `raw` (Boolean) - do raw inflate + * - `to` (String) - if equal to 'string', then result will be converted + * from utf8 to utf16 (javascript) string. When string output requested, + * chunk length can differ from `chunkSize`, depending on content. + * + * By default, when no options set, autodetect deflate/gzip data format via + * wrapper header. + * + * ##### Example: + * + * ```javascript + * const pako = require('pako') + * const chunk1 = new Uint8Array([1,2,3,4,5,6,7,8,9]) + * const chunk2 = new Uint8Array([10,11,12,13,14,15,16,17,18,19]); + * + * const inflate = new pako.Inflate({ level: 3}); + * + * inflate.push(chunk1, false); + * inflate.push(chunk2, true); // true -> last chunk + * + * if (inflate.err) { throw new Error(inflate.err); } + * + * console.log(inflate.result); + * ``` + **/ +function Inflate$1(options) { + this.options = common.assign({ + chunkSize: 1024 * 64, + windowBits: 15, + to: '' + }, options || {}); + + const opt = this.options; + + // Force window size for `raw` data, if not set directly, + // because we have no header for autodetect. + if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { opt.windowBits = -15; } + } + + // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate + if ((opt.windowBits >= 0) && (opt.windowBits < 16) && + !(options && options.windowBits)) { + opt.windowBits += 32; + } + + // Gzip header has no info about windows size, we can do autodetect only + // for deflate. So, if window size not set, force it to max when gzip possible + if ((opt.windowBits > 15) && (opt.windowBits < 48)) { + // bit 3 (16) -> gzipped data + // bit 4 (32) -> autodetect gzip/deflate + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + + this.err = 0; // error code, if happens (0 = Z_OK) + this.msg = ''; // error message + this.ended = false; // used to avoid multiple onEnd() calls + this.chunks = []; // chunks of compressed data + + this.strm = new zstream(); + this.strm.avail_out = 0; + + let status = inflate_1$2.inflateInit2( + this.strm, + opt.windowBits + ); + + if (status !== Z_OK) { + throw new Error(messages[status]); + } + + this.header = new gzheader(); + + inflate_1$2.inflateGetHeader(this.strm, this.header); + + // Setup dictionary + if (opt.dictionary) { + // Convert data if needed + if (typeof opt.dictionary === 'string') { + opt.dictionary = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { //In raw mode we need to set the dictionary early + status = inflate_1$2.inflateSetDictionary(this.strm, opt.dictionary); + if (status !== Z_OK) { + throw new Error(messages[status]); + } + } + } +} + +/** + * Inflate#push(data[, flush_mode]) -> Boolean + * - data (Uint8Array|ArrayBuffer): input data + * - flush_mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE + * flush modes. See constants. Skipped or `false` means Z_NO_FLUSH, + * `true` means Z_FINISH. + * + * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with + * new output chunks. Returns `true` on success. If end of stream detected, + * [[Inflate#onEnd]] will be called. + * + * `flush_mode` is not needed for normal operation, because end of stream + * detected automatically. You may try to use it for advanced things, but + * this functionality was not tested. + * + * On fail call [[Inflate#onEnd]] with error code and return false. + * + * ##### Example + * + * ```javascript + * push(chunk, false); // push one of data chunks + * ... + * push(chunk, true); // push last chunk + * ``` + **/ +Inflate$1.prototype.push = function (data, flush_mode) { + const strm = this.strm; + const chunkSize = this.options.chunkSize; + const dictionary = this.options.dictionary; + let status, _flush_mode, last_avail_out; + + if (this.ended) return false; + + if (flush_mode === ~~flush_mode) _flush_mode = flush_mode; + else _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH; + + // Convert data if needed + if (toString.call(data) === '[object ArrayBuffer]') { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + + strm.next_in = 0; + strm.avail_in = strm.input.length; + + for (;;) { + if (strm.avail_out === 0) { + strm.output = new Uint8Array(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + + status = inflate_1$2.inflate(strm, _flush_mode); + + if (status === Z_NEED_DICT && dictionary) { + status = inflate_1$2.inflateSetDictionary(strm, dictionary); + + if (status === Z_OK) { + status = inflate_1$2.inflate(strm, _flush_mode); + } else if (status === Z_DATA_ERROR) { + // Replace code with more verbose + status = Z_NEED_DICT; + } + } + + // Skip snyc markers if more data follows and not raw mode + while (strm.avail_in > 0 && + status === Z_STREAM_END && + strm.state.wrap > 0 && + data[strm.next_in] !== 0) + { + inflate_1$2.inflateReset(strm); + status = inflate_1$2.inflate(strm, _flush_mode); + } + + switch (status) { + case Z_STREAM_ERROR: + case Z_DATA_ERROR: + case Z_NEED_DICT: + case Z_MEM_ERROR: + this.onEnd(status); + this.ended = true; + return false; + } + + // Remember real `avail_out` value, because we may patch out buffer content + // to align utf8 strings boundaries. + last_avail_out = strm.avail_out; + + if (strm.next_out) { + if (strm.avail_out === 0 || status === Z_STREAM_END) { + + if (this.options.to === 'string') { + + let next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + + let tail = strm.next_out - next_out_utf8; + let utf8str = strings.buf2string(strm.output, next_out_utf8); + + // move tail & realign counters + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0); + + this.onData(utf8str); + + } else { + this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out)); + } + } + } + + // Must repeat iteration if out buffer is full + if (status === Z_OK && last_avail_out === 0) continue; + + // Finalize if end of stream reached. + if (status === Z_STREAM_END) { + status = inflate_1$2.inflateEnd(this.strm); + this.onEnd(status); + this.ended = true; + return true; + } + + if (strm.avail_in === 0) break; + } + + return true; +}; + + +/** + * Inflate#onData(chunk) -> Void + * - chunk (Uint8Array|String): output data. When string output requested, + * each chunk will be string. + * + * By default, stores data blocks in `chunks[]` property and glue + * those in `onEnd`. Override this handler, if you need another behaviour. + **/ +Inflate$1.prototype.onData = function (chunk) { + this.chunks.push(chunk); +}; + + +/** + * Inflate#onEnd(status) -> Void + * - status (Number): inflate status. 0 (Z_OK) on success, + * other if not. + * + * Called either after you tell inflate that the input stream is + * complete (Z_FINISH). By default - join collected chunks, + * free memory and fill `results` / `err` properties. + **/ +Inflate$1.prototype.onEnd = function (status) { + // On success - join + if (status === Z_OK) { + if (this.options.to === 'string') { + this.result = this.chunks.join(''); + } else { + this.result = common.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status; + this.msg = this.strm.msg; +}; + + +/** + * inflate(data[, options]) -> Uint8Array|String + * - data (Uint8Array|ArrayBuffer): input data to decompress. + * - options (Object): zlib inflate options. + * + * Decompress `data` with inflate/ungzip and `options`. Autodetect + * format via wrapper header by default. That's why we don't provide + * separate `ungzip` method. + * + * Supported options are: + * + * - windowBits + * + * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced) + * for more information. + * + * Sugar (options): + * + * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify + * negative windowBits implicitly. + * - `to` (String) - if equal to 'string', then result will be converted + * from utf8 to utf16 (javascript) string. When string output requested, + * chunk length can differ from `chunkSize`, depending on content. + * + * + * ##### Example: + * + * ```javascript + * const pako = require('pako'); + * const input = pako.deflate(new Uint8Array([1,2,3,4,5,6,7,8,9])); + * let output; + * + * try { + * output = pako.inflate(input); + * } catch (err) { + * console.log(err); + * } + * ``` + **/ +function inflate$1(input, options) { + const inflator = new Inflate$1(options); + + inflator.push(input); + + // That will never happens, if you don't cheat with options :) + if (inflator.err) throw inflator.msg || messages[inflator.err]; + + return inflator.result; +} + + +/** + * inflateRaw(data[, options]) -> Uint8Array|String + * - data (Uint8Array|ArrayBuffer): input data to decompress. + * - options (Object): zlib inflate options. + * + * The same as [[inflate]], but creates raw data, without wrapper + * (header and adler32 crc). + **/ +function inflateRaw$1(input, options) { + options = options || {}; + options.raw = true; + return inflate$1(input, options); +} + + +/** + * ungzip(data[, options]) -> Uint8Array|String + * - data (Uint8Array|ArrayBuffer): input data to decompress. + * - options (Object): zlib inflate options. + * + * Just shortcut to [[inflate]], because it autodetects format + * by header.content. Done for convenience. + **/ + + +var Inflate_1$1 = Inflate$1; +var inflate_2 = inflate$1; +var inflateRaw_1$1 = inflateRaw$1; +var ungzip$1 = inflate$1; + +var inflate_1$1 = { + Inflate: Inflate_1$1, + inflate: inflate_2, + inflateRaw: inflateRaw_1$1, + ungzip: ungzip$1}; + +const { Deflate, deflate, deflateRaw, gzip } = deflate_1$1; + +const { Inflate, inflate, inflateRaw, ungzip } = inflate_1$1; + + + +var Deflate_1 = Deflate; +var deflate_1 = deflate; +var deflateRaw_1 = deflateRaw; +var gzip_1 = gzip; +var Inflate_1 = Inflate; +var inflate_1 = inflate; +var inflateRaw_1 = inflateRaw; +var ungzip_1 = ungzip; +var constants_1 = constants$2; + +var pako = { + Deflate: Deflate_1, + deflate: deflate_1, + deflateRaw: deflateRaw_1, + gzip: gzip_1, + Inflate: Inflate_1, + inflate: inflate_1, + inflateRaw: inflateRaw_1, + ungzip: ungzip_1, + constants: constants_1 +}; + +class Decoder { + buf; + view; + pos; + constructor(buf) { + this.buf = buf; + this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength); + this.pos = 0; + } + take(n) { + if (this.pos + n > this.buf.length) throw new Error("Decoder: unexpected end of input"); + const slice = this.buf.subarray(this.pos, this.pos + n); + this.pos += n; + return slice; + } + takeAll() { + const slice = this.buf.subarray(this.pos); + this.pos = this.buf.length; + return slice; + } + anyByte() { + if (this.pos >= this.buf.length) throw new Error("Decoder: unexpected end of input"); + return this.buf[this.pos++]; + } + remaining() { + return this.buf.length - this.pos; + } + offset() { + return this.pos; + } +} +function concatBytes$1(...arrays) { + let totalLen = 0; + for (const a of arrays) totalLen += a.length; + const result = new Uint8Array(totalLen); + let offset = 0; + for (const a of arrays) { + result.set(a, offset); + offset += a.length; + } + return result; +} +function encodeWord16(n) { + const buf = new Uint8Array(2); + const view = new DataView(buf.buffer); + view.setUint16(0, n, false); + return buf; +} +function decodeWord16(d) { + const bytes = d.take(2); + const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); + return view.getUint16(0, false); +} +function encodeWord32(n) { + const buf = new Uint8Array(4); + const view = new DataView(buf.buffer); + view.setUint32(0, n, false); + return buf; +} +function decodeWord32(d) { + const bytes = d.take(4); + const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength); + return view.getUint32(0, false); +} +function encodeInt64(n) { + const high = Number(n >> 32n & 0xFFFFFFFFn); + const low = Number(n & 0xFFFFFFFFn); + return concatBytes$1(encodeWord32(high), encodeWord32(low)); +} +function decodeInt64(d) { + const high = BigInt(decodeWord32(d)); + const low = BigInt(decodeWord32(d)); + const unsigned = high << 32n | low; + return unsigned >= 0x8000000000000000n ? unsigned - 0x10000000000000000n : unsigned; +} +function encodeBytes(bs) { + if (bs.length > 255) throw new Error("encodeBytes: length exceeds 255"); + const result = new Uint8Array(1 + bs.length); + result[0] = bs.length; + result.set(bs, 1); + return result; +} +function decodeBytes(d) { + const len = d.anyByte(); + return d.take(len); +} +function encodeLarge(bs) { + if (bs.length > 65535) throw new Error("encodeLarge: length exceeds 65535"); + return concatBytes$1(encodeWord16(bs.length), bs); +} +function decodeLarge(d) { + const len = decodeWord16(d); + return d.take(len); +} +const textEncoder = new TextEncoder(); +const textDecoder = new TextDecoder(); +function encodeString(s) { + return encodeBytes(textEncoder.encode(s)); +} +function decodeString(d) { + return textDecoder.decode(decodeBytes(d)); +} +const CHAR_0 = 48; +const CHAR_1 = 49; +function encodeMaybe(encode, v) { + if (v === null) return new Uint8Array([CHAR_0]); + return concatBytes$1(new Uint8Array([CHAR_1]), encode(v)); +} +function decodeMaybe(decode, d) { + const tag = d.anyByte(); + if (tag === CHAR_0) return null; + if (tag === CHAR_1) return decode(d); + throw new Error("decodeMaybe: invalid tag " + tag); +} +function encodeNonEmpty(encode, xs) { + if (xs.length === 0) throw new Error("encodeNonEmpty: empty list"); + if (xs.length > 255) throw new Error("encodeNonEmpty: length exceeds 255"); + const parts = [new Uint8Array([xs.length])]; + for (const x of xs) parts.push(encode(x)); + return concatBytes$1(...parts); +} +function decodeNonEmpty(decode, d) { + const len = d.anyByte(); + if (len === 0) throw new Error("decodeNonEmpty: empty list"); + const result = []; + for (let i = 0; i < len; i++) result.push(decode(d)); + return result; +} + +function unPadLazy(padded) { + return splitLen(padded).content; +} +function splitLen(data) { + if (data.length < 8) throw new Error("splitLen: input too short"); + const d = new Decoder(data); + const len = decodeInt64(d); + if (len < 0n) throw new Error("splitLen: negative length"); + const numLen = Number(len); + const available = data.length - 8; + const takeLen = Math.min(numLen, available); + return { len, content: data.subarray(8, 8 + takeLen) }; +} + +const _sodium = r; +function readU32LE(buf, off) { + return (buf[off] | buf[off + 1] << 8 | buf[off + 2] << 16 | buf[off + 3] << 24) >>> 0; +} +function writeU32LE(buf, off, val) { + buf[off] = val & 255; + buf[off + 1] = val >>> 8 & 255; + buf[off + 2] = val >>> 16 & 255; + buf[off + 3] = val >>> 24 & 255; +} +function rotl32(v, n) { + return (v << n | v >>> 32 - n) >>> 0; +} +const SIGMA_0 = 1634760805; +const SIGMA_1 = 857760878; +const SIGMA_2 = 2036477234; +const SIGMA_3 = 1797285236; +function salsa20Block(key, nonce8, counter) { + const k0 = readU32LE(key, 0), k1 = readU32LE(key, 4); + const k2 = readU32LE(key, 8), k3 = readU32LE(key, 12); + const k4 = readU32LE(key, 16), k5 = readU32LE(key, 20); + const k6 = readU32LE(key, 24), k7 = readU32LE(key, 28); + const n0 = readU32LE(nonce8, 0), n1 = readU32LE(nonce8, 4); + const s0 = SIGMA_0, s1 = k0, s2 = k1, s3 = k2; + const s4 = k3, s5 = SIGMA_1, s6 = n0, s7 = n1; + const s8 = counter >>> 0, s9 = 0, s10 = SIGMA_2, s11 = k4; + const s12 = k5, s13 = k6, s14 = k7, s15 = SIGMA_3; + let x0 = s0, x1 = s1, x2 = s2, x3 = s3; + let x4 = s4, x5 = s5, x6 = s6, x7 = s7; + let x8 = s8, x9 = s9, x10 = s10, x11 = s11; + let x12 = s12, x13 = s13, x14 = s14, x15 = s15; + for (let i = 0; i < 10; i++) { + x4 ^= rotl32(x0 + x12 >>> 0, 7); + x8 ^= rotl32(x4 + x0 >>> 0, 9); + x12 ^= rotl32(x8 + x4 >>> 0, 13); + x0 ^= rotl32(x12 + x8 >>> 0, 18); + x9 ^= rotl32(x5 + x1 >>> 0, 7); + x13 ^= rotl32(x9 + x5 >>> 0, 9); + x1 ^= rotl32(x13 + x9 >>> 0, 13); + x5 ^= rotl32(x1 + x13 >>> 0, 18); + x14 ^= rotl32(x10 + x6 >>> 0, 7); + x2 ^= rotl32(x14 + x10 >>> 0, 9); + x6 ^= rotl32(x2 + x14 >>> 0, 13); + x10 ^= rotl32(x6 + x2 >>> 0, 18); + x3 ^= rotl32(x15 + x11 >>> 0, 7); + x7 ^= rotl32(x3 + x15 >>> 0, 9); + x11 ^= rotl32(x7 + x3 >>> 0, 13); + x15 ^= rotl32(x11 + x7 >>> 0, 18); + x1 ^= rotl32(x0 + x3 >>> 0, 7); + x2 ^= rotl32(x1 + x0 >>> 0, 9); + x3 ^= rotl32(x2 + x1 >>> 0, 13); + x0 ^= rotl32(x3 + x2 >>> 0, 18); + x6 ^= rotl32(x5 + x4 >>> 0, 7); + x7 ^= rotl32(x6 + x5 >>> 0, 9); + x4 ^= rotl32(x7 + x6 >>> 0, 13); + x5 ^= rotl32(x4 + x7 >>> 0, 18); + x11 ^= rotl32(x10 + x9 >>> 0, 7); + x8 ^= rotl32(x11 + x10 >>> 0, 9); + x9 ^= rotl32(x8 + x11 >>> 0, 13); + x10 ^= rotl32(x9 + x8 >>> 0, 18); + x12 ^= rotl32(x15 + x14 >>> 0, 7); + x13 ^= rotl32(x12 + x15 >>> 0, 9); + x14 ^= rotl32(x13 + x12 >>> 0, 13); + x15 ^= rotl32(x14 + x13 >>> 0, 18); + } + const out = new Uint8Array(64); + writeU32LE(out, 0, x0 + s0 >>> 0); + writeU32LE(out, 4, x1 + s1 >>> 0); + writeU32LE(out, 8, x2 + s2 >>> 0); + writeU32LE(out, 12, x3 + s3 >>> 0); + writeU32LE(out, 16, x4 + s4 >>> 0); + writeU32LE(out, 20, x5 + s5 >>> 0); + writeU32LE(out, 24, x6 + s6 >>> 0); + writeU32LE(out, 28, x7 + s7 >>> 0); + writeU32LE(out, 32, x8 + s8 >>> 0); + writeU32LE(out, 36, x9 + s9 >>> 0); + writeU32LE(out, 40, x10 + s10 >>> 0); + writeU32LE(out, 44, x11 + s11 >>> 0); + writeU32LE(out, 48, x12 + s12 >>> 0); + writeU32LE(out, 52, x13 + s13 >>> 0); + writeU32LE(out, 56, x14 + s14 >>> 0); + writeU32LE(out, 60, x15 + s15 >>> 0); + return out; +} +function sbInit(key, nonce) { + const zeros16 = new Uint8Array(16); + const subkey1 = _sodium.crypto_core_hsalsa20(zeros16, key); + const subkey = _sodium.crypto_core_hsalsa20(nonce.subarray(0, 16), subkey1); + const nonce8 = new Uint8Array(nonce.subarray(16, 24)); + const block0 = salsa20Block(subkey, nonce8, 0); + const poly1305Key = block0.subarray(0, 32); + const ksBuf = new Uint8Array(block0.subarray(32)); + const authState = r.crypto_onetimeauth_init(poly1305Key); + return { _subkey: subkey, _nonce8: nonce8, _counter: 1, _ksBuf: ksBuf, _ksOff: 0, _authState: authState }; +} +function cbInit(dhSecret, nonce) { + return sbInit(dhSecret, nonce); +} +function sbEncryptChunk(state, chunk) { + const cipher = xorKeystream(state, chunk); + r.crypto_onetimeauth_update(state._authState, cipher); + return cipher; +} +function sbDecryptChunk(state, chunk) { + r.crypto_onetimeauth_update(state._authState, chunk); + return xorKeystream(state, chunk); +} +function sbAuth(state) { + return r.crypto_onetimeauth_final(state._authState); +} +function sbDecryptTailTag(key, nonce, paddedLen, data) { + const pLen = Number(paddedLen); + const cipher = data.subarray(0, pLen); + const providedTag = data.subarray(pLen); + const state = sbInit(key, nonce); + const plaintext = sbDecryptChunk(state, cipher); + const computedTag = sbAuth(state); + const valid = providedTag.length === 16 && constantTimeEqual$2(providedTag, computedTag); + const content = unPadLazy(plaintext); + return { valid, content }; +} +function xorKeystream(state, data) { + const result = new Uint8Array(data.length); + let off = 0; + while (off < data.length) { + if (state._ksOff >= state._ksBuf.length) { + state._ksBuf = salsa20Block(state._subkey, state._nonce8, state._counter++); + state._ksOff = 0; + } + const available = state._ksBuf.length - state._ksOff; + const needed = data.length - off; + const n = Math.min(available, needed); + for (let i = 0; i < n; i++) { + result[off + i] = data[off + i] ^ state._ksBuf[state._ksOff + i]; + } + state._ksOff += n; + off += n; + } + return result; +} +function constantTimeEqual$2(a, b) { + if (a.length !== b.length) return false; + let diff = 0; + for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i]; + return diff === 0; +} + +const AUTH_TAG_SIZE = 16n; +const PROGRESS_SEG = 256 * 1024; +function encodeFileHeader(hdr) { + return concatBytes$1( + encodeString(hdr.fileName), + encodeMaybe(encodeString, hdr.fileExtra) + ); +} +function parseFileHeader(data) { + const hdrLen = Math.min(1024, data.length); + const d = new Decoder(data.subarray(0, hdrLen)); + const fileName = decodeString(d); + const fileExtra = decodeMaybe(decodeString, d); + const consumed = d.offset(); + return { + header: { fileName, fileExtra }, + rest: data.subarray(consumed) + }; +} +function encryptFile(source, fileHdr, key, nonce, fileSize, encSize, onProgress) { + const state = sbInit(key, nonce); + const lenStr = encodeInt64(fileSize); + const padLen = Number(encSize - AUTH_TAG_SIZE - fileSize - 8n); + if (padLen < 0) throw new Error("encryptFile: encSize too small"); + const hdr = sbEncryptChunk(state, concatBytes$1(lenStr, fileHdr)); + const encSource = new Uint8Array(source.length); + for (let off = 0; off < source.length; off += PROGRESS_SEG) { + const end = Math.min(off + PROGRESS_SEG, source.length); + const seg = sbEncryptChunk(state, source.subarray(off, end)); + encSource.set(seg, off); + } + if (source.length === 0) ; + const padding = new Uint8Array(padLen); + padding.fill(35); + const encPad = sbEncryptChunk(state, padding); + const tag = sbAuth(state); + return concatBytes$1(hdr, encSource, encPad, tag); +} +function decryptChunks(encSize, chunks, key, nonce, onProgress) { + if (chunks.length === 0) throw new Error("decryptChunks: empty chunks"); + const paddedLen = encSize - AUTH_TAG_SIZE; + const data = chunks.length === 1 ? chunks[0] : concatBytes$1(...chunks); + { + const { valid, content: content2 } = sbDecryptTailTag(key, nonce, paddedLen, data); + if (!valid) throw new Error("decryptChunks: invalid auth tag"); + const { header: header2, rest: rest2 } = parseFileHeader(content2); + return { header: header2, content: rest2 }; + } +} + +/** + * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array. + * @todo re-check https://issues.chromium.org/issues/42212588 + * @module + */ +const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1); +const _32n = /* @__PURE__ */ BigInt(32); +function fromBig(n, le = false) { + if (le) + return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) }; + return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 }; +} +function split(lst, le = false) { + const len = lst.length; + let Ah = new Uint32Array(len); + let Al = new Uint32Array(len); + for (let i = 0; i < len; i++) { + const { h, l } = fromBig(lst[i], le); + [Ah[i], Al[i]] = [h, l]; + } + return [Ah, Al]; +} +// Left rotate for Shift in [1, 32) +const rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s)); +const rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s)); +// Left rotate for Shift in (32, 64), NOTE: 32 is special case. +const rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s)); +const rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s)); + +const crypto$1 = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined; + +/** + * Utilities for hex, bytes, CSPRNG. + * @module + */ +/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+. +// node.js versions earlier than v19 don't declare it in global scope. +// For node.js, package.json#exports field mapping rewrites import +// from `crypto` to `cryptoNode`, which imports native module. +// Makes the utils un-importable in browsers without a bundler. +// Once node.js 18 is deprecated (2025-04-30), we can just drop the import. +/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */ +function isBytes(a) { + return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array'); +} +/** Asserts something is positive integer. */ +function anumber(n) { + if (!Number.isSafeInteger(n) || n < 0) + throw new Error('positive integer expected, got ' + n); +} +/** Asserts something is Uint8Array. */ +function abytes(b, ...lengths) { + if (!isBytes(b)) + throw new Error('Uint8Array expected'); + if (lengths.length > 0 && !lengths.includes(b.length)) + throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length); +} +/** Asserts a hash instance has not been destroyed / finished */ +function aexists(instance, checkFinished = true) { + if (instance.destroyed) + throw new Error('Hash instance has been destroyed'); + if (checkFinished && instance.finished) + throw new Error('Hash#digest() has already been called'); +} +/** Asserts output is properly-sized byte array */ +function aoutput(out, instance) { + abytes(out); + const min = instance.outputLen; + if (out.length < min) { + throw new Error('digestInto() expects output buffer of length at least ' + min); + } +} +/** Cast u8 / u16 / u32 to u32. */ +function u32(arr) { + return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4)); +} +/** Zeroize a byte array. Warning: JS provides no guarantees. */ +function clean(...arrays) { + for (let i = 0; i < arrays.length; i++) { + arrays[i].fill(0); + } +} +/** Is current platform little-endian? Most are. Big-Endian platform: IBM */ +const isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)(); +/** The byte swap operation for uint32 */ +function byteSwap(word) { + return (((word << 24) & 0xff000000) | + ((word << 8) & 0xff0000) | + ((word >>> 8) & 0xff00) | + ((word >>> 24) & 0xff)); +} +/** In place byte swap for Uint32Array */ +function byteSwap32(arr) { + for (let i = 0; i < arr.length; i++) { + arr[i] = byteSwap(arr[i]); + } + return arr; +} +const swap32IfBE = isLE + ? (u) => u + : byteSwap32; +// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex +const hasHexBuiltin = /* @__PURE__ */ (() => +// @ts-ignore +typeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')(); +// Array where index 0xf0 (240) is mapped to string 'f0' +const hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0')); +/** + * Convert byte array to hex string. Uses built-in function, when available. + * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123' + */ +function bytesToHex(bytes) { + abytes(bytes); + // @ts-ignore + if (hasHexBuiltin) + return bytes.toHex(); + // pre-caching improves the speed 6x + let hex = ''; + for (let i = 0; i < bytes.length; i++) { + hex += hexes[bytes[i]]; + } + return hex; +} +// We use optimized technique to convert hex string to byte array +const asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 }; +function asciiToBase16(ch) { + if (ch >= asciis._0 && ch <= asciis._9) + return ch - asciis._0; // '2' => 50-48 + if (ch >= asciis.A && ch <= asciis.F) + return ch - (asciis.A - 10); // 'B' => 66-(65-10) + if (ch >= asciis.a && ch <= asciis.f) + return ch - (asciis.a - 10); // 'b' => 98-(97-10) + return; +} +/** + * Convert hex string to byte array. Uses built-in function, when available. + * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23]) + */ +function hexToBytes(hex) { + if (typeof hex !== 'string') + throw new Error('hex string expected, got ' + typeof hex); + // @ts-ignore + if (hasHexBuiltin) + return Uint8Array.fromHex(hex); + const hl = hex.length; + const al = hl / 2; + if (hl % 2) + throw new Error('hex string expected, got unpadded hex of length ' + hl); + const array = new Uint8Array(al); + for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) { + const n1 = asciiToBase16(hex.charCodeAt(hi)); + const n2 = asciiToBase16(hex.charCodeAt(hi + 1)); + if (n1 === undefined || n2 === undefined) { + const char = hex[hi] + hex[hi + 1]; + throw new Error('hex string expected, got non-hex character "' + char + '" at index ' + hi); + } + array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163 + } + return array; +} +/** + * Converts string to bytes using UTF8 encoding. + * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99]) + */ +function utf8ToBytes(str) { + if (typeof str !== 'string') + throw new Error('string expected'); + return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809 +} +/** + * Normalizes (non-hex) string or Uint8Array to Uint8Array. + * Warning: when Uint8Array is passed, it would NOT get copied. + * Keep in mind for future mutable operations. + */ +function toBytes(data) { + if (typeof data === 'string') + data = utf8ToBytes(data); + abytes(data); + return data; +} +/** Copies several Uint8Arrays into one. */ +function concatBytes(...arrays) { + let sum = 0; + for (let i = 0; i < arrays.length; i++) { + const a = arrays[i]; + abytes(a); + sum += a.length; + } + const res = new Uint8Array(sum); + for (let i = 0, pad = 0; i < arrays.length; i++) { + const a = arrays[i]; + res.set(a, pad); + pad += a.length; + } + return res; +} +/** For runtime check if class implements interface */ +class Hash { +} +/** Wraps hash function, creating an interface on top of it */ +function createHasher(hashCons) { + const hashC = (msg) => hashCons().update(toBytes(msg)).digest(); + const tmp = hashCons(); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = () => hashCons(); + return hashC; +} +function createXOFer(hashCons) { + const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest(); + const tmp = hashCons({}); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = (opts) => hashCons(opts); + return hashC; +} +/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */ +function randomBytes(bytesLength = 32) { + if (crypto$1 && typeof crypto$1.getRandomValues === 'function') { + return crypto$1.getRandomValues(new Uint8Array(bytesLength)); + } + // Legacy Node.js compatibility + if (crypto$1 && typeof crypto$1.randomBytes === 'function') { + return Uint8Array.from(crypto$1.randomBytes(bytesLength)); + } + throw new Error('crypto.getRandomValues must be defined'); +} + +/** + * SHA3 (keccak) hash function, based on a new "Sponge function" design. + * Different from older hashes, the internal state is bigger than output size. + * + * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf), + * [Website](https://keccak.team/keccak.html), + * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub). + * + * Check out `sha3-addons` module for cSHAKE, k12, and others. + * @module + */ +// No __PURE__ annotations in sha3 header: +// EVERYTHING is in fact used on every export. +// Various per round constants calculations +const _0n$4 = BigInt(0); +const _1n$5 = BigInt(1); +const _2n$3 = BigInt(2); +const _7n$1 = BigInt(7); +const _256n = BigInt(256); +const _0x71n = BigInt(0x71); +const SHA3_PI = []; +const SHA3_ROTL = []; +const _SHA3_IOTA = []; +for (let round = 0, R = _1n$5, x = 1, y = 0; round < 24; round++) { + // Pi + [x, y] = [y, (2 * x + 3 * y) % 5]; + SHA3_PI.push(2 * (5 * y + x)); + // Rotational + SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64); + // Iota + let t = _0n$4; + for (let j = 0; j < 7; j++) { + R = ((R << _1n$5) ^ ((R >> _7n$1) * _0x71n)) % _256n; + if (R & _2n$3) + t ^= _1n$5 << ((_1n$5 << /* @__PURE__ */ BigInt(j)) - _1n$5); + } + _SHA3_IOTA.push(t); +} +const IOTAS = split(_SHA3_IOTA, true); +const SHA3_IOTA_H = IOTAS[0]; +const SHA3_IOTA_L = IOTAS[1]; +// Left rotation (without 0, 32, 64) +const rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s)); +const rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s)); +/** `keccakf1600` internal function, additionally allows to adjust round count. */ +function keccakP(s, rounds = 24) { + const B = new Uint32Array(5 * 2); + // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js) + for (let round = 24 - rounds; round < 24; round++) { + // Theta θ + for (let x = 0; x < 10; x++) + B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40]; + for (let x = 0; x < 10; x += 2) { + const idx1 = (x + 8) % 10; + const idx0 = (x + 2) % 10; + const B0 = B[idx0]; + const B1 = B[idx0 + 1]; + const Th = rotlH(B0, B1, 1) ^ B[idx1]; + const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1]; + for (let y = 0; y < 50; y += 10) { + s[x + y] ^= Th; + s[x + y + 1] ^= Tl; + } + } + // Rho (ρ) and Pi (π) + let curH = s[2]; + let curL = s[3]; + for (let t = 0; t < 24; t++) { + const shift = SHA3_ROTL[t]; + const Th = rotlH(curH, curL, shift); + const Tl = rotlL(curH, curL, shift); + const PI = SHA3_PI[t]; + curH = s[PI]; + curL = s[PI + 1]; + s[PI] = Th; + s[PI + 1] = Tl; + } + // Chi (χ) + for (let y = 0; y < 50; y += 10) { + for (let x = 0; x < 10; x++) + B[x] = s[y + x]; + for (let x = 0; x < 10; x++) + s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10]; + } + // Iota (ι) + s[0] ^= SHA3_IOTA_H[round]; + s[1] ^= SHA3_IOTA_L[round]; + } + clean(B); +} +/** Keccak sponge function. */ +class Keccak extends Hash { + // NOTE: we accept arguments in bytes instead of bits here. + constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) { + super(); + this.pos = 0; + this.posOut = 0; + this.finished = false; + this.destroyed = false; + this.enableXOF = false; + this.blockLen = blockLen; + this.suffix = suffix; + this.outputLen = outputLen; + this.enableXOF = enableXOF; + this.rounds = rounds; + // Can be passed from user as dkLen + anumber(outputLen); + // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes + // 0 < blockLen < 200 + if (!(0 < blockLen && blockLen < 200)) + throw new Error('only keccak-f1600 function is supported'); + this.state = new Uint8Array(200); + this.state32 = u32(this.state); + } + clone() { + return this._cloneInto(); + } + keccak() { + swap32IfBE(this.state32); + keccakP(this.state32, this.rounds); + swap32IfBE(this.state32); + this.posOut = 0; + this.pos = 0; + } + update(data) { + aexists(this); + data = toBytes(data); + abytes(data); + const { blockLen, state } = this; + const len = data.length; + for (let pos = 0; pos < len;) { + const take = Math.min(blockLen - this.pos, len - pos); + for (let i = 0; i < take; i++) + state[this.pos++] ^= data[pos++]; + if (this.pos === blockLen) + this.keccak(); + } + return this; + } + finish() { + if (this.finished) + return; + this.finished = true; + const { state, suffix, pos, blockLen } = this; + // Do the padding + state[pos] ^= suffix; + if ((suffix & 0x80) !== 0 && pos === blockLen - 1) + this.keccak(); + state[blockLen - 1] ^= 0x80; + this.keccak(); + } + writeInto(out) { + aexists(this, false); + abytes(out); + this.finish(); + const bufferOut = this.state; + const { blockLen } = this; + for (let pos = 0, len = out.length; pos < len;) { + if (this.posOut >= blockLen) + this.keccak(); + const take = Math.min(blockLen - this.posOut, len - pos); + out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos); + this.posOut += take; + pos += take; + } + return out; + } + xofInto(out) { + // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF + if (!this.enableXOF) + throw new Error('XOF is not possible for this instance'); + return this.writeInto(out); + } + xof(bytes) { + anumber(bytes); + return this.xofInto(new Uint8Array(bytes)); + } + digestInto(out) { + aoutput(out, this); + if (this.finished) + throw new Error('digest() was already called'); + this.writeInto(out); + this.destroy(); + return out; + } + digest() { + return this.digestInto(new Uint8Array(this.outputLen)); + } + destroy() { + this.destroyed = true; + clean(this.state); + } + _cloneInto(to) { + const { blockLen, suffix, outputLen, rounds, enableXOF } = this; + to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds)); + to.state32.set(this.state32); + to.pos = this.pos; + to.posOut = this.posOut; + to.finished = this.finished; + to.rounds = rounds; + // Suffix can change in cSHAKE + to.suffix = suffix; + to.outputLen = outputLen; + to.enableXOF = enableXOF; + to.destroyed = this.destroyed; + return to; + } +} +const genShake = (suffix, blockLen, outputLen) => createXOFer((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true)); +/** SHAKE256 XOF with 256-bit security. */ +const shake256 = /* @__PURE__ */ (() => genShake(0x1f, 136, 256 / 8))(); + +/** + * Hex, bytes and number utilities. + * @module + */ +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +const _0n$3 = /* @__PURE__ */ BigInt(0); +const _1n$4 = /* @__PURE__ */ BigInt(1); +// tmp name until v2 +function _abool2(value, title = '') { + if (typeof value !== 'boolean') { + const prefix = title && `"${title}"`; + throw new Error(prefix + 'expected boolean, got type=' + typeof value); + } + return value; +} +// tmp name until v2 +/** Asserts something is Uint8Array. */ +function _abytes2(value, length, title = '') { + const bytes = isBytes(value); + const len = value?.length; + const needsLen = length !== undefined; + if (!bytes || (needsLen && len !== length)) { + const prefix = title && `"${title}" `; + const ofLen = needsLen ? ` of length ${length}` : ''; + const got = bytes ? `length=${len}` : `type=${typeof value}`; + throw new Error(prefix + 'expected Uint8Array' + ofLen + ', got ' + got); + } + return value; +} +function hexToNumber(hex) { + if (typeof hex !== 'string') + throw new Error('hex string expected, got ' + typeof hex); + return hex === '' ? _0n$3 : BigInt('0x' + hex); // Big Endian +} +// BE: Big Endian, LE: Little Endian +function bytesToNumberBE(bytes) { + return hexToNumber(bytesToHex(bytes)); +} +function bytesToNumberLE(bytes) { + abytes(bytes); + return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse())); +} +function numberToBytesBE(n, len) { + return hexToBytes(n.toString(16).padStart(len * 2, '0')); +} +function numberToBytesLE(n, len) { + return numberToBytesBE(n, len).reverse(); +} +/** + * Takes hex string or Uint8Array, converts to Uint8Array. + * Validates output length. + * Will throw error for other types. + * @param title descriptive title for an error e.g. 'secret key' + * @param hex hex string or Uint8Array + * @param expectedLength optional, will compare to result array's length + * @returns + */ +function ensureBytes(title, hex, expectedLength) { + let res; + if (typeof hex === 'string') { + try { + res = hexToBytes(hex); + } + catch (e) { + throw new Error(title + ' must be hex string or Uint8Array, cause: ' + e); + } + } + else if (isBytes(hex)) { + // Uint8Array.from() instead of hash.slice() because node.js Buffer + // is instance of Uint8Array, and its slice() creates **mutable** copy + res = Uint8Array.from(hex); + } + else { + throw new Error(title + ' must be hex string or Uint8Array'); + } + const len = res.length; + if (typeof expectedLength === 'number' && len !== expectedLength) + throw new Error(title + ' of length ' + expectedLength + ' expected, got ' + len); + return res; +} +/** + * Copies Uint8Array. We can't use u8a.slice(), because u8a can be Buffer, + * and Buffer#slice creates mutable copy. Never use Buffers! + */ +function copyBytes(bytes) { + return Uint8Array.from(bytes); +} +/** + * Decodes 7-bit ASCII string to Uint8Array, throws on non-ascii symbols + * Should be safe to use for things expected to be ASCII. + * Returns exact same result as utf8ToBytes for ASCII or throws. + */ +function asciiToBytes(ascii) { + return Uint8Array.from(ascii, (c, i) => { + const charCode = c.charCodeAt(0); + if (c.length !== 1 || charCode > 127) { + throw new Error(`string contains non-ASCII character "${ascii[i]}" with code ${charCode} at position ${i}`); + } + return charCode; + }); +} +/** + * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99]) + */ +// export const utf8ToBytes: typeof utf8ToBytes_ = utf8ToBytes_; +/** + * Converts bytes to string using UTF8 encoding. + * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc' + */ +// export const bytesToUtf8: typeof bytesToUtf8_ = bytesToUtf8_; +// Is positive bigint +const isPosBig = (n) => typeof n === 'bigint' && _0n$3 <= n; +function inRange(n, min, max) { + return isPosBig(n) && isPosBig(min) && isPosBig(max) && min <= n && n < max; +} +/** + * Asserts min <= n < max. NOTE: It's < max and not <= max. + * @example + * aInRange('x', x, 1n, 256n); // would assume x is in (1n..255n) + */ +function aInRange(title, n, min, max) { + // Why min <= n < max and not a (min < n < max) OR b (min <= n <= max)? + // consider P=256n, min=0n, max=P + // - a for min=0 would require -1: `inRange('x', x, -1n, P)` + // - b would commonly require subtraction: `inRange('x', x, 0n, P - 1n)` + // - our way is the cleanest: `inRange('x', x, 0n, P) + if (!inRange(n, min, max)) + throw new Error('expected valid ' + title + ': ' + min + ' <= n < ' + max + ', got ' + n); +} +// Bit operations +/** + * Calculates amount of bits in a bigint. + * Same as `n.toString(2).length` + * TODO: merge with nLength in modular + */ +function bitLen(n) { + let len; + for (len = 0; n > _0n$3; n >>= _1n$4, len += 1) + ; + return len; +} +/** + * Calculate mask for N bits. Not using ** operator with bigints because of old engines. + * Same as BigInt(`0b${Array(i).fill('1').join('')}`) + */ +const bitMask = (n) => (_1n$4 << BigInt(n)) - _1n$4; +function _validateObject(object, fields, optFields = {}) { + if (!object || typeof object !== 'object') + throw new Error('expected valid options object'); + function checkField(fieldName, expectedType, isOpt) { + const val = object[fieldName]; + if (isOpt && val === undefined) + return; + const current = typeof val; + if (current !== expectedType || val === null) + throw new Error(`param "${fieldName}" is invalid: expected ${expectedType}, got ${current}`); + } + Object.entries(fields).forEach(([k, v]) => checkField(k, v, false)); + Object.entries(optFields).forEach(([k, v]) => checkField(k, v, true)); +} +/** + * Memoizes (caches) computation result. + * Uses WeakMap: the value is going auto-cleaned by GC after last reference is removed. + */ +function memoized(fn) { + const map = new WeakMap(); + return (arg, ...args) => { + const val = map.get(arg); + if (val !== undefined) + return val; + const computed = fn(arg, ...args); + map.set(arg, computed); + return computed; + }; +} + +/** + * Utils for modular division and fields. + * Field over 11 is a finite (Galois) field is integer number operations `mod 11`. + * There is no division: it is replaced by modular multiplicative inverse. + * @module + */ +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +// prettier-ignore +const _0n$2 = BigInt(0), _1n$3 = BigInt(1), _2n$2 = /* @__PURE__ */ BigInt(2), _3n$1 = /* @__PURE__ */ BigInt(3); +// prettier-ignore +const _4n = /* @__PURE__ */ BigInt(4), _5n = /* @__PURE__ */ BigInt(5), _7n = /* @__PURE__ */ BigInt(7); +// prettier-ignore +const _8n$1 = /* @__PURE__ */ BigInt(8), _9n = /* @__PURE__ */ BigInt(9), _16n = /* @__PURE__ */ BigInt(16); +// Calculates a modulo b +function mod(a, b) { + const result = a % b; + return result >= _0n$2 ? result : b + result; +} +/** Does `x^(2^power)` mod p. `pow2(30, 4)` == `30^(2^4)` */ +function pow2(x, power, modulo) { + let res = x; + while (power-- > _0n$2) { + res *= res; + res %= modulo; + } + return res; +} +/** + * Inverses number over modulo. + * Implemented using [Euclidean GCD](https://brilliant.org/wiki/extended-euclidean-algorithm/). + */ +function invert(number, modulo) { + if (number === _0n$2) + throw new Error('invert: expected non-zero number'); + if (modulo <= _0n$2) + throw new Error('invert: expected positive modulus, got ' + modulo); + // Fermat's little theorem "CT-like" version inv(n) = n^(m-2) mod m is 30x slower. + let a = mod(number, modulo); + let b = modulo; + // prettier-ignore + let x = _0n$2, u = _1n$3; + while (a !== _0n$2) { + // JIT applies optimization if those two lines follow each other + const q = b / a; + const r = b % a; + const m = x - u * q; + // prettier-ignore + b = a, a = r, x = u, u = m; + } + const gcd = b; + if (gcd !== _1n$3) + throw new Error('invert: does not exist'); + return mod(x, modulo); +} +function assertIsSquare(Fp, root, n) { + if (!Fp.eql(Fp.sqr(root), n)) + throw new Error('Cannot find square root'); +} +// Not all roots are possible! Example which will throw: +// const NUM = +// n = 72057594037927816n; +// Fp = Field(BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab')); +function sqrt3mod4(Fp, n) { + const p1div4 = (Fp.ORDER + _1n$3) / _4n; + const root = Fp.pow(n, p1div4); + assertIsSquare(Fp, root, n); + return root; +} +function sqrt5mod8(Fp, n) { + const p5div8 = (Fp.ORDER - _5n) / _8n$1; + const n2 = Fp.mul(n, _2n$2); + const v = Fp.pow(n2, p5div8); + const nv = Fp.mul(n, v); + const i = Fp.mul(Fp.mul(nv, _2n$2), v); + const root = Fp.mul(nv, Fp.sub(i, Fp.ONE)); + assertIsSquare(Fp, root, n); + return root; +} +// Based on RFC9380, Kong algorithm +// prettier-ignore +function sqrt9mod16(P) { + const Fp_ = Field(P); + const tn = tonelliShanks(P); + const c1 = tn(Fp_, Fp_.neg(Fp_.ONE)); // 1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F + const c2 = tn(Fp_, c1); // 2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F + const c3 = tn(Fp_, Fp_.neg(c1)); // 3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F + const c4 = (P + _7n) / _16n; // 4. c4 = (q + 7) / 16 # Integer arithmetic + return (Fp, n) => { + let tv1 = Fp.pow(n, c4); // 1. tv1 = x^c4 + let tv2 = Fp.mul(tv1, c1); // 2. tv2 = c1 * tv1 + const tv3 = Fp.mul(tv1, c2); // 3. tv3 = c2 * tv1 + const tv4 = Fp.mul(tv1, c3); // 4. tv4 = c3 * tv1 + const e1 = Fp.eql(Fp.sqr(tv2), n); // 5. e1 = (tv2^2) == x + const e2 = Fp.eql(Fp.sqr(tv3), n); // 6. e2 = (tv3^2) == x + tv1 = Fp.cmov(tv1, tv2, e1); // 7. tv1 = CMOV(tv1, tv2, e1) # Select tv2 if (tv2^2) == x + tv2 = Fp.cmov(tv4, tv3, e2); // 8. tv2 = CMOV(tv4, tv3, e2) # Select tv3 if (tv3^2) == x + const e3 = Fp.eql(Fp.sqr(tv2), n); // 9. e3 = (tv2^2) == x + const root = Fp.cmov(tv1, tv2, e3); // 10. z = CMOV(tv1, tv2, e3) # Select sqrt from tv1 & tv2 + assertIsSquare(Fp, root, n); + return root; + }; +} +/** + * Tonelli-Shanks square root search algorithm. + * 1. https://eprint.iacr.org/2012/685.pdf (page 12) + * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks + * @param P field order + * @returns function that takes field Fp (created from P) and number n + */ +function tonelliShanks(P) { + // Initialization (precomputation). + // Caching initialization could boost perf by 7%. + if (P < _3n$1) + throw new Error('sqrt is not defined for small field'); + // Factor P - 1 = Q * 2^S, where Q is odd + let Q = P - _1n$3; + let S = 0; + while (Q % _2n$2 === _0n$2) { + Q /= _2n$2; + S++; + } + // Find the first quadratic non-residue Z >= 2 + let Z = _2n$2; + const _Fp = Field(P); + while (FpLegendre(_Fp, Z) === 1) { + // Basic primality test for P. After x iterations, chance of + // not finding quadratic non-residue is 2^x, so 2^1000. + if (Z++ > 1000) + throw new Error('Cannot find square root: probably non-prime P'); + } + // Fast-path; usually done before Z, but we do "primality test". + if (S === 1) + return sqrt3mod4; + // Slow-path + // TODO: test on Fp2 and others + let cc = _Fp.pow(Z, Q); // c = z^Q + const Q1div2 = (Q + _1n$3) / _2n$2; + return function tonelliSlow(Fp, n) { + if (Fp.is0(n)) + return n; + // Check if n is a quadratic residue using Legendre symbol + if (FpLegendre(Fp, n) !== 1) + throw new Error('Cannot find square root'); + // Initialize variables for the main loop + let M = S; + let c = Fp.mul(Fp.ONE, cc); // c = z^Q, move cc from field _Fp into field Fp + let t = Fp.pow(n, Q); // t = n^Q, first guess at the fudge factor + let R = Fp.pow(n, Q1div2); // R = n^((Q+1)/2), first guess at the square root + // Main loop + // while t != 1 + while (!Fp.eql(t, Fp.ONE)) { + if (Fp.is0(t)) + return Fp.ZERO; // if t=0 return R=0 + let i = 1; + // Find the smallest i >= 1 such that t^(2^i) ≡ 1 (mod P) + let t_tmp = Fp.sqr(t); // t^(2^1) + while (!Fp.eql(t_tmp, Fp.ONE)) { + i++; + t_tmp = Fp.sqr(t_tmp); // t^(2^2)... + if (i === M) + throw new Error('Cannot find square root'); + } + // Calculate the exponent for b: 2^(M - i - 1) + const exponent = _1n$3 << BigInt(M - i - 1); // bigint is important + const b = Fp.pow(c, exponent); // b = 2^(M - i - 1) + // Update variables + M = i; + c = Fp.sqr(b); // c = b^2 + t = Fp.mul(t, c); // t = (t * b^2) + R = Fp.mul(R, b); // R = R*b + } + return R; + }; +} +/** + * Square root for a finite field. Will try optimized versions first: + * + * 1. P ≡ 3 (mod 4) + * 2. P ≡ 5 (mod 8) + * 3. P ≡ 9 (mod 16) + * 4. Tonelli-Shanks algorithm + * + * Different algorithms can give different roots, it is up to user to decide which one they want. + * For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve). + */ +function FpSqrt(P) { + // P ≡ 3 (mod 4) => √n = n^((P+1)/4) + if (P % _4n === _3n$1) + return sqrt3mod4; + // P ≡ 5 (mod 8) => Atkin algorithm, page 10 of https://eprint.iacr.org/2012/685.pdf + if (P % _8n$1 === _5n) + return sqrt5mod8; + // P ≡ 9 (mod 16) => Kong algorithm, page 11 of https://eprint.iacr.org/2012/685.pdf (algorithm 4) + if (P % _16n === _9n) + return sqrt9mod16(P); + // Tonelli-Shanks algorithm + return tonelliShanks(P); +} +// prettier-ignore +const FIELD_FIELDS = [ + 'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr', + 'eql', 'add', 'sub', 'mul', 'pow', 'div', + 'addN', 'subN', 'mulN', 'sqrN' +]; +function validateField(field) { + const initial = { + ORDER: 'bigint', + MASK: 'bigint', + BYTES: 'number', + BITS: 'number', + }; + const opts = FIELD_FIELDS.reduce((map, val) => { + map[val] = 'function'; + return map; + }, initial); + _validateObject(field, opts); + // const max = 16384; + // if (field.BYTES < 1 || field.BYTES > max) throw new Error('invalid field'); + // if (field.BITS < 1 || field.BITS > 8 * max) throw new Error('invalid field'); + return field; +} +// Generic field functions +/** + * Same as `pow` but for Fp: non-constant-time. + * Unsafe in some contexts: uses ladder, so can expose bigint bits. + */ +function FpPow(Fp, num, power) { + if (power < _0n$2) + throw new Error('invalid exponent, negatives unsupported'); + if (power === _0n$2) + return Fp.ONE; + if (power === _1n$3) + return num; + let p = Fp.ONE; + let d = num; + while (power > _0n$2) { + if (power & _1n$3) + p = Fp.mul(p, d); + d = Fp.sqr(d); + power >>= _1n$3; + } + return p; +} +/** + * Efficiently invert an array of Field elements. + * Exception-free. Will return `undefined` for 0 elements. + * @param passZero map 0 to 0 (instead of undefined) + */ +function FpInvertBatch(Fp, nums, passZero = false) { + const inverted = new Array(nums.length).fill(passZero ? Fp.ZERO : undefined); + // Walk from first to last, multiply them by each other MOD p + const multipliedAcc = nums.reduce((acc, num, i) => { + if (Fp.is0(num)) + return acc; + inverted[i] = acc; + return Fp.mul(acc, num); + }, Fp.ONE); + // Invert last element + const invertedAcc = Fp.inv(multipliedAcc); + // Walk from last to first, multiply them by inverted each other MOD p + nums.reduceRight((acc, num, i) => { + if (Fp.is0(num)) + return acc; + inverted[i] = Fp.mul(acc, inverted[i]); + return Fp.mul(acc, num); + }, invertedAcc); + return inverted; +} +/** + * Legendre symbol. + * Legendre constant is used to calculate Legendre symbol (a | p) + * which denotes the value of a^((p-1)/2) (mod p). + * + * * (a | p) ≡ 1 if a is a square (mod p), quadratic residue + * * (a | p) ≡ -1 if a is not a square (mod p), quadratic non residue + * * (a | p) ≡ 0 if a ≡ 0 (mod p) + */ +function FpLegendre(Fp, n) { + // We can use 3rd argument as optional cache of this value + // but seems unneeded for now. The operation is very fast. + const p1mod2 = (Fp.ORDER - _1n$3) / _2n$2; + const powered = Fp.pow(n, p1mod2); + const yes = Fp.eql(powered, Fp.ONE); + const zero = Fp.eql(powered, Fp.ZERO); + const no = Fp.eql(powered, Fp.neg(Fp.ONE)); + if (!yes && !zero && !no) + throw new Error('invalid Legendre symbol result'); + return yes ? 1 : zero ? 0 : -1; +} +// CURVE.n lengths +function nLength(n, nBitLength) { + // Bit size, byte size of CURVE.n + if (nBitLength !== undefined) + anumber(nBitLength); + const _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length; + const nByteLength = Math.ceil(_nBitLength / 8); + return { nBitLength: _nBitLength, nByteLength }; +} +/** + * Creates a finite field. Major performance optimizations: + * * 1. Denormalized operations like mulN instead of mul. + * * 2. Identical object shape: never add or remove keys. + * * 3. `Object.freeze`. + * Fragile: always run a benchmark on a change. + * Security note: operations don't check 'isValid' for all elements for performance reasons, + * it is caller responsibility to check this. + * This is low-level code, please make sure you know what you're doing. + * + * Note about field properties: + * * CHARACTERISTIC p = prime number, number of elements in main subgroup. + * * ORDER q = similar to cofactor in curves, may be composite `q = p^m`. + * + * @param ORDER field order, probably prime, or could be composite + * @param bitLen how many bits the field consumes + * @param isLE (default: false) if encoding / decoding should be in little-endian + * @param redef optional faster redefinitions of sqrt and other methods + */ +function Field(ORDER, bitLenOrOpts, // TODO: use opts only in v2? +isLE = false, opts = {}) { + if (ORDER <= _0n$2) + throw new Error('invalid field: expected ORDER > 0, got ' + ORDER); + let _nbitLength = undefined; + let _sqrt = undefined; + let modFromBytes = false; + let allowedLengths = undefined; + if (typeof bitLenOrOpts === 'object' && bitLenOrOpts != null) { + if (opts.sqrt || isLE) + throw new Error('cannot specify opts in two arguments'); + const _opts = bitLenOrOpts; + if (_opts.BITS) + _nbitLength = _opts.BITS; + if (_opts.sqrt) + _sqrt = _opts.sqrt; + if (typeof _opts.isLE === 'boolean') + isLE = _opts.isLE; + if (typeof _opts.modFromBytes === 'boolean') + modFromBytes = _opts.modFromBytes; + allowedLengths = _opts.allowedLengths; + } + else { + if (typeof bitLenOrOpts === 'number') + _nbitLength = bitLenOrOpts; + if (opts.sqrt) + _sqrt = opts.sqrt; + } + const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, _nbitLength); + if (BYTES > 2048) + throw new Error('invalid field: expected ORDER of <= 2048 bytes'); + let sqrtP; // cached sqrtP + const f = Object.freeze({ + ORDER, + isLE, + BITS, + BYTES, + MASK: bitMask(BITS), + ZERO: _0n$2, + ONE: _1n$3, + allowedLengths: allowedLengths, + create: (num) => mod(num, ORDER), + isValid: (num) => { + if (typeof num !== 'bigint') + throw new Error('invalid field element: expected bigint, got ' + typeof num); + return _0n$2 <= num && num < ORDER; // 0 is valid element, but it's not invertible + }, + is0: (num) => num === _0n$2, + // is valid and invertible + isValidNot0: (num) => !f.is0(num) && f.isValid(num), + isOdd: (num) => (num & _1n$3) === _1n$3, + neg: (num) => mod(-num, ORDER), + eql: (lhs, rhs) => lhs === rhs, + sqr: (num) => mod(num * num, ORDER), + add: (lhs, rhs) => mod(lhs + rhs, ORDER), + sub: (lhs, rhs) => mod(lhs - rhs, ORDER), + mul: (lhs, rhs) => mod(lhs * rhs, ORDER), + pow: (num, power) => FpPow(f, num, power), + div: (lhs, rhs) => mod(lhs * invert(rhs, ORDER), ORDER), + // Same as above, but doesn't normalize + sqrN: (num) => num * num, + addN: (lhs, rhs) => lhs + rhs, + subN: (lhs, rhs) => lhs - rhs, + mulN: (lhs, rhs) => lhs * rhs, + inv: (num) => invert(num, ORDER), + sqrt: _sqrt || + ((n) => { + if (!sqrtP) + sqrtP = FpSqrt(ORDER); + return sqrtP(f, n); + }), + toBytes: (num) => (isLE ? numberToBytesLE(num, BYTES) : numberToBytesBE(num, BYTES)), + fromBytes: (bytes, skipValidation = true) => { + if (allowedLengths) { + if (!allowedLengths.includes(bytes.length) || bytes.length > BYTES) { + throw new Error('Field.fromBytes: expected ' + allowedLengths + ' bytes, got ' + bytes.length); + } + const padded = new Uint8Array(BYTES); + // isLE add 0 to right, !isLE to the left. + padded.set(bytes, isLE ? 0 : padded.length - bytes.length); + bytes = padded; + } + if (bytes.length !== BYTES) + throw new Error('Field.fromBytes: expected ' + BYTES + ' bytes, got ' + bytes.length); + let scalar = isLE ? bytesToNumberLE(bytes) : bytesToNumberBE(bytes); + if (modFromBytes) + scalar = mod(scalar, ORDER); + if (!skipValidation) + if (!f.isValid(scalar)) + throw new Error('invalid field element: outside of range 0..ORDER'); + // NOTE: we don't validate scalar here, please use isValid. This done such way because some + // protocol may allow non-reduced scalar that reduced later or changed some other way. + return scalar; + }, + // TODO: we don't need it here, move out to separate fn + invertBatch: (lst) => FpInvertBatch(f, lst), + // We can't move this out because Fp6, Fp12 implement it + // and it's unclear what to return in there. + cmov: (a, b, c) => (c ? b : a), + }); + return Object.freeze(f); +} + +/** + * Methods for elliptic curve multiplication by scalars. + * Contains wNAF, pippenger. + * @module + */ +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +const _0n$1 = BigInt(0); +const _1n$2 = BigInt(1); +function negateCt(condition, item) { + const neg = item.negate(); + return condition ? neg : item; +} +/** + * Takes a bunch of Projective Points but executes only one + * inversion on all of them. Inversion is very slow operation, + * so this improves performance massively. + * Optimization: converts a list of projective points to a list of identical points with Z=1. + */ +function normalizeZ(c, points) { + const invertedZs = FpInvertBatch(c.Fp, points.map((p) => p.Z)); + return points.map((p, i) => c.fromAffine(p.toAffine(invertedZs[i]))); +} +function validateW(W, bits) { + if (!Number.isSafeInteger(W) || W <= 0 || W > bits) + throw new Error('invalid window size, expected [1..' + bits + '], got W=' + W); +} +function calcWOpts(W, scalarBits) { + validateW(W, scalarBits); + const windows = Math.ceil(scalarBits / W) + 1; // W=8 33. Not 32, because we skip zero + const windowSize = 2 ** (W - 1); // W=8 128. Not 256, because we skip zero + const maxNumber = 2 ** W; // W=8 256 + const mask = bitMask(W); // W=8 255 == mask 0b11111111 + const shiftBy = BigInt(W); // W=8 8 + return { windows, windowSize, mask, maxNumber, shiftBy }; +} +function calcOffsets(n, window, wOpts) { + const { windowSize, mask, maxNumber, shiftBy } = wOpts; + let wbits = Number(n & mask); // extract W bits. + let nextN = n >> shiftBy; // shift number by W bits. + // What actually happens here: + // const highestBit = Number(mask ^ (mask >> 1n)); + // let wbits2 = wbits - 1; // skip zero + // if (wbits2 & highestBit) { wbits2 ^= Number(mask); // (~); + // split if bits > max: +224 => 256-32 + if (wbits > windowSize) { + // we skip zero, which means instead of `>= size-1`, we do `> size` + wbits -= maxNumber; // -32, can be maxNumber - wbits, but then we need to set isNeg here. + nextN += _1n$2; // +256 (carry) + } + const offsetStart = window * windowSize; + const offset = offsetStart + Math.abs(wbits) - 1; // -1 because we skip zero + const isZero = wbits === 0; // is current window slice a 0? + const isNeg = wbits < 0; // is current window slice negative? + const isNegF = window % 2 !== 0; // fake random statement for noise + const offsetF = offsetStart; // fake offset for noise + return { nextN, offset, isZero, isNeg, isNegF, offsetF }; +} +function validateMSMPoints(points, c) { + if (!Array.isArray(points)) + throw new Error('array expected'); + points.forEach((p, i) => { + if (!(p instanceof c)) + throw new Error('invalid point at index ' + i); + }); +} +function validateMSMScalars(scalars, field) { + if (!Array.isArray(scalars)) + throw new Error('array of scalars expected'); + scalars.forEach((s, i) => { + if (!field.isValid(s)) + throw new Error('invalid scalar at index ' + i); + }); +} +// Since points in different groups cannot be equal (different object constructor), +// we can have single place to store precomputes. +// Allows to make points frozen / immutable. +const pointPrecomputes = new WeakMap(); +const pointWindowSizes = new WeakMap(); +function getW(P) { + // To disable precomputes: + // return 1; + return pointWindowSizes.get(P) || 1; +} +function assert0(n) { + if (n !== _0n$1) + throw new Error('invalid wNAF'); +} +/** + * Elliptic curve multiplication of Point by scalar. Fragile. + * Table generation takes **30MB of ram and 10ms on high-end CPU**, + * but may take much longer on slow devices. Actual generation will happen on + * first call of `multiply()`. By default, `BASE` point is precomputed. + * + * Scalars should always be less than curve order: this should be checked inside of a curve itself. + * Creates precomputation tables for fast multiplication: + * - private scalar is split by fixed size windows of W bits + * - every window point is collected from window's table & added to accumulator + * - since windows are different, same point inside tables won't be accessed more than once per calc + * - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar) + * - +1 window is neccessary for wNAF + * - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication + * + * @todo Research returning 2d JS array of windows, instead of a single window. + * This would allow windows to be in different memory locations + */ +class wNAF { + // Parametrized with a given Point class (not individual point) + constructor(Point, bits) { + this.BASE = Point.BASE; + this.ZERO = Point.ZERO; + this.Fn = Point.Fn; + this.bits = bits; + } + // non-const time multiplication ladder + _unsafeLadder(elm, n, p = this.ZERO) { + let d = elm; + while (n > _0n$1) { + if (n & _1n$2) + p = p.add(d); + d = d.double(); + n >>= _1n$2; + } + return p; + } + /** + * Creates a wNAF precomputation window. Used for caching. + * Default window size is set by `utils.precompute()` and is equal to 8. + * Number of precomputed points depends on the curve size: + * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where: + * - 𝑊 is the window size + * - 𝑛 is the bitlength of the curve order. + * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224. + * @param point Point instance + * @param W window size + * @returns precomputed point tables flattened to a single array + */ + precomputeWindow(point, W) { + const { windows, windowSize } = calcWOpts(W, this.bits); + const points = []; + let p = point; + let base = p; + for (let window = 0; window < windows; window++) { + base = p; + points.push(base); + // i=1, bc we skip 0 + for (let i = 1; i < windowSize; i++) { + base = base.add(p); + points.push(base); + } + p = base.double(); + } + return points; + } + /** + * Implements ec multiplication using precomputed tables and w-ary non-adjacent form. + * More compact implementation: + * https://github.com/paulmillr/noble-secp256k1/blob/47cb1669b6e506ad66b35fe7d76132ae97465da2/index.ts#L502-L541 + * @returns real and fake (for const-time) points + */ + wNAF(W, precomputes, n) { + // Scalar should be smaller than field order + if (!this.Fn.isValid(n)) + throw new Error('invalid scalar'); + // Accumulators + let p = this.ZERO; + let f = this.BASE; + // This code was first written with assumption that 'f' and 'p' will never be infinity point: + // since each addition is multiplied by 2 ** W, it cannot cancel each other. However, + // there is negate now: it is possible that negated element from low value + // would be the same as high element, which will create carry into next window. + // It's not obvious how this can fail, but still worth investigating later. + const wo = calcWOpts(W, this.bits); + for (let window = 0; window < wo.windows; window++) { + // (n === _0n) is handled and not early-exited. isEven and offsetF are used for noise + const { nextN, offset, isZero, isNeg, isNegF, offsetF } = calcOffsets(n, window, wo); + n = nextN; + if (isZero) { + // bits are 0: add garbage to fake point + // Important part for const-time getPublicKey: add random "noise" point to f. + f = f.add(negateCt(isNegF, precomputes[offsetF])); + } + else { + // bits are 1: add to result point + p = p.add(negateCt(isNeg, precomputes[offset])); + } + } + assert0(n); + // Return both real and fake points: JIT won't eliminate f. + // At this point there is a way to F be infinity-point even if p is not, + // which makes it less const-time: around 1 bigint multiply. + return { p, f }; + } + /** + * Implements ec unsafe (non const-time) multiplication using precomputed tables and w-ary non-adjacent form. + * @param acc accumulator point to add result of multiplication + * @returns point + */ + wNAFUnsafe(W, precomputes, n, acc = this.ZERO) { + const wo = calcWOpts(W, this.bits); + for (let window = 0; window < wo.windows; window++) { + if (n === _0n$1) + break; // Early-exit, skip 0 value + const { nextN, offset, isZero, isNeg } = calcOffsets(n, window, wo); + n = nextN; + if (isZero) { + // Window bits are 0: skip processing. + // Move to next window. + continue; + } + else { + const item = precomputes[offset]; + acc = acc.add(isNeg ? item.negate() : item); // Re-using acc allows to save adds in MSM + } + } + assert0(n); + return acc; + } + getPrecomputes(W, point, transform) { + // Calculate precomputes on a first run, reuse them after + let comp = pointPrecomputes.get(point); + if (!comp) { + comp = this.precomputeWindow(point, W); + if (W !== 1) { + // Doing transform outside of if brings 15% perf hit + if (typeof transform === 'function') + comp = transform(comp); + pointPrecomputes.set(point, comp); + } + } + return comp; + } + cached(point, scalar, transform) { + const W = getW(point); + return this.wNAF(W, this.getPrecomputes(W, point, transform), scalar); + } + unsafe(point, scalar, transform, prev) { + const W = getW(point); + if (W === 1) + return this._unsafeLadder(point, scalar, prev); // For W=1 ladder is ~x2 faster + return this.wNAFUnsafe(W, this.getPrecomputes(W, point, transform), scalar, prev); + } + // We calculate precomputes for elliptic curve point multiplication + // using windowed method. This specifies window size and + // stores precomputed values. Usually only base point would be precomputed. + createCache(P, W) { + validateW(W, this.bits); + pointWindowSizes.set(P, W); + pointPrecomputes.delete(P); + } + hasCache(elm) { + return getW(elm) !== 1; + } +} +/** + * Pippenger algorithm for multi-scalar multiplication (MSM, Pa + Qb + Rc + ...). + * 30x faster vs naive addition on L=4096, 10x faster than precomputes. + * For N=254bit, L=1, it does: 1024 ADD + 254 DBL. For L=5: 1536 ADD + 254 DBL. + * Algorithmically constant-time (for same L), even when 1 point + scalar, or when scalar = 0. + * @param c Curve Point constructor + * @param fieldN field over CURVE.N - important that it's not over CURVE.P + * @param points array of L curve points + * @param scalars array of L scalars (aka secret keys / bigints) + */ +function pippenger(c, fieldN, points, scalars) { + // If we split scalars by some window (let's say 8 bits), every chunk will only + // take 256 buckets even if there are 4096 scalars, also re-uses double. + // TODO: + // - https://eprint.iacr.org/2024/750.pdf + // - https://tches.iacr.org/index.php/TCHES/article/view/10287 + // 0 is accepted in scalars + validateMSMPoints(points, c); + validateMSMScalars(scalars, fieldN); + const plength = points.length; + const slength = scalars.length; + if (plength !== slength) + throw new Error('arrays of points and scalars must have equal length'); + // if (plength === 0) throw new Error('array must be of length >= 2'); + const zero = c.ZERO; + const wbits = bitLen(BigInt(plength)); + let windowSize = 1; // bits + if (wbits > 12) + windowSize = wbits - 3; + else if (wbits > 4) + windowSize = wbits - 2; + else if (wbits > 0) + windowSize = 2; + const MASK = bitMask(windowSize); + const buckets = new Array(Number(MASK) + 1).fill(zero); // +1 for zero array + const lastBits = Math.floor((fieldN.BITS - 1) / windowSize) * windowSize; + let sum = zero; + for (let i = lastBits; i >= 0; i -= windowSize) { + buckets.fill(zero); + for (let j = 0; j < slength; j++) { + const scalar = scalars[j]; + const wbits = Number((scalar >> BigInt(i)) & MASK); + buckets[wbits] = buckets[wbits].add(points[j]); + } + let resI = zero; // not using this will do small speed-up, but will lose ct + // Skip first bucket, because it is zero + for (let j = buckets.length - 1, sumI = zero; j > 0; j--) { + sumI = sumI.add(buckets[j]); + resI = resI.add(sumI); + } + sum = sum.add(resI); + if (i !== 0) + for (let j = 0; j < windowSize; j++) + sum = sum.double(); + } + return sum; +} +function createField(order, field, isLE) { + if (field) { + if (field.ORDER !== order) + throw new Error('Field.ORDER must match order: Fp == p, Fn == n'); + validateField(field); + return field; + } + else { + return Field(order, { isLE }); + } +} +/** Validates CURVE opts and creates fields */ +function _createCurveFields(type, CURVE, curveOpts = {}, FpFnLE) { + if (FpFnLE === undefined) + FpFnLE = type === 'edwards'; + if (!CURVE || typeof CURVE !== 'object') + throw new Error(`expected valid ${type} CURVE object`); + for (const p of ['p', 'n', 'h']) { + const val = CURVE[p]; + if (!(typeof val === 'bigint' && val > _0n$1)) + throw new Error(`CURVE.${p} must be positive bigint`); + } + const Fp = createField(CURVE.p, curveOpts.Fp, FpFnLE); + const Fn = createField(CURVE.n, curveOpts.Fn, FpFnLE); + const _b = 'd'; + const params = ['Gx', 'Gy', 'a', _b]; + for (const p of params) { + // @ts-ignore + if (!Fp.isValid(CURVE[p])) + throw new Error(`CURVE.${p} must be valid field element of CURVE.Fp`); + } + CURVE = Object.freeze(Object.assign({}, CURVE)); + return { CURVE, Fp, Fn }; +} + +/** + * Twisted Edwards curve. The formula is: ax² + y² = 1 + dx²y². + * For design rationale of types / exports, see weierstrass module documentation. + * Untwisted Edwards curves exist, but they aren't used in real-world protocols. + * @module + */ +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +// Be friendly to bad ECMAScript parsers by not using bigint literals +// prettier-ignore +const _0n = BigInt(0), _1n$1 = BigInt(1), _2n$1 = BigInt(2), _8n = BigInt(8); +function isEdValidXY(Fp, CURVE, x, y) { + const x2 = Fp.sqr(x); + const y2 = Fp.sqr(y); + const left = Fp.add(Fp.mul(CURVE.a, x2), y2); + const right = Fp.add(Fp.ONE, Fp.mul(CURVE.d, Fp.mul(x2, y2))); + return Fp.eql(left, right); +} +function edwards(params, extraOpts = {}) { + const validated = _createCurveFields('edwards', params, extraOpts, extraOpts.FpFnLE); + const { Fp, Fn } = validated; + let CURVE = validated.CURVE; + const { h: cofactor } = CURVE; + _validateObject(extraOpts, {}, { uvRatio: 'function' }); + // Important: + // There are some places where Fp.BYTES is used instead of nByteLength. + // So far, everything has been tested with curves of Fp.BYTES == nByteLength. + // TODO: test and find curves which behave otherwise. + const MASK = _2n$1 << (BigInt(Fn.BYTES * 8) - _1n$1); + const modP = (n) => Fp.create(n); // Function overrides + // sqrt(u/v) + const uvRatio = extraOpts.uvRatio || + ((u, v) => { + try { + return { isValid: true, value: Fp.sqrt(Fp.div(u, v)) }; + } + catch (e) { + return { isValid: false, value: _0n }; + } + }); + // Validate whether the passed curve params are valid. + // equation ax² + y² = 1 + dx²y² should work for generator point. + if (!isEdValidXY(Fp, CURVE, CURVE.Gx, CURVE.Gy)) + throw new Error('bad curve params: generator point'); + /** + * Asserts coordinate is valid: 0 <= n < MASK. + * Coordinates >= Fp.ORDER are allowed for zip215. + */ + function acoord(title, n, banZero = false) { + const min = banZero ? _1n$1 : _0n; + aInRange('coordinate ' + title, n, min, MASK); + return n; + } + function aextpoint(other) { + if (!(other instanceof Point)) + throw new Error('ExtendedPoint expected'); + } + // Converts Extended point to default (x, y) coordinates. + // Can accept precomputed Z^-1 - for example, from invertBatch. + const toAffineMemo = memoized((p, iz) => { + const { X, Y, Z } = p; + const is0 = p.is0(); + if (iz == null) + iz = is0 ? _8n : Fp.inv(Z); // 8 was chosen arbitrarily + const x = modP(X * iz); + const y = modP(Y * iz); + const zz = Fp.mul(Z, iz); + if (is0) + return { x: _0n, y: _1n$1 }; + if (zz !== _1n$1) + throw new Error('invZ was invalid'); + return { x, y }; + }); + const assertValidMemo = memoized((p) => { + const { a, d } = CURVE; + if (p.is0()) + throw new Error('bad point: ZERO'); // TODO: optimize, with vars below? + // Equation in affine coordinates: ax² + y² = 1 + dx²y² + // Equation in projective coordinates (X/Z, Y/Z, Z): (aX² + Y²)Z² = Z⁴ + dX²Y² + const { X, Y, Z, T } = p; + const X2 = modP(X * X); // X² + const Y2 = modP(Y * Y); // Y² + const Z2 = modP(Z * Z); // Z² + const Z4 = modP(Z2 * Z2); // Z⁴ + const aX2 = modP(X2 * a); // aX² + const left = modP(Z2 * modP(aX2 + Y2)); // (aX² + Y²)Z² + const right = modP(Z4 + modP(d * modP(X2 * Y2))); // Z⁴ + dX²Y² + if (left !== right) + throw new Error('bad point: equation left != right (1)'); + // In Extended coordinates we also have T, which is x*y=T/Z: check X*Y == Z*T + const XY = modP(X * Y); + const ZT = modP(Z * T); + if (XY !== ZT) + throw new Error('bad point: equation left != right (2)'); + return true; + }); + // Extended Point works in extended coordinates: (X, Y, Z, T) ∋ (x=X/Z, y=Y/Z, T=xy). + // https://en.wikipedia.org/wiki/Twisted_Edwards_curve#Extended_coordinates + class Point { + constructor(X, Y, Z, T) { + this.X = acoord('x', X); + this.Y = acoord('y', Y); + this.Z = acoord('z', Z, true); + this.T = acoord('t', T); + Object.freeze(this); + } + static CURVE() { + return CURVE; + } + static fromAffine(p) { + if (p instanceof Point) + throw new Error('extended point not allowed'); + const { x, y } = p || {}; + acoord('x', x); + acoord('y', y); + return new Point(x, y, _1n$1, modP(x * y)); + } + // Uses algo from RFC8032 5.1.3. + static fromBytes(bytes, zip215 = false) { + const len = Fp.BYTES; + const { a, d } = CURVE; + bytes = copyBytes(_abytes2(bytes, len, 'point')); + _abool2(zip215, 'zip215'); + const normed = copyBytes(bytes); // copy again, we'll manipulate it + const lastByte = bytes[len - 1]; // select last byte + normed[len - 1] = lastByte & -129; // clear last bit + const y = bytesToNumberLE(normed); + // zip215=true is good for consensus-critical apps. =false follows RFC8032 / NIST186-5. + // RFC8032 prohibits >= p, but ZIP215 doesn't + // zip215=true: 0 <= y < MASK (2^256 for ed25519) + // zip215=false: 0 <= y < P (2^255-19 for ed25519) + const max = zip215 ? MASK : Fp.ORDER; + aInRange('point.y', y, _0n, max); + // Ed25519: x² = (y²-1)/(dy²+1) mod p. Ed448: x² = (y²-1)/(dy²-1) mod p. Generic case: + // ax²+y²=1+dx²y² => y²-1=dx²y²-ax² => y²-1=x²(dy²-a) => x²=(y²-1)/(dy²-a) + const y2 = modP(y * y); // denominator is always non-0 mod p. + const u = modP(y2 - _1n$1); // u = y² - 1 + const v = modP(d * y2 - a); // v = d y² + 1. + let { isValid, value: x } = uvRatio(u, v); // √(u/v) + if (!isValid) + throw new Error('bad point: invalid y coordinate'); + const isXOdd = (x & _1n$1) === _1n$1; // There are 2 square roots. Use x_0 bit to select proper + const isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit + if (!zip215 && x === _0n && isLastByteOdd) + // if x=0 and x_0 = 1, fail + throw new Error('bad point: x=0 and x_0=1'); + if (isLastByteOdd !== isXOdd) + x = modP(-x); // if x_0 != x mod 2, set x = p-x + return Point.fromAffine({ x, y }); + } + static fromHex(bytes, zip215 = false) { + return Point.fromBytes(ensureBytes('point', bytes), zip215); + } + get x() { + return this.toAffine().x; + } + get y() { + return this.toAffine().y; + } + precompute(windowSize = 8, isLazy = true) { + wnaf.createCache(this, windowSize); + if (!isLazy) + this.multiply(_2n$1); // random number + return this; + } + // Useful in fromAffine() - not for fromBytes(), which always created valid points. + assertValidity() { + assertValidMemo(this); + } + // Compare one point to another. + equals(other) { + aextpoint(other); + const { X: X1, Y: Y1, Z: Z1 } = this; + const { X: X2, Y: Y2, Z: Z2 } = other; + const X1Z2 = modP(X1 * Z2); + const X2Z1 = modP(X2 * Z1); + const Y1Z2 = modP(Y1 * Z2); + const Y2Z1 = modP(Y2 * Z1); + return X1Z2 === X2Z1 && Y1Z2 === Y2Z1; + } + is0() { + return this.equals(Point.ZERO); + } + negate() { + // Flips point sign to a negative one (-x, y in affine coords) + return new Point(modP(-this.X), this.Y, this.Z, modP(-this.T)); + } + // Fast algo for doubling Extended Point. + // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd + // Cost: 4M + 4S + 1*a + 6add + 1*2. + double() { + const { a } = CURVE; + const { X: X1, Y: Y1, Z: Z1 } = this; + const A = modP(X1 * X1); // A = X12 + const B = modP(Y1 * Y1); // B = Y12 + const C = modP(_2n$1 * modP(Z1 * Z1)); // C = 2*Z12 + const D = modP(a * A); // D = a*A + const x1y1 = X1 + Y1; + const E = modP(modP(x1y1 * x1y1) - A - B); // E = (X1+Y1)2-A-B + const G = D + B; // G = D+B + const F = G - C; // F = G-C + const H = D - B; // H = D-B + const X3 = modP(E * F); // X3 = E*F + const Y3 = modP(G * H); // Y3 = G*H + const T3 = modP(E * H); // T3 = E*H + const Z3 = modP(F * G); // Z3 = F*G + return new Point(X3, Y3, Z3, T3); + } + // Fast algo for adding 2 Extended Points. + // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#addition-add-2008-hwcd + // Cost: 9M + 1*a + 1*d + 7add. + add(other) { + aextpoint(other); + const { a, d } = CURVE; + const { X: X1, Y: Y1, Z: Z1, T: T1 } = this; + const { X: X2, Y: Y2, Z: Z2, T: T2 } = other; + const A = modP(X1 * X2); // A = X1*X2 + const B = modP(Y1 * Y2); // B = Y1*Y2 + const C = modP(T1 * d * T2); // C = T1*d*T2 + const D = modP(Z1 * Z2); // D = Z1*Z2 + const E = modP((X1 + Y1) * (X2 + Y2) - A - B); // E = (X1+Y1)*(X2+Y2)-A-B + const F = D - C; // F = D-C + const G = D + C; // G = D+C + const H = modP(B - a * A); // H = B-a*A + const X3 = modP(E * F); // X3 = E*F + const Y3 = modP(G * H); // Y3 = G*H + const T3 = modP(E * H); // T3 = E*H + const Z3 = modP(F * G); // Z3 = F*G + return new Point(X3, Y3, Z3, T3); + } + subtract(other) { + return this.add(other.negate()); + } + // Constant-time multiplication. + multiply(scalar) { + // 1 <= scalar < L + if (!Fn.isValidNot0(scalar)) + throw new Error('invalid scalar: expected 1 <= sc < curve.n'); + const { p, f } = wnaf.cached(this, scalar, (p) => normalizeZ(Point, p)); + return normalizeZ(Point, [p, f])[0]; + } + // Non-constant-time multiplication. Uses double-and-add algorithm. + // It's faster, but should only be used when you don't care about + // an exposed private key e.g. sig verification. + // Does NOT allow scalars higher than CURVE.n. + // Accepts optional accumulator to merge with multiply (important for sparse scalars) + multiplyUnsafe(scalar, acc = Point.ZERO) { + // 0 <= scalar < L + if (!Fn.isValid(scalar)) + throw new Error('invalid scalar: expected 0 <= sc < curve.n'); + if (scalar === _0n) + return Point.ZERO; + if (this.is0() || scalar === _1n$1) + return this; + return wnaf.unsafe(this, scalar, (p) => normalizeZ(Point, p), acc); + } + // Checks if point is of small order. + // If you add something to small order point, you will have "dirty" + // point with torsion component. + // Multiplies point by cofactor and checks if the result is 0. + isSmallOrder() { + return this.multiplyUnsafe(cofactor).is0(); + } + // Multiplies point by curve order and checks if the result is 0. + // Returns `false` is the point is dirty. + isTorsionFree() { + return wnaf.unsafe(this, CURVE.n).is0(); + } + // Converts Extended point to default (x, y) coordinates. + // Can accept precomputed Z^-1 - for example, from invertBatch. + toAffine(invertedZ) { + return toAffineMemo(this, invertedZ); + } + clearCofactor() { + if (cofactor === _1n$1) + return this; + return this.multiplyUnsafe(cofactor); + } + toBytes() { + const { x, y } = this.toAffine(); + // Fp.toBytes() allows non-canonical encoding of y (>= p). + const bytes = Fp.toBytes(y); + // Each y has 2 valid points: (x, y), (x,-y). + // When compressing, it's enough to store y and use the last byte to encode sign of x + bytes[bytes.length - 1] |= x & _1n$1 ? 0x80 : 0; + return bytes; + } + toHex() { + return bytesToHex(this.toBytes()); + } + toString() { + return ``; + } + // TODO: remove + get ex() { + return this.X; + } + get ey() { + return this.Y; + } + get ez() { + return this.Z; + } + get et() { + return this.T; + } + static normalizeZ(points) { + return normalizeZ(Point, points); + } + static msm(points, scalars) { + return pippenger(Point, Fn, points, scalars); + } + _setWindowSize(windowSize) { + this.precompute(windowSize); + } + toRawBytes() { + return this.toBytes(); + } + } + // base / generator point + Point.BASE = new Point(CURVE.Gx, CURVE.Gy, _1n$1, modP(CURVE.Gx * CURVE.Gy)); + // zero / infinity / identity point + Point.ZERO = new Point(_0n, _1n$1, _1n$1, _0n); // 0, 1, 1, 0 + // math field + Point.Fp = Fp; + // scalar field + Point.Fn = Fn; + const wnaf = new wNAF(Point, Fn.BITS); + Point.BASE.precompute(8); // Enable precomputes. Slows down first publicKey computation by 20ms. + return Point; +} +/** + * Initializes EdDSA signatures over given Edwards curve. + */ +function eddsa(Point, cHash, eddsaOpts = {}) { + if (typeof cHash !== 'function') + throw new Error('"hash" function param is required'); + _validateObject(eddsaOpts, {}, { + adjustScalarBytes: 'function', + randomBytes: 'function', + domain: 'function', + prehash: 'function', + mapToCurve: 'function', + }); + const { prehash } = eddsaOpts; + const { BASE, Fp, Fn } = Point; + const randomBytes$1 = eddsaOpts.randomBytes || randomBytes; + const adjustScalarBytes = eddsaOpts.adjustScalarBytes || ((bytes) => bytes); + const domain = eddsaOpts.domain || + ((data, ctx, phflag) => { + _abool2(phflag, 'phflag'); + if (ctx.length || phflag) + throw new Error('Contexts/pre-hash are not supported'); + return data; + }); // NOOP + // Little-endian SHA512 with modulo n + function modN_LE(hash) { + return Fn.create(bytesToNumberLE(hash)); // Not Fn.fromBytes: it has length limit + } + // Get the hashed private scalar per RFC8032 5.1.5 + function getPrivateScalar(key) { + const len = lengths.secretKey; + key = ensureBytes('private key', key, len); + // Hash private key with curve's hash function to produce uniformingly random input + // Check byte lengths: ensure(64, h(ensure(32, key))) + const hashed = ensureBytes('hashed private key', cHash(key), 2 * len); + const head = adjustScalarBytes(hashed.slice(0, len)); // clear first half bits, produce FE + const prefix = hashed.slice(len, 2 * len); // second half is called key prefix (5.1.6) + const scalar = modN_LE(head); // The actual private scalar + return { head, prefix, scalar }; + } + /** Convenience method that creates public key from scalar. RFC8032 5.1.5 */ + function getExtendedPublicKey(secretKey) { + const { head, prefix, scalar } = getPrivateScalar(secretKey); + const point = BASE.multiply(scalar); // Point on Edwards curve aka public key + const pointBytes = point.toBytes(); + return { head, prefix, scalar, point, pointBytes }; + } + /** Calculates EdDSA pub key. RFC8032 5.1.5. */ + function getPublicKey(secretKey) { + return getExtendedPublicKey(secretKey).pointBytes; + } + // int('LE', SHA512(dom2(F, C) || msgs)) mod N + function hashDomainToScalar(context = Uint8Array.of(), ...msgs) { + const msg = concatBytes(...msgs); + return modN_LE(cHash(domain(msg, ensureBytes('context', context), !!prehash))); + } + /** Signs message with privateKey. RFC8032 5.1.6 */ + function sign(msg, secretKey, options = {}) { + msg = ensureBytes('message', msg); + if (prehash) + msg = prehash(msg); // for ed25519ph etc. + const { prefix, scalar, pointBytes } = getExtendedPublicKey(secretKey); + const r = hashDomainToScalar(options.context, prefix, msg); // r = dom2(F, C) || prefix || PH(M) + const R = BASE.multiply(r).toBytes(); // R = rG + const k = hashDomainToScalar(options.context, R, pointBytes, msg); // R || A || PH(M) + const s = Fn.create(r + k * scalar); // S = (r + k * s) mod L + if (!Fn.isValid(s)) + throw new Error('sign failed: invalid s'); // 0 <= s < L + const rs = concatBytes(R, Fn.toBytes(s)); + return _abytes2(rs, lengths.signature, 'result'); + } + // verification rule is either zip215 or rfc8032 / nist186-5. Consult fromHex: + const verifyOpts = { zip215: true }; + /** + * Verifies EdDSA signature against message and public key. RFC8032 5.1.7. + * An extended group equation is checked. + */ + function verify(sig, msg, publicKey, options = verifyOpts) { + const { context, zip215 } = options; + const len = lengths.signature; + sig = ensureBytes('signature', sig, len); + msg = ensureBytes('message', msg); + publicKey = ensureBytes('publicKey', publicKey, lengths.publicKey); + if (zip215 !== undefined) + _abool2(zip215, 'zip215'); + if (prehash) + msg = prehash(msg); // for ed25519ph, etc + const mid = len / 2; + const r = sig.subarray(0, mid); + const s = bytesToNumberLE(sig.subarray(mid, len)); + let A, R, SB; + try { + // zip215=true is good for consensus-critical apps. =false follows RFC8032 / NIST186-5. + // zip215=true: 0 <= y < MASK (2^256 for ed25519) + // zip215=false: 0 <= y < P (2^255-19 for ed25519) + A = Point.fromBytes(publicKey, zip215); + R = Point.fromBytes(r, zip215); + SB = BASE.multiplyUnsafe(s); // 0 <= s < l is done inside + } + catch (error) { + return false; + } + if (!zip215 && A.isSmallOrder()) + return false; // zip215 allows public keys of small order + const k = hashDomainToScalar(context, R.toBytes(), A.toBytes(), msg); + const RkA = R.add(A.multiplyUnsafe(k)); + // Extended group equation + // [8][S]B = [8]R + [8][k]A' + return RkA.subtract(SB).clearCofactor().is0(); + } + const _size = Fp.BYTES; // 32 for ed25519, 57 for ed448 + const lengths = { + secretKey: _size, + publicKey: _size, + signature: 2 * _size, + seed: _size, + }; + function randomSecretKey(seed = randomBytes$1(lengths.seed)) { + return _abytes2(seed, lengths.seed, 'seed'); + } + function keygen(seed) { + const secretKey = utils.randomSecretKey(seed); + return { secretKey, publicKey: getPublicKey(secretKey) }; + } + function isValidSecretKey(key) { + return isBytes(key) && key.length === Fn.BYTES; + } + function isValidPublicKey(key, zip215) { + try { + return !!Point.fromBytes(key, zip215); + } + catch (error) { + return false; + } + } + const utils = { + getExtendedPublicKey, + randomSecretKey, + isValidSecretKey, + isValidPublicKey, + /** + * Converts ed public key to x public key. Uses formula: + * - ed25519: + * - `(u, v) = ((1+y)/(1-y), sqrt(-486664)*u/x)` + * - `(x, y) = (sqrt(-486664)*u/v, (u-1)/(u+1))` + * - ed448: + * - `(u, v) = ((y-1)/(y+1), sqrt(156324)*u/x)` + * - `(x, y) = (sqrt(156324)*u/v, (1+u)/(1-u))` + */ + toMontgomery(publicKey) { + const { y } = Point.fromBytes(publicKey); + const size = lengths.publicKey; + const is25519 = size === 32; + if (!is25519 && size !== 57) + throw new Error('only defined for 25519 and 448'); + const u = is25519 ? Fp.div(_1n$1 + y, _1n$1 - y) : Fp.div(y - _1n$1, y + _1n$1); + return Fp.toBytes(u); + }, + toMontgomerySecret(secretKey) { + const size = lengths.secretKey; + _abytes2(secretKey, size); + const hashed = cHash(secretKey.subarray(0, size)); + return adjustScalarBytes(hashed).subarray(0, size); + }, + /** @deprecated */ + randomPrivateKey: randomSecretKey, + /** @deprecated */ + precompute(windowSize = 8, point = Point.BASE) { + return point.precompute(windowSize, false); + }, + }; + return Object.freeze({ + keygen, + getPublicKey, + sign, + verify, + utils, + Point, + lengths, + }); +} +function _eddsa_legacy_opts_to_new(c) { + const CURVE = { + a: c.a, + d: c.d, + p: c.Fp.ORDER, + n: c.n, + h: c.h, + Gx: c.Gx, + Gy: c.Gy, + }; + const Fp = c.Fp; + const Fn = Field(CURVE.n, c.nBitLength, true); + const curveOpts = { Fp, Fn, uvRatio: c.uvRatio }; + const eddsaOpts = { + randomBytes: c.randomBytes, + adjustScalarBytes: c.adjustScalarBytes, + domain: c.domain, + prehash: c.prehash, + mapToCurve: c.mapToCurve, + }; + return { CURVE, curveOpts, hash: c.hash, eddsaOpts }; +} +function _eddsa_new_output_to_legacy(c, eddsa) { + const Point = eddsa.Point; + const legacy = Object.assign({}, eddsa, { + ExtendedPoint: Point, + CURVE: c, + nBitLength: Point.Fn.BITS, + nByteLength: Point.Fn.BYTES, + }); + return legacy; +} +// TODO: remove. Use eddsa +function twistedEdwards(c) { + const { CURVE, curveOpts, hash, eddsaOpts } = _eddsa_legacy_opts_to_new(c); + const Point = edwards(CURVE, curveOpts); + const EDDSA = eddsa(Point, hash, eddsaOpts); + return _eddsa_new_output_to_legacy(c, EDDSA); +} + +/** + * Edwards448 (not Ed448-Goldilocks) curve with following addons: + * - X448 ECDH + * - Decaf cofactor elimination + * - Elligator hash-to-group / point indistinguishability + * Conforms to RFC 8032 https://www.rfc-editor.org/rfc/rfc8032.html#section-5.2 + * @module + */ +/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +// edwards448 curve +// a = 1n +// d = Fp.neg(39081n) +// Finite field 2n**448n - 2n**224n - 1n +// Subgroup order +// 2n**446n - 13818066809895115352007386748515426880336692474882178609894547503885n +const ed448_CURVE = { + p: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff'), + n: BigInt('0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3'), + h: BigInt(4), + a: BigInt(1), + d: BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff6756'), + Gx: BigInt('0x4f1970c66bed0ded221d15a622bf36da9e146570470f1767ea6de324a3d3a46412ae1af72ab66511433b80e18b00938e2626a82bc70cc05e'), + Gy: BigInt('0x693f46716eb6bc248876203756c9c7624bea73736ca3984087789c1e05a0c2d73ad3ff1ce67c39c4fdbd132c4ed7c8ad9808795bf230fa14'), +}; +// E448 NIST curve is identical to edwards448, except for: +// d = 39082/39081 +// Gx = 3/2 +const E448_CURVE = Object.assign({}, ed448_CURVE, { + d: BigInt('0xd78b4bdc7f0daf19f24f38c29373a2ccad46157242a50f37809b1da3412a12e79ccc9c81264cfe9ad080997058fb61c4243cc32dbaa156b9'), + Gx: BigInt('0x79a70b2b70400553ae7c9df416c792c61128751ac92969240c25a07d728bdc93e21f7787ed6972249de732f38496cd11698713093e9c04fc'), + Gy: BigInt('0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000001'), +}); +const shake256_114 = /* @__PURE__ */ createHasher(() => shake256.create({ dkLen: 114 })); +// prettier-ignore +const _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3); BigInt(4); const _11n = BigInt(11); +// prettier-ignore +const _22n = BigInt(22), _44n = BigInt(44), _88n = BigInt(88), _223n = BigInt(223); +// powPminus3div4 calculates z = x^k mod p, where k = (p-3)/4. +// Used for efficient square root calculation. +// ((P-3)/4).toString(2) would produce bits [223x 1, 0, 222x 1] +function ed448_pow_Pminus3div4(x) { + const P = ed448_CURVE.p; + const b2 = (x * x * x) % P; + const b3 = (b2 * b2 * x) % P; + const b6 = (pow2(b3, _3n, P) * b3) % P; + const b9 = (pow2(b6, _3n, P) * b3) % P; + const b11 = (pow2(b9, _2n, P) * b2) % P; + const b22 = (pow2(b11, _11n, P) * b11) % P; + const b44 = (pow2(b22, _22n, P) * b22) % P; + const b88 = (pow2(b44, _44n, P) * b44) % P; + const b176 = (pow2(b88, _88n, P) * b88) % P; + const b220 = (pow2(b176, _44n, P) * b44) % P; + const b222 = (pow2(b220, _2n, P) * b2) % P; + const b223 = (pow2(b222, _1n, P) * x) % P; + return (pow2(b223, _223n, P) * b222) % P; +} +function adjustScalarBytes(bytes) { + // Section 5: Likewise, for X448, set the two least significant bits of the first byte to 0, + bytes[0] &= 252; // 0b11111100 + // and the most significant bit of the last byte to 1. + bytes[55] |= 128; // 0b10000000 + // NOTE: is NOOP for 56 bytes scalars (X25519/X448) + bytes[56] = 0; // Byte outside of group (456 buts vs 448 bits) + return bytes; +} +// Constant-time ratio of u to v. Allows to combine inversion and square root u/√v. +// Uses algo from RFC8032 5.1.3. +function uvRatio(u, v) { + const P = ed448_CURVE.p; + // https://www.rfc-editor.org/rfc/rfc8032#section-5.2.3 + // To compute the square root of (u/v), the first step is to compute the + // candidate root x = (u/v)^((p+1)/4). This can be done using the + // following trick, to use a single modular powering for both the + // inversion of v and the square root: + // x = (u/v)^((p+1)/4) = u³v(u⁵v³)^((p-3)/4) (mod p) + const u2v = mod(u * u * v, P); // u²v + const u3v = mod(u2v * u, P); // u³v + const u5v3 = mod(u3v * u2v * v, P); // u⁵v³ + const root = ed448_pow_Pminus3div4(u5v3); + const x = mod(u3v * root, P); + // Verify that root is exists + const x2 = mod(x * x, P); // x² + // If vx² = u, the recovered x-coordinate is x. Otherwise, no + // square root exists, and the decoding fails. + return { isValid: mod(x2 * v, P) === u, value: x }; +} +// Finite field 2n**448n - 2n**224n - 1n +// The value fits in 448 bits, but we use 456-bit (57-byte) elements because of bitflags. +// - ed25519 fits in 255 bits, allowing using last 1 byte for specifying bit flag of point negation. +// - ed448 fits in 448 bits. We can't use last 1 byte: we can only use a bit 224 in the middle. +const Fp = /* @__PURE__ */ (() => Field(ed448_CURVE.p, { BITS: 456, isLE: true }))(); +const Fn = /* @__PURE__ */ (() => Field(ed448_CURVE.n, { BITS: 456, isLE: true }))(); +// SHAKE256(dom4(phflag,context)||x, 114) +function dom4(data, ctx, phflag) { + if (ctx.length > 255) + throw new Error('context must be smaller than 255, got: ' + ctx.length); + return concatBytes(asciiToBytes('SigEd448'), new Uint8Array([phflag ? 1 : 0, ctx.length]), ctx, data); +} +// const ed448_eddsa_opts = { adjustScalarBytes, domain: dom4 }; +// const ed448_Point = edwards(ed448_CURVE, { Fp, Fn, uvRatio }); +const ED448_DEF = /* @__PURE__ */ (() => ({ + ...ed448_CURVE, + Fp, + Fn, + nBitLength: Fn.BITS, + hash: shake256_114, + adjustScalarBytes, + domain: dom4, + uvRatio, +}))(); +/** + * ed448 EdDSA curve and methods. + * @example + * import { ed448 } from '@noble/curves/ed448'; + * const { secretKey, publicKey } = ed448.keygen(); + * const msg = new TextEncoder().encode('hello'); + * const sig = ed448.sign(msg, secretKey); + * const isValid = ed448.verify(sig, msg, publicKey); + */ +const ed448 = twistedEdwards(ED448_DEF); +/** + * E448 curve, defined by NIST. + * E448 != edwards448 used in ed448. + * E448 is birationally equivalent to edwards448. + */ +edwards(E448_CURVE); + +function sha256(data) { + return r.crypto_hash_sha256(data); +} +function sha512Streaming(chunks, onProgress, totalBytes) { + const SEG = 4 * 1024 * 1024; + const state = r.crypto_hash_sha512_init(); + for (const chunk of chunks) { + for (let off = 0; off < chunk.length; off += SEG) { + const end = Math.min(off + SEG, chunk.length); + r.crypto_hash_sha512_update(state, chunk.subarray(off, end)); + } + } + return r.crypto_hash_sha512_final(state); +} + +await r.ready; +function generateEd25519KeyPair() { + const kp = r.crypto_sign_keypair(); + return { publicKey: kp.publicKey, privateKey: kp.privateKey }; +} +function ed25519KeyPairFromSeed(seed) { + const kp = r.crypto_sign_seed_keypair(seed); + return { publicKey: kp.publicKey, privateKey: kp.privateKey }; +} +function generateX25519KeyPair() { + const kp = r.crypto_box_keypair(); + return { publicKey: kp.publicKey, privateKey: kp.privateKey }; +} +function sign(privateKey, msg) { + return r.crypto_sign_detached(msg, privateKey); +} +function verify(publicKey, sig, msg) { + try { + return r.crypto_sign_verify_detached(sig, msg, publicKey); + } catch { + return false; + } +} +function dh(publicKey, privateKey) { + return r.crypto_scalarmult(privateKey, publicKey); +} +const ED25519_PUBKEY_DER_PREFIX = new Uint8Array([ + 48, + 42, + 48, + 5, + 6, + 3, + 43, + 101, + 112, + 3, + 33, + 0 +]); +const X25519_PUBKEY_DER_PREFIX = new Uint8Array([ + 48, + 42, + 48, + 5, + 6, + 3, + 43, + 101, + 110, + 3, + 33, + 0 +]); +function encodePubKeyEd25519(rawPubKey) { + return concatBytes$1(ED25519_PUBKEY_DER_PREFIX, rawPubKey); +} +function decodePubKeyEd25519(der) { + if (der.length !== 44) throw new Error("decodePubKeyEd25519: invalid length"); + for (let i = 0; i < ED25519_PUBKEY_DER_PREFIX.length; i++) { + if (der[i] !== ED25519_PUBKEY_DER_PREFIX[i]) throw new Error("decodePubKeyEd25519: invalid DER prefix"); + } + return der.subarray(12); +} +function encodePubKeyX25519(rawPubKey) { + return concatBytes$1(X25519_PUBKEY_DER_PREFIX, rawPubKey); +} +function decodePubKeyX25519(der) { + if (der.length !== 44) throw new Error("decodePubKeyX25519: invalid length"); + for (let i = 0; i < X25519_PUBKEY_DER_PREFIX.length; i++) { + if (der[i] !== X25519_PUBKEY_DER_PREFIX[i]) throw new Error("decodePubKeyX25519: invalid DER prefix"); + } + return der.subarray(12); +} +const ED448_PUBKEY_DER_PREFIX = new Uint8Array([ + 48, + 67, + 48, + 5, + 6, + 3, + 43, + 101, + 113, + 3, + 58, + 0 +]); +function decodePubKeyEd448(der) { + if (der.length !== 69) throw new Error("decodePubKeyEd448: invalid length"); + for (let i = 0; i < ED448_PUBKEY_DER_PREFIX.length; i++) { + if (der[i] !== ED448_PUBKEY_DER_PREFIX[i]) throw new Error("decodePubKeyEd448: invalid DER prefix"); + } + return der.subarray(12); +} +function verifyEd448(publicKey, sig, msg) { + try { + return ed448.verify(sig, msg, publicKey); + } catch { + return false; + } +} +const ED25519_PRIVKEY_DER_PREFIX = new Uint8Array([ + 48, + 46, + 2, + 1, + 0, + 48, + 5, + 6, + 3, + 43, + 101, + 112, + 4, + 34, + 4, + 32 +]); +function encodePrivKeyEd25519(privateKey) { + const seed = privateKey.subarray(0, 32); + return concatBytes$1(ED25519_PRIVKEY_DER_PREFIX, seed); +} +function decodePrivKeyEd25519(der) { + if (der.length !== 48) throw new Error("decodePrivKeyEd25519: invalid length"); + for (let i = 0; i < ED25519_PRIVKEY_DER_PREFIX.length; i++) { + if (der[i] !== ED25519_PRIVKEY_DER_PREFIX[i]) throw new Error("decodePrivKeyEd25519: invalid DER prefix"); + } + return der.subarray(16); +} + +const chunkSize0 = kb(64); +const chunkSize1 = kb(256); +const chunkSize2 = mb(1); +const chunkSize3 = mb(4); +const fileSizeLen = 8; +const authTagSize = 16; +function size34(sz) { + return Math.floor(sz * 3 / 4); +} +function prepareChunkSizes(payloadSize) { + let smallSize, bigSize; + if (payloadSize > size34(chunkSize3)) { + smallSize = chunkSize2; + bigSize = chunkSize3; + } else if (payloadSize > size34(chunkSize2)) { + smallSize = chunkSize1; + bigSize = chunkSize2; + } else { + smallSize = chunkSize0; + bigSize = chunkSize1; + } + function prepareSizes(size) { + if (size === 0) return []; + if (size >= bigSize) { + const n1 = Math.floor(size / bigSize); + const remSz = size % bigSize; + return new Array(n1).fill(bigSize).concat(prepareSizes(remSz)); + } + if (size > size34(bigSize)) return [bigSize]; + const n2 = Math.floor(size / smallSize); + const remSz2 = size % smallSize; + return new Array(remSz2 === 0 ? n2 : n2 + 1).fill(smallSize); + } + return prepareSizes(payloadSize); +} +function prepareChunkSpecs(chunkSizes) { + const specs = []; + let offset = 0; + for (const size of chunkSizes) { + specs.push({ chunkOffset: offset, chunkSize: size }); + offset += size; + } + return specs; +} +function getChunkDigest(chunk) { + return sha256(chunk); +} + +const XFTP_BLOCK_SIZE = 16384; +const initialXFTPVersion = 1; +const currentXFTPVersion = 3; +function blockPad(msg, blockSize = XFTP_BLOCK_SIZE) { + const len = msg.length; + const padLen = blockSize - len - 2; + if (padLen < 0) throw new Error("blockPad: message too large for block"); + const result = new Uint8Array(blockSize); + result[0] = len >>> 8 & 255; + result[1] = len & 255; + result.set(msg, 2); + result.fill(35, 2 + len); + return result; +} +function blockUnpad(block) { + if (block.length < 2) throw new Error("blockUnpad: too short"); + const len = block[0] << 8 | block[1]; + if (2 + len > block.length) throw new Error("blockUnpad: invalid length"); + return block.subarray(2, 2 + len); +} +function encodeAuthTransmission(sessionId, corrId, entityId, cmdBytes, privateKey) { + const tInner = concatBytes$1(encodeBytes(corrId), encodeBytes(entityId), cmdBytes); + const tForAuth = concatBytes$1(encodeBytes(sessionId), tInner); + const signature = sign(privateKey, tForAuth); + const authenticator = encodeBytes(signature); + const encoded = concatBytes$1(authenticator, tForAuth); + const batch = concatBytes$1(new Uint8Array([1]), encodeLarge(encoded)); + return blockPad(batch); +} +function decodeTransmission(sessionId, block) { + const raw = blockUnpad(block); + const d = new Decoder(raw); + const count = d.anyByte(); + if (count !== 1) throw new Error("decodeTransmission: expected batch count 1, got " + count); + const transmission = decodeLarge(d); + const td = new Decoder(transmission); + decodeBytes(td); + const sessId = decodeBytes(td); + if (sessId.length !== sessionId.length || !sessId.every((b, i) => b === sessionId[i])) { + console.error("[XFTP] Session ID mismatch in server response"); + throw new Error("Session ID mismatch in server response"); + } + const corrId = decodeBytes(td); + const entityId = decodeBytes(td); + const command = td.takeAll(); + return { corrId, entityId, command }; +} + +function decodeVersionRange(d) { + const minVersion = decodeWord16(d); + const maxVersion = decodeWord16(d); + if (minVersion > maxVersion) throw new Error("invalid version range: min > max"); + return { minVersion, maxVersion }; +} +function compatibleVRange(a, b) { + const min = Math.max(a.minVersion, b.minVersion); + const max = Math.min(a.maxVersion, b.maxVersion); + if (min > max) return null; + return { minVersion: min, maxVersion: max }; +} +function encodeClientHello(hello) { + const body = encodeMaybe(encodeBytes, hello.webChallenge); + return hello.webChallenge ? blockPad(body, XFTP_BLOCK_SIZE) : body; +} +function encodeClientHandshake(ch) { + const body = concatBytes$1(encodeWord16(ch.xftpVersion), encodeBytes(ch.keyHash)); + return blockPad(body, XFTP_BLOCK_SIZE); +} +function decodeServerHandshake(block) { + const raw = blockUnpad(block); + if (raw.length < 20) { + const text = String.fromCharCode(...raw); + if (/^[A-Z_]+$/.test(text)) { + console.error("[XFTP] Server handshake error: %s", text); + throw new Error("Server handshake error: " + text); + } + } + const d = new Decoder(raw); + const xftpVersionRange = decodeVersionRange(d); + const sessionId = decodeBytes(d); + const certChainDer = decodeNonEmpty(decodeLarge, d); + const signedKeyDer = decodeLarge(d); + let webIdentityProof = null; + if (d.remaining() > 0) { + const sigBytes = decodeBytes(d); + webIdentityProof = sigBytes.length === 0 ? null : sigBytes; + } + return { xftpVersionRange, sessionId, certChainDer, signedKeyDer, webIdentityProof }; +} +function chainIdCaCerts(certChainDer) { + switch (certChainDer.length) { + case 0: + return { type: "empty" }; + case 1: + return { type: "self", cert: certChainDer[0] }; + case 2: + return { type: "valid", leafCert: certChainDer[0], idCert: certChainDer[1], caCert: certChainDer[1] }; + case 3: + return { type: "valid", leafCert: certChainDer[0], idCert: certChainDer[1], caCert: certChainDer[2] }; + case 4: + return { type: "valid", leafCert: certChainDer[0], idCert: certChainDer[1], caCert: certChainDer[3] }; + default: + return { type: "long" }; + } +} +function derLength(d) { + const first = d.anyByte(); + if (first < 128) return first; + const numBytes = first & 127; + if (numBytes === 0 || numBytes > 4) throw new Error("DER: unsupported length encoding"); + let len = 0; + for (let i = 0; i < numBytes; i++) { + len = len << 8 | d.anyByte(); + } + return len; +} +function derElement(d) { + const start = d.offset(); + d.anyByte(); + const len = derLength(d); + d.take(len); + return d.buf.subarray(start, d.offset()); +} +function extractSignedKey(signedDer) { + const outer = new Decoder(signedDer); + const outerTag = outer.anyByte(); + if (outerTag !== 48) throw new Error("SignedExact: expected SEQUENCE tag 0x30, got 0x" + outerTag.toString(16)); + derLength(outer); + const objectDer = derElement(outer); + const algorithm = derElement(outer); + const sigTag = outer.anyByte(); + if (sigTag !== 3) throw new Error("SignedExact: expected BIT STRING tag 0x03, got 0x" + sigTag.toString(16)); + const sigLen = derLength(outer); + const unusedBits = outer.anyByte(); + if (unusedBits !== 0) throw new Error("SignedExact: expected 0 unused bits in signature"); + const signature = outer.take(sigLen - 1); + const dhKey = decodeX25519Key(objectDer); + return { objectDer, dhKey, algorithm, signature }; +} +function decodeX25519Key(der) { + if (der.length === 44) return decodePubKeyX25519(der); + if (der[0] !== 48) throw new Error("decodeX25519Key: expected SEQUENCE"); + const d = new Decoder(der); + d.anyByte(); + derLength(d); + const inner = derElement(d); + return decodePubKeyX25519(inner); +} + +function derLen(d) { + const first = d.anyByte(); + if (first < 128) return first; + const n = first & 127; + if (n === 0 || n > 4) throw new Error("DER: unsupported length encoding"); + let len = 0; + for (let i = 0; i < n; i++) len = len << 8 | d.anyByte(); + return len; +} +function derSkip(d) { + d.anyByte(); + d.take(derLen(d)); +} +function derReadElement(d) { + const start = d.offset(); + d.anyByte(); + d.take(derLen(d)); + return d.buf.subarray(start, d.offset()); +} +function extractCertPublicKeyInfo(certDer) { + const d = new Decoder(certDer); + if (d.anyByte() !== 48) throw new Error("X.509: expected Certificate SEQUENCE"); + derLen(d); + if (d.anyByte() !== 48) throw new Error("X.509: expected TBSCertificate SEQUENCE"); + derLen(d); + if (d.buf[d.offset()] === 160) derSkip(d); + derSkip(d); + derSkip(d); + derSkip(d); + derSkip(d); + derSkip(d); + return derReadElement(d); +} +function detectKeyAlgorithm(spki) { + if (spki.length === 44 && spki[8] === 112) return "ed25519"; + if (spki.length === 69 && spki[8] === 113) return "ed448"; + throw new Error("unsupported certificate key algorithm"); +} +function extractCertRawKey(spki) { + const alg = detectKeyAlgorithm(spki); + const key = alg === "ed25519" ? decodePubKeyEd25519(spki) : decodePubKeyEd448(spki); + return { key, alg }; +} +function verifySig(alg, key, sig, msg) { + return alg === "ed25519" ? verify(key, sig, msg) : verifyEd448(key, sig, msg); +} +function verifyIdentityProof(v) { + const cc = chainIdCaCerts(v.certChainDer); + if (cc.type !== "valid") return false; + const fp = sha256(cc.idCert); + if (!constantTimeEqual$1(fp, v.keyHash)) return false; + const spki = extractCertPublicKeyInfo(cc.leafCert); + const { key, alg } = extractCertRawKey(spki); + if (!verifySig(alg, key, v.sigBytes, concatBytes$1(v.challenge, v.sessionId))) return false; + const sk = extractSignedKey(v.signedKeyDer); + return verifySig(alg, key, sk.signature, sk.objectDer); +} +function constantTimeEqual$1(a, b) { + if (a.length !== b.length) return false; + let diff = 0; + for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i]; + return diff === 0; +} + +function encodeFileInfo(fi) { + return concatBytes$1(encodeBytes(fi.sndKey), encodeWord32(fi.size), encodeBytes(fi.digest)); +} +const SPACE = new Uint8Array([32]); +function ascii(s) { + const buf = new Uint8Array(s.length); + for (let i = 0; i < s.length; i++) buf[i] = s.charCodeAt(i); + return buf; +} +function encodeFNEW(file, rcvKeys, auth) { + return concatBytes$1( + ascii("FNEW"), + SPACE, + encodeFileInfo(file), + encodeNonEmpty(encodeBytes, rcvKeys), + encodeMaybe(encodeBytes, auth) + ); +} +function encodeFPUT() { + return ascii("FPUT"); +} +function encodeFGET(rcvDhKey) { + return concatBytes$1(ascii("FGET"), SPACE, encodeBytes(rcvDhKey)); +} +function readTag(d) { + const start = d.offset(); + while (d.remaining() > 0) { + if (d.buf[d.offset()] === 32 || d.buf[d.offset()] === 10) break; + d.anyByte(); + } + let s = ""; + for (let i = start; i < d.offset(); i++) s += String.fromCharCode(d.buf[i]); + return s; +} +function readSpace(d) { + if (d.anyByte() !== 32) throw new Error("expected space"); +} +function decodeCommandError(s) { + if (s === "UNKNOWN" || s === "SYNTAX" || s === "PROHIBITED" || s === "NO_AUTH" || s === "HAS_AUTH" || s === "NO_ENTITY") return s; + if (s === "NO_QUEUE") return "NO_ENTITY"; + throw new Error("bad CommandError: " + s); +} +function decodeXFTPError(d) { + const s = readTag(d); + switch (s) { + case "BLOCK": + return { type: "BLOCK" }; + case "SESSION": + return { type: "SESSION" }; + case "HANDSHAKE": + return { type: "HANDSHAKE" }; + case "CMD": { + readSpace(d); + return { type: "CMD", cmdErr: decodeCommandError(readTag(d)) }; + } + case "AUTH": + return { type: "AUTH" }; + case "BLOCKED": { + readSpace(d); + const rest = d.takeAll(); + let info = ""; + for (let i = 0; i < rest.length; i++) info += String.fromCharCode(rest[i]); + return { type: "BLOCKED", blockInfo: info }; + } + case "SIZE": + return { type: "SIZE" }; + case "QUOTA": + return { type: "QUOTA" }; + case "DIGEST": + return { type: "DIGEST" }; + case "CRYPTO": + return { type: "CRYPTO" }; + case "NO_FILE": + return { type: "NO_FILE" }; + case "HAS_FILE": + return { type: "HAS_FILE" }; + case "FILE_IO": + return { type: "FILE_IO" }; + case "TIMEOUT": + return { type: "TIMEOUT" }; + case "INTERNAL": + return { type: "INTERNAL" }; + default: + throw new Error("bad XFTPErrorType: " + s); + } +} +function decodeResponse(data) { + const d = new Decoder(data); + const tagStr = readTag(d); + switch (tagStr) { + case "SIDS": { + readSpace(d); + const senderId = decodeBytes(d); + return { type: "FRSndIds", senderId, recipientIds: decodeNonEmpty(decodeBytes, d) }; + } + case "RIDS": { + readSpace(d); + return { type: "FRRcvIds", recipientIds: decodeNonEmpty(decodeBytes, d) }; + } + case "FILE": { + readSpace(d); + const rcvDhKey = decodePubKeyX25519(decodeBytes(d)); + const nonce = d.take(24); + return { type: "FRFile", rcvDhKey, nonce }; + } + case "OK": + return { type: "FROk" }; + case "ERR": { + readSpace(d); + return { type: "FRErr", err: decodeXFTPError(d) }; + } + case "PONG": + return { type: "FRPong" }; + default: + throw new Error("unknown response: " + tagStr); + } +} + +function decryptTransportChunk(dhSecret, cbNonce, encData) { + if (encData.length < 16) return { valid: false, content: new Uint8Array(0), computedTag: new Uint8Array(0) }; + const cipher = encData.subarray(0, encData.length - 16); + const providedTag = encData.subarray(encData.length - 16); + const state = cbInit(dhSecret, cbNonce); + const plaintext = sbDecryptChunk(state, cipher); + const computedTag = sbAuth(state); + const valid = constantTimeEqual(providedTag, computedTag); + return { valid, content: plaintext, computedTag }; +} +function constantTimeEqual(a, b) { + if (a.length !== b.length) return false; + let diff = 0; + for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i]; + return diff === 0; +} + +function decryptReceivedChunk(dhSecret, cbNonce, encData, expectedDigest) { + encData.slice(encData.length - 16); + const { valid, content } = decryptTransportChunk(dhSecret, cbNonce, encData); + if (!valid) throw new Error("transport auth tag verification failed"); + if (expectedDigest !== null) { + const actual = sha256(content); + if (!digestEqual$1(actual, expectedDigest)) { + throw new Error("chunk digest mismatch"); + } + } + return content; +} +function processDownloadedFile(fd, plaintextChunks) { + return decryptChunks(BigInt(fd.size), plaintextChunks, fd.key, fd.nonce); +} +function digestEqual$1(a, b) { + if (a.length !== b.length) return false; + let diff = 0; + for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i]; + return diff === 0; +} + +class XFTPRetriableError extends Error { + constructor(errorType) { + super(humanReadableMessage(errorType)); + this.errorType = errorType; + this.name = "XFTPRetriableError"; + } +} +class XFTPPermanentError extends Error { + constructor(errorType, message) { + super(message); + this.errorType = errorType; + this.name = "XFTPPermanentError"; + } +} +function isRetriable(e) { + if (e instanceof XFTPRetriableError) return true; + if (e instanceof XFTPPermanentError) return false; + if (e instanceof TypeError) return true; + if (e instanceof Error && e.name === "AbortError") return true; + return false; +} +function categorizeError(e) { + if (e instanceof XFTPRetriableError || e instanceof XFTPPermanentError) return e; + if (e instanceof TypeError) return new XFTPRetriableError("NETWORK"); + if (e instanceof Error && e.name === "AbortError") return new XFTPRetriableError("TIMEOUT"); + return e instanceof Error ? e : new Error(String(e)); +} +function humanReadableMessage(errorType) { + const t = typeof errorType === "string" ? errorType : errorType.type; + switch (t) { + case "SESSION": + return "Session expired, reconnecting..."; + case "HANDSHAKE": + return "Connection interrupted, reconnecting..."; + case "NETWORK": + return "Network error, retrying..."; + case "TIMEOUT": + return "Server timeout, retrying..."; + case "AUTH": + return "File is invalid, expired, or has been removed"; + case "NO_FILE": + return "File not found — it may have expired"; + case "SIZE": + return "File size exceeds server limit"; + case "QUOTA": + return "Server storage quota exceeded"; + case "BLOCKED": + return "File has been blocked by server"; + case "DIGEST": + return "File integrity check failed"; + case "INTERNAL": + return "Server internal error"; + case "CMD": + return "Protocol error"; + default: + return "Server error: " + t; + } +} +const DEFAULT_TRANSPORT_CONFIG = { timeoutMs: 3e4 }; +const isNode = typeof globalThis.process !== "undefined" && globalThis.process.versions?.node; +async function createTransport(baseUrl, config) { + if (isNode) { + return createNodeTransport(baseUrl, config); + } else { + return createBrowserTransport(baseUrl, config); + } +} +async function createNodeTransport(baseUrl, config) { + const http2 = await __vitePreload(() => import('node:http2'),true ?[]:void 0,import.meta.url); + const session = http2.connect(baseUrl, { rejectUnauthorized: false }); + return { + async post(body, headers) { + return new Promise((resolve, reject) => { + const req = session.request({ ":method": "POST", ":path": "/", ...headers }); + req.setTimeout(config.timeoutMs, () => { + req.close(); + reject(Object.assign(new Error("Request timeout"), { name: "AbortError" })); + }); + const chunks = []; + req.on("data", (chunk) => chunks.push(chunk)); + req.on("end", () => { + const B = globalThis.Buffer; + resolve(new Uint8Array(B.concat(chunks))); + }); + req.on("error", reject); + req.end(body); + }); + }, + close() { + session.close(); + } + }; +} +function createBrowserTransport(baseUrl, config) { + const effectiveUrl = baseUrl; + return { + async post(body, headers) { + const controller = new AbortController(); + const timer = setTimeout(() => controller.abort(), config.timeoutMs); + try { + const resp = await fetch(effectiveUrl, { + method: "POST", + headers, + body, + signal: controller.signal + }); + if (!resp.ok) { + console.error("[XFTP] fetch %s failed: %d %s", effectiveUrl, resp.status, resp.statusText); + throw new Error(`Server request failed: ${resp.status} ${resp.statusText}`); + } + return new Uint8Array(await resp.arrayBuffer()); + } finally { + clearTimeout(timer); + } + }, + close() { + } + }; +} +function newXFTPAgent() { + return { connections: /* @__PURE__ */ new Map(), _connectFn: connectXFTP }; +} +function getXFTPServerClient(agent, server) { + const key = formatXFTPServer(server); + let conn = agent.connections.get(key); + if (!conn) { + const p = agent._connectFn(server); + conn = { client: p, queue: Promise.resolve() }; + agent.connections.set(key, conn); + p.catch(() => { + const cur = agent.connections.get(key); + if (cur && cur.client === p) agent.connections.delete(key); + }); + } + return conn.client; +} +function reconnectClient(agent, server) { + const key = formatXFTPServer(server); + const old = agent.connections.get(key); + old?.client.then((c) => c.transport.close(), () => { + }); + const p = agent._connectFn(server); + const conn = { client: p, queue: old?.queue ?? Promise.resolve() }; + agent.connections.set(key, conn); + p.catch(() => { + const cur = agent.connections.get(key); + if (cur && cur.client === p) agent.connections.delete(key); + }); + return p; +} +function removeStaleConnection(agent, server, failedP) { + const key = formatXFTPServer(server); + const conn = agent.connections.get(key); + if (conn && conn.client === failedP) { + agent.connections.delete(key); + failedP.then((c) => c.transport.close(), () => { + }); + } +} +function closeXFTPAgent(agent) { + for (const conn of agent.connections.values()) { + conn.client.then((c) => c.transport.close(), () => { + }); + } + agent.connections.clear(); +} +async function connectXFTP(server, config) { + const cfg = { ...DEFAULT_TRANSPORT_CONFIG, ...config }; + const baseUrl = "https://" + server.host + ":" + server.port; + const transport = await createTransport(baseUrl, cfg); + try { + const challenge = new Uint8Array(32); + crypto.getRandomValues(challenge); + const clientHelloBytes = encodeClientHello({ webChallenge: challenge }); + const shsBody = await transport.post(clientHelloBytes, { "xftp-web-hello": "1" }); + const hs = decodeServerHandshake(shsBody); + if (!hs.webIdentityProof) { + console.error("[XFTP] Server did not provide web identity proof"); + throw new Error("Server did not provide web identity proof"); + } + const idOk = verifyIdentityProof({ + certChainDer: hs.certChainDer, + signedKeyDer: hs.signedKeyDer, + sigBytes: hs.webIdentityProof, + challenge, + sessionId: hs.sessionId, + keyHash: server.keyHash + }); + if (!idOk) { + console.error("[XFTP] Server identity verification failed"); + throw new Error("Server identity verification failed"); + } + const vr = compatibleVRange(hs.xftpVersionRange, { minVersion: initialXFTPVersion, maxVersion: currentXFTPVersion }); + if (!vr) { + console.error("[XFTP] Incompatible server version: %o", hs.xftpVersionRange); + throw new Error("Incompatible server version"); + } + const xftpVersion = vr.maxVersion; + const ack = await transport.post(encodeClientHandshake({ xftpVersion, keyHash: server.keyHash }), { "xftp-handshake": "1" }); + if (ack.length !== 0) { + console.error("[XFTP] Non-empty handshake ack (%d bytes)", ack.length); + throw new Error("Server handshake failed"); + } + return { baseUrl, sessionId: hs.sessionId, xftpVersion, transport }; + } catch (e) { + console.error("[XFTP] Connection to %s failed:", baseUrl, e); + transport.close(); + throw e; + } +} +async function sendXFTPCommandOnce(client, privateKey, entityId, cmdBytes, chunkData) { + const corrId = new Uint8Array(0); + const block = encodeAuthTransmission(client.sessionId, corrId, entityId, cmdBytes, privateKey); + const reqBody = chunkData ? concatBytes$1(block, chunkData) : block; + const fullResp = await client.transport.post(reqBody); + console.log(`[XFTP-DBG] sendOnce: fullResp.length=${fullResp.length} entityId=${_hex(entityId)} cmdTag=${cmdBytes[0]}`); + if (fullResp.length < XFTP_BLOCK_SIZE) { + console.error("[XFTP] Response too short: %d bytes (expected >= %d)", fullResp.length, XFTP_BLOCK_SIZE); + throw new Error("Server response too short"); + } + const respBlock = fullResp.subarray(0, XFTP_BLOCK_SIZE); + const body = fullResp.subarray(XFTP_BLOCK_SIZE); + console.log(`[XFTP-DBG] sendOnce: body.length=${body.length} body.byteOffset=${body.byteOffset} body.buffer.byteLength=${body.buffer.byteLength}`); + const raw = blockUnpad(respBlock); + if (raw.length < 20) { + const text = new TextDecoder().decode(raw); + if (/^[A-Z_]+$/.test(text)) { + throw new XFTPRetriableError(text); + } + } + const { command } = decodeTransmission(client.sessionId, respBlock); + const response = decodeResponse(command); + if (response.type === "FRErr") { + const err = response.err; + if (err.type === "SESSION" || err.type === "HANDSHAKE") { + throw new XFTPRetriableError(err.type); + } + throw new XFTPPermanentError(err.type, humanReadableMessage(err)); + } + return { response, body }; +} +function _hex(b, n = 8) { + return Array.from(b.slice(0, n)).map((x) => x.toString(16).padStart(2, "0")).join(""); +} +async function sendXFTPCommand(agent, server, privateKey, entityId, cmdBytes, chunkData, maxRetries = 3) { + let clientP = getXFTPServerClient(agent, server); + let client = await clientP; + for (let attempt = 1; attempt <= maxRetries; attempt++) { + try { + if (attempt > 1) console.log(`[XFTP-DBG] sendCmd: retry attempt=${attempt}/${maxRetries}`); + return await sendXFTPCommandOnce(client, privateKey, entityId, cmdBytes, chunkData); + } catch (e) { + console.log(`[XFTP-DBG] sendCmd: attempt=${attempt} failed: ${e instanceof Error ? e.message : String(e)} retriable=${isRetriable(e)}`); + if (!isRetriable(e)) { + throw categorizeError(e); + } + if (attempt === maxRetries) { + removeStaleConnection(agent, server, clientP); + throw categorizeError(e); + } + clientP = reconnectClient(agent, server); + client = await clientP; + } + } + throw new Error("unreachable"); +} +async function createXFTPChunk(agent, server, spKey, file, rcvKeys, auth = null) { + const { response } = await sendXFTPCommand(agent, server, spKey, new Uint8Array(0), encodeFNEW(file, rcvKeys, auth)); + if (response.type !== "FRSndIds") throw new Error("unexpected response: " + response.type); + return { senderId: response.senderId, recipientIds: response.recipientIds }; +} +async function uploadXFTPChunk(agent, server, spKey, fId, chunkData) { + const { response } = await sendXFTPCommand(agent, server, spKey, fId, encodeFPUT(), chunkData); + if (response.type !== "FROk") throw new Error("unexpected response: " + response.type); +} +async function downloadXFTPChunkRaw(agent, server, rpKey, fId) { + const { publicKey, privateKey } = generateX25519KeyPair(); + const cmd = encodeFGET(encodePubKeyX25519(publicKey)); + const { response, body } = await sendXFTPCommand(agent, server, rpKey, fId, cmd); + if (response.type !== "FRFile") throw new Error("unexpected response: " + response.type); + const dhSecret = dh(response.rcvDhKey, privateKey); + console.log(`[XFTP-DBG] dlChunkRaw: body.length=${body.length} nonce=${_hex(response.nonce, 24)} dhSecret=${_hex(dhSecret)} body[0..8]=${_hex(body)} body[-8..]=${_hex(body.slice(-8))}`); + return { dhSecret, nonce: response.nonce, body }; +} +async function downloadXFTPChunk(agent, server, rpKey, fId, digest) { + const { dhSecret, nonce, body } = await downloadXFTPChunkRaw(agent, server, rpKey, fId); + return decryptReceivedChunk(dhSecret, nonce, body, digest ?? null); +} + +function encodeDescriptionURI(fd) { + const yaml = encodeFileDescription(fd); + const compressed = pako.deflateRaw(new TextEncoder().encode(yaml)); + return base64urlEncode(compressed); +} +function decodeDescriptionURI(fragment) { + const compressed = base64urlDecode$1(fragment); + const yaml = new TextDecoder().decode(pako.inflateRaw(compressed)); + const fd = decodeFileDescription(yaml); + const err = validateFileDescription(fd); + if (err) throw new Error("decodeDescriptionURI: " + err); + return fd; +} +function encryptFileForUpload(source, fileName) { + const key = new Uint8Array(32); + const nonce = new Uint8Array(24); + crypto.getRandomValues(key); + crypto.getRandomValues(nonce); + const fileHdr = encodeFileHeader({ fileName, fileExtra: null }); + const fileSize = BigInt(fileHdr.length + source.length); + const payloadSize = Number(fileSize) + fileSizeLen + authTagSize; + const chunkSizes = prepareChunkSizes(payloadSize); + const encSize = BigInt(chunkSizes.reduce((a, b) => a + b, 0)); + const encData = encryptFile(source, fileHdr, key, nonce, fileSize, encSize); + const digest = sha512Streaming([encData]); + console.log(`[AGENT-DBG] encrypt: encData.len=${encData.length} digest=${_dbgHex(digest, 64)} chunkSizes=[${chunkSizes.join(",")}]`); + return { encData, digest, key, nonce, chunkSizes }; +} +const DEFAULT_REDIRECT_THRESHOLD = 400; +async function uploadFile(agent, servers, encrypted, options) { + if (servers.length === 0) throw new Error("uploadFile: servers list is empty"); + const { onProgress, redirectThreshold, readChunk: readChunkOpt } = options ?? {}; + const readChunk = readChunkOpt ? readChunkOpt : "encData" in encrypted ? (off, sz) => Promise.resolve(encrypted.encData.subarray(off, off + sz)) : () => { + throw new Error("uploadFile: readChunk required when encData is absent"); + }; + const total = encrypted.chunkSizes.reduce((a, b) => a + b, 0); + const specs = prepareChunkSpecs(encrypted.chunkSizes); + const chunkJobs = specs.map((spec, i) => ({ + index: i, + spec, + server: servers[Math.floor(Math.random() * servers.length)] + })); + const byServer = /* @__PURE__ */ new Map(); + for (const job of chunkJobs) { + const key = formatXFTPServer(job.server); + if (!byServer.has(key)) byServer.set(key, []); + byServer.get(key).push(job); + } + const sentChunks = new Array(specs.length); + let uploaded = 0; + await Promise.all([...byServer.values()].map(async (jobs) => { + for (const { index, spec, server } of jobs) { + const chunkNo = index + 1; + const sndKp = generateEd25519KeyPair(); + const rcvKp = generateEd25519KeyPair(); + const chunkData = await readChunk(spec.chunkOffset, spec.chunkSize); + const chunkDigest = getChunkDigest(chunkData); + const fileInfo = { + sndKey: encodePubKeyEd25519(sndKp.publicKey), + size: spec.chunkSize, + digest: chunkDigest + }; + const rcvKeysForChunk = [encodePubKeyEd25519(rcvKp.publicKey)]; + const { senderId, recipientIds } = await createXFTPChunk( + agent, + server, + sndKp.privateKey, + fileInfo, + rcvKeysForChunk + ); + await uploadXFTPChunk(agent, server, sndKp.privateKey, senderId, chunkData); + sentChunks[index] = { + chunkNo, + senderId, + senderKey: sndKp.privateKey, + recipientId: recipientIds[0], + recipientKey: rcvKp.privateKey, + chunkSize: spec.chunkSize, + digest: chunkDigest, + server + }; + uploaded += spec.chunkSize; + onProgress?.(uploaded, total); + } + })); + const rcvDescription = buildDescription("recipient", encrypted, sentChunks); + const sndDescription = buildDescription("sender", encrypted, sentChunks); + let uri = encodeDescriptionURI(rcvDescription); + let finalRcvDescription = rcvDescription; + const threshold = redirectThreshold ?? DEFAULT_REDIRECT_THRESHOLD; + if (uri.length > threshold && sentChunks.length > 1) { + finalRcvDescription = await uploadRedirectDescription(agent, servers, rcvDescription); + uri = encodeDescriptionURI(finalRcvDescription); + } + return { rcvDescription: finalRcvDescription, sndDescription, uri }; +} +function buildDescription(party, enc, chunks) { + const defChunkSize = enc.chunkSizes[0]; + return { + party, + size: enc.chunkSizes.reduce((a, b) => a + b, 0), + digest: enc.digest, + key: enc.key, + nonce: enc.nonce, + chunkSize: defChunkSize, + chunks: chunks.map((c) => ({ + chunkNo: c.chunkNo, + chunkSize: c.chunkSize, + digest: c.digest, + replicas: [{ + server: formatXFTPServer(c.server), + replicaId: party === "recipient" ? c.recipientId : c.senderId, + replicaKey: encodePrivKeyEd25519(party === "recipient" ? c.recipientKey : c.senderKey) + }] + })), + redirect: null + }; +} +async function uploadRedirectDescription(agent, servers, innerFd) { + const yaml = encodeFileDescription(innerFd); + const yamlBytes = new TextEncoder().encode(yaml); + const enc = encryptFileForUpload(yamlBytes, ""); + const specs = prepareChunkSpecs(enc.chunkSizes); + const sentChunks = []; + for (let i = 0; i < specs.length; i++) { + const spec = specs[i]; + const chunkNo = i + 1; + const server = servers[Math.floor(Math.random() * servers.length)]; + const sndKp = generateEd25519KeyPair(); + const rcvKp = generateEd25519KeyPair(); + const chunkData = enc.encData.subarray(spec.chunkOffset, spec.chunkOffset + spec.chunkSize); + const chunkDigest = getChunkDigest(chunkData); + const fileInfo = { + sndKey: encodePubKeyEd25519(sndKp.publicKey), + size: spec.chunkSize, + digest: chunkDigest + }; + const rcvKeysForChunk = [encodePubKeyEd25519(rcvKp.publicKey)]; + const { senderId, recipientIds } = await createXFTPChunk( + agent, + server, + sndKp.privateKey, + fileInfo, + rcvKeysForChunk + ); + await uploadXFTPChunk(agent, server, sndKp.privateKey, senderId, chunkData); + sentChunks.push({ + chunkNo, + senderId, + senderKey: sndKp.privateKey, + recipientId: recipientIds[0], + recipientKey: rcvKp.privateKey, + chunkSize: spec.chunkSize, + digest: chunkDigest, + server + }); + } + return { + party: "recipient", + size: enc.chunkSizes.reduce((a, b) => a + b, 0), + digest: enc.digest, + key: enc.key, + nonce: enc.nonce, + chunkSize: enc.chunkSizes[0], + chunks: sentChunks.map((c) => ({ + chunkNo: c.chunkNo, + chunkSize: c.chunkSize, + digest: c.digest, + replicas: [{ + server: formatXFTPServer(c.server), + replicaId: c.recipientId, + replicaKey: encodePrivKeyEd25519(c.recipientKey) + }] + })), + redirect: { size: innerFd.size, digest: innerFd.digest } + }; +} +async function downloadFileRaw(agent, fd, onRawChunk, options) { + const err = validateFileDescription(fd); + if (err) throw new Error("downloadFileRaw: " + err); + const { onProgress} = options ?? {}; + if (fd.redirect !== null) { + console.log(`[AGENT-DBG] resolving redirect: outer size=${fd.size} chunks=${fd.chunks.length}`); + fd = await resolveRedirect(agent, fd); + console.log(`[AGENT-DBG] resolved: size=${fd.size} chunks=${fd.chunks.length} digest=${Array.from(fd.digest.slice(0, 16)).map((x) => x.toString(16).padStart(2, "0")).join("")}…`); + } + const resolvedFd = fd; + let downloaded = 0; + const byServer = /* @__PURE__ */ new Map(); + for (const chunk of resolvedFd.chunks) { + const srv = chunk.replicas[0]?.server ?? ""; + if (!byServer.has(srv)) byServer.set(srv, []); + byServer.get(srv).push(chunk); + } + await Promise.all([...byServer.entries()].map(async ([srv, chunks]) => { + const server = parseXFTPServer(srv); + for (const chunk of chunks) { + const replica = chunk.replicas[0]; + if (!replica) throw new Error("downloadFileRaw: chunk has no replicas"); + const seed = decodePrivKeyEd25519(replica.replicaKey); + const kp = ed25519KeyPairFromSeed(seed); + const raw = await downloadXFTPChunkRaw(agent, server, kp.privateKey, replica.replicaId); + console.log(`[AGENT-DBG] chunk=${chunk.chunkNo} body.len=${raw.body.length} expectedChunkSize=${chunk.chunkSize} digest=${_dbgHex(chunk.digest, 32)} body.byteOffset=${raw.body.byteOffset} body.buffer.byteLength=${raw.body.buffer.byteLength}`); + await onRawChunk({ + chunkNo: chunk.chunkNo, + dhSecret: raw.dhSecret, + nonce: raw.nonce, + body: raw.body, + digest: chunk.digest + }); + downloaded += chunk.chunkSize; + onProgress?.(downloaded, resolvedFd.size); + } + })); + return resolvedFd; +} +async function resolveRedirect(agent, fd) { + const plaintextChunks = new Array(fd.chunks.length); + for (const chunk of fd.chunks) { + const replica = chunk.replicas[0]; + if (!replica) throw new Error("resolveRedirect: chunk has no replicas"); + const server = parseXFTPServer(replica.server); + const seed = decodePrivKeyEd25519(replica.replicaKey); + const kp = ed25519KeyPairFromSeed(seed); + const data = await downloadXFTPChunk(agent, server, kp.privateKey, replica.replicaId, chunk.digest); + plaintextChunks[chunk.chunkNo - 1] = data; + } + const totalSize = plaintextChunks.reduce((s, c) => s + c.length, 0); + if (totalSize !== fd.size) throw new Error("resolveRedirect: redirect file size mismatch"); + const digest = sha512Streaming(plaintextChunks); + if (!digestEqual(digest, fd.digest)) throw new Error("resolveRedirect: redirect file digest mismatch"); + const { content: yamlBytes } = processDownloadedFile(fd, plaintextChunks); + const yamlStr = new TextDecoder().decode(yamlBytes); + const innerFd = decodeFileDescription(yamlStr); + const innerErr = validateFileDescription(innerFd); + if (innerErr) throw new Error("resolveRedirect: inner description invalid: " + innerErr); + if (innerFd.size !== fd.redirect.size) throw new Error("resolveRedirect: redirect size mismatch"); + if (!digestEqual(innerFd.digest, fd.redirect.digest)) throw new Error("resolveRedirect: redirect digest mismatch"); + return innerFd; +} +function _dbgHex(b, n = 8) { + return Array.from(b.slice(0, n)).map((x) => x.toString(16).padStart(2, "0")).join(""); +} +function digestEqual(a, b) { + if (a.length !== b.length) return false; + let diff = 0; + for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i]; + return diff === 0; +} + +const MAX_SIZE = 100 * 1024 * 1024; +const ENCRYPT_WEIGHT = 0.15; +const ENCRYPT_MIN_FILE_SIZE = 100 * 1024; +const ENCRYPT_MIN_DISPLAY_MS = 1e3; +function initUpload(app) { + app.innerHTML = ` +

`; + const dropZone = document.getElementById("drop-zone"); + const fileInput = document.getElementById("file-input"); + const progressStage = document.getElementById("upload-progress"); + const completeStage = document.getElementById("upload-complete"); + const errorStage = document.getElementById("upload-error"); + const progressContainer = document.getElementById("progress-container"); + const statusText = document.getElementById("upload-status"); + const cancelBtn = document.getElementById("cancel-btn"); + const shareLink = document.getElementById("share-link"); + const copyBtn = document.getElementById("copy-btn"); + const errorMsg = document.getElementById("error-msg"); + const retryBtn = document.getElementById("retry-btn"); + const shareBtn = typeof navigator.share === "function" ? (() => { + const btn = document.createElement("button"); + btn.className = "btn btn-secondary"; + btn.textContent = t("share", "Share"); + shareLink.parentElement.appendChild(btn); + return btn; + })() : null; + let aborted = false; + dropZone.addEventListener("dragover", (e) => { + e.preventDefault(); + dropZone.classList.add("drag-over"); + }); + dropZone.addEventListener("dragleave", () => dropZone.classList.remove("drag-over")); + dropZone.addEventListener("drop", (e) => { + e.preventDefault(); + dropZone.classList.remove("drag-over"); + const f = e.dataTransfer?.files[0]; + if (f) startUpload(f); + }); + fileInput.addEventListener("change", () => { + if (fileInput.files?.[0]) startUpload(fileInput.files[0]); + }); + retryBtn.addEventListener("click", () => { + fileInput.value = ""; + showStage(dropZone); + }); + function showStage(stage) { + for (const s of [dropZone, progressStage, completeStage, errorStage]) s.hidden = true; + stage.hidden = false; + } + function showError(msg) { + errorMsg.innerHTML = msg; + showStage(errorStage); + } + async function startUpload(file) { + aborted = false; + if (file.size > MAX_SIZE) { + showError(t("fileTooLarge", "File too large (%size%). Maximum is 100 MB. The SimpleX app supports files up to 1 GB.").replace("%size%", formatSize$1(file.size))); + return; + } + if (file.size === 0) { + showError(t("fileEmpty", "File is empty.")); + return; + } + showStage(progressStage); + const ring = createProgressRing(); + progressContainer.innerHTML = ""; + progressContainer.appendChild(ring.canvas); + const showEncrypt = file.size >= ENCRYPT_MIN_FILE_SIZE; + const encryptWeight = showEncrypt ? ENCRYPT_WEIGHT : 0; + statusText.textContent = showEncrypt ? t("encrypting", "Encrypting…") : t("uploading", "Uploading…"); + const backend = createCryptoBackend(); + const agent = newXFTPAgent(); + cancelBtn.onclick = () => { + aborted = true; + ring.destroy(); + backend.cleanup().catch(() => { + }); + closeXFTPAgent(agent); + showStage(dropZone); + }; + try { + const encryptStart = performance.now(); + const fileData = new Uint8Array(await file.arrayBuffer()); + if (aborted) return; + const encrypted = await backend.encrypt(fileData, file.name, (done, total) => { + ring.update(done / total * encryptWeight); + }); + if (aborted) return; + if (showEncrypt) { + const elapsed = performance.now() - encryptStart; + if (elapsed < ENCRYPT_MIN_DISPLAY_MS) { + await ring.fillTo(encryptWeight, ENCRYPT_MIN_DISPLAY_MS - elapsed); + if (aborted) return; + } + statusText.textContent = t("uploading", "Uploading…"); + } + const metadata = { + digest: encrypted.digest, + key: encrypted.key, + nonce: encrypted.nonce, + chunkSizes: encrypted.chunkSizes + }; + const servers = getServers(); + const result = await uploadFile(agent, servers, metadata, { + readChunk: (off, sz) => backend.readChunk(off, sz), + onProgress: (uploaded, total) => { + ring.update(encryptWeight + uploaded / total * (1 - encryptWeight)); + } + }); + if (aborted) return; + const descServers = getDescriptionServers(result.rcvDescription); + const origin = descServers.length > 0 ? serverOrigin(descServers[0]) : window.location.origin; + const url = origin + window.location.pathname + "#" + result.uri; + shareLink.value = url; + showStage(completeStage); + app.dispatchEvent(new CustomEvent("xftp:upload-complete", { detail: { url }, bubbles: true })); + copyBtn.onclick = () => { + navigator.clipboard.writeText(url).then(() => { + copyBtn.textContent = t("copied", "Copied!"); + setTimeout(() => { + copyBtn.textContent = t("copy", "Copy"); + }, 2e3); + }); + }; + if (shareBtn) { + shareBtn.onclick = () => navigator.share({ url }).catch(() => { + }); + } + } catch (err) { + if (!aborted) { + const msg = err?.message ?? String(err); + showError(msg); + if (err instanceof XFTPPermanentError) retryBtn.hidden = true; + else retryBtn.hidden = false; + } + } finally { + ring.destroy(); + await backend.cleanup().catch(() => { + }); + closeXFTPAgent(agent); + } + } +} +function formatSize$1(bytes) { + if (bytes < 1024) return bytes + " B"; + if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + " KB"; + return (bytes / (1024 * 1024)).toFixed(1) + " MB"; +} + +const DECRYPT_WEIGHT = 0.15; +const DECRYPT_MIN_FILE_SIZE = 100 * 1024; +const DECRYPT_MIN_DISPLAY_MS = 1e3; +function initDownload(app, hash) { + let fd; + try { + fd = decodeDescriptionURI(hash); + } catch (err) { + app.innerHTML = `

${t("invalidLink", "Invalid or corrupted link.")}

`; + return; + } + const wrongServer = !getDescriptionServers(fd).map((s) => s.host).includes(window.location.hostname); + const size = fd.redirect ? fd.redirect.size : fd.size; + app.innerHTML = ` +
+

${t("title", "SimpleX File Transfer")}

+
+

${t("fileAvailable", "File available (~%size%)").replace("%size%", formatSize(size))}

+ +
+

${t("dlSecurityNote1", "This file is encrypted — the server never sees file contents.")}

+

${t("dlSecurityNote2", "The decryption key is in the link’s hash fragment, which your browser never sends to any server.")}

+

${t("dlSecurityNote3", 'For maximum security, use the SimpleX app.')}

+
+
+ + +
`; + const readyStage = document.getElementById("dl-ready"); + const progressStage = document.getElementById("dl-progress"); + const errorStage = document.getElementById("dl-error"); + const progressContainer = document.getElementById("dl-progress-container"); + const statusText = document.getElementById("dl-status"); + const dlBtn = document.getElementById("dl-btn"); + const errorMsg = document.getElementById("dl-error-msg"); + const retryBtn = document.getElementById("dl-retry-btn"); + function showStage(stage) { + for (const s of [readyStage, progressStage, errorStage]) s.hidden = true; + stage.hidden = false; + } + function showError(msg) { + errorMsg.innerHTML = msg; + showStage(errorStage); + } + if (wrongServer) { + readyStage.innerHTML = `

${t("wrongServer", "This file is not hosted on this server.")}

`; + return; + } + dlBtn.addEventListener("click", startDownload); + retryBtn.addEventListener("click", () => showStage(readyStage)); + async function startDownload() { + showStage(progressStage); + const ring = createProgressRing(); + progressContainer.innerHTML = ""; + progressContainer.appendChild(ring.canvas); + const showDecrypt = size >= DECRYPT_MIN_FILE_SIZE; + const decryptWeight = showDecrypt ? DECRYPT_WEIGHT : 0; + statusText.textContent = t("downloading", "Downloading…"); + const backend = createCryptoBackend(); + const agent = newXFTPAgent(); + try { + const resolvedFd = await downloadFileRaw(agent, fd, async (raw) => { + await backend.decryptAndStoreChunk( + raw.dhSecret, + raw.nonce, + raw.body, + raw.digest, + raw.chunkNo + ); + }, { + onProgress: (downloaded, total) => { + ring.update(downloaded / total * (1 - decryptWeight)); + } + }); + if (showDecrypt) { + statusText.textContent = t("decrypting", "Decrypting…"); + } + const decryptStart = performance.now(); + const { header, content } = await backend.verifyAndDecrypt({ + size: resolvedFd.size, + digest: resolvedFd.digest, + key: resolvedFd.key, + nonce: resolvedFd.nonce + }, (done, total) => { + ring.update(Math.min(0.99, 1 - decryptWeight + done / total * decryptWeight)); + }); + if (showDecrypt) { + const elapsed = performance.now() - decryptStart; + if (elapsed < DECRYPT_MIN_DISPLAY_MS) { + await ring.fillTo(0.99, DECRYPT_MIN_DISPLAY_MS - elapsed); + } + } + const fileName = sanitizeFileName(header.fileName); + const blob = new Blob([content.buffer]); + const url = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = encodeURIComponent(fileName); + a.style.display = "none"; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + setTimeout(() => URL.revokeObjectURL(url), 1e3); + ring.update(1); + statusText.textContent = t("downloadComplete", "Download complete"); + app.dispatchEvent(new CustomEvent("xftp:download-complete", { detail: { fileName }, bubbles: true })); + } catch (err) { + const msg = err?.message ?? String(err); + showError(msg); + if (err instanceof XFTPPermanentError) retryBtn.hidden = true; + else retryBtn.hidden = false; + } finally { + ring.destroy(); + await backend.cleanup().catch(() => { + }); + closeXFTPAgent(agent); + } + } +} +function sanitizeFileName(name) { + let s = name; + s = s.replace(/[/\\]/g, ""); + s = s.replace(/[\x00-\x1f\x7f]/g, "_"); + s = s.replace(/[\u202a-\u202e\u2066-\u2069]/g, ""); + if (s.length > 255) s = s.slice(0, 255); + return s || "download"; +} +function formatSize(bytes) { + if (bytes < 1024) return bytes + " B"; + if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(1) + " KB"; + return (bytes / (1024 * 1024)).toFixed(1) + " MB"; +} + +function getAppElement() { + return document.querySelector("[data-xftp-app]") ?? document.getElementById("app"); +} +const wasmReady = r.ready; +async function main() { + const app = getAppElement(); + if (!app?.hasAttribute("data-defer-init")) { + initApp(); + } + if (!app?.hasAttribute("data-no-hashchange")) { + window.addEventListener("hashchange", () => { + const hash = window.location.hash.slice(1); + if (!hash || looksLikeXFTPHash(hash)) initApp(); + }); + } + await wasmReady; + app?.dispatchEvent(new CustomEvent("xftp:ready", { bubbles: true })); +} +function looksLikeXFTPHash(hash) { + return hash.length > 50 && /^[A-Za-z0-9_=-]+$/.test(hash); +} +function initApp() { + const app = getAppElement(); + const hash = window.location.hash.slice(1); + if (hash && looksLikeXFTPHash(hash)) { + initDownload(app, hash); + } else { + initUpload(app); + } +} +window.__xftp_initApp = async () => { + await wasmReady; + initApp(); +}; +main().catch((err) => { + const app = getAppElement(); + if (app) { + app.innerHTML = `

${t("initError", "Failed to initialize: %error%").replace("%error%", err.message)}

`; + } + console.error(err); +}); diff --git a/simplexmq.cabal b/simplexmq.cabal index 7f856543d9..2c38eed3ce 100644 --- a/simplexmq.cabal +++ b/simplexmq.cabal @@ -51,6 +51,11 @@ extra-source-files: apps/common/Web/static/media/swiper-bundle.min.js apps/common/Web/static/media/tailwind.css apps/common/Web/static/media/testflight.png + apps/common/Web/static/media/xftp-protocol.svg + apps/common/Web/static/media/xftp-protocol-dark.svg + apps/xftp-server/static/xftp/crypto.worker.js + apps/xftp-server/static/xftp/index.css + apps/xftp-server/static/xftp/index.js flag swift description: Enable swift JSON format @@ -458,7 +463,9 @@ executable xftp-server build-depends: base , bytestring + , directory , file-embed >=0.0.10 && <0.1 + , filepath , simple-logger , simplexmq default-language: Haskell2010 From 8c6ba4c71b61e6fd929ec13a22caeb23d2ee36dc Mon Sep 17 00:00:00 2001 From: sh Date: Wed, 11 Mar 2026 15:36:26 +0000 Subject: [PATCH 2/9] xftp-server: fix overlay scroll lock, remove extra margin, fix dark SVG --- apps/common/Web/static/index.html | 6 +++--- apps/xftp-server/XFTPWeb.hs | 5 +++++ .../static/media/xftp-protocol-dark.svg | 20 +++++++++---------- .../static/media/xftp-protocol.svg | 20 +++++++++---------- simplexmq.cabal | 4 ++-- 5 files changed, 30 insertions(+), 25 deletions(-) rename apps/{common/Web => xftp-server}/static/media/xftp-protocol-dark.svg (94%) rename apps/{common/Web => xftp-server}/static/media/xftp-protocol.svg (92%) diff --git a/apps/common/Web/static/index.html b/apps/common/Web/static/index.html index a31b97f6d2..fed31afa04 100644 --- a/apps/common/Web/static/index.html +++ b/apps/common/Web/static/index.html @@ -113,7 +113,7 @@ @media (min-width: 1024px) { .lg\:max-w-\[448px\] { max-width: 448px; } } /* Custom utility classes */ - .lock-scroll { overflow: hidden; } + html.lock-scroll, html.lock-scroll body { overflow: hidden; } .overlay a, #xftp-file-page p a { color: #0053D0; text-decoration: underline; text-underline-offset: 2px; } .dark .overlay a, .dark #xftp-file-page p a { color: #70F0F9; } @@ -712,7 +712,7 @@

Independent data routers

el.removeEventListener('animationend', handler); el.classList.remove('flex', 'overlay-closing'); el.classList.add('hidden'); - document.body.classList.remove('lock-scroll'); + document.documentElement.classList.remove('lock-scroll'); }); } }, true); @@ -741,7 +741,7 @@

Independent data routers

var el = document.getElementById('xftp-protocol'); el.classList.remove('hidden'); el.classList.add('flex'); - document.body.classList.add('lock-scroll'); + document.documentElement.classList.add('lock-scroll'); });
diff --git a/apps/xftp-server/XFTPWeb.hs b/apps/xftp-server/XFTPWeb.hs index 3182243748..0cc50e7225 100644 --- a/apps/xftp-server/XFTPWeb.hs +++ b/apps/xftp-server/XFTPWeb.hs @@ -28,12 +28,17 @@ import System.FilePath (()) xftpWebContent :: [(FilePath, ByteString)] xftpWebContent = $(embedDir "apps/xftp-server/static/xftp/") +xftpMediaContent :: [(FilePath, ByteString)] +xftpMediaContent = $(embedDir "apps/xftp-server/static/media/") + xftpGenerateSite :: XFTPServerConfig -> Maybe ServerPublicInfo -> Maybe TransportHost -> FilePath -> IO () xftpGenerateSite cfg info onionHost path = do Web.generateSite embeddedContent (xftpServerInformation cfg info onionHost) [] path let xftpDir = path "xftp" + mediaDir = path "media" createDirectoryIfMissing True xftpDir forM_ xftpWebContent $ \(fp, content) -> B.writeFile (xftpDir fp) content + forM_ xftpMediaContent $ \(fp, content) -> B.writeFile (mediaDir fp) content xftpServerInformation :: XFTPServerConfig -> Maybe ServerPublicInfo -> Maybe TransportHost -> ByteString xftpServerInformation XFTPServerConfig {fileExpiration, logStatsInterval, allowNewFiles, newFileBasicAuth} information onionHost = render (Web.indexHtml embeddedContent) substs diff --git a/apps/common/Web/static/media/xftp-protocol-dark.svg b/apps/xftp-server/static/media/xftp-protocol-dark.svg similarity index 94% rename from apps/common/Web/static/media/xftp-protocol-dark.svg rename to apps/xftp-server/static/media/xftp-protocol-dark.svg index f154fdeb6a..c6a0224d51 100644 --- a/apps/common/Web/static/media/xftp-protocol-dark.svg +++ b/apps/xftp-server/static/media/xftp-protocol-dark.svg @@ -11,12 +11,12 @@ encrypted chunks - + - + @@ -27,9 +27,9 @@ SimpleX - XFTP server + XFTP router - + @@ -40,9 +40,9 @@ Flux - XFTP server + XFTP router - + @@ -53,9 +53,9 @@ SimpleX - XFTP server + XFTP router - + @@ -78,7 +78,7 @@ - key in URL fragment — never sent to server + key in URL fragment - never sent to page server or data router @@ -105,7 +105,7 @@ - Each chunk uses unique anonymous credentials — no shared identifiers + Each file fragment uses unique anonymous credentials - no shared identifiers diff --git a/apps/common/Web/static/media/xftp-protocol.svg b/apps/xftp-server/static/media/xftp-protocol.svg similarity index 92% rename from apps/common/Web/static/media/xftp-protocol.svg rename to apps/xftp-server/static/media/xftp-protocol.svg index 11ab03e77b..b4cdb11838 100644 --- a/apps/common/Web/static/media/xftp-protocol.svg +++ b/apps/xftp-server/static/media/xftp-protocol.svg @@ -11,12 +11,12 @@ encrypted chunks - + - + @@ -27,9 +27,9 @@ SimpleX - XFTP server + XFTP router - + @@ -40,9 +40,9 @@ Flux - XFTP server + XFTP router - + @@ -53,9 +53,9 @@ SimpleX - XFTP server + XFTP router - + @@ -78,7 +78,7 @@ - key in URL fragment — never sent to server + key in URL fragment - never sent to page server or data router @@ -105,7 +105,7 @@ - Each chunk uses unique anonymous credentials — no shared identifiers + Each file fragment uses unique anonymous credentials - no shared identifiers diff --git a/simplexmq.cabal b/simplexmq.cabal index 2c38eed3ce..32e7711c5c 100644 --- a/simplexmq.cabal +++ b/simplexmq.cabal @@ -51,8 +51,8 @@ extra-source-files: apps/common/Web/static/media/swiper-bundle.min.js apps/common/Web/static/media/tailwind.css apps/common/Web/static/media/testflight.png - apps/common/Web/static/media/xftp-protocol.svg - apps/common/Web/static/media/xftp-protocol-dark.svg + apps/xftp-server/static/media/xftp-protocol.svg + apps/xftp-server/static/media/xftp-protocol-dark.svg apps/xftp-server/static/xftp/crypto.worker.js apps/xftp-server/static/xftp/index.css apps/xftp-server/static/xftp/index.js From 21151e1e80dcdd3b6f255288aa9e08a6f4242bfe Mon Sep 17 00:00:00 2001 From: shum Date: Fri, 13 Mar 2026 13:18:24 +0000 Subject: [PATCH 3/9] xftp-server: move file transfer widget to standalone /file page --- apps/common/Web/static/file.html | 664 ++++++++++++++++++++++++++++++ apps/common/Web/static/index.html | 357 +--------------- apps/xftp-server/XFTPWeb.hs | 19 +- 3 files changed, 686 insertions(+), 354 deletions(-) create mode 100644 apps/common/Web/static/file.html diff --git a/apps/common/Web/static/file.html b/apps/common/Web/static/file.html new file mode 100644 index 0000000000..4060085132 --- /dev/null +++ b/apps/common/Web/static/file.html @@ -0,0 +1,664 @@ + + + + + + + SimpleX File Transfer + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+
+ +

SimpleX File Transfer

+
+
+
+

Drag & drop a file here

+

or

+ Choose file +

Max 100 MB - SimpleX Chat app supports files up to 1 GB

+
+
+
+ + + + +

Send files securely with end-to-end encryption — no accounts, no tracking.

+ Learn more about XFTP protocol +
+
+ +
+
+

+ Get SimpleX Chat — the most secure & private messenger +

+

+ The file transfer you just used uses the same data routing protocol as SimpleX Chat. The app has end-to-end encrypted messaging, voice and video calls, groups, and sending files. No account. No phone. No email. No user profile IDs. +

+
+ + + + + +
+
+
+ + + + + + + +
+ +
+ + + + diff --git a/apps/common/Web/static/index.html b/apps/common/Web/static/index.html index fed31afa04..b9fe8ee9ce 100644 --- a/apps/common/Web/static/index.html +++ b/apps/common/Web/static/index.html @@ -81,175 +81,6 @@ color: #70F0F9; } - - - - @@ -274,6 +105,13 @@ class="text-[16px] leading-[26px] tracking-[0.01em] nav-link-text text-black dark:text-white before:bg-black dark:before:bg-white">Server information + + + Donate @@ -566,187 +404,6 @@