forked from rhysd/vim.wasm
/
vim.js
1 lines (1 loc) · 223 KB
/
vim.js
1
var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0;Module.finishedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH;if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}else{throw"using preloaded data can only be done on a web page or in a web worker"}var PACKAGE_NAME="vim.data.bmp";var REMOTE_PACKAGE_BASE="vim.data.bmp";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata.remote_package_size;var PACKAGE_UUID=metadata.package_uuid;function fetchRemotePackage(packageName,packageSize,callback,errback){var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","usr",true,true);Module["FS_createPath"]("/usr","local",true,true);Module["FS_createPath"]("/usr/local","share",true,true);Module["FS_createPath"]("/usr/local/share","vim",true,true);Module["FS_createPath"]("/usr/local/share/vim","autoload",true,true);Module["FS_createPath"]("/usr/local/share/vim/autoload","dist",true,true);Module["FS_createPath"]("/usr/local/share/vim/autoload","xml",true,true);Module["FS_createPath"]("/usr/local/share/vim","colors",true,true);Module["FS_createPath"]("/usr/local/share/vim","ftplugin",true,true);Module["FS_createPath"]("/usr/local/share/vim","indent",true,true);Module["FS_createPath"]("/usr/local/share/vim","plugin",true,true);Module["FS_createPath"]("/usr/local/share/vim","syntax",true,true);Module["FS_createPath"]("/","home",true,true);Module["FS_createPath"]("/home","web_user",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata.files;for(var i=0;i<files.length;++i){new DataRequest(files[i].start,files[i].end,files[i].audio).open("GET",files[i].filename)}function processPackageData(arrayBuffer){Module.finishedDataFileDownloads++;assert(arrayBuffer,"Loading data file failed.");assert(arrayBuffer instanceof ArrayBuffer,"bad input to processPackageData");var byteArray=new Uint8Array(arrayBuffer);DataRequest.prototype.byteArray=byteArray;var files=metadata.files;for(var i=0;i<files.length;++i){DataRequest.prototype.requests[files[i].filename].onload()}Module["removeRunDependency"]("datafile_vim.data")}Module["addRunDependency"]("datafile_vim.data");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module["calledRun"]){runWithFS()}else{if(!Module["preRun"])Module["preRun"]=[];Module["preRun"].push(runWithFS)}};loadPackage({files:[{start:0,audio:0,end:42329,filename:"/usr/local/share/vim/filetype.vim"},{start:42329,audio:0,end:42421,filename:"/usr/local/share/vim/ftoff.vim"},{start:42421,audio:0,end:42932,filename:"/usr/local/share/vim/ftplugin.vim"},{start:42932,audio:0,end:43057,filename:"/usr/local/share/vim/ftplugof.vim"},{start:43057,audio:0,end:43470,filename:"/usr/local/share/vim/indent.vim"},{start:43470,audio:0,end:43552,filename:"/usr/local/share/vim/indoff.vim"},{start:43552,audio:0,end:50220,filename:"/usr/local/share/vim/scripts.vim"},{start:50220,audio:0,end:51681,filename:"/usr/local/share/vim/vimrc"},{start:51681,audio:0,end:67747,filename:"/usr/local/share/vim/autoload/ada.vim"},{start:67747,audio:0,end:69444,filename:"/usr/local/share/vim/autoload/adacomplete.vim"},{start:69444,audio:0,end:80344,filename:"/usr/local/share/vim/autoload/ccomplete.vim"},{start:80344,audio:0,end:87881,filename:"/usr/local/share/vim/autoload/clojurecomplete.vim"},{start:87881,audio:0,end:92260,filename:"/usr/local/share/vim/autoload/context.vim"},{start:92260,audio:0,end:92657,filename:"/usr/local/share/vim/autoload/contextcomplete.vim"},{start:92657,audio:0,end:131061,filename:"/usr/local/share/vim/autoload/csscomplete.vim"},{start:131061,audio:0,end:132358,filename:"/usr/local/share/vim/autoload/decada.vim"},{start:132358,audio:0,end:143767,filename:"/usr/local/share/vim/autoload/getscript.vim"},{start:143767,audio:0,end:146898,filename:"/usr/local/share/vim/autoload/gnat.vim"},{start:146898,audio:0,end:150337,filename:"/usr/local/share/vim/autoload/gzip.vim"},{start:150337,audio:0,end:241464,filename:"/usr/local/share/vim/autoload/haskellcomplete.vim"},{start:241464,audio:0,end:258019,filename:"/usr/local/share/vim/autoload/htmlcomplete.vim"},{start:258019,audio:0,end:280653,filename:"/usr/local/share/vim/autoload/javascriptcomplete.vim"},{start:280653,audio:0,end:530500,filename:"/usr/local/share/vim/autoload/netrw.vim"},{start:530500,audio:0,end:532014,filename:"/usr/local/share/vim/autoload/netrw_gitignore.vim"},{start:532014,audio:0,end:536332,filename:"/usr/local/share/vim/autoload/netrwFileHandlers.vim"},{start:536332,audio:0,end:544469,filename:"/usr/local/share/vim/autoload/netrwSettings.vim"},{start:544469,audio:0,end:544848,filename:"/usr/local/share/vim/autoload/paste.vim"},{start:544848,audio:0,end:621774,filename:"/usr/local/share/vim/autoload/phpcomplete.vim"},{start:621774,audio:0,end:635381,filename:"/usr/local/share/vim/autoload/python3complete.vim"},{start:635381,audio:0,end:649231,filename:"/usr/local/share/vim/autoload/pythoncomplete.vim"},{start:649231,audio:0,end:650651,filename:"/usr/local/share/vim/autoload/RstFold.vim"},{start:650651,audio:0,end:670083,filename:"/usr/local/share/vim/autoload/rubycomplete.vim"},{start:670083,audio:0,end:678039,filename:"/usr/local/share/vim/autoload/rust.vim"},{start:678039,audio:0,end:680334,filename:"/usr/local/share/vim/autoload/rustfmt.vim"},{start:680334,audio:0,end:684532,filename:"/usr/local/share/vim/autoload/spellfile.vim"},{start:684532,audio:0,end:698782,filename:"/usr/local/share/vim/autoload/sqlcomplete.vim"},{start:698782,audio:0,end:708387,filename:"/usr/local/share/vim/autoload/syntaxcomplete.vim"},{start:708387,audio:0,end:721641,filename:"/usr/local/share/vim/autoload/tar.vim"},{start:721641,audio:0,end:743101,filename:"/usr/local/share/vim/autoload/tohtml.vim"},{start:743101,audio:0,end:756557,filename:"/usr/local/share/vim/autoload/vimball.vim"},{start:756557,audio:0,end:766930,filename:"/usr/local/share/vim/autoload/xmlcomplete.vim"},{start:766930,audio:0,end:768790,filename:"/usr/local/share/vim/autoload/xmlformat.vim"},{start:768790,audio:0,end:776469,filename:"/usr/local/share/vim/autoload/zip.vim"},{start:776469,audio:0,end:788595,filename:"/usr/local/share/vim/autoload/dist/ft.vim"},{start:788595,audio:0,end:830133,filename:"/usr/local/share/vim/autoload/xml/html401s.vim"},{start:830133,audio:0,end:878282,filename:"/usr/local/share/vim/autoload/xml/xhtml11.vim"},{start:878282,audio:0,end:883028,filename:"/usr/local/share/vim/autoload/xml/xsd.vim"},{start:883028,audio:0,end:887501,filename:"/usr/local/share/vim/autoload/xml/xsl.vim"},{start:887501,audio:0,end:895837,filename:"/usr/local/share/vim/colors/monokai.vim"},{start:895837,audio:0,end:919159,filename:"/usr/local/share/vim/colors/onedark.vim"},{start:919159,audio:0,end:919431,filename:"/usr/local/share/vim/ftplugin/8th.vim"},{start:919431,audio:0,end:919726,filename:"/usr/local/share/vim/ftplugin/a2ps.vim"},{start:919726,audio:0,end:919922,filename:"/usr/local/share/vim/ftplugin/aap.vim"},{start:919922,audio:0,end:920268,filename:"/usr/local/share/vim/ftplugin/abap.vim"},{start:920268,audio:0,end:922231,filename:"/usr/local/share/vim/ftplugin/abaqus.vim"},{start:922231,audio:0,end:925728,filename:"/usr/local/share/vim/ftplugin/ada.vim"},{start:925728,audio:0,end:925987,filename:"/usr/local/share/vim/ftplugin/alsaconf.vim"},{start:925987,audio:0,end:926735,filename:"/usr/local/share/vim/ftplugin/ant.vim"},{start:926735,audio:0,end:926994,filename:"/usr/local/share/vim/ftplugin/arch.vim"},{start:926994,audio:0,end:927144,filename:"/usr/local/share/vim/ftplugin/art.vim"},{start:927144,audio:0,end:928390,filename:"/usr/local/share/vim/ftplugin/aspvbs.vim"},{start:928390,audio:0,end:928571,filename:"/usr/local/share/vim/ftplugin/automake.vim"},{start:928571,audio:0,end:928708,filename:"/usr/local/share/vim/ftplugin/awk.vim"},{start:928708,audio:0,end:928984,filename:"/usr/local/share/vim/ftplugin/bash.vim"},{start:928984,audio:0,end:929265,filename:"/usr/local/share/vim/ftplugin/bdf.vim"},{start:929265,audio:0,end:929451,filename:"/usr/local/share/vim/ftplugin/bst.vim"},{start:929451,audio:0,end:929571,filename:"/usr/local/share/vim/ftplugin/btm.vim"},{start:929571,audio:0,end:931220,filename:"/usr/local/share/vim/ftplugin/bzl.vim"},{start:931220,audio:0,end:932441,filename:"/usr/local/share/vim/ftplugin/c.vim"},{start:932441,audio:0,end:932732,filename:"/usr/local/share/vim/ftplugin/calendar.vim"},{start:932732,audio:0,end:932991,filename:"/usr/local/share/vim/ftplugin/cdrdaoconf.vim"},{start:932991,audio:0,end:933233,filename:"/usr/local/share/vim/ftplugin/cfg.vim"},{start:933233,audio:0,end:933332,filename:"/usr/local/share/vim/ftplugin/ch.vim"},{start:933332,audio:0,end:938735,filename:"/usr/local/share/vim/ftplugin/changelog.vim"},{start:938735,audio:0,end:940005,filename:"/usr/local/share/vim/ftplugin/chicken.vim"},{start:940005,audio:0,end:941976,filename:"/usr/local/share/vim/ftplugin/clojure.vim"},{start:941976,audio:0,end:942489,filename:"/usr/local/share/vim/ftplugin/cmake.vim"},{start:942489,audio:0,end:950270,filename:"/usr/local/share/vim/ftplugin/cobol.vim"},{start:950270,audio:0,end:950529,filename:"/usr/local/share/vim/ftplugin/conf.vim"},{start:950529,audio:0,end:951207,filename:"/usr/local/share/vim/ftplugin/config.vim"},{start:951207,audio:0,end:954998,filename:"/usr/local/share/vim/ftplugin/context.vim"},{start:954998,audio:0,end:955097,filename:"/usr/local/share/vim/ftplugin/cpp.vim"},{start:955097,audio:0,end:955356,filename:"/usr/local/share/vim/ftplugin/crm.vim"},{start:955356,audio:0,end:955720,filename:"/usr/local/share/vim/ftplugin/cs.vim"},{start:955720,audio:0,end:956086,filename:"/usr/local/share/vim/ftplugin/csc.vim"},{start:956086,audio:0,end:956865,filename:"/usr/local/share/vim/ftplugin/csh.vim"},{start:956865,audio:0,end:957240,filename:"/usr/local/share/vim/ftplugin/css.vim"},{start:957240,audio:0,end:961739,filename:"/usr/local/share/vim/ftplugin/cucumber.vim"},{start:961739,audio:0,end:961975,filename:"/usr/local/share/vim/ftplugin/cvsrc.vim"},{start:961975,audio:0,end:970676,filename:"/usr/local/share/vim/ftplugin/debchangelog.vim"},{start:970676,audio:0,end:971912,filename:"/usr/local/share/vim/ftplugin/debcontrol.vim"},{start:971912,audio:0,end:972171,filename:"/usr/local/share/vim/ftplugin/denyhosts.vim"},{start:972171,audio:0,end:972430,filename:"/usr/local/share/vim/ftplugin/dictconf.vim"},{start:972430,audio:0,end:972689,filename:"/usr/local/share/vim/ftplugin/dictdconf.vim"},{start:972689,audio:0,end:972812,filename:"/usr/local/share/vim/ftplugin/diff.vim"},{start:972812,audio:0,end:973071,filename:"/usr/local/share/vim/ftplugin/dircolors.vim"},{start:973071,audio:0,end:973446,filename:"/usr/local/share/vim/ftplugin/docbk.vim"},{start:973446,audio:0,end:973583,filename:"/usr/local/share/vim/ftplugin/dockerfile.vim"},{start:973583,audio:0,end:974076,filename:"/usr/local/share/vim/ftplugin/dosbatch.vim"},{start:974076,audio:0,end:974335,filename:"/usr/local/share/vim/ftplugin/dosini.vim"},{start:974335,audio:0,end:975008,filename:"/usr/local/share/vim/ftplugin/dtd.vim"},{start:975008,audio:0,end:975412,filename:"/usr/local/share/vim/ftplugin/dtrace.vim"},{start:975412,audio:0,end:975549,filename:"/usr/local/share/vim/ftplugin/dune.vim"},{start:975549,audio:0,end:979185,filename:"/usr/local/share/vim/ftplugin/eiffel.vim"},{start:979185,audio:0,end:979444,filename:"/usr/local/share/vim/ftplugin/elinks.vim"},{start:979444,audio:0,end:980919,filename:"/usr/local/share/vim/ftplugin/erlang.vim"},{start:980919,audio:0,end:984826,filename:"/usr/local/share/vim/ftplugin/eruby.vim"},{start:984826,audio:0,end:985120,filename:"/usr/local/share/vim/ftplugin/eterm.vim"},{start:985120,audio:0,end:985951,filename:"/usr/local/share/vim/ftplugin/falcon.vim"},{start:985951,audio:0,end:986210,filename:"/usr/local/share/vim/ftplugin/fetchmail.vim"},{start:986210,audio:0,end:986929,filename:"/usr/local/share/vim/ftplugin/flexwiki.vim"},{start:986929,audio:0,end:989468,filename:"/usr/local/share/vim/ftplugin/fortran.vim"},{start:989468,audio:0,end:990064,filename:"/usr/local/share/vim/ftplugin/framescript.vim"},{start:990064,audio:0,end:990259,filename:"/usr/local/share/vim/ftplugin/fvwm.vim"},{start:990259,audio:0,end:990392,filename:"/usr/local/share/vim/ftplugin/gdb.vim"},{start:990392,audio:0,end:991490,filename:"/usr/local/share/vim/ftplugin/git.vim"},{start:991490,audio:0,end:993464,filename:"/usr/local/share/vim/ftplugin/gitcommit.vim"},{start:993464,audio:0,end:993664,filename:"/usr/local/share/vim/ftplugin/gitconfig.vim"},{start:993664,audio:0,end:994819,filename:"/usr/local/share/vim/ftplugin/gitrebase.vim"},{start:994819,audio:0,end:994846,filename:"/usr/local/share/vim/ftplugin/gitsendemail.vim"},{start:994846,audio:0,end:995048,filename:"/usr/local/share/vim/ftplugin/go.vim"},{start:995048,audio:0,end:995307,filename:"/usr/local/share/vim/ftplugin/gpg.vim"},{start:995307,audio:0,end:995737,filename:"/usr/local/share/vim/ftplugin/gprof.vim"},{start:995737,audio:0,end:995949,filename:"/usr/local/share/vim/ftplugin/groovy.vim"},{start:995949,audio:0,end:996201,filename:"/usr/local/share/vim/ftplugin/group.vim"},{start:996201,audio:0,end:996460,filename:"/usr/local/share/vim/ftplugin/grub.vim"},{start:996460,audio:0,end:997801,filename:"/usr/local/share/vim/ftplugin/haml.vim"},{start:997801,audio:0,end:998851,filename:"/usr/local/share/vim/ftplugin/hamster.vim"},{start:998851,audio:0,end:999183,filename:"/usr/local/share/vim/ftplugin/haskell.vim"},{start:999183,audio:0,end:999490,filename:"/usr/local/share/vim/ftplugin/help.vim"},{start:999490,audio:0,end:999613,filename:"/usr/local/share/vim/ftplugin/hgcommit.vim"},{start:999613,audio:0,end:1000725,filename:"/usr/local/share/vim/ftplugin/hog.vim"},{start:1000725,audio:0,end:1000984,filename:"/usr/local/share/vim/ftplugin/hostconf.vim"},{start:1000984,audio:0,end:1001243,filename:"/usr/local/share/vim/ftplugin/hostsaccess.vim"},{start:1001243,audio:0,end:1002338,filename:"/usr/local/share/vim/ftplugin/html.vim"},{start:1002338,audio:0,end:1002435,filename:"/usr/local/share/vim/ftplugin/htmldjango.vim"},{start:1002435,audio:0,end:1002712,filename:"/usr/local/share/vim/ftplugin/indent.vim"},{start:1002712,audio:0,end:1003136,filename:"/usr/local/share/vim/ftplugin/initex.vim"},{start:1003136,audio:0,end:1004136,filename:"/usr/local/share/vim/ftplugin/ishd.vim"},{start:1004136,audio:0,end:1006825,filename:"/usr/local/share/vim/ftplugin/j.vim"},{start:1006825,audio:0,end:1007647,filename:"/usr/local/share/vim/ftplugin/java.vim"},{start:1007647,audio:0,end:1008151,filename:"/usr/local/share/vim/ftplugin/javascript.vim"},{start:1008151,audio:0,end:1008337,filename:"/usr/local/share/vim/ftplugin/jproperties.vim"},{start:1008337,audio:0,end:1008543,filename:"/usr/local/share/vim/ftplugin/json.vim"},{start:1008543,audio:0,end:1009809,filename:"/usr/local/share/vim/ftplugin/jsp.vim"},{start:1009809,audio:0,end:1010190,filename:"/usr/local/share/vim/ftplugin/kconfig.vim"},{start:1010190,audio:0,end:1010776,filename:"/usr/local/share/vim/ftplugin/kwt.vim"},{start:1010776,audio:0,end:1011085,filename:"/usr/local/share/vim/ftplugin/ld.vim"},{start:1011085,audio:0,end:1011368,filename:"/usr/local/share/vim/ftplugin/less.vim"},{start:1011368,audio:0,end:1011627,filename:"/usr/local/share/vim/ftplugin/lftp.vim"},{start:1011627,audio:0,end:1011886,filename:"/usr/local/share/vim/ftplugin/libao.vim"},{start:1011886,audio:0,end:1012145,filename:"/usr/local/share/vim/ftplugin/limits.vim"},{start:1012145,audio:0,end:1013862,filename:"/usr/local/share/vim/ftplugin/liquid.vim"},{start:1013862,audio:0,end:1014213,filename:"/usr/local/share/vim/ftplugin/lisp.vim"},{start:1014213,audio:0,end:1014336,filename:"/usr/local/share/vim/ftplugin/logcheck.vim"},{start:1014336,audio:0,end:1014595,filename:"/usr/local/share/vim/ftplugin/loginaccess.vim"},{start:1014595,audio:0,end:1014854,filename:"/usr/local/share/vim/ftplugin/logindefs.vim"},{start:1014854,audio:0,end:1015122,filename:"/usr/local/share/vim/ftplugin/logtalk.vim"},{start:1015122,audio:0,end:1015831,filename:"/usr/local/share/vim/ftplugin/lprolog.vim"},{start:1015831,audio:0,end:1016332,filename:"/usr/local/share/vim/ftplugin/lua.vim"},{start:1016332,audio:0,end:1016607,filename:"/usr/local/share/vim/ftplugin/m4.vim"},{start:1016607,audio:0,end:1017129,filename:"/usr/local/share/vim/ftplugin/mail.vim"},{start:1017129,audio:0,end:1017388,filename:"/usr/local/share/vim/ftplugin/mailaliases.vim"},{start:1017388,audio:0,end:1017647,filename:"/usr/local/share/vim/ftplugin/mailcap.vim"},{start:1017647,audio:0,end:1018135,filename:"/usr/local/share/vim/ftplugin/make.vim"},{start:1018135,audio:0,end:1022791,filename:"/usr/local/share/vim/ftplugin/man.vim"},{start:1022791,audio:0,end:1023050,filename:"/usr/local/share/vim/ftplugin/manconf.vim"},{start:1023050,audio:0,end:1023992,filename:"/usr/local/share/vim/ftplugin/markdown.vim"},{start:1023992,audio:0,end:1024560,filename:"/usr/local/share/vim/ftplugin/matlab.vim"},{start:1024560,audio:0,end:1027431,filename:"/usr/local/share/vim/ftplugin/mf.vim"},{start:1027431,audio:0,end:1027575,filename:"/usr/local/share/vim/ftplugin/mma.vim"},{start:1027575,audio:0,end:1027869,filename:"/usr/local/share/vim/ftplugin/modconf.vim"},{start:1027869,audio:0,end:1031163,filename:"/usr/local/share/vim/ftplugin/mp.vim"},{start:1031163,audio:0,end:1031457,filename:"/usr/local/share/vim/ftplugin/mplayerconf.vim"},{start:1031457,audio:0,end:1031655,filename:"/usr/local/share/vim/ftplugin/mrxvtrc.vim"},{start:1031655,audio:0,end:1032155,filename:"/usr/local/share/vim/ftplugin/msmessages.vim"},{start:1032155,audio:0,end:1032460,filename:"/usr/local/share/vim/ftplugin/muttrc.vim"},{start:1032460,audio:0,end:1032719,filename:"/usr/local/share/vim/ftplugin/nanorc.vim"},{start:1032719,audio:0,end:1033024,filename:"/usr/local/share/vim/ftplugin/neomuttrc.vim"},{start:1033024,audio:0,end:1033276,filename:"/usr/local/share/vim/ftplugin/netrc.vim"},{start:1033276,audio:0,end:1033371,filename:"/usr/local/share/vim/ftplugin/nroff.vim"},{start:1033371,audio:0,end:1034465,filename:"/usr/local/share/vim/ftplugin/nsis.vim"},{start:1034465,audio:0,end:1034564,filename:"/usr/local/share/vim/ftplugin/objc.vim"},{start:1034564,audio:0,end:1045613,filename:"/usr/local/share/vim/ftplugin/ocaml.vim"},{start:1045613,audio:0,end:1046278,filename:"/usr/local/share/vim/ftplugin/occam.vim"},{start:1046278,audio:0,end:1046537,filename:"/usr/local/share/vim/ftplugin/pamconf.vim"},{start:1046537,audio:0,end:1046952,filename:"/usr/local/share/vim/ftplugin/pascal.vim"},{start:1046952,audio:0,end:1047204,filename:"/usr/local/share/vim/ftplugin/passwd.vim"},{start:1047204,audio:0,end:1049334,filename:"/usr/local/share/vim/ftplugin/pdf.vim"},{start:1049334,audio:0,end:1050794,filename:"/usr/local/share/vim/ftplugin/perl.vim"},{start:1050794,audio:0,end:1051919,filename:"/usr/local/share/vim/ftplugin/perl6.vim"},{start:1051919,audio:0,end:1053807,filename:"/usr/local/share/vim/ftplugin/php.vim"},{start:1053807,audio:0,end:1054066,filename:"/usr/local/share/vim/ftplugin/pinfo.vim"},{start:1054066,audio:0,end:1054597,filename:"/usr/local/share/vim/ftplugin/plaintex.vim"},{start:1054597,audio:0,end:1055244,filename:"/usr/local/share/vim/ftplugin/postscr.vim"},{start:1055244,audio:0,end:1055543,filename:"/usr/local/share/vim/ftplugin/procmail.vim"},{start:1055543,audio:0,end:1055828,filename:"/usr/local/share/vim/ftplugin/prolog.vim"},{start:1055828,audio:0,end:1056087,filename:"/usr/local/share/vim/ftplugin/protocols.vim"},{start:1056087,audio:0,end:1056572,filename:"/usr/local/share/vim/ftplugin/pyrex.vim"},{start:1056572,audio:0,end:1063256,filename:"/usr/local/share/vim/ftplugin/python.vim"},{start:1063256,audio:0,end:1063451,filename:"/usr/local/share/vim/ftplugin/qf.vim"},{start:1063451,audio:0,end:1063712,filename:"/usr/local/share/vim/ftplugin/quake.vim"},{start:1063712,audio:0,end:1064256,filename:"/usr/local/share/vim/ftplugin/r.vim"},{start:1064256,audio:0,end:1064541,filename:"/usr/local/share/vim/ftplugin/racc.vim"},{start:1064541,audio:0,end:1064800,filename:"/usr/local/share/vim/ftplugin/readline.vim"},{start:1064800,audio:0,end:1065328,filename:"/usr/local/share/vim/ftplugin/registry.vim"},{start:1065328,audio:0,end:1065565,filename:"/usr/local/share/vim/ftplugin/reva.vim"},{start:1065565,audio:0,end:1065974,filename:"/usr/local/share/vim/ftplugin/rhelp.vim"},{start:1065974,audio:0,end:1067199,filename:"/usr/local/share/vim/ftplugin/rmd.vim"},{start:1067199,audio:0,end:1067458,filename:"/usr/local/share/vim/ftplugin/rnc.vim"},{start:1067458,audio:0,end:1068115,filename:"/usr/local/share/vim/ftplugin/rnoweb.vim"},{start:1068115,audio:0,end:1068314,filename:"/usr/local/share/vim/ftplugin/rpl.vim"},{start:1068314,audio:0,end:1069359,filename:"/usr/local/share/vim/ftplugin/rrst.vim"},{start:1069359,audio:0,end:1070067,filename:"/usr/local/share/vim/ftplugin/rst.vim"},{start:1070067,audio:0,end:1084858,filename:"/usr/local/share/vim/ftplugin/ruby.vim"},{start:1084858,audio:0,end:1089233,filename:"/usr/local/share/vim/ftplugin/rust.vim"},{start:1089233,audio:0,end:1089657,filename:"/usr/local/share/vim/ftplugin/sass.vim"},{start:1089657,audio:0,end:1089756,filename:"/usr/local/share/vim/ftplugin/sbt.vim"},{start:1089756,audio:0,end:1090357,filename:"/usr/local/share/vim/ftplugin/scala.vim"},{start:1090357,audio:0,end:1091454,filename:"/usr/local/share/vim/ftplugin/scheme.vim"},{start:1091454,audio:0,end:1091713,filename:"/usr/local/share/vim/ftplugin/screen.vim"},{start:1091713,audio:0,end:1091820,filename:"/usr/local/share/vim/ftplugin/scss.vim"},{start:1091820,audio:0,end:1092079,filename:"/usr/local/share/vim/ftplugin/sensors.vim"},{start:1092079,audio:0,end:1092338,filename:"/usr/local/share/vim/ftplugin/services.vim"},{start:1092338,audio:0,end:1092597,filename:"/usr/local/share/vim/ftplugin/setserial.vim"},{start:1092597,audio:0,end:1093221,filename:"/usr/local/share/vim/ftplugin/sgml.vim"},{start:1093221,audio:0,end:1093925,filename:"/usr/local/share/vim/ftplugin/sh.vim"},{start:1093925,audio:0,end:1094210,filename:"/usr/local/share/vim/ftplugin/sieve.vim"},{start:1094210,audio:0,end:1094481,filename:"/usr/local/share/vim/ftplugin/slpconf.vim"},{start:1094481,audio:0,end:1094752,filename:"/usr/local/share/vim/ftplugin/slpreg.vim"},{start:1094752,audio:0,end:1095023,filename:"/usr/local/share/vim/ftplugin/slpspi.vim"},{start:1095023,audio:0,end:1099882,filename:"/usr/local/share/vim/ftplugin/spec.vim"},{start:1099882,audio:0,end:1108925,filename:"/usr/local/share/vim/ftplugin/sql.vim"},{start:1108925,audio:0,end:1109184,filename:"/usr/local/share/vim/ftplugin/sshconfig.vim"},{start:1109184,audio:0,end:1109443,filename:"/usr/local/share/vim/ftplugin/sudoers.vim"},{start:1109443,audio:0,end:1110058,filename:"/usr/local/share/vim/ftplugin/svg.vim"},{start:1110058,audio:0,end:1110329,filename:"/usr/local/share/vim/ftplugin/sysctl.vim"},{start:1110329,audio:0,end:1110393,filename:"/usr/local/share/vim/ftplugin/systemd.vim"},{start:1110393,audio:0,end:1110464,filename:"/usr/local/share/vim/ftplugin/systemverilog.vim"},{start:1110464,audio:0,end:1110937,filename:"/usr/local/share/vim/ftplugin/tcl.vim"},{start:1110937,audio:0,end:1111557,filename:"/usr/local/share/vim/ftplugin/tcsh.vim"},{start:1111557,audio:0,end:1111816,filename:"/usr/local/share/vim/ftplugin/terminfo.vim"},{start:1111816,audio:0,end:1112414,filename:"/usr/local/share/vim/ftplugin/tex.vim"},{start:1112414,audio:0,end:1112592,filename:"/usr/local/share/vim/ftplugin/text.vim"},{start:1112592,audio:0,end:1112685,filename:"/usr/local/share/vim/ftplugin/tmux.vim"},{start:1112685,audio:0,end:1112945,filename:"/usr/local/share/vim/ftplugin/treetop.vim"},{start:1112945,audio:0,end:1113053,filename:"/usr/local/share/vim/ftplugin/tt2html.vim"},{start:1113053,audio:0,end:1113365,filename:"/usr/local/share/vim/ftplugin/typescript.vim"},{start:1113365,audio:0,end:1113624,filename:"/usr/local/share/vim/ftplugin/udevconf.vim"},{start:1113624,audio:0,end:1113883,filename:"/usr/local/share/vim/ftplugin/udevperm.vim"},{start:1113883,audio:0,end:1114142,filename:"/usr/local/share/vim/ftplugin/udevrules.vim"},{start:1114142,audio:0,end:1114401,filename:"/usr/local/share/vim/ftplugin/updatedb.vim"},{start:1114401,audio:0,end:1115962,filename:"/usr/local/share/vim/ftplugin/vb.vim"},{start:1115962,audio:0,end:1116994,filename:"/usr/local/share/vim/ftplugin/verilog.vim"},{start:1116994,audio:0,end:1119327,filename:"/usr/local/share/vim/ftplugin/vhdl.vim"},{start:1119327,audio:0,end:1121904,filename:"/usr/local/share/vim/ftplugin/vim.vim"},{start:1121904,audio:0,end:1122322,filename:"/usr/local/share/vim/ftplugin/vroom.vim"},{start:1122322,audio:0,end:1122584,filename:"/usr/local/share/vim/ftplugin/wast.vim"},{start:1122584,audio:0,end:1122874,filename:"/usr/local/share/vim/ftplugin/xdefaults.vim"},{start:1122874,audio:0,end:1123133,filename:"/usr/local/share/vim/ftplugin/xf86conf.vim"},{start:1123133,audio:0,end:1124421,filename:"/usr/local/share/vim/ftplugin/xhtml.vim"},{start:1124421,audio:0,end:1124715,filename:"/usr/local/share/vim/ftplugin/xinetd.vim"},{start:1124715,audio:0,end:1125866,filename:"/usr/local/share/vim/ftplugin/xml.vim"},{start:1125866,audio:0,end:1126125,filename:"/usr/local/share/vim/ftplugin/xmodmap.vim"},{start:1126125,audio:0,end:1126224,filename:"/usr/local/share/vim/ftplugin/xs.vim"},{start:1126224,audio:0,end:1126839,filename:"/usr/local/share/vim/ftplugin/xsd.vim"},{start:1126839,audio:0,end:1127106,filename:"/usr/local/share/vim/ftplugin/xslt.vim"},{start:1127106,audio:0,end:1127388,filename:"/usr/local/share/vim/ftplugin/yaml.vim"},{start:1127388,audio:0,end:1131626,filename:"/usr/local/share/vim/ftplugin/zimbu.vim"},{start:1131626,audio:0,end:1132102,filename:"/usr/local/share/vim/ftplugin/zsh.vim"},{start:1132102,audio:0,end:1132168,filename:"/usr/local/share/vim/indent/aap.vim"},{start:1132168,audio:0,end:1137907,filename:"/usr/local/share/vim/indent/ada.vim"},{start:1137907,audio:0,end:1137970,filename:"/usr/local/share/vim/indent/ant.vim"},{start:1137970,audio:0,end:1138034,filename:"/usr/local/share/vim/indent/automake.vim"},{start:1138034,audio:0,end:1141145,filename:"/usr/local/share/vim/indent/awk.vim"},{start:1141145,audio:0,end:1141254,filename:"/usr/local/share/vim/indent/bib.vim"},{start:1141254,audio:0,end:1142643,filename:"/usr/local/share/vim/indent/bst.vim"},{start:1142643,audio:0,end:1144164,filename:"/usr/local/share/vim/indent/bzl.vim"},{start:1144164,audio:0,end:1144273,filename:"/usr/local/share/vim/indent/c.vim"},{start:1144273,audio:0,end:1146758,filename:"/usr/local/share/vim/indent/cdl.vim"},{start:1146758,audio:0,end:1146835,filename:"/usr/local/share/vim/indent/ch.vim"},{start:1146835,audio:0,end:1147404,filename:"/usr/local/share/vim/indent/chaiscript.vim"},{start:1147404,audio:0,end:1147507,filename:"/usr/local/share/vim/indent/changelog.vim"},{start:1147507,audio:0,end:1153824,filename:"/usr/local/share/vim/indent/clojure.vim"},{start:1153824,audio:0,end:1155626,filename:"/usr/local/share/vim/indent/cmake.vim"},{start:1155626,audio:0,end:1161499,filename:"/usr/local/share/vim/indent/cobol.vim"},{start:1161499,audio:0,end:1162575,filename:"/usr/local/share/vim/indent/config.vim"},{start:1162575,audio:0,end:1163043,filename:"/usr/local/share/vim/indent/context.vim"},{start:1163043,audio:0,end:1163152,filename:"/usr/local/share/vim/indent/cpp.vim"},{start:1163152,audio:0,end:1164266,filename:"/usr/local/share/vim/indent/cs.vim"},{start:1164266,audio:0,end:1165655,filename:"/usr/local/share/vim/indent/css.vim"},{start:1165655,audio:0,end:1167631,filename:"/usr/local/share/vim/indent/cucumber.vim"},{start:1167631,audio:0,end:1167740,filename:"/usr/local/share/vim/indent/cuda.vim"},{start:1167740,audio:0,end:1167817,filename:"/usr/local/share/vim/indent/d.vim"},{start:1167817,audio:0,end:1167991,filename:"/usr/local/share/vim/indent/dictconf.vim"},{start:1167991,audio:0,end:1168165,filename:"/usr/local/share/vim/indent/dictdconf.vim"},{start:1168165,audio:0,end:1168304,filename:"/usr/local/share/vim/indent/docbk.vim"},{start:1168304,audio:0,end:1169171,filename:"/usr/local/share/vim/indent/dosbatch.vim"},{start:1169171,audio:0,end:1174749,filename:"/usr/local/share/vim/indent/dtd.vim"},{start:1174749,audio:0,end:1174858,filename:"/usr/local/share/vim/indent/dtrace.vim"},{start:1174858,audio:0,end:1176402,filename:"/usr/local/share/vim/indent/dylan.vim"},{start:1176402,audio:0,end:1178453,filename:"/usr/local/share/vim/indent/eiffel.vim"},{start:1178453,audio:0,end:1200683,filename:"/usr/local/share/vim/indent/erlang.vim"},{start:1200683,audio:0,end:1202942,filename:"/usr/local/share/vim/indent/eruby.vim"},{start:1202942,audio:0,end:1203411,filename:"/usr/local/share/vim/indent/eterm.vim"},{start:1203411,audio:0,end:1211587,filename:"/usr/local/share/vim/indent/falcon.vim"},{start:1211587,audio:0,end:1216004,filename:"/usr/local/share/vim/indent/fortran.vim"},{start:1216004,audio:0,end:1216624,filename:"/usr/local/share/vim/indent/framescript.vim"},{start:1216624,audio:0,end:1217215,filename:"/usr/local/share/vim/indent/gitconfig.vim"},{start:1217215,audio:0,end:1218016,filename:"/usr/local/share/vim/indent/gitolite.vim"},{start:1218016,audio:0,end:1218783,filename:"/usr/local/share/vim/indent/go.vim"},{start:1218783,audio:0,end:1220717,filename:"/usr/local/share/vim/indent/haml.vim"},{start:1220717,audio:0,end:1221522,filename:"/usr/local/share/vim/indent/hamster.vim"},{start:1221522,audio:0,end:1222663,filename:"/usr/local/share/vim/indent/hog.vim"},{start:1222663,audio:0,end:1240991,filename:"/usr/local/share/vim/indent/html.vim"},{start:1240991,audio:0,end:1241055,filename:"/usr/local/share/vim/indent/htmldjango.vim"},{start:1241055,audio:0,end:1242043,filename:"/usr/local/share/vim/indent/idlang.vim"},{start:1242043,audio:0,end:1243323,filename:"/usr/local/share/vim/indent/ishd.vim"},{start:1243323,audio:0,end:1244432,filename:"/usr/local/share/vim/indent/j.vim"},{start:1244432,audio:0,end:1246894,filename:"/usr/local/share/vim/indent/java.vim"},{start:1246894,audio:0,end:1258693,filename:"/usr/local/share/vim/indent/javascript.vim"},{start:1258693,audio:0,end:1260910,filename:"/usr/local/share/vim/indent/json.vim"},{start:1260910,audio:0,end:1260974,filename:"/usr/local/share/vim/indent/jsp.vim"},{start:1260974,audio:0,end:1262381,filename:"/usr/local/share/vim/indent/ld.vim"},{start:1262381,audio:0,end:1262444,filename:"/usr/local/share/vim/indent/less.vim"},{start:1262444,audio:0,end:1262708,filename:"/usr/local/share/vim/indent/lifelines.vim"},{start:1262708,audio:0,end:1264381,filename:"/usr/local/share/vim/indent/liquid.vim"},{start:1264381,audio:0,end:1264493,filename:"/usr/local/share/vim/indent/lisp.vim"},{start:1264493,audio:0,end:1265513,filename:"/usr/local/share/vim/indent/logtalk.vim"},{start:1265513,audio:0,end:1266482,filename:"/usr/local/share/vim/indent/lua.vim"},{start:1266482,audio:0,end:1266598,filename:"/usr/local/share/vim/indent/mail.vim"},{start:1266598,audio:0,end:1268912,filename:"/usr/local/share/vim/indent/make.vim"},{start:1268912,audio:0,end:1272603,filename:"/usr/local/share/vim/indent/matlab.vim"},{start:1272603,audio:0,end:1272626,filename:"/usr/local/share/vim/indent/mf.vim"},{start:1272626,audio:0,end:1273472,filename:"/usr/local/share/vim/indent/mma.vim"},{start:1273472,audio:0,end:1278205,filename:"/usr/local/share/vim/indent/mp.vim"},{start:1278205,audio:0,end:1280578,filename:"/usr/local/share/vim/indent/nsis.vim"},{start:1280578,audio:0,end:1281731,filename:"/usr/local/share/vim/indent/objc.vim"},{start:1281731,audio:0,end:1287579,filename:"/usr/local/share/vim/indent/ocaml.vim"},{start:1287579,audio:0,end:1290990,filename:"/usr/local/share/vim/indent/occam.vim"},{start:1290990,audio:0,end:1293840,filename:"/usr/local/share/vim/indent/pascal.vim"},{start:1293840,audio:0,end:1296571,filename:"/usr/local/share/vim/indent/perl.vim"},{start:1296571,audio:0,end:1297936,filename:"/usr/local/share/vim/indent/perl6.vim"},{start:1297936,audio:0,end:1318079,filename:"/usr/local/share/vim/indent/php.vim"},{start:1318079,audio:0,end:1318910,filename:"/usr/local/share/vim/indent/postscr.vim"},{start:1318910,audio:0,end:1320347,filename:"/usr/local/share/vim/indent/pov.vim"},{start:1320347,audio:0,end:1321088,filename:"/usr/local/share/vim/indent/prolog.vim"},{start:1321088,audio:0,end:1321154,filename:"/usr/local/share/vim/indent/pyrex.vim"},{start:1321154,audio:0,end:1324969,filename:"/usr/local/share/vim/indent/python.vim"},{start:1324969,audio:0,end:1336023,filename:"/usr/local/share/vim/indent/r.vim"},{start:1336023,audio:0,end:1336087,filename:"/usr/local/share/vim/indent/raml.vim"},{start:1336087,audio:0,end:1336596,filename:"/usr/local/share/vim/indent/readline.vim"},{start:1336596,audio:0,end:1338917,filename:"/usr/local/share/vim/indent/rhelp.vim"},{start:1338917,audio:0,end:1340249,filename:"/usr/local/share/vim/indent/rmd.vim"},{start:1340249,audio:0,end:1341040,filename:"/usr/local/share/vim/indent/rnoweb.vim"},{start:1341040,audio:0,end:1342258,filename:"/usr/local/share/vim/indent/rpl.vim"},{start:1342258,audio:0,end:1343139,filename:"/usr/local/share/vim/indent/rrst.vim"},{start:1343139,audio:0,end:1344140,filename:"/usr/local/share/vim/indent/rst.vim"},{start:1344140,audio:0,end:1361292,filename:"/usr/local/share/vim/indent/ruby.vim"},{start:1361292,audio:0,end:1363975,filename:"/usr/local/share/vim/indent/rust.vim"},{start:1363975,audio:0,end:1367254,filename:"/usr/local/share/vim/indent/sas.vim"},{start:1367254,audio:0,end:1368010,filename:"/usr/local/share/vim/indent/sass.vim"},{start:1368010,audio:0,end:1383165,filename:"/usr/local/share/vim/indent/scala.vim"},{start:1383165,audio:0,end:1383229,filename:"/usr/local/share/vim/indent/scheme.vim"},{start:1383229,audio:0,end:1383292,filename:"/usr/local/share/vim/indent/scss.vim"},{start:1383292,audio:0,end:1385116,filename:"/usr/local/share/vim/indent/sdl.vim"},{start:1385116,audio:0,end:1391094,filename:"/usr/local/share/vim/indent/sh.vim"},{start:1391094,audio:0,end:1395031,filename:"/usr/local/share/vim/indent/sml.vim"},{start:1395031,audio:0,end:1395433,filename:"/usr/local/share/vim/indent/sql.vim"},{start:1395433,audio:0,end:1400188,filename:"/usr/local/share/vim/indent/sqlanywhere.vim"},{start:1400188,audio:0,end:1400254,filename:"/usr/local/share/vim/indent/systemd.vim"},{start:1400254,audio:0,end:1406743,filename:"/usr/local/share/vim/indent/systemverilog.vim"},{start:1406743,audio:0,end:1408258,filename:"/usr/local/share/vim/indent/tcl.vim"},{start:1408258,audio:0,end:1408904,filename:"/usr/local/share/vim/indent/tcsh.vim"},{start:1408904,audio:0,end:1409777,filename:"/usr/local/share/vim/indent/teraterm.vim"},{start:1409777,audio:0,end:1414610,filename:"/usr/local/share/vim/indent/tex.vim"},{start:1414610,audio:0,end:1415538,filename:"/usr/local/share/vim/indent/tf.vim"},{start:1415538,audio:0,end:1416352,filename:"/usr/local/share/vim/indent/tilde.vim"},{start:1416352,audio:0,end:1416873,filename:"/usr/local/share/vim/indent/treetop.vim"},{start:1416873,audio:0,end:1425871,filename:"/usr/local/share/vim/indent/typescript.vim"},{start:1425871,audio:0,end:1427182,filename:"/usr/local/share/vim/indent/vb.vim"},{start:1427182,audio:0,end:1432805,filename:"/usr/local/share/vim/indent/verilog.vim"},{start:1432805,audio:0,end:1439345,filename:"/usr/local/share/vim/indent/vhdl.vim"},{start:1439345,audio:0,end:1441189,filename:"/usr/local/share/vim/indent/vim.vim"},{start:1441189,audio:0,end:1441384,filename:"/usr/local/share/vim/indent/vroom.vim"},{start:1441384,audio:0,end:1441561,filename:"/usr/local/share/vim/indent/wast.vim"},{start:1441561,audio:0,end:1442068,filename:"/usr/local/share/vim/indent/xf86conf.vim"},{start:1442068,audio:0,end:1442132,filename:"/usr/local/share/vim/indent/xhtml.vim"},{start:1442132,audio:0,end:1443068,filename:"/usr/local/share/vim/indent/xinetd.vim"},{start:1443068,audio:0,end:1445736,filename:"/usr/local/share/vim/indent/xml.vim"},{start:1445736,audio:0,end:1445799,filename:"/usr/local/share/vim/indent/xsd.vim"},{start:1445799,audio:0,end:1445862,filename:"/usr/local/share/vim/indent/xslt.vim"},{start:1445862,audio:0,end:1446355,filename:"/usr/local/share/vim/indent/yacc.vim"},{start:1446355,audio:0,end:1450113,filename:"/usr/local/share/vim/indent/yaml.vim"},{start:1450113,audio:0,end:1452687,filename:"/usr/local/share/vim/indent/zimbu.vim"},{start:1452687,audio:0,end:1452749,filename:"/usr/local/share/vim/indent/zsh.vim"},{start:1452749,audio:0,end:1453276,filename:"/usr/local/share/vim/plugin/getscriptPlugin.vim"},{start:1453276,audio:0,end:1455224,filename:"/usr/local/share/vim/plugin/gzip.vim"},{start:1455224,audio:0,end:1459638,filename:"/usr/local/share/vim/plugin/logiPat.vim"},{start:1459638,audio:0,end:1460093,filename:"/usr/local/share/vim/plugin/manpager.vim"},{start:1460093,audio:0,end:1464257,filename:"/usr/local/share/vim/plugin/matchparen.vim"},{start:1464257,audio:0,end:1469777,filename:"/usr/local/share/vim/plugin/netrwPlugin.vim"},{start:1469777,audio:0,end:1470550,filename:"/usr/local/share/vim/plugin/rrhelper.vim"},{start:1470550,audio:0,end:1470741,filename:"/usr/local/share/vim/plugin/spellfile.vim"},{start:1470741,audio:0,end:1472140,filename:"/usr/local/share/vim/plugin/tarPlugin.vim"},{start:1472140,audio:0,end:1472366,filename:"/usr/local/share/vim/plugin/tohtml.vim"},{start:1472366,audio:0,end:1474296,filename:"/usr/local/share/vim/plugin/vimballPlugin.vim"},{start:1474296,audio:0,end:1475399,filename:"/usr/local/share/vim/plugin/zipPlugin.vim"},{start:1475399,audio:0,end:1521014,filename:"/usr/local/share/vim/syntax/2html.vim"},{start:1521014,audio:0,end:1548645,filename:"/usr/local/share/vim/syntax/8th.vim"},{start:1548645,audio:0,end:1550531,filename:"/usr/local/share/vim/syntax/a2ps.vim"},{start:1550531,audio:0,end:1556523,filename:"/usr/local/share/vim/syntax/a65.vim"},{start:1556523,audio:0,end:1561626,filename:"/usr/local/share/vim/syntax/aap.vim"},{start:1561626,audio:0,end:1570031,filename:"/usr/local/share/vim/syntax/abap.vim"},{start:1570031,audio:0,end:1570629,filename:"/usr/local/share/vim/syntax/abaqus.vim"},{start:1570629,audio:0,end:1572098,filename:"/usr/local/share/vim/syntax/abc.vim"},{start:1572098,audio:0,end:1576423,filename:"/usr/local/share/vim/syntax/abel.vim"},{start:1576423,audio:0,end:1580584,filename:"/usr/local/share/vim/syntax/acedb.vim"},{start:1580584,audio:0,end:1587369,filename:"/usr/local/share/vim/syntax/ada.vim"},{start:1587369,audio:0,end:1591004,filename:"/usr/local/share/vim/syntax/aflex.vim"},{start:1591004,audio:0,end:1593182,filename:"/usr/local/share/vim/syntax/ahdl.vim"},{start:1593182,audio:0,end:1594453,filename:"/usr/local/share/vim/syntax/alsaconf.vim"},{start:1594453,audio:0,end:1596950,filename:"/usr/local/share/vim/syntax/amiga.vim"},{start:1596950,audio:0,end:1619824,filename:"/usr/local/share/vim/syntax/aml.vim"},{start:1619824,audio:0,end:1623391,filename:"/usr/local/share/vim/syntax/ampl.vim"},{start:1623391,audio:0,end:1628808,filename:"/usr/local/share/vim/syntax/ant.vim"},{start:1628808,audio:0,end:1629554,filename:"/usr/local/share/vim/syntax/antlr.vim"},{start:1629554,audio:0,end:1644057,filename:"/usr/local/share/vim/syntax/apache.vim"},{start:1644057,audio:0,end:1644549,filename:"/usr/local/share/vim/syntax/apachestyle.vim"},{start:1644549,audio:0,end:1663971,filename:"/usr/local/share/vim/syntax/aptconf.vim"},{start:1663971,audio:0,end:1664878,filename:"/usr/local/share/vim/syntax/arch.vim"},{start:1664878,audio:0,end:1666403,filename:"/usr/local/share/vim/syntax/arduino.vim"},{start:1666403,audio:0,end:1667466,filename:"/usr/local/share/vim/syntax/art.vim"},{start:1667466,audio:0,end:1676981,filename:"/usr/local/share/vim/syntax/asciidoc.vim"},{start:1676981,audio:0,end:1678710,filename:"/usr/local/share/vim/syntax/asm.vim"},{start:1678710,audio:0,end:1691627,filename:"/usr/local/share/vim/syntax/asm68k.vim"},{start:1691627,audio:0,end:1693121,filename:"/usr/local/share/vim/syntax/asmh8300.vim"},{start:1693121,audio:0,end:1695335,filename:"/usr/local/share/vim/syntax/asn.vim"},{start:1695335,audio:0,end:1695913,filename:"/usr/local/share/vim/syntax/aspperl.vim"},{start:1695913,audio:0,end:1702470,filename:"/usr/local/share/vim/syntax/aspvbs.vim"},{start:1702470,audio:0,end:1707519,filename:"/usr/local/share/vim/syntax/asterisk.vim"},{start:1707519,audio:0,end:1709497,filename:"/usr/local/share/vim/syntax/asteriskvm.vim"},{start:1709497,audio:0,end:1711642,filename:"/usr/local/share/vim/syntax/atlas.vim"},{start:1711642,audio:0,end:1714706,filename:"/usr/local/share/vim/syntax/autodoc.vim"},{start:1714706,audio:0,end:1724776,filename:"/usr/local/share/vim/syntax/autohotkey.vim"},{start:1724776,audio:0,end:1769562,filename:"/usr/local/share/vim/syntax/autoit.vim"},{start:1769562,audio:0,end:1772369,filename:"/usr/local/share/vim/syntax/automake.vim"},{start:1772369,audio:0,end:1773392,filename:"/usr/local/share/vim/syntax/ave.vim"},{start:1773392,audio:0,end:1775853,filename:"/usr/local/share/vim/syntax/avra.vim"},{start:1775853,audio:0,end:1780707,filename:"/usr/local/share/vim/syntax/awk.vim"},{start:1780707,audio:0,end:1782681,filename:"/usr/local/share/vim/syntax/ayacc.vim"},{start:1782681,audio:0,end:1786792,filename:"/usr/local/share/vim/syntax/b.vim"},{start:1786792,audio:0,end:1858654,filename:"/usr/local/share/vim/syntax/baan.vim"},{start:1858654,audio:0,end:1865906,filename:"/usr/local/share/vim/syntax/basic.vim"},{start:1865906,audio:0,end:1867217,filename:"/usr/local/share/vim/syntax/bc.vim"},{start:1867217,audio:0,end:1870066,filename:"/usr/local/share/vim/syntax/bdf.vim"},{start:1870066,audio:0,end:1875006,filename:"/usr/local/share/vim/syntax/bib.vim"},{start:1875006,audio:0,end:1878737,filename:"/usr/local/share/vim/syntax/bindzone.vim"},{start:1878737,audio:0,end:1879180,filename:"/usr/local/share/vim/syntax/blank.vim"},{start:1879180,audio:0,end:1881504,filename:"/usr/local/share/vim/syntax/bst.vim"},{start:1881504,audio:0,end:1888753,filename:"/usr/local/share/vim/syntax/btm.vim"},{start:1888753,audio:0,end:1888972,filename:"/usr/local/share/vim/syntax/bzl.vim"},{start:1888972,audio:0,end:1890023,filename:"/usr/local/share/vim/syntax/bzr.vim"},{start:1890023,audio:0,end:1913572,filename:"/usr/local/share/vim/syntax/c.vim"},{start:1913572,audio:0,end:1918018,filename:"/usr/local/share/vim/syntax/cabal.vim"},{start:1918018,audio:0,end:1922091,filename:"/usr/local/share/vim/syntax/calendar.vim"},{start:1922091,audio:0,end:1922684,filename:"/usr/local/share/vim/syntax/catalog.vim"},{start:1922684,audio:0,end:1925119,filename:"/usr/local/share/vim/syntax/cdl.vim"},{start:1925119,audio:0,end:1928177,filename:"/usr/local/share/vim/syntax/cdrdaoconf.vim"},{start:1928177,audio:0,end:1948070,filename:"/usr/local/share/vim/syntax/cdrtoc.vim"},{start:1948070,audio:0,end:1959528,filename:"/usr/local/share/vim/syntax/cf.vim"},{start:1959528,audio:0,end:1960412,filename:"/usr/local/share/vim/syntax/cfg.vim"},{start:1960412,audio:0,end:1960907,filename:"/usr/local/share/vim/syntax/ch.vim"},{start:1960907,audio:0,end:1962976,filename:"/usr/local/share/vim/syntax/chaiscript.vim"},{start:1962976,audio:0,end:1963266,filename:"/usr/local/share/vim/syntax/change.vim"},{start:1963266,audio:0,end:1965012,filename:"/usr/local/share/vim/syntax/changelog.vim"},{start:1965012,audio:0,end:1965055,filename:"/usr/local/share/vim/syntax/chaskell.vim"},{start:1965055,audio:0,end:1966315,filename:"/usr/local/share/vim/syntax/cheetah.vim"},{start:1966315,audio:0,end:1968401,filename:"/usr/local/share/vim/syntax/chicken.vim"},{start:1968401,audio:0,end:1974377,filename:"/usr/local/share/vim/syntax/chill.vim"},{start:1974377,audio:0,end:1976515,filename:"/usr/local/share/vim/syntax/chordpro.vim"},{start:1976515,audio:0,end:1979589,filename:"/usr/local/share/vim/syntax/cl.vim"},{start:1979589,audio:0,end:1982021,filename:"/usr/local/share/vim/syntax/clean.vim"},{start:1982021,audio:0,end:1986430,filename:"/usr/local/share/vim/syntax/clipper.vim"},{start:1986430,audio:0,end:2026722,filename:"/usr/local/share/vim/syntax/clojure.vim"},{start:2026722,audio:0,end:2066774,filename:"/usr/local/share/vim/syntax/cmake.vim"},{start:2066774,audio:0,end:2072497,filename:"/usr/local/share/vim/syntax/cmod.vim"},{start:2072497,audio:0,end:2081793,filename:"/usr/local/share/vim/syntax/cmusrc.vim"},{start:2081793,audio:0,end:2091924,filename:"/usr/local/share/vim/syntax/cobol.vim"},{start:2091924,audio:0,end:2092974,filename:"/usr/local/share/vim/syntax/coco.vim"},{start:2092974,audio:0,end:2093800,filename:"/usr/local/share/vim/syntax/colortest.vim"},{start:2093800,audio:0,end:2101633,filename:"/usr/local/share/vim/syntax/conaryrecipe.vim"},{start:2101633,audio:0,end:2102071,filename:"/usr/local/share/vim/syntax/conf.vim"},{start:2102071,audio:0,end:2103290,filename:"/usr/local/share/vim/syntax/config.vim"},{start:2103290,audio:0,end:2108183,filename:"/usr/local/share/vim/syntax/context.vim"},{start:2108183,audio:0,end:2110605,filename:"/usr/local/share/vim/syntax/cpp.vim"},{start:2110605,audio:0,end:2111623,filename:"/usr/local/share/vim/syntax/crm.vim"},{start:2111623,audio:0,end:2113185,filename:"/usr/local/share/vim/syntax/crontab.vim"},{start:2113185,audio:0,end:2122281,filename:"/usr/local/share/vim/syntax/cs.vim"},{start:2122281,audio:0,end:2129733,filename:"/usr/local/share/vim/syntax/csc.vim"},{start:2129733,audio:0,end:2153339,filename:"/usr/local/share/vim/syntax/csdl.vim"},{start:2153339,audio:0,end:2158722,filename:"/usr/local/share/vim/syntax/csh.vim"},{start:2158722,audio:0,end:2163869,filename:"/usr/local/share/vim/syntax/csp.vim"},{start:2163869,audio:0,end:2191794,filename:"/usr/local/share/vim/syntax/css.vim"},{start:2191794,audio:0,end:2196791,filename:"/usr/local/share/vim/syntax/cterm.vim"},{start:2196791,audio:0,end:2197084,filename:"/usr/local/share/vim/syntax/ctrlh.vim"},{start:2197084,audio:0,end:2228415,filename:"/usr/local/share/vim/syntax/cucumber.vim"},{start:2228415,audio:0,end:2230674,filename:"/usr/local/share/vim/syntax/cuda.vim"},{start:2230674,audio:0,end:2233666,filename:"/usr/local/share/vim/syntax/cupl.vim"},{start:2233666,audio:0,end:2235022,filename:"/usr/local/share/vim/syntax/cuplsim.vim"},{start:2235022,audio:0,end:2235629,filename:"/usr/local/share/vim/syntax/cvs.vim"},{start:2235629,audio:0,end:2236542,filename:"/usr/local/share/vim/syntax/cvsrc.vim"},{start:2236542,audio:0,end:2237272,filename:"/usr/local/share/vim/syntax/cweb.vim"},{start:2237272,audio:0,end:2239066,filename:"/usr/local/share/vim/syntax/cynlib.vim"},{start:2239066,audio:0,end:2239583,filename:"/usr/local/share/vim/syntax/cynpp.vim"},{start:2239583,audio:0,end:2265454,filename:"/usr/local/share/vim/syntax/d.vim"},{start:2265454,audio:0,end:2268767,filename:"/usr/local/share/vim/syntax/datascript.vim"},{start:2268767,audio:0,end:2270254,filename:"/usr/local/share/vim/syntax/dcd.vim"},{start:2270254,audio:0,end:2275653,filename:"/usr/local/share/vim/syntax/dcl.vim"},{start:2275653,audio:0,end:2277712,filename:"/usr/local/share/vim/syntax/debchangelog.vim"},{start:2277712,audio:0,end:2285172,filename:"/usr/local/share/vim/syntax/debcontrol.vim"},{start:2285172,audio:0,end:2286003,filename:"/usr/local/share/vim/syntax/debcopyright.vim"},{start:2286003,audio:0,end:2287631,filename:"/usr/local/share/vim/syntax/debsources.vim"},{start:2287631,audio:0,end:2288346,filename:"/usr/local/share/vim/syntax/def.vim"},{start:2288346,audio:0,end:2294324,filename:"/usr/local/share/vim/syntax/denyhosts.vim"},{start:2294324,audio:0,end:2296974,filename:"/usr/local/share/vim/syntax/desc.vim"},{start:2296974,audio:0,end:2300079,filename:"/usr/local/share/vim/syntax/desktop.vim"},{start:2300079,audio:0,end:2302313,filename:"/usr/local/share/vim/syntax/dictconf.vim"},{start:2302313,audio:0,end:2306951,filename:"/usr/local/share/vim/syntax/dictdconf.vim"},{start:2306951,audio:0,end:2323381,filename:"/usr/local/share/vim/syntax/diff.vim"},{start:2323381,audio:0,end:2328394,filename:"/usr/local/share/vim/syntax/dircolors.vim"},{start:2328394,audio:0,end:2329337,filename:"/usr/local/share/vim/syntax/dirpager.vim"},{start:2329337,audio:0,end:2333436,filename:"/usr/local/share/vim/syntax/diva.vim"},{start:2333436,audio:0,end:2336562,filename:"/usr/local/share/vim/syntax/django.vim"},{start:2336562,audio:0,end:2336592,filename:"/usr/local/share/vim/syntax/dns.vim"},{start:2336592,audio:0,end:2346007,filename:"/usr/local/share/vim/syntax/dnsmasq.vim"},{start:2346007,audio:0,end:2355515,filename:"/usr/local/share/vim/syntax/docbk.vim"},{start:2355515,audio:0,end:2355564,filename:"/usr/local/share/vim/syntax/docbksgml.vim"},{start:2355564,audio:0,end:2355612,filename:"/usr/local/share/vim/syntax/docbkxml.vim"},{start:2355612,audio:0,end:2356102,filename:"/usr/local/share/vim/syntax/dockerfile.vim"},{start:2356102,audio:0,end:2361267,filename:"/usr/local/share/vim/syntax/dosbatch.vim"},{start:2361267,audio:0,end:2361875,filename:"/usr/local/share/vim/syntax/dosini.vim"},{start:2361875,audio:0,end:2364135,filename:"/usr/local/share/vim/syntax/dot.vim"},{start:2364135,audio:0,end:2394307,filename:"/usr/local/share/vim/syntax/doxygen.vim"},{start:2394307,audio:0,end:2396217,filename:"/usr/local/share/vim/syntax/dracula.vim"},{start:2396217,audio:0,end:2396924,filename:"/usr/local/share/vim/syntax/dsl.vim"},{start:2396924,audio:0,end:2399903,filename:"/usr/local/share/vim/syntax/dtd.vim"},{start:2399903,audio:0,end:2415415,filename:"/usr/local/share/vim/syntax/dtml.vim"},{start:2415415,audio:0,end:2418785,filename:"/usr/local/share/vim/syntax/dtrace.vim"},{start:2418785,audio:0,end:2419861,filename:"/usr/local/share/vim/syntax/dts.vim"},{start:2419861,audio:0,end:2421117,filename:"/usr/local/share/vim/syntax/dune.vim"},{start:2421117,audio:0,end:2423657,filename:"/usr/local/share/vim/syntax/dylan.vim"},{start:2423657,audio:0,end:2424418,filename:"/usr/local/share/vim/syntax/dylanintr.vim"},{start:2424418,audio:0,end:2424740,filename:"/usr/local/share/vim/syntax/dylanlid.vim"},{start:2424740,audio:0,end:2425394,filename:"/usr/local/share/vim/syntax/ecd.vim"},{start:2425394,audio:0,end:2426216,filename:"/usr/local/share/vim/syntax/edif.vim"},{start:2426216,audio:0,end:2432417,filename:"/usr/local/share/vim/syntax/eiffel.vim"},{start:2432417,audio:0,end:2433772,filename:"/usr/local/share/vim/syntax/elf.vim"},{start:2433772,audio:0,end:2441563,filename:"/usr/local/share/vim/syntax/elinks.vim"},{start:2441563,audio:0,end:2444099,filename:"/usr/local/share/vim/syntax/elmfilt.vim"},{start:2444099,audio:0,end:2452807,filename:"/usr/local/share/vim/syntax/erlang.vim"},{start:2452807,audio:0,end:2455691,filename:"/usr/local/share/vim/syntax/eruby.vim"},{start:2455691,audio:0,end:2456343,filename:"/usr/local/share/vim/syntax/esmtprc.vim"},{start:2456343,audio:0,end:2458115,filename:"/usr/local/share/vim/syntax/esqlc.vim"},{start:2458115,audio:0,end:2460601,filename:"/usr/local/share/vim/syntax/esterel.vim"},{start:2460601,audio:0,end:2475012,filename:"/usr/local/share/vim/syntax/eterm.vim"},{start:2475012,audio:0,end:2479810,filename:"/usr/local/share/vim/syntax/euphoria3.vim"},{start:2479810,audio:0,end:2492872,filename:"/usr/local/share/vim/syntax/euphoria4.vim"},{start:2492872,audio:0,end:2496913,filename:"/usr/local/share/vim/syntax/eviews.vim"},{start:2496913,audio:0,end:2514590,filename:"/usr/local/share/vim/syntax/exim.vim"},{start:2514590,audio:0,end:2517241,filename:"/usr/local/share/vim/syntax/expect.vim"},{start:2517241,audio:0,end:2518490,filename:"/usr/local/share/vim/syntax/exports.vim"},{start:2518490,audio:0,end:2529125,filename:"/usr/local/share/vim/syntax/falcon.vim"},{start:2529125,audio:0,end:2534098,filename:"/usr/local/share/vim/syntax/fan.vim"},{start:2534098,audio:0,end:2542489,filename:"/usr/local/share/vim/syntax/fasm.vim"},{start:2542489,audio:0,end:2547711,filename:"/usr/local/share/vim/syntax/fdcc.vim"},{start:2547711,audio:0,end:2550271,filename:"/usr/local/share/vim/syntax/fetchmail.vim"},{start:2550271,audio:0,end:2556953,filename:"/usr/local/share/vim/syntax/fgl.vim"},{start:2556953,audio:0,end:2560355,filename:"/usr/local/share/vim/syntax/flexwiki.vim"},{start:2560355,audio:0,end:2563126,filename:"/usr/local/share/vim/syntax/focexec.vim"},{start:2563126,audio:0,end:2568525,filename:"/usr/local/share/vim/syntax/form.vim"},{start:2568525,audio:0,end:2577721,filename:"/usr/local/share/vim/syntax/forth.vim"},{start:2577721,audio:0,end:2606150,filename:"/usr/local/share/vim/syntax/fortran.vim"},{start:2606150,audio:0,end:2637644,filename:"/usr/local/share/vim/syntax/foxpro.vim"},{start:2637644,audio:0,end:2647265,filename:"/usr/local/share/vim/syntax/framescript.vim"},{start:2647265,audio:0,end:2655982,filename:"/usr/local/share/vim/syntax/freebasic.vim"},{start:2655982,audio:0,end:2670504,filename:"/usr/local/share/vim/syntax/fstab.vim"},{start:2670504,audio:0,end:2692108,filename:"/usr/local/share/vim/syntax/fvwm.vim"},{start:2692108,audio:0,end:2692390,filename:"/usr/local/share/vim/syntax/fvwm2m4.vim"},{start:2692390,audio:0,end:2696357,filename:"/usr/local/share/vim/syntax/gdb.vim"},{start:2696357,audio:0,end:2699175,filename:"/usr/local/share/vim/syntax/gdmo.vim"},{start:2699175,audio:0,end:2701188,filename:"/usr/local/share/vim/syntax/gedcom.vim"},{start:2701188,audio:0,end:2705147,filename:"/usr/local/share/vim/syntax/git.vim"},{start:2705147,audio:0,end:2709808,filename:"/usr/local/share/vim/syntax/gitcommit.vim"},{start:2709808,audio:0,end:2711250,filename:"/usr/local/share/vim/syntax/gitconfig.vim"},{start:2711250,audio:0,end:2714942,filename:"/usr/local/share/vim/syntax/gitolite.vim"},{start:2714942,audio:0,end:2716631,filename:"/usr/local/share/vim/syntax/gitrebase.vim"},{start:2716631,audio:0,end:2717071,filename:"/usr/local/share/vim/syntax/gitsendemail.vim"},{start:2717071,audio:0,end:2720771,filename:"/usr/local/share/vim/syntax/gkrellmrc.vim"},{start:2720771,audio:0,end:2723699,filename:"/usr/local/share/vim/syntax/gnash.vim"},{start:2723699,audio:0,end:2743004,filename:"/usr/local/share/vim/syntax/gnuplot.vim"},{start:2743004,audio:0,end:2748896,filename:"/usr/local/share/vim/syntax/go.vim"},{start:2748896,audio:0,end:2749056,filename:"/usr/local/share/vim/syntax/godoc.vim"},{start:2749056,audio:0,end:2751555,filename:"/usr/local/share/vim/syntax/gp.vim"},{start:2751555,audio:0,end:2755461,filename:"/usr/local/share/vim/syntax/gpg.vim"},{start:2755461,audio:0,end:2757322,filename:"/usr/local/share/vim/syntax/gprof.vim"},{start:2757322,audio:0,end:2758308,filename:"/usr/local/share/vim/syntax/grads.vim"},{start:2758308,audio:0,end:2761155,filename:"/usr/local/share/vim/syntax/gretl.vim"},{start:2761155,audio:0,end:2761234,filename:"/usr/local/share/vim/syntax/groff.vim"},{start:2761234,audio:0,end:2778825,filename:"/usr/local/share/vim/syntax/groovy.vim"},{start:2778825,audio:0,end:2780210,filename:"/usr/local/share/vim/syntax/group.vim"},{start:2780210,audio:0,end:2783582,filename:"/usr/local/share/vim/syntax/grub.vim"},{start:2783582,audio:0,end:2785065,filename:"/usr/local/share/vim/syntax/gsp.vim"},{start:2785065,audio:0,end:2793830,filename:"/usr/local/share/vim/syntax/gtkrc.vim"},{start:2793830,audio:0,end:2800730,filename:"/usr/local/share/vim/syntax/haml.vim"},{start:2800730,audio:0,end:2813661,filename:"/usr/local/share/vim/syntax/hamster.vim"},{start:2813661,audio:0,end:2819815,filename:"/usr/local/share/vim/syntax/haskell.vim"},{start:2819815,audio:0,end:2823629,filename:"/usr/local/share/vim/syntax/haste.vim"},{start:2823629,audio:0,end:2824476,filename:"/usr/local/share/vim/syntax/hastepreproc.vim"},{start:2824476,audio:0,end:2826409,filename:"/usr/local/share/vim/syntax/hb.vim"},{start:2826409,audio:0,end:2834194,filename:"/usr/local/share/vim/syntax/help.vim"},{start:2834194,audio:0,end:2839006,filename:"/usr/local/share/vim/syntax/hercules.vim"},{start:2839006,audio:0,end:2841443,filename:"/usr/local/share/vim/syntax/hex.vim"},{start:2841443,audio:0,end:2842324,filename:"/usr/local/share/vim/syntax/hgcommit.vim"},{start:2842324,audio:0,end:2844632,filename:"/usr/local/share/vim/syntax/hitest.vim"},{start:2844632,audio:0,end:2854413,filename:"/usr/local/share/vim/syntax/hog.vim"},{start:2854413,audio:0,end:2857648,filename:"/usr/local/share/vim/syntax/hostconf.vim"},{start:2857648,audio:0,end:2857776,filename:"/usr/local/share/vim/syntax/hostsaccess.vim"},{start:2857776,audio:0,end:2875188,filename:"/usr/local/share/vim/syntax/html.vim"},{start:2875188,audio:0,end:2875500,filename:"/usr/local/share/vim/syntax/htmlcheetah.vim"},{start:2875500,audio:0,end:2876335,filename:"/usr/local/share/vim/syntax/htmldjango.vim"},{start:2876335,audio:0,end:2876714,filename:"/usr/local/share/vim/syntax/htmlm4.vim"},{start:2876714,audio:0,end:2884320,filename:"/usr/local/share/vim/syntax/htmlos.vim"},{start:2884320,audio:0,end:2892840,filename:"/usr/local/share/vim/syntax/ia64.vim"},{start:2892840,audio:0,end:2898022,filename:"/usr/local/share/vim/syntax/ibasic.vim"},{start:2898022,audio:0,end:2898403,filename:"/usr/local/share/vim/syntax/icemenu.vim"},{start:2898403,audio:0,end:2903804,filename:"/usr/local/share/vim/syntax/icon.vim"},{start:2903804,audio:0,end:2921475,filename:"/usr/local/share/vim/syntax/idl.vim"},{start:2921475,audio:0,end:2934472,filename:"/usr/local/share/vim/syntax/idlang.vim"},{start:2934472,audio:0,end:2939079,filename:"/usr/local/share/vim/syntax/indent.vim"},{start:2939079,audio:0,end:2957457,filename:"/usr/local/share/vim/syntax/inform.vim"},{start:2957457,audio:0,end:2975461,filename:"/usr/local/share/vim/syntax/initex.vim"},{start:2975461,audio:0,end:2978228,filename:"/usr/local/share/vim/syntax/initng.vim"},{start:2978228,audio:0,end:2980382,filename:"/usr/local/share/vim/syntax/inittab.vim"},{start:2980382,audio:0,end:2981472,filename:"/usr/local/share/vim/syntax/ipfilter.vim"},{start:2981472,audio:0,end:3008047,filename:"/usr/local/share/vim/syntax/ishd.vim"},{start:3008047,audio:0,end:3012018,filename:"/usr/local/share/vim/syntax/iss.vim"},{start:3012018,audio:0,end:3013709,filename:"/usr/local/share/vim/syntax/ist.vim"},{start:3013709,audio:0,end:3020916,filename:"/usr/local/share/vim/syntax/j.vim"},{start:3020916,audio:0,end:3029215,filename:"/usr/local/share/vim/syntax/jal.vim"},{start:3029215,audio:0,end:3054490,filename:"/usr/local/share/vim/syntax/jam.vim"},{start:3054490,audio:0,end:3054861,filename:"/usr/local/share/vim/syntax/jargon.vim"},{start:3054861,audio:0,end:3070873,filename:"/usr/local/share/vim/syntax/java.vim"},{start:3070873,audio:0,end:3072258,filename:"/usr/local/share/vim/syntax/javacc.vim"},{start:3072258,audio:0,end:3076983,filename:"/usr/local/share/vim/syntax/javascript.vim"},{start:3076983,audio:0,end:3082659,filename:"/usr/local/share/vim/syntax/jess.vim"},{start:3082659,audio:0,end:3083380,filename:"/usr/local/share/vim/syntax/jgraph.vim"},{start:3083380,audio:0,end:3086471,filename:"/usr/local/share/vim/syntax/jovial.vim"},{start:3086471,audio:0,end:3088647,filename:"/usr/local/share/vim/syntax/jproperties.vim"},{start:3088647,audio:0,end:3091860,filename:"/usr/local/share/vim/syntax/json.vim"},{start:3091860,audio:0,end:3093823,filename:"/usr/local/share/vim/syntax/jsp.vim"},{start:3093823,audio:0,end:3115265,filename:"/usr/local/share/vim/syntax/kconfig.vim"},{start:3115265,audio:0,end:3115890,filename:"/usr/local/share/vim/syntax/kivy.vim"},{start:3115890,audio:0,end:3120902,filename:"/usr/local/share/vim/syntax/kix.vim"},{start:3120902,audio:0,end:3122520,filename:"/usr/local/share/vim/syntax/kscript.vim"},{start:3122520,audio:0,end:3124364,filename:"/usr/local/share/vim/syntax/kwt.vim"},{start:3124364,audio:0,end:3127717,filename:"/usr/local/share/vim/syntax/lace.vim"},{start:3127717,audio:0,end:3130686,filename:"/usr/local/share/vim/syntax/latte.vim"},{start:3130686,audio:0,end:3133116,filename:"/usr/local/share/vim/syntax/ld.vim"},{start:3133116,audio:0,end:3144741,filename:"/usr/local/share/vim/syntax/ldapconf.vim"},{start:3144741,audio:0,end:3145593,filename:"/usr/local/share/vim/syntax/ldif.vim"},{start:3145593,audio:0,end:3149548,filename:"/usr/local/share/vim/syntax/less.vim"},{start:3149548,audio:0,end:3155405,filename:"/usr/local/share/vim/syntax/lex.vim"},{start:3155405,audio:0,end:3160388,filename:"/usr/local/share/vim/syntax/lftp.vim"},{start:3160388,audio:0,end:3162041,filename:"/usr/local/share/vim/syntax/lhaskell.vim"},{start:3162041,audio:0,end:3162476,filename:"/usr/local/share/vim/syntax/libao.vim"},{start:3162476,audio:0,end:3168131,filename:"/usr/local/share/vim/syntax/lifelines.vim"},{start:3168131,audio:0,end:3177978,filename:"/usr/local/share/vim/syntax/lilo.vim"},{start:3177978,audio:0,end:3178990,filename:"/usr/local/share/vim/syntax/limits.vim"},{start:3178990,audio:0,end:3184890,filename:"/usr/local/share/vim/syntax/liquid.vim"},{start:3184890,audio:0,end:3218428,filename:"/usr/local/share/vim/syntax/lisp.vim"},{start:3218428,audio:0,end:3222498,filename:"/usr/local/share/vim/syntax/lite.vim"},{start:3222498,audio:0,end:3227837,filename:"/usr/local/share/vim/syntax/litestep.vim"},{start:3227837,audio:0,end:3230741,filename:"/usr/local/share/vim/syntax/loginaccess.vim"},{start:3230741,audio:0,end:3234737,filename:"/usr/local/share/vim/syntax/logindefs.vim"},{start:3234737,audio:0,end:3250123,filename:"/usr/local/share/vim/syntax/logtalk.vim"},{start:3250123,audio:0,end:3251699,filename:"/usr/local/share/vim/syntax/lotos.vim"},{start:3251699,audio:0,end:3254634,filename:"/usr/local/share/vim/syntax/lout.vim"},{start:3254634,audio:0,end:3272225,filename:"/usr/local/share/vim/syntax/lpc.vim"},{start:3272225,audio:0,end:3275543,filename:"/usr/local/share/vim/syntax/lprolog.vim"},{start:3275543,audio:0,end:3286415,filename:"/usr/local/share/vim/syntax/lscript.vim"},{start:3286415,audio:0,end:3301731,filename:"/usr/local/share/vim/syntax/lsl.vim"},{start:3301731,audio:0,end:3305702,filename:"/usr/local/share/vim/syntax/lss.vim"},{start:3305702,audio:0,end:3317874,filename:"/usr/local/share/vim/syntax/lua.vim"},{start:3317874,audio:0,end:3324120,filename:"/usr/local/share/vim/syntax/lynx.vim"},{start:3324120,audio:0,end:3326229,filename:"/usr/local/share/vim/syntax/m4.vim"},{start:3326229,audio:0,end:3330983,filename:"/usr/local/share/vim/syntax/mail.vim"},{start:3330983,audio:0,end:3332802,filename:"/usr/local/share/vim/syntax/mailaliases.vim"},{start:3332802,audio:0,end:3333781,filename:"/usr/local/share/vim/syntax/mailcap.vim"},{start:3333781,audio:0,end:3338715,filename:"/usr/local/share/vim/syntax/make.vim"},{start:3338715,audio:0,end:3340126,filename:"/usr/local/share/vim/syntax/mallard.vim"},{start:3340126,audio:0,end:3341112,filename:"/usr/local/share/vim/syntax/man.vim"},{start:3341112,audio:0,end:3344407,filename:"/usr/local/share/vim/syntax/manconf.vim"},{start:3344407,audio:0,end:3344722,filename:"/usr/local/share/vim/syntax/manual.vim"},{start:3344722,audio:0,end:3369249,filename:"/usr/local/share/vim/syntax/maple.vim"},{start:3369249,audio:0,end:3377059,filename:"/usr/local/share/vim/syntax/markdown.vim"},{start:3377059,audio:0,end:3393251,filename:"/usr/local/share/vim/syntax/masm.vim"},{start:3393251,audio:0,end:3396107,filename:"/usr/local/share/vim/syntax/mason.vim"},{start:3396107,audio:0,end:3396645,filename:"/usr/local/share/vim/syntax/master.vim"},{start:3396645,audio:0,end:3399579,filename:"/usr/local/share/vim/syntax/matlab.vim"},{start:3399579,audio:0,end:3417217,filename:"/usr/local/share/vim/syntax/maxima.vim"},{start:3417217,audio:0,end:3420092,filename:"/usr/local/share/vim/syntax/mel.vim"},{start:3420092,audio:0,end:3422196,filename:"/usr/local/share/vim/syntax/messages.vim"},{start:3422196,audio:0,end:3436024,filename:"/usr/local/share/vim/syntax/mf.vim"},{start:3436024,audio:0,end:3439308,filename:"/usr/local/share/vim/syntax/mgl.vim"},{start:3439308,audio:0,end:3440632,filename:"/usr/local/share/vim/syntax/mgp.vim"},{start:3440632,audio:0,end:3443009,filename:"/usr/local/share/vim/syntax/mib.vim"},{start:3443009,audio:0,end:3445323,filename:"/usr/local/share/vim/syntax/mix.vim"},{start:3445323,audio:0,end:3451260,filename:"/usr/local/share/vim/syntax/mma.vim"},{start:3451260,audio:0,end:3455283,filename:"/usr/local/share/vim/syntax/mmix.vim"},{start:3455283,audio:0,end:3456403,filename:"/usr/local/share/vim/syntax/mmp.vim"},{start:3456403,audio:0,end:3457449,filename:"/usr/local/share/vim/syntax/modconf.vim"},{start:3457449,audio:0,end:3458410,filename:"/usr/local/share/vim/syntax/model.vim"},{start:3458410,audio:0,end:3460918,filename:"/usr/local/share/vim/syntax/modsim3.vim"},{start:3460918,audio:0,end:3462892,filename:"/usr/local/share/vim/syntax/modula2.vim"},{start:3462892,audio:0,end:3464345,filename:"/usr/local/share/vim/syntax/modula3.vim"},{start:3464345,audio:0,end:3472742,filename:"/usr/local/share/vim/syntax/monk.vim"},{start:3472742,audio:0,end:3481186,filename:"/usr/local/share/vim/syntax/moo.vim"},{start:3481186,audio:0,end:3521531,filename:"/usr/local/share/vim/syntax/mp.vim"},{start:3521531,audio:0,end:3526108,filename:"/usr/local/share/vim/syntax/mplayerconf.vim"},{start:3526108,audio:0,end:3534531,filename:"/usr/local/share/vim/syntax/mrxvtrc.vim"},{start:3534531,audio:0,end:3537559,filename:"/usr/local/share/vim/syntax/msidl.vim"},{start:3537559,audio:0,end:3542379,filename:"/usr/local/share/vim/syntax/msmessages.vim"},{start:3542379,audio:0,end:3544207,filename:"/usr/local/share/vim/syntax/msql.vim"},{start:3544207,audio:0,end:3558348,filename:"/usr/local/share/vim/syntax/mupad.vim"},{start:3558348,audio:0,end:3562308,filename:"/usr/local/share/vim/syntax/murphi.vim"},{start:3562308,audio:0,end:3574805,filename:"/usr/local/share/vim/syntax/mush.vim"},{start:3574805,audio:0,end:3637012,filename:"/usr/local/share/vim/syntax/muttrc.vim"},{start:3637012,audio:0,end:3652551,filename:"/usr/local/share/vim/syntax/mysql.vim"},{start:3652551,audio:0,end:3664597,filename:"/usr/local/share/vim/syntax/n1ql.vim"},{start:3664597,audio:0,end:3673179,filename:"/usr/local/share/vim/syntax/named.vim"},{start:3673179,audio:0,end:3681484,filename:"/usr/local/share/vim/syntax/nanorc.vim"},{start:3681484,audio:0,end:3702746,filename:"/usr/local/share/vim/syntax/nasm.vim"},{start:3702746,audio:0,end:3709614,filename:"/usr/local/share/vim/syntax/nastran.vim"},{start:3709614,audio:0,end:3715457,filename:"/usr/local/share/vim/syntax/natural.vim"},{start:3715457,audio:0,end:3728334,filename:"/usr/local/share/vim/syntax/ncf.vim"},{start:3728334,audio:0,end:3803383,filename:"/usr/local/share/vim/syntax/neomuttrc.vim"},{start:3803383,audio:0,end:3804990,filename:"/usr/local/share/vim/syntax/netrc.vim"},{start:3804990,audio:0,end:3811207,filename:"/usr/local/share/vim/syntax/netrw.vim"},{start:3811207,audio:0,end:3812549,filename:"/usr/local/share/vim/syntax/ninja.vim"},{start:3812549,audio:0,end:3812859,filename:"/usr/local/share/vim/syntax/nosyntax.vim"},{start:3812859,audio:0,end:3823535,filename:"/usr/local/share/vim/syntax/nqc.vim"},{start:3823535,audio:0,end:3829344,filename:"/usr/local/share/vim/syntax/nroff.vim"},{start:3829344,audio:0,end:3861636,filename:"/usr/local/share/vim/syntax/nsis.vim"},{start:3861636,audio:0,end:3864098,filename:"/usr/local/share/vim/syntax/obj.vim"},{start:3864098,audio:0,end:3903581,filename:"/usr/local/share/vim/syntax/objc.vim"},{start:3903581,audio:0,end:3903889,filename:"/usr/local/share/vim/syntax/objcpp.vim"},{start:3903889,audio:0,end:3917376,filename:"/usr/local/share/vim/syntax/ocaml.vim"},{start:3917376,audio:0,end:3921261,filename:"/usr/local/share/vim/syntax/occam.vim"},{start:3921261,audio:0,end:3927287,filename:"/usr/local/share/vim/syntax/omnimark.vim"},{start:3927287,audio:0,end:3940760,filename:"/usr/local/share/vim/syntax/openroad.vim"},{start:3940760,audio:0,end:3944398,filename:"/usr/local/share/vim/syntax/opl.vim"},{start:3944398,audio:0,end:3970141,filename:"/usr/local/share/vim/syntax/ora.vim"},{start:3970141,audio:0,end:3973847,filename:"/usr/local/share/vim/syntax/pamconf.vim"},{start:3973847,audio:0,end:3976716,filename:"/usr/local/share/vim/syntax/papp.vim"},{start:3976716,audio:0,end:3989283,filename:"/usr/local/share/vim/syntax/pascal.vim"},{start:3989283,audio:0,end:3991260,filename:"/usr/local/share/vim/syntax/passwd.vim"},{start:3991260,audio:0,end:3992305,filename:"/usr/local/share/vim/syntax/pcap.vim"},{start:3992305,audio:0,end:3996083,filename:"/usr/local/share/vim/syntax/pccts.vim"},{start:3996083,audio:0,end:3999232,filename:"/usr/local/share/vim/syntax/pdf.vim"},{start:3999232,audio:0,end:4032559,filename:"/usr/local/share/vim/syntax/perl.vim"},{start:4032559,audio:0,end:4092396,filename:"/usr/local/share/vim/syntax/perl6.vim"},{start:4092396,audio:0,end:4102506,filename:"/usr/local/share/vim/syntax/pf.vim"},{start:4102506,audio:0,end:4194848,filename:"/usr/local/share/vim/syntax/pfmain.vim"},{start:4194848,audio:0,end:4269354,filename:"/usr/local/share/vim/syntax/php.vim"},{start:4269354,audio:0,end:4269415,filename:"/usr/local/share/vim/syntax/phtml.vim"},{start:4269415,audio:0,end:4272110,filename:"/usr/local/share/vim/syntax/pic.vim"},{start:4272110,audio:0,end:4290511,filename:"/usr/local/share/vim/syntax/pike.vim"},{start:4290511,audio:0,end:4295150,filename:"/usr/local/share/vim/syntax/pilrc.vim"},{start:4295150,audio:0,end:4310228,filename:"/usr/local/share/vim/syntax/pine.vim"},{start:4310228,audio:0,end:4314191,filename:"/usr/local/share/vim/syntax/pinfo.vim"},{start:4314191,audio:0,end:4323946,filename:"/usr/local/share/vim/syntax/plaintex.vim"},{start:4323946,audio:0,end:4334951,filename:"/usr/local/share/vim/syntax/pli.vim"},{start:4334951,audio:0,end:4339002,filename:"/usr/local/share/vim/syntax/plm.vim"},{start:4339002,audio:0,end:4339967,filename:"/usr/local/share/vim/syntax/plp.vim"},{start:4339967,audio:0,end:4351738,filename:"/usr/local/share/vim/syntax/plsql.vim"},{start:4351738,audio:0,end:4357111,filename:"/usr/local/share/vim/syntax/po.vim"},{start:4357111,audio:0,end:4362189,filename:"/usr/local/share/vim/syntax/pod.vim"},{start:4362189,audio:0,end:4402921,filename:"/usr/local/share/vim/syntax/postscr.vim"},{start:4402921,audio:0,end:4411420,filename:"/usr/local/share/vim/syntax/pov.vim"},{start:4411420,audio:0,end:4414614,filename:"/usr/local/share/vim/syntax/povini.vim"},{start:4414614,audio:0,end:4415187,filename:"/usr/local/share/vim/syntax/ppd.vim"},{start:4415187,audio:0,end:4417234,filename:"/usr/local/share/vim/syntax/ppwiz.vim"},{start:4417234,audio:0,end:4419257,filename:"/usr/local/share/vim/syntax/prescribe.vim"},{start:4419257,audio:0,end:4422552,filename:"/usr/local/share/vim/syntax/privoxy.vim"},{start:4422552,audio:0,end:4424218,filename:"/usr/local/share/vim/syntax/procmail.vim"},{start:4424218,audio:0,end:4453770,filename:"/usr/local/share/vim/syntax/progress.vim"},{start:4453770,audio:0,end:4457078,filename:"/usr/local/share/vim/syntax/prolog.vim"},{start:4457078,audio:0,end:4458363,filename:"/usr/local/share/vim/syntax/promela.vim"},{start:4458363,audio:0,end:4460020,filename:"/usr/local/share/vim/syntax/proto.vim"},{start:4460020,audio:0,end:4461044,filename:"/usr/local/share/vim/syntax/protocols.vim"},{start:4461044,audio:0,end:4464326,filename:"/usr/local/share/vim/syntax/psf.vim"},{start:4464326,audio:0,end:4466849,filename:"/usr/local/share/vim/syntax/ptcap.vim"},{start:4466849,audio:0,end:4469815,filename:"/usr/local/share/vim/syntax/purifylog.vim"},{start:4469815,audio:0,end:4470862,filename:"/usr/local/share/vim/syntax/pyrex.vim"},{start:4470862,audio:0,end:4479329,filename:"/usr/local/share/vim/syntax/python.vim"},{start:4479329,audio:0,end:4479685,filename:"/usr/local/share/vim/syntax/qf.vim"},{start:4479685,audio:0,end:4487306,filename:"/usr/local/share/vim/syntax/quake.vim"},{start:4487306,audio:0,end:4498297,filename:"/usr/local/share/vim/syntax/r.vim"},{start:4498297,audio:0,end:4502583,filename:"/usr/local/share/vim/syntax/racc.vim"},{start:4502583,audio:0,end:4508321,filename:"/usr/local/share/vim/syntax/radiance.vim"},{start:4508321,audio:0,end:4512302,filename:"/usr/local/share/vim/syntax/raml.vim"},{start:4512302,audio:0,end:4529056,filename:"/usr/local/share/vim/syntax/ratpoison.vim"},{start:4529056,audio:0,end:4537781,filename:"/usr/local/share/vim/syntax/rc.vim"},{start:4537781,audio:0,end:4539256,filename:"/usr/local/share/vim/syntax/rcs.vim"},{start:4539256,audio:0,end:4539543,filename:"/usr/local/share/vim/syntax/rcslog.vim"},{start:4539543,audio:0,end:4548010,filename:"/usr/local/share/vim/syntax/readline.vim"},{start:4548010,audio:0,end:4554253,filename:"/usr/local/share/vim/syntax/rebol.vim"},{start:4554253,audio:0,end:4634930,filename:"/usr/local/share/vim/syntax/redif.vim"},{start:4634930,audio:0,end:4636780,filename:"/usr/local/share/vim/syntax/registry.vim"},{start:4636780,audio:0,end:4638678,filename:"/usr/local/share/vim/syntax/remind.vim"},{start:4638678,audio:0,end:4641197,filename:"/usr/local/share/vim/syntax/resolv.vim"},{start:4641197,audio:0,end:4647341,filename:"/usr/local/share/vim/syntax/reva.vim"},{start:4647341,audio:0,end:4658351,filename:"/usr/local/share/vim/syntax/rexx.vim"},{start:4658351,audio:0,end:4668652,filename:"/usr/local/share/vim/syntax/rhelp.vim"},{start:4668652,audio:0,end:4670337,filename:"/usr/local/share/vim/syntax/rib.vim"},{start:4670337,audio:0,end:4674155,filename:"/usr/local/share/vim/syntax/rmd.vim"},{start:4674155,audio:0,end:4676075,filename:"/usr/local/share/vim/syntax/rnc.vim"},{start:4676075,audio:0,end:4676639,filename:"/usr/local/share/vim/syntax/rng.vim"},{start:4676639,audio:0,end:4677957,filename:"/usr/local/share/vim/syntax/rnoweb.vim"},{start:4677957,audio:0,end:4678919,filename:"/usr/local/share/vim/syntax/robots.vim"},{start:4678919,audio:0,end:4680257,filename:"/usr/local/share/vim/syntax/rpcgen.vim"},{start:4680257,audio:0,end:4704561,filename:"/usr/local/share/vim/syntax/rpl.vim"},{start:4704561,audio:0,end:4705329,filename:"/usr/local/share/vim/syntax/rrst.vim"},{start:4705329,audio:0,end:4713895,filename:"/usr/local/share/vim/syntax/rst.vim"},{start:4713895,audio:0,end:4715124,filename:"/usr/local/share/vim/syntax/rtf.vim"},{start:4715124,audio:0,end:4753724,filename:"/usr/local/share/vim/syntax/ruby.vim"},{start:4753724,audio:0,end:4766286,filename:"/usr/local/share/vim/syntax/rust.vim"},{start:4766286,audio:0,end:4771735,filename:"/usr/local/share/vim/syntax/samba.vim"},{start:4771735,audio:0,end:4803740,filename:"/usr/local/share/vim/syntax/sas.vim"},{start:4803740,audio:0,end:4809815,filename:"/usr/local/share/vim/syntax/sass.vim"},{start:4809815,audio:0,end:4812715,filename:"/usr/local/share/vim/syntax/sather.vim"},{start:4812715,audio:0,end:4813462,filename:"/usr/local/share/vim/syntax/sbt.vim"},{start:4813462,audio:0,end:4823892,filename:"/usr/local/share/vim/syntax/scala.vim"},{start:4823892,audio:0,end:4842858,filename:"/usr/local/share/vim/syntax/scheme.vim"},{start:4842858,audio:0,end:4845505,filename:"/usr/local/share/vim/syntax/scilab.vim"},{start:4845505,audio:0,end:4848843,filename:"/usr/local/share/vim/syntax/screen.vim"},{start:4848843,audio:0,end:4849101,filename:"/usr/local/share/vim/syntax/scss.vim"},{start:4849101,audio:0,end:4850885,filename:"/usr/local/share/vim/syntax/sd.vim"},{start:4850885,audio:0,end:4851846,filename:"/usr/local/share/vim/syntax/sdc.vim"},{start:4851846,audio:0,end:4857531,filename:"/usr/local/share/vim/syntax/sdl.vim"},{start:4857531,audio:0,end:4861841,filename:"/usr/local/share/vim/syntax/sed.vim"},{start:4861841,audio:0,end:4862492,filename:"/usr/local/share/vim/syntax/sendpr.vim"},{start:4862492,audio:0,end:4863711,filename:"/usr/local/share/vim/syntax/sensors.vim"},{start:4863711,audio:0,end:4865011,filename:"/usr/local/share/vim/syntax/services.vim"},{start:4865011,audio:0,end:4868766,filename:"/usr/local/share/vim/syntax/setserial.vim"},{start:4868766,audio:0,end:4873821,filename:"/usr/local/share/vim/syntax/sgml.vim"},{start:4873821,audio:0,end:4875345,filename:"/usr/local/share/vim/syntax/sgmldecl.vim"},{start:4875345,audio:0,end:4876834,filename:"/usr/local/share/vim/syntax/sgmllnx.vim"},{start:4876834,audio:0,end:4914198,filename:"/usr/local/share/vim/syntax/sh.vim"},{start:4914198,audio:0,end:4930684,filename:"/usr/local/share/vim/syntax/sicad.vim"},{start:4930684,audio:0,end:4932081,filename:"/usr/local/share/vim/syntax/sieve.vim"},{start:4932081,audio:0,end:4934915,filename:"/usr/local/share/vim/syntax/simula.vim"},{start:4934915,audio:0,end:4937931,filename:"/usr/local/share/vim/syntax/sinda.vim"},{start:4937931,audio:0,end:4938609,filename:"/usr/local/share/vim/syntax/sindacmp.vim"},{start:4938609,audio:0,end:4939960,filename:"/usr/local/share/vim/syntax/sindaout.vim"},{start:4939960,audio:0,end:4959803,filename:"/usr/local/share/vim/syntax/sisu.vim"},{start:4959803,audio:0,end:4984521,filename:"/usr/local/share/vim/syntax/skill.vim"},{start:4984521,audio:0,end:4987372,filename:"/usr/local/share/vim/syntax/sl.vim"},{start:4987372,audio:0,end:4990360,filename:"/usr/local/share/vim/syntax/slang.vim"},{start:4990360,audio:0,end:4992457,filename:"/usr/local/share/vim/syntax/slice.vim"},{start:4992457,audio:0,end:5001303,filename:"/usr/local/share/vim/syntax/slpconf.vim"},{start:5001303,audio:0,end:5005049,filename:"/usr/local/share/vim/syntax/slpreg.vim"},{start:5005049,audio:0,end:5005877,filename:"/usr/local/share/vim/syntax/slpspi.vim"},{start:5005877,audio:0,end:5017774,filename:"/usr/local/share/vim/syntax/slrnrc.vim"},{start:5017774,audio:0,end:5020501,filename:"/usr/local/share/vim/syntax/slrnsc.vim"},{start:5020501,audio:0,end:5022833,filename:"/usr/local/share/vim/syntax/sm.vim"},{start:5022833,audio:0,end:5025108,filename:"/usr/local/share/vim/syntax/smarty.vim"},{start:5025108,audio:0,end:5036235,filename:"/usr/local/share/vim/syntax/smcl.vim"},{start:5036235,audio:0,end:5041053,filename:"/usr/local/share/vim/syntax/smil.vim"},{start:5041053,audio:0,end:5041572,filename:"/usr/local/share/vim/syntax/smith.vim"},{start:5041572,audio:0,end:5049834,filename:"/usr/local/share/vim/syntax/sml.vim"},{start:5049834,audio:0,end:5051937,filename:"/usr/local/share/vim/syntax/snnsnet.vim"},{start:5051937,audio:0,end:5053530,filename:"/usr/local/share/vim/syntax/snnspat.vim"},{start:5053530,audio:0,end:5054965,filename:"/usr/local/share/vim/syntax/snnsres.vim"},{start:5054965,audio:0,end:5059473,filename:"/usr/local/share/vim/syntax/snobol4.vim"},{start:5059473,audio:0,end:5070266,filename:"/usr/local/share/vim/syntax/spec.vim"},{start:5070266,audio:0,end:5075777,filename:"/usr/local/share/vim/syntax/specman.vim"},{start:5075777,audio:0,end:5076936,filename:"/usr/local/share/vim/syntax/spice.vim"},{start:5076936,audio:0,end:5091423,filename:"/usr/local/share/vim/syntax/splint.vim"},{start:5091423,audio:0,end:5103507,filename:"/usr/local/share/vim/syntax/spup.vim"},{start:5103507,audio:0,end:5107604,filename:"/usr/local/share/vim/syntax/spyce.vim"},{start:5107604,audio:0,end:5108008,filename:"/usr/local/share/vim/syntax/sql.vim"},{start:5108008,audio:0,end:5148476,filename:"/usr/local/share/vim/syntax/sqlanywhere.vim"},{start:5148476,audio:0,end:5154717,filename:"/usr/local/share/vim/syntax/sqlforms.vim"},{start:5154717,audio:0,end:5163301,filename:"/usr/local/share/vim/syntax/sqlhana.vim"},{start:5163301,audio:0,end:5167816,filename:"/usr/local/share/vim/syntax/sqlinformix.vim"},{start:5167816,audio:0,end:5170177,filename:"/usr/local/share/vim/syntax/sqlj.vim"},{start:5170177,audio:0,end:5176644,filename:"/usr/local/share/vim/syntax/sqloracle.vim"},{start:5176644,audio:0,end:5187316,filename:"/usr/local/share/vim/syntax/sqr.vim"},{start:5187316,audio:0,end:5193588,filename:"/usr/local/share/vim/syntax/squid.vim"},{start:5193588,audio:0,end:5196116,filename:"/usr/local/share/vim/syntax/srec.vim"},{start:5196116,audio:0,end:5206102,filename:"/usr/local/share/vim/syntax/sshconfig.vim"},{start:5206102,audio:0,end:5217276,filename:"/usr/local/share/vim/syntax/sshdconfig.vim"},{start:5217276,audio:0,end:5219408,filename:"/usr/local/share/vim/syntax/st.vim"},{start:5219408,audio:0,end:5245224,filename:"/usr/local/share/vim/syntax/stata.vim"},{start:5245224,audio:0,end:5250071,filename:"/usr/local/share/vim/syntax/stp.vim"},{start:5250071,audio:0,end:5251722,filename:"/usr/local/share/vim/syntax/strace.vim"},{start:5251722,audio:0,end:5271623,filename:"/usr/local/share/vim/syntax/sudoers.vim"},{start:5271623,audio:0,end:5271719,filename:"/usr/local/share/vim/syntax/svg.vim"},{start:5271719,audio:0,end:5272987,filename:"/usr/local/share/vim/syntax/svn.vim"},{start:5272987,audio:0,end:5276095,filename:"/usr/local/share/vim/syntax/syncolor.vim"},{start:5276095,audio:0,end:5277082,filename:"/usr/local/share/vim/syntax/synload.vim"},{start:5277082,audio:0,end:5277478,filename:"/usr/local/share/vim/syntax/syntax.vim"},{start:5277478,audio:0,end:5278322,filename:"/usr/local/share/vim/syntax/sysctl.vim"},{start:5278322,audio:0,end:5278419,filename:"/usr/local/share/vim/syntax/systemd.vim"},{start:5278419,audio:0,end:5281605,filename:"/usr/local/share/vim/syntax/systemverilog.vim"},{start:5281605,audio:0,end:5285853,filename:"/usr/local/share/vim/syntax/tads.vim"},{start:5285853,audio:0,end:5286722,filename:"/usr/local/share/vim/syntax/tags.vim"},{start:5286722,audio:0,end:5288986,filename:"/usr/local/share/vim/syntax/tak.vim"},{start:5288986,audio:0,end:5289969,filename:"/usr/local/share/vim/syntax/takcmp.vim"},{start:5289969,audio:0,end:5291354,filename:"/usr/local/share/vim/syntax/takout.vim"},{start:5291354,audio:0,end:5295087,filename:"/usr/local/share/vim/syntax/tap.vim"},{start:5295087,audio:0,end:5295351,filename:"/usr/local/share/vim/syntax/tar.vim"},{start:5295351,audio:0,end:5296152,filename:"/usr/local/share/vim/syntax/taskdata.vim"},{start:5296152,audio:0,end:5296990,filename:"/usr/local/share/vim/syntax/taskedit.vim"},{start:5296990,audio:0,end:5302272,filename:"/usr/local/share/vim/syntax/tasm.vim"},{start:5302272,audio:0,end:5316131,filename:"/usr/local/share/vim/syntax/tcl.vim"},{start:5316131,audio:0,end:5326807,filename:"/usr/local/share/vim/syntax/tcsh.vim"},{start:5326807,audio:0,end:5326875,filename:"/usr/local/share/vim/syntax/template.vim"},{start:5326875,audio:0,end:5331427,filename:"/usr/local/share/vim/syntax/teraterm.vim"},{start:5331427,audio:0,end:5334682,filename:"/usr/local/share/vim/syntax/terminfo.vim"},{start:5334682,audio:0,end:5390059,filename:"/usr/local/share/vim/syntax/tex.vim"},{start:5390059,audio:0,end:5412798,filename:"/usr/local/share/vim/syntax/texinfo.vim"},{start:5412798,audio:0,end:5414559,filename:"/usr/local/share/vim/syntax/texmf.vim"},{start:5414559,audio:0,end:5420693,filename:"/usr/local/share/vim/syntax/tf.vim"},{start:5420693,audio:0,end:5426404,filename:"/usr/local/share/vim/syntax/tidy.vim"},{start:5426404,audio:0,end:5427685,filename:"/usr/local/share/vim/syntax/tilde.vim"},{start:5427685,audio:0,end:5428890,filename:"/usr/local/share/vim/syntax/tli.vim"},{start:5428890,audio:0,end:5434158,filename:"/usr/local/share/vim/syntax/tmux.vim"},{start:5434158,audio:0,end:5436515,filename:"/usr/local/share/vim/syntax/tpp.vim"},{start:5436515,audio:0,end:5440520,filename:"/usr/local/share/vim/syntax/trasys.vim"},{start:5440520,audio:0,end:5442830,filename:"/usr/local/share/vim/syntax/treetop.vim"},{start:5442830,audio:0,end:5444034,filename:"/usr/local/share/vim/syntax/trustees.vim"},{start:5444034,audio:0,end:5450704,filename:"/usr/local/share/vim/syntax/tsalt.vim"},{start:5450704,audio:0,end:5453050,filename:"/usr/local/share/vim/syntax/tsscl.vim"},{start:5453050,audio:0,end:5455263,filename:"/usr/local/share/vim/syntax/tssgm.vim"},{start:5455263,audio:0,end:5456450,filename:"/usr/local/share/vim/syntax/tssop.vim"},{start:5456450,audio:0,end:5461838,filename:"/usr/local/share/vim/syntax/tt2.vim"},{start:5461838,audio:0,end:5462054,filename:"/usr/local/share/vim/syntax/tt2html.vim"},{start:5462054,audio:0,end:5462280,filename:"/usr/local/share/vim/syntax/tt2js.vim"},{start:5462280,audio:0,end:5478990,filename:"/usr/local/share/vim/syntax/typescript.vim"},{start:5478990,audio:0,end:5484632,filename:"/usr/local/share/vim/syntax/uc.vim"},{start:5484632,audio:0,end:5485527,filename:"/usr/local/share/vim/syntax/udevconf.vim"},{start:5485527,audio:0,end:5487439,filename:"/usr/local/share/vim/syntax/udevperm.vim"},{start:5487439,audio:0,end:5492483,filename:"/usr/local/share/vim/syntax/udevrules.vim"},{start:5492483,audio:0,end:5494615,filename:"/usr/local/share/vim/syntax/uil.vim"},{start:5494615,audio:0,end:5495458,filename:"/usr/local/share/vim/syntax/updatedb.vim"},{start:5495458,audio:0,end:5497711,filename:"/usr/local/share/vim/syntax/upstart.vim"},{start:5497711,audio:0,end:5511463,filename:"/usr/local/share/vim/syntax/upstreamdat.vim"},{start:5511463,audio:0,end:5512158,filename:"/usr/local/share/vim/syntax/upstreaminstalllog.vim"},{start:5512158,audio:0,end:5514474,filename:"/usr/local/share/vim/syntax/upstreamlog.vim"},{start:5514474,audio:0,end:5528351,filename:"/usr/local/share/vim/syntax/upstreamrpt.vim"},{start:5528351,audio:0,end:5531166,filename:"/usr/local/share/vim/syntax/usserverlog.vim"},{start:5531166,audio:0,end:5533100,filename:"/usr/local/share/vim/syntax/usw2kagtlog.vim"},{start:5533100,audio:0,end:5535706,filename:"/usr/local/share/vim/syntax/valgrind.vim"},{start:5535706,audio:0,end:5554932,filename:"/usr/local/share/vim/syntax/vb.vim"},{start:5554932,audio:0,end:5571161,filename:"/usr/local/share/vim/syntax/vera.vim"},{start:5571161,audio:0,end:5575537,filename:"/usr/local/share/vim/syntax/verilog.vim"},{start:5575537,audio:0,end:5580783,filename:"/usr/local/share/vim/syntax/verilogams.vim"},{start:5580783,audio:0,end:5581540,filename:"/usr/local/share/vim/syntax/vgrindefs.vim"},{start:5581540,audio:0,end:5589345,filename:"/usr/local/share/vim/syntax/vhdl.vim"},{start:5589345,audio:0,end:5653928,filename:"/usr/local/share/vim/syntax/vim.vim"},{start:5653928,audio:0,end:5654669,filename:"/usr/local/share/vim/syntax/viminfo.vim"},{start:5654669,audio:0,end:5664731,filename:"/usr/local/share/vim/syntax/virata.vim"},{start:5664731,audio:0,end:5671887,filename:"/usr/local/share/vim/syntax/vmasm.vim"},{start:5671887,audio:0,end:5678080,filename:"/usr/local/share/vim/syntax/voscm.vim"},{start:5678080,audio:0,end:5689851,filename:"/usr/local/share/vim/syntax/vrml.vim"},{start:5689851,audio:0,end:5692975,filename:"/usr/local/share/vim/syntax/vroom.vim"},{start:5692975,audio:0,end:5693659,filename:"/usr/local/share/vim/syntax/vsejcl.vim"},{start:5693659,audio:0,end:5696490,filename:"/usr/local/share/vim/syntax/wast.vim"},{start:5696490,audio:0,end:5696718,filename:"/usr/local/share/vim/syntax/wdiff.vim"},{start:5696718,audio:0,end:5696927,filename:"/usr/local/share/vim/syntax/web.vim"},{start:5696927,audio:0,end:5699486,filename:"/usr/local/share/vim/syntax/webmacro.vim"},{start:5699486,audio:0,end:5703089,filename:"/usr/local/share/vim/syntax/wget.vim"},{start:5703089,audio:0,end:5703338,filename:"/usr/local/share/vim/syntax/whitespace.vim"},{start:5703338,audio:0,end:5715094,filename:"/usr/local/share/vim/syntax/winbatch.vim"},{start:5715094,audio:0,end:5719317,filename:"/usr/local/share/vim/syntax/wml.vim"},{start:5719317,audio:0,end:5720095,filename:"/usr/local/share/vim/syntax/wsh.vim"},{start:5720095,audio:0,end:5725089,filename:"/usr/local/share/vim/syntax/wsml.vim"},{start:5725089,audio:0,end:5725900,filename:"/usr/local/share/vim/syntax/wvdial.vim"},{start:5725900,audio:0,end:5726312,filename:"/usr/local/share/vim/syntax/xbl.vim"},{start:5726312,audio:0,end:5730799,filename:"/usr/local/share/vim/syntax/xdefaults.vim"},{start:5730799,audio:0,end:5744830,filename:"/usr/local/share/vim/syntax/xf86conf.vim"},{start:5744830,audio:0,end:5744886,filename:"/usr/local/share/vim/syntax/xhtml.vim"},{start:5744886,audio:0,end:5756176,filename:"/usr/local/share/vim/syntax/xinetd.vim"},{start:5756176,audio:0,end:5759002,filename:"/usr/local/share/vim/syntax/xkb.vim"},{start:5759002,audio:0,end:5769004,filename:"/usr/local/share/vim/syntax/xmath.vim"},{start:5769004,audio:0,end:5773602,filename:"/usr/local/share/vim/syntax/xml.vim"},{start:5773602,audio:0,end:5801011,filename:"/usr/local/share/vim/syntax/xmodmap.vim"},{start:5801011,audio:0,end:5803852,filename:"/usr/local/share/vim/syntax/xpm.vim"},{start:5803852,audio:0,end:5806876,filename:"/usr/local/share/vim/syntax/xpm2.vim"},{start:5806876,audio:0,end:5813217,filename:"/usr/local/share/vim/syntax/xquery.vim"},{start:5813217,audio:0,end:5813310,filename:"/usr/local/share/vim/syntax/xs.vim"},{start:5813310,audio:0,end:5815089,filename:"/usr/local/share/vim/syntax/xsd.vim"},{start:5815089,audio:0,end:5816926,filename:"/usr/local/share/vim/syntax/xslt.vim"},{start:5816926,audio:0,end:5817317,filename:"/usr/local/share/vim/syntax/xxd.vim"},{start:5817317,audio:0,end:5821373,filename:"/usr/local/share/vim/syntax/yacc.vim"},{start:5821373,audio:0,end:5833517,filename:"/usr/local/share/vim/syntax/yaml.vim"},{start:5833517,audio:0,end:5835875,filename:"/usr/local/share/vim/syntax/z8a.vim"},{start:5835875,audio:0,end:5841887,filename:"/usr/local/share/vim/syntax/zimbu.vim"},{start:5841887,audio:0,end:5862081,filename:"/usr/local/share/vim/syntax/zsh.vim"},{start:5862081,audio:0,end:5895338,filename:"/tutor"},{start:5895338,audio:0,end:5911163,filename:"/home/web_user/README.md"},{start:5911163,audio:0,end:5915336,filename:"/home/web_user/tryit.js"}],remote_package_size:5915336,package_uuid:"496dad77-5d39-476e-aa6c-2e40a924c802"})})();function stdin(){return null}debug=function(){};emscriptenRuntimeInitialized=new Promise(function(resolve){Module.onRuntimeInitialized=resolve});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=function(status,toThrow){throw toThrow};Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_HAS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_HAS_NODE=typeof process==="object"&&typeof require==="function";ENVIRONMENT_IS_NODE=ENVIRONMENT_HAS_NODE&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+"/";var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);Module["quit"]=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){return read(f)}}Module["readBinary"]=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=function(status){quit(status)}}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=function(title){document.title=title}}else{}var out=Module["print"]||(typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null);var err=Module["printErr"]||(typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}var asm2wasmImports={"f64-rem":function(x,y){return x%y},debugger:function(){debugger}};var functionPointers=new Array(0);if(typeof WebAssembly!=="object"){err("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={string:function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},array:function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}function cwrap(ident,returnType,argTypes,opts){argTypes=argTypes||[];var numericArgs=argTypes.every(function(type){return type==="number"});var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}var ALLOC_NORMAL=0;var ALLOC_NONE=3;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[_malloc,stackAlloc,dynamicAlloc][allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var stop;ptr=ret;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr<stop;ptr+=4){HEAP32[ptr>>2]=0}stop=ret+size;while(ptr<stop){HEAP8[ptr++>>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i<size){var curr=slab[i];type=singleType||types[i];if(type===0){i++;continue}if(type=="i64")type="i32";setValue(ret+i,curr,type);if(previousType!==type){typeSize=getNativeTypeSize(type);previousType=type}i+=typeSize}return ret}function getMemory(size){if(!runtimeInitialized)return dynamicAlloc(size);return _malloc(size)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(u8Array[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=u8Array[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|u8Array[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}var PAGE_SIZE=16384;var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var DYNAMIC_BASE=5484224,DYNAMICTOP_PTR=241312;var TOTAL_STACK=5242880;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(INITIAL_TOTAL_MEMORY<TOTAL_STACK)err("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+INITIAL_TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{if(typeof WebAssembly==="object"&&typeof WebAssembly.Memory==="function"){wasmMemory=new WebAssembly.Memory({initial:INITIAL_TOTAL_MEMORY/WASM_PAGE_SIZE});buffer=wasmMemory.buffer}else{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}}updateGlobalBufferViews();HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);FS.quit();TTY.shutdown();runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var wasmBinaryFile="vim.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(Module["wasmBinary"]){return new Uint8Array(Module["wasmBinary"])}if(Module["readBinary"]){return Module["readBinary"](wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!Module["wasmBinary"]&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(env){var info={env:env,global:{NaN:NaN,Infinity:Infinity},"global.Math":Math,asm2wasm:asm2wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!Module["wasmBinary"]&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){return WebAssembly.instantiateStreaming(response,info).then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}Module["asm"]=function(global,env,providedBuffer){env["memory"]=wasmMemory;env["table"]=wasmTable=new WebAssembly.Table({initial:1197,maximum:1197,element:"anyfunc"});env["__memory_base"]=1024;env["__table_base"]=0;var exports=createWasm(env);return exports};__ATINIT__.push({func:function(){___emscripten_environ_constructor()}});function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var ENV={};function ___buildEnvironment(environ){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C.UTF-8";ENV["LANG"]=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";ENV["_"]=Module["thisProgram"];poolPtr=getMemory(TOTAL_ENV_SIZE);envPtr=getMemory(MAX_ENV_VALUES*4);HEAP32[envPtr>>2]=poolPtr;HEAP32[environ>>2]=envPtr}else{envPtr=HEAP32[environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in ENV){if(typeof ENV[key]==="string"){var line=key+"="+ENV[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i<strings.length;i++){var line=strings[i];writeAsciiToMemory(line,poolPtr);HEAP32[envPtr+i*ptrSize>>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}function _emscripten_get_now(){abort()}function _emscripten_get_now_is_monotonic(){return 0||ENVIRONMENT_IS_NODE||typeof dateNow!=="undefined"||typeof performance==="object"&&performance&&typeof performance["now"]==="function"}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if(clk_id===1&&_emscripten_get_now_is_monotonic()){now=_emscripten_get_now()}else{___setErrNo(22);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function ___clock_gettime(a0,a1){return _clock_gettime(a0,a1)}function ___lock(){}function ___map_file(pathname,size){___setErrNo(1);return-1}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(19)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(6)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(5)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(11)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(6)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(5)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=new Buffer(BUFSIZE);var bytesRead=0;var isPosixPlatform=process.platform!="win32";var fd=process.stdin.fd;if(isPosixPlatform){var usingDevice=false;try{fd=fs.openSync("/dev/stdin","r");usingDevice=true}catch(e){}}try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(usingDevice){fs.closeSync(fd)}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(1)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array;if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)|0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[2]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(39)}}}delete old_node.parent.contents[old_node.name];old_node.name=new_name;new_dir.contents[new_name]=old_node;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name]},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(39)}delete parent.contents[name]},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(22)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){canOwn=false;if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=new Uint8Array(buffer.subarray(offset,offset+length));node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray)node.contents.set(buffer.subarray(offset,offset+length),position);else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(22)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,buffer,offset,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(19)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&(contents.buffer===buffer||contents.buffer===buffer.buffer)){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<stream.node.usedBytes){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=_malloc(length);if(!ptr){throw new FS.ErrnoError(12)}buffer.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(19)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var IDBFS={dbs:{},indexedDB:function(){if(typeof indexedDB!=="undefined")return indexedDB;var ret=null;if(typeof window==="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount){return MEMFS.mount.apply(null,arguments)},syncfs:function(mount,populate,callback){IDBFS.getLocalSet(mount,function(err,local){if(err)return callback(err);IDBFS.getRemoteSet(mount,function(err,remote){if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},getDB:function(name,callback){var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=function(e){var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=function(){db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=function(e){callback(this.error);e.preventDefault()}},getLocalSet:function(mount,callback){var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return function(p){return PATH.join2(root,p)}}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries:entries})},getRemoteSet:function(mount,callback){var entries={};IDBFS.getDB(mount.mountpoint,function(err,db){if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=function(e){callback(this.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=function(event){var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:function(path,callback){var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:function(path,entry,callback){try{if(FS.isDir(entry.mode)){FS.mkdir(path,entry.mode)}else if(FS.isFile(entry.mode)){FS.writeFile(path,entry.contents,{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry.mode);FS.utime(path,entry.timestamp,entry.timestamp)}catch(e){return callback(e)}callback(null)},removeLocalEntry:function(path,callback){try{var lookup=FS.lookupPath(path);var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:function(store,path,callback){var req=store.get(path);req.onsuccess=function(event){callback(null,event.target.result)};req.onerror=function(e){callback(this.error);e.preventDefault()}},storeRemoteEntry:function(store,path,entry,callback){var req=store.put(entry,path);req.onsuccess=function(){callback(null)};req.onerror=function(e){callback(this.error);e.preventDefault()}},removeRemoteEntry:function(store,path,callback){var req=store.delete(path);req.onsuccess=function(){callback(null)};req.onerror=function(e){callback(this.error);e.preventDefault()}},reconcile:function(src,dst,callback){var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e.timestamp>e2.timestamp){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=function(e){done(this.error);e.preventDefault()};create.sort().forEach(function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var NODEFS={isWindows:false,staticInit:function(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"]}},bufferFrom:function(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer)},mount:function(mount){assert(ENVIRONMENT_HAS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode:function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(22)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode:function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}return stat.mode},realPath:function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},flagsForNode:function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(!flags){return newFlags}else{throw new FS.ErrnoError(22)}},node_ops:{getattr:function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},lookup:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod:function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}return node},rename:function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},unlink:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},rmdir:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},readdir:function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},symlink:function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},readlink:function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}}},stream_ops:{open:function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},close:function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},read:function(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(-e.errno)}},write:function(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(-e.errno)}},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(-e.errno)}}}if(position<0){throw new FS.ErrnoError(22)}return position}}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");if(!createdParents[curr]){createdParents[curr]=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0)}parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)});(mount.opts["blobs"]||[]).forEach(function(obj){WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])});(mount.opts["packages"]||[]).forEach(function(pack){pack["metadata"].files.forEach(function(file){var name=file.filename.substr(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))})});return root},createNode:function(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.timestamp=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node},node_ops:{getattr:function(node){return{dev:1,ino:undefined,mode:node.mode,nlink:1,uid:0,gid:0,rdev:undefined,size:node.size,atime:new Date(node.timestamp),mtime:new Date(node.timestamp),ctime:new Date(node.timestamp),blksize:4096,blocks:Math.ceil(node.size/4096)}},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}},lookup:function(parent,name){throw new FS.ErrnoError(2)},mknod:function(parent,name,mode,dev){throw new FS.ErrnoError(1)},rename:function(oldNode,newDir,newName){throw new FS.ErrnoError(1)},unlink:function(parent,name){throw new FS.ErrnoError(1)},rmdir:function(parent,name){throw new FS.ErrnoError(1)},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newName,oldPath){throw new FS.ErrnoError(1)},readlink:function(node){throw new FS.ErrnoError(1)}},stream_ops:{read:function(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(5)},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(22)}return position}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH_FS.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(40)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(40)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 13}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 13}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 13}return 0},mayLookup:function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return 13;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 17}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return 20}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 16}}else{if(FS.isDir(node.mode)){return 21}}return 0},mayOpen:function(node,flags){if(!node){return 2}if(FS.isLink(node.mode)){return 40}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 21}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(24)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(29)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(16)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(20)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(22)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(22)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(1)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=17)throw e}}},mkdev:function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:function(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(2)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(2)}var newname=PATH.basename(newpath);var err=FS.mayCreate(parent,newname);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(1)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;try{lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node}catch(e){throw new FS.ErrnoError(16)}if(!old_dir||!new_dir)throw new FS.ErrnoError(2);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(18)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(22)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(39)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var err=FS.mayDelete(old_dir,old_name,isdir);if(err){throw new FS.ErrnoError(err)}err=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(err){throw new FS.ErrnoError(err)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(1)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(16)}if(new_dir!==old_dir){err=FS.nodePermissions(old_dir,"w");if(err){throw new FS.ErrnoError(err)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){console.log("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){console.log("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}},rmdir:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,true);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(1)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readdir:function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(20)}return node.node_ops.readdir(node)},unlink:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var err=FS.mayDelete(parent,name,false);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(1)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){console.log("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){console.log("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readlink:function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(2)}if(!link.node_ops.readlink){throw new FS.ErrnoError(22)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(2)}if(!node.node_ops.getattr){throw new FS.ErrnoError(1)}return node.node_ops.getattr(node)},lstat:function(path){return FS.stat(path,true)},chmod:function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(1)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:function(path,mode){FS.chmod(path,mode,true)},fchmod:function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(9)}FS.chmod(stream.node,mode)},chown:function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(1)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:function(path,uid,gid){FS.chown(path,uid,gid,true)},fchown:function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(9)}FS.chown(stream.node,uid,gid)},truncate:function(path,len){if(len<0){throw new FS.ErrnoError(22)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(1)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(21)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(22)}var err=FS.nodePermissions(node,"w");if(err){throw new FS.ErrnoError(err)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(9)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(22)}FS.truncate(stream.node,len)},utime:function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(2)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(17)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(2)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(20)}if(!created){var err=FS.mayOpen(node,flags);if(err){throw new FS.ErrnoError(err)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;console.log("FS.trackingDelegate error on read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){console.log("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream},close:function(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:function(stream){return stream.fd===null},llseek:function(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(29)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(22)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(22)}if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(9)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(21)}if(!stream.stream_ops.read){throw new FS.ErrnoError(22)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(29)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(22)}if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(9)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(21)}if(!stream.stream_ops.write){throw new FS.ErrnoError(22)}if(stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(29)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){console.log("FS.trackingDelegate['onWriteToFile']('"+stream.path+"') threw an exception: "+e.message)}return bytesWritten},allocate:function(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(9)}if(offset<0||length<=0){throw new FS.ErrnoError(22)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(9)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(19)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(95)}stream.stream_ops.allocate(stream,offset,length)},mmap:function(stream,buffer,offset,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(13)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(13)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(19)}return stream.stream_ops.mmap(stream,buffer,offset,length,position,prot,flags)},msync:function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:function(stream){return 0},ioctl:function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(25)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:function(path,opts){opts=opts||{};opts.flags=opts.flags||"r";opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:function(path,data,opts){opts=opts||{};opts.flags=opts.flags||"w";var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:function(){return FS.currentPath},chdir:function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(2)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(20)}var err=FS.nodePermissions(lookup.node,"x");if(err){throw new FS.ErrnoError(err)}FS.currentPath=lookup.path},createDefaultDirectories:function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(stream,buffer,offset,length,pos){return length}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device;if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);random_device=function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");random_device=function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}else{}if(!random_device){random_device=function(){abort("random_device")}}FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){FS.mkdir("/proc");FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function(){var node=FS.createNode("/proc/self","fd",16384|511,73);node.node_ops={lookup:function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(9);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return stream.path}}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin","r");var stdout=FS.open("/dev/stdout","w");var stderr=FS.open("/dev/stderr","w")},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error";if(this.stack)Object.defineProperty(this,"stack",{value:(new Error).stack,writable:true})};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[2].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS,IDBFS:IDBFS,NODEFS:NODEFS,WORKERFS:WORKERFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},joinPath:function(parts,forceRelative){var path=PATH.join.apply(null,parts);if(forceRelative&&path[0]=="/")path=path.substr(1);return path},absolutePath:function(relative,base){return PATH_FS.resolve(base,relative)},standardizePath:function(path){return PATH.normalize(path)},findObject:function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{___setErrNo(ret.error);return null}},analyzePath:function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createFolder:function(parent,name,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.mkdir(path,mode)},createPath:function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,"w");FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function(stream){stream.seekable=false},close:function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}},read:function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(5)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(11)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(5)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},createLink:function(parent,name,target,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);return FS.symlink(target,path)},forceLoadFile:function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;var success=true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(Module["read"]){try{obj.contents=intArrayFromString(Module["read"](obj.url),true);obj.usedBytes=obj.contents.length}catch(e){success=false}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}if(!success)___setErrNo(5);return success},createLazyFile:function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(5)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(5)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node},createPreloadedFile:function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep)});handled=true}});if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,function(byteArray){processData(byteArray)},onerror)}else{processData(url)}},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){console.log("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(9);dir=dirstream.path}path=PATH.join2(dir,path)}return path},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-20}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-22}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-22;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-22}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-13}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret},doWritev:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(9);return stream},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall10(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall118(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();if(stream.stream_ops&&stream.stream_ops.fsync){return-stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall12(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall122(which,varargs){SYSCALLS.varargs=varargs;try{var buf=SYSCALLS.get();if(!buf)return-14;var layout={sysname:0,nodename:65,domainname:325,machine:260,version:195,release:130,__size__:390};var copyString=function(element,value){var offset=layout[element];writeAsciiToMemory(value,buf+offset)};copyString("sysname","Emscripten");copyString("nodename","emscripten");copyString("release","1.0");copyString("version","#1");copyString("machine","x86-JS");return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall133(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.chdir(stream.path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-75}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[result>>2]=tempI64[0],HEAP32[result+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall15(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();FS.chmod(path,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall168(which,varargs){SYSCALLS.varargs=varargs;try{var fds=SYSCALLS.get(),nfds=SYSCALLS.get(),timeout=SYSCALLS.get();var nonzero=0;for(var i=0;i<nfds;i++){var pollfd=fds+8*i;var fd=HEAP32[pollfd>>2];var events=HEAP16[pollfd+4>>1];var mask=32;var stream=FS.getStream(fd);if(stream){mask=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){mask=stream.stream_ops.poll(stream)}}mask&=events|8|16;if(mask)nonzero++;HEAP16[pollfd+6>>1]=mask}return nonzero}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall183(which,varargs){SYSCALLS.varargs=varargs;try{var buf=SYSCALLS.get(),size=SYSCALLS.get();if(size===0)return-22;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size<cwdLengthInBytes+1)return-34;stringToUTF8(cwd,buf,size);return buf}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall191(which,varargs){SYSCALLS.varargs=varargs;try{var resource=SYSCALLS.get(),rlim=SYSCALLS.get();HEAP32[rlim>>2]=-1;HEAP32[rlim+4>>2]=-1;HEAP32[rlim+8>>2]=-1;HEAP32[rlim+12>>2]=-1;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall194(which,varargs){SYSCALLS.varargs=varargs;try{var fd=SYSCALLS.get(),zero=SYSCALLS.getZero(),length=SYSCALLS.get64();FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall195(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall196(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall197(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get();return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall202(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall199(a0,a1){return ___syscall202(a0,a1)}var PROCINFO={ppid:1,pid:42,sid:42,pgid:42};function ___syscall20(which,varargs){SYSCALLS.varargs=varargs;try{return PROCINFO.pid}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall200(a0,a1){return ___syscall202(a0,a1)}function ___syscall207(which,varargs){SYSCALLS.varargs=varargs;try{var fd=SYSCALLS.get(),owner=SYSCALLS.get(),group=SYSCALLS.get();FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall212(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),owner=SYSCALLS.get(),group=SYSCALLS.get();FS.chown(path,owner,group);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall220(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),dirp=SYSCALLS.get(),count=SYSCALLS.get();if(!stream.getdents){stream.getdents=FS.readdir(stream.path)}var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var idx=Math.floor(off/struct_size);while(idx<stream.getdents.length&&pos+struct_size<=count){var id;var type;var name=stream.getdents[idx];if(name[0]==="."){id=1;type=4}else{var child=FS.lookupNode(stream.node,name);id=child.id;type=FS.isChrdev(child.mode)?2:FS.isDir(child.mode)?4:FS.isLink(child.mode)?10:8}tempI64=[id>>>0,(tempDouble=id,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-22}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-22;case 9:___setErrNo(22);return-1;default:{return-22}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall3(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.read(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall33(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),amode=SYSCALLS.get();return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall340(which,varargs){SYSCALLS.varargs=varargs;try{var pid=SYSCALLS.get(),resource=SYSCALLS.get(),new_limit=SYSCALLS.get(),old_limit=SYSCALLS.get();if(old_limit){HEAP32[old_limit>>2]=-1;HEAP32[old_limit+4>>2]=-1;HEAP32[old_limit+8>>2]=-1;HEAP32[old_limit+12>>2]=-1}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall36(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall38(which,varargs){SYSCALLS.varargs=varargs;try{var old_path=SYSCALLS.getStr(),new_path=SYSCALLS.getStr();FS.rename(old_path,new_path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall39(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),mode=SYSCALLS.get();return SYSCALLS.doMkdir(path,mode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall4(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),buf=SYSCALLS.get(),count=SYSCALLS.get();return FS.write(stream,HEAP8,buf,count)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall40(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr();FS.rmdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall41(which,varargs){SYSCALLS.varargs=varargs;try{var old=SYSCALLS.getStreamFromFD();return FS.open(old.path,old.flags,0).fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-25;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-25;return 0}case 21519:{if(!stream.tty)return-25;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-25;return-22}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-25;return 0}case 21524:{if(!stream.tty)return-25;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall60(which,varargs){SYSCALLS.varargs=varargs;try{var mask=SYSCALLS.get();var old=SYSCALLS.umask;SYSCALLS.umask=mask;return old}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall85(which,varargs){SYSCALLS.varargs=varargs;try{var path=SYSCALLS.getStr(),buf=SYSCALLS.get(),bufsize=SYSCALLS.get();return SYSCALLS.doReadlink(path,buf,bufsize)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();if(addr==-1||len==0){return-22}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall94(which,varargs){SYSCALLS.varargs=varargs;try{var fd=SYSCALLS.get(),mode=SYSCALLS.get();FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}function _exit(status){exit(status)}function __exit(a0){return _exit(a0)}function _dlopen(){abort("To use dlopen, you need to use Emscripten's linking support, see https://github.com/emscripten-core/emscripten/wiki/Linking")}function _dlclose(){return _dlopen.apply(null,arguments)}function _dlerror(){return _dlopen.apply(null,arguments)}function _dlsym(){return _dlopen.apply(null,arguments)}function _emscripten_get_heap_size(){return HEAP8.length}function _endpwent(){throw"endpwent: TODO"}function _getenv(name){if(name===0)return 0;name=UTF8ToString(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocateUTF8(ENV[name]);return _getenv.ret}function _getpwent(){throw"getpwent: TODO"}function _getpwnam(){throw"getpwnam: TODO"}function _getpwuid(uid){return 0}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _kill(pid,sig){___setErrNo(ERRNO_CODES.EPERM);return-1}function _llvm_log10_f32(x){return Math.log(x)/Math.LN10}function _llvm_log10_f64(a0){return _llvm_log10_f32(a0)}var ___tm_timezone=(stringToUTF8("GMT",241216,4),241216);function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var winter=new Date(2e3,0,1);var summer=new Date(2e3,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocate(intArrayFromString(winterName),"i8",ALLOC_NORMAL);var summerNamePtr=allocate(intArrayFromString(summerName),"i8",ALLOC_NORMAL);if(summer.getTimezoneOffset()<winter.getTimezoneOffset()){HEAP32[__get_tzname()>>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(2e3,6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function _usleep(useconds){var msec=useconds/1e3;if((ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&self["performance"]&&self["performance"]["now"]){var start=self["performance"]["now"]();while(self["performance"]["now"]()-start<msec){}}else{var start=Date.now();while(Date.now()-start<msec){}}return 0}function _nanosleep(rqtp,rmtp){if(rqtp===0){___setErrNo(22);return-1}var seconds=HEAP32[rqtp>>2];var nanoseconds=HEAP32[rqtp+4>>2];if(nanoseconds<0||nanoseconds>999999999||seconds<0){___setErrNo(22);return-1}if(rmtp!==0){HEAP32[rmtp>>2]=0;HEAP32[rmtp+4>>2]=0}return _usleep(seconds*1e6+nanoseconds/1e3)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function emscripten_realloc_buffer(size){var PAGE_MULTIPLE=65536;size=alignUp(size,PAGE_MULTIPLE);var oldSize=buffer.byteLength;try{var result=wasmMemory.grow((size-oldSize)/65536);if(result!==(-1|0)){buffer=wasmMemory.buffer;return true}else{return false}}catch(e){return false}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();var PAGE_MULTIPLE=65536;var LIMIT=2147483648-PAGE_MULTIPLE;if(requestedSize>LIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize<requestedSize){if(newSize<=536870912){newSize=alignUp(2*newSize,PAGE_MULTIPLE)}else{newSize=Math.min(alignUp((3*newSize+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}if(!emscripten_realloc_buffer(newSize)){return false}updateGlobalBufferViews();return true}function _setenv(envname,envval,overwrite){if(envname===0){___setErrNo(22);return-1}var name=UTF8ToString(envname);var val=UTF8ToString(envval);if(name===""||name.indexOf("=")!==-1){___setErrNo(22);return-1}if(ENV.hasOwnProperty(name)&&!overwrite)return 0;ENV[name]=val;___buildEnvironment(__get_environ());return 0}function _setpwent(){throw"setpwent: TODO"}var __sigalrm_handler=0;function _signal(sig,func){if(sig==14){__sigalrm_handler=func}else{}return 0}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,"0")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},"%w":function(date){return date.tm_wday},"%W":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?"01":"00"},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _sysconf(name){switch(name){case 30:return PAGE_SIZE;case 85:var maxHeapSize=2*1024*1024*1024-65536;return maxHeapSize/PAGE_SIZE;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator==="object")return navigator["hardwareConcurrency"]||1;return 1}}___setErrNo(22);return-1}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}function _unsetenv(name){if(name===0){___setErrNo(22);return-1}name=UTF8ToString(name);if(name===""||name.indexOf("=")!==-1){___setErrNo(22);return-1}if(ENV.hasOwnProperty(name)){delete ENV[name];___buildEnvironment(__get_environ())}return 0}function _utime(path,times){var time;if(times){var offset=4;time=HEAP32[times+offset>>2];time*=1e3}else{time=Date.now()}path=UTF8ToString(path);try{FS.utime(path,time,time);return 0}catch(e){FS.handleFSError(e);return-1}}var VW={init:function(){var STATUS_NOT_SET=0;var STATUS_NOTIFY_KEY=1;var STATUS_NOTIFY_RESIZE=2;var STATUS_NOTIFY_OPEN_FILE_BUF_COMPLETE=3;var STATUS_NOTIFY_CLIPBOARD_WRITE_COMPLETE=4;var STATUS_REQUEST_CMDLINE=5;var STATUS_REQUEST_SHARED_BUF=6;var STATUS_NOTIFY_ERROR_OUTPUT=7;function statusName(s){switch(s){case STATUS_NOT_SET:return"NOT_SET";case STATUS_NOTIFY_KEY:return"NOTIFY_KEY";case STATUS_NOTIFY_RESIZE:return"NOTIFY_RESIZE";case STATUS_NOTIFY_OPEN_FILE_BUF_COMPLETE:return"NOTIFY_OPEN_FILE_BUF_COMPLETE";case STATUS_NOTIFY_CLIPBOARD_WRITE_COMPLETE:return"NOTIFY_CLIPBOARD_WRITE_COMPLETE";case STATUS_REQUEST_CMDLINE:return"REQUEST_CMDLINE";case STATUS_REQUEST_SHARED_BUF:return"REQUEST_SHARED_BUF";case STATUS_NOTIFY_ERROR_OUTPUT:return"NOTIFY_ERROR_OUTPUT";default:return"Unknown command: "+s}}var guiWasmResizeShell;var guiWasmHandleKeydown;var guiWasmHandleDrop;var guiWasmSetClipAvail;var guiWasmDoCmdline;var guiWasmEmsg;var wasmMain;emscriptenRuntimeInitialized.then(function(){guiWasmResizeShell=Module.cwrap("gui_wasm_resize_shell",null,["number","number"]);guiWasmHandleKeydown=Module.cwrap("gui_wasm_handle_keydown",null,["string","number","boolean","boolean","boolean","boolean"]);guiWasmHandleDrop=Module.cwrap("gui_wasm_handle_drop",null,["string"]);guiWasmSetClipAvail=Module.cwrap("gui_wasm_set_clip_avail",null,["boolean"]);guiWasmDoCmdline=Module.cwrap("gui_wasm_do_cmdline","boolean",["string"]);guiWasmEmsg=Module.cwrap("gui_wasm_emsg",null,["string"]);wasmMain=Module.cwrap("wasm_main",null,["number","number"])});var SharedBuffers=function(){function SharedBuffers(){this.buffers=new Map;this.nextID=1}SharedBuffers.prototype.createBuffer=function(bytes){var buf=new SharedArrayBuffer(bytes);var id=this.nextID++;this.buffers.set(id,buf);return[id,buf]};SharedBuffers.prototype.takeBuffer=function(status,bufId){var buf=this.buffers.get(bufId);if(buf===undefined){throw new Error("Received "+statusName(status)+" event but no shared buffer for buffer ID "+bufId)}this.buffers.delete(bufId);return buf};return SharedBuffers}();var VimWasmRuntime=function(){function VimWasmRuntime(){var _this=this;onmessage=function(e){return _this.onMessage(e.data)};this.domWidth=0;this.domHeight=0;this.perf=false;this.syncfsOnExit=false;this.started=false;this.sharedBufs=new SharedBuffers}VimWasmRuntime.prototype.draw=function(){var event=[];for(var _i=0;_i<arguments.length;_i++){event[_i]=arguments[_i]}this.sendMessage({kind:"draw",event:event})};VimWasmRuntime.prototype.vimStarted=function(){this.sendMessage({kind:"started"})};VimWasmRuntime.prototype.sendError=function(err){this.sendMessage({kind:"error",message:err.message});debug("Error was thrown in worker:",err)};VimWasmRuntime.prototype.onMessage=function(msg){var _this=this;debug("Received from main:",msg);switch(msg.kind){case"start":emscriptenRuntimeInitialized.then(function(){return _this.start(msg)}).catch(function(e){switch(e.name){case"ExitStatus":debug("Vim exited with status",e.status);_this.shutdownFileSystem().catch(function(err){console.error("worker: Could not shutdown filesystem:",err)}).then(function(){_this.printPerfs();debug("Finally sending exit message",e.status);_this.sendMessage({kind:"exit",status:e.status})}).catch(function(err){return _this.sendError(err)});break;default:_this.sendError(e);break}});break;default:throw new Error("Unhandled message from main thread: "+msg)}};VimWasmRuntime.prototype.start=function(msg){var _this=this;if(this.started){throw new Error("Vim cannot start because it is already running")}if(msg.debug){debug=console.log.bind(console,"worker:")}this.domWidth=msg.canvasDomWidth;this.domHeight=msg.canvasDomHeight;this.buffer=msg.buffer;this.perf=msg.perf;var willPrepare=this.prepareFileSystem(msg.persistent,msg.dirs,msg.files);if(!msg.clipboard){guiWasmSetClipAvail(false)}return willPrepare.then(function(){return _this.main(msg.cmdArgs)})};VimWasmRuntime.prototype.waitAndHandleEventFromMain=function(timeout){var start=Date.now();var status=this.waitForStatusChanged(timeout);var elapsed=0;if(status===STATUS_NOT_SET){elapsed=Date.now()-start;debug("No event happened after",timeout,"ms timeout. Elapsed:",elapsed);return elapsed}this.handleEvent(status);elapsed=Date.now()-start;debug("Event",statusName(status),status,"was handled with ms",elapsed);return elapsed};VimWasmRuntime.prototype.exportFile=function(fullpath){try{var contents=FS.readFile(fullpath).buffer;debug("Read",contents.byteLength,"bytes contents from",fullpath);this.sendMessage({kind:"export",path:fullpath,contents:contents},[contents]);return true}catch(err){debug("Could not export file",fullpath,"due to error:",err);return false}};VimWasmRuntime.prototype.readClipboard=function(){this.sendMessage({kind:"read-clipboard:request"});this.waitUntilStatus(STATUS_NOTIFY_CLIPBOARD_WRITE_COMPLETE);var isError=!!this.buffer[1];var bufId=this.buffer[2];Atomics.store(this.buffer,0,STATUS_NOT_SET);if(isError){guiWasmSetClipAvail(false);return 0}var buffer=this.sharedBufs.takeBuffer(STATUS_NOTIFY_CLIPBOARD_WRITE_COMPLETE,bufId);var arr=new Uint8Array(buffer);arr[arr.byteLength-1]=0;var ptr=Module._malloc(arr.byteLength);if(ptr===0){return 0}Module.HEAPU8.set(arr,ptr);debug("Malloced",arr.byteLength,"bytes and wrote clipboard text");return ptr};VimWasmRuntime.prototype.writeClipboard=function(text){debug("Send clipboard text:",text);this.sendMessage({kind:"write-clipboard",text:text})};VimWasmRuntime.prototype.setTitle=function(title){debug("Send window title:",title);this.sendMessage({kind:"title",title:title})};VimWasmRuntime.prototype.evalJS=function(file){try{var contents=FS.readFile(file).buffer;this.sendMessage({kind:"eval",path:file,contents:contents},[contents]);debug("Sent JavaScript file:",file);return 1}catch(err){debug("Could not read file",file,":",err);guiWasmEmsg("E9999: Could not access "+file+": "+err.message);return 0}};VimWasmRuntime.prototype.main=function(args){this.started=true;debug("Start main function() with args",args);if(args.length===0){wasmMain(0,0);return}args.unshift("vim");var argvBuf=new Uint32Array(args.length+1);var argsPtr=Module._malloc(args.reduce(function(acc,a){return acc+a.length*4+1},0));for(var i=0,offset=0;i<args.length;i++){var arg=args[i];var bytes=arg.length*4;var ptr=argsPtr+offset;stringToUTF8(arg,ptr,bytes);offset+=bytes+1;argvBuf[i]=ptr}argvBuf[args.length]=0;var argvPtr=Module._malloc(argvBuf.byteLength);Module.HEAPU8.set(new Uint8Array(argvBuf.buffer),argvPtr);wasmMain(args.length,argvPtr)};VimWasmRuntime.prototype.prepareFileSystem=function(persistentDirs,mkdirs,userFiles){var _a;var _this=this;var dotvim="/home/web_user/.vim";var vimrc='" Write your favorite config!\n\nset expandtab tabstop=4 shiftwidth=4 softtabstop=4\ncolorscheme onedark\nsyntax enable\n';var files=(_a={},_a[dotvim+"/vimrc"]=vimrc,_a);Object.assign(files,userFiles);FS.mkdir(dotvim);for(var _i=0,mkdirs_1=mkdirs;_i<mkdirs_1.length;_i++){var dir=mkdirs_1[_i];FS.mkdir(dir)}debug("Created directories:",mkdirs);if(persistentDirs.length===0){for(var _b=0,_c=Object.keys(files);_b<_c.length;_b++){var fpath=_c[_b];FS.writeFile(fpath,files[fpath])}debug("Created files on MEMFS",files);return Promise.resolve()}this.perfMark("idbfs-init");for(var _d=0,persistentDirs_1=persistentDirs;_d<persistentDirs_1.length;_d++){var dir=persistentDirs_1[_d];FS.mount(IDBFS,{},dir)}this.syncfsOnExit=true;return new Promise(function(resolve,reject){FS.syncfs(true,function(err){if(err){reject(err);return}debug("Mounted persistent IDBFS:",persistentDirs);for(var _i=0,_a=Object.keys(files);_i<_a.length;_i++){var fpath=_a[_i];try{FS.writeFile(fpath,files[fpath],{flags:"wx+"})}catch(e){debug("File could not create file:",fpath,e)}}debug("Created files on IDBFS or MEMFS:",files);_this.perfMeasure("idbfs-init");resolve()})})};VimWasmRuntime.prototype.shutdownFileSystem=function(){var _this=this;if(!this.syncfsOnExit){debug("syncfs() was skipped because of no persistent directory");return Promise.resolve()}return new Promise(function(resolve,reject){_this.perfMark("idbfs-fin");FS.syncfs(false,function(err){if(err){debug("Could not save persistent directories:",err);reject(err);return}debug("Synchronized IDBFS for persistent directories");resolve();_this.perfMeasure("idbfs-fin")})})};VimWasmRuntime.prototype.waitUntilStatus=function(status){var event=statusName(status);while(true){var s=this.waitForStatusChanged(undefined);if(s===status){debug("Wait completed for",event,status);return}if(s===STATUS_NOT_SET){continue}this.handleEvent(s);debug("Event",statusName(s),s,"was handled while waiting for",event,status)}};VimWasmRuntime.prototype.waitForStatusChanged=function(timeout){debug("Waiting for any event from main with timeout",timeout);var status=this.eventStatus();if(status!==STATUS_NOT_SET){return status}if(Atomics.wait(this.buffer,0,STATUS_NOT_SET,timeout)==="timed-out"){debug("No event happened after",timeout,"ms timeout");return STATUS_NOT_SET}return this.eventStatus()};VimWasmRuntime.prototype.eventStatus=function(){return Atomics.load(this.buffer,0)};VimWasmRuntime.prototype.handleEvent=function(s){switch(s){case STATUS_NOTIFY_KEY:this.handleKeyEvent();return;case STATUS_NOTIFY_RESIZE:this.handleResizeEvent();return;case STATUS_NOTIFY_OPEN_FILE_BUF_COMPLETE:this.handleOpenFileWriteComplete();return;case STATUS_REQUEST_CMDLINE:this.handleRunCommand();return;case STATUS_REQUEST_SHARED_BUF:this.handleSharedBufRequest();return;case STATUS_NOTIFY_ERROR_OUTPUT:this.handleErrorOutput();return;default:throw new Error("Cannot handle event "+statusName(s)+" ("+s+")")}};VimWasmRuntime.prototype.handleErrorOutput=function(){var bufId=this.buffer[1];Atomics.store(this.buffer,0,STATUS_NOT_SET);debug("Read error output payload with 4 bytes");var sharedBuf=new Uint8Array(this.sharedBufs.takeBuffer(STATUS_NOTIFY_ERROR_OUTPUT,bufId));var buffer=new Uint8Array(sharedBuf);var message=(new TextDecoder).decode(buffer);var output="E9999: "+message;var lines=output.split("\n");for(var _i=0,lines_1=lines;_i<lines_1.length;_i++){var line=lines_1[_i];guiWasmEmsg(line)}debug("Output error message:",output)};VimWasmRuntime.prototype.handleRunCommand=function(){var _a=this.decodeStringFromBuffer(1),idx=_a[0],cmdline=_a[1];Atomics.store(this.buffer,0,STATUS_NOT_SET);debug("Read cmdline request payload with",idx*4,"bytes");var success=guiWasmDoCmdline(cmdline);this.sendMessage({kind:"cmdline:response",success:success})};VimWasmRuntime.prototype.handleSharedBufRequest=function(){var size=this.buffer[1];Atomics.store(this.buffer,0,STATUS_NOT_SET);debug("Read shared buffer request event payload. Size:",size);var _a=this.sharedBufs.createBuffer(size),bufId=_a[0],buffer=_a[1];this.sendMessage({kind:"shared-buf:response",buffer:buffer,bufId:bufId})};VimWasmRuntime.prototype.handleOpenFileWriteComplete=function(){var bufId=this.buffer[1];var _a=this.decodeStringFromBuffer(2),idx=_a[0],fileName=_a[1];Atomics.store(this.buffer,0,STATUS_NOT_SET);debug("Read open file write complete event payload with",idx*4,"bytes");var buffer=this.sharedBufs.takeBuffer(STATUS_NOTIFY_OPEN_FILE_BUF_COMPLETE,bufId);debug("Handle file",fileName,"open with",buffer.byteLength,"bytes buffer on file write complete event");var filePath="/"+fileName;FS.writeFile(filePath,new Uint8Array(buffer));debug("Created file",filePath,"on in-memory filesystem");guiWasmHandleDrop(filePath)};VimWasmRuntime.prototype.handleResizeEvent=function(){var idx=1;var width=this.buffer[idx++];var height=this.buffer[idx++];Atomics.store(this.buffer,0,STATUS_NOT_SET);this.domWidth=width;this.domHeight=height;guiWasmResizeShell(width,height);debug("Resize event was handled",width,height)};VimWasmRuntime.prototype.handleKeyEvent=function(){var idx=1;var keyCode=this.buffer[idx++];var ctrl=!!this.buffer[idx++];var shift=!!this.buffer[idx++];var alt=!!this.buffer[idx++];var meta=!!this.buffer[idx++];var read=this.decodeStringFromBuffer(idx);idx=read[0];var key=read[1];Atomics.store(this.buffer,0,STATUS_NOT_SET);debug("Read key event payload with",idx*4,"bytes");guiWasmHandleKeydown(key,keyCode,ctrl,shift,alt,meta);debug("Key event was handled",key,keyCode,ctrl,shift,alt,meta)};VimWasmRuntime.prototype.decodeStringFromBuffer=function(idx){var len=this.buffer[idx++];var chars=[];for(var i=0;i<len;i++){chars.push(this.buffer[idx++])}var s=String.fromCharCode.apply(String,chars);return[idx,s]};VimWasmRuntime.prototype.sendMessage=function(msg,transfer){if(this.perf){msg.timestamp=Date.now()}postMessage(msg,transfer)};VimWasmRuntime.prototype.perfMark=function(m){if(this.perf){performance.mark(m)}};VimWasmRuntime.prototype.perfMeasure=function(m){if(this.perf){performance.measure(m,m);performance.clearMarks(m)}};VimWasmRuntime.prototype.printPerfs=function(){if(!this.perf){return}var entries=performance.getEntriesByType("measure").map(function(e){return{name:e.name,"duration (ms)":e.duration,"start (ms)":e.startTime}});console.log("%cWorker Measurements","color: green; font-size: large");console.table(entries)};return VimWasmRuntime}();VW.runtime=new VimWasmRuntime}};function _vimwasm_call_shell(cmd){return VW.runtime.evalJS(UTF8ToString(cmd))}function _vimwasm_draw_rect(x,y,w,h,color,filled){VW.runtime.draw("drawRect",[x,y,w,h,UTF8ToString(color),!!filled])}function _vimwasm_draw_text(charHeight,lineHeight,charWidth,x,y,str,len,bold,underline,undercurl,strike){var text=UTF8ToString(str,len);VW.runtime.draw("drawText",[text,charHeight,lineHeight,charWidth,x,y,!!bold,!!underline,!!undercurl,!!strike])}function _vimwasm_export_file(fullpath){return+VW.runtime.exportFile(UTF8ToString(fullpath))}function _vimwasm_get_dom_height(){debug("get_dom_height:",VW.runtime.domHeight);return VW.runtime.domHeight}function _vimwasm_get_dom_width(){debug("get_dom_width:",VW.runtime.domWidth);return VW.runtime.domWidth}function _vimwasm_get_mouse_x(){debug("get_mouse_x:");return 0}function _vimwasm_get_mouse_y(){debug("get_mouse_y:");return 0}function _vimwasm_image_scroll(x,sy,dy,w,h){VW.runtime.draw("imageScroll",[x,sy,dy,w,h])}function _vimwasm_invert_rect(x,y,w,h){VW.runtime.draw("invertRect",[x,y,w,h])}function _vimwasm_is_font(fontNamePtr){var fontName=UTF8ToString(fontNamePtr);debug("is_font:",fontName);return 1}function _vimwasm_is_supported_key(keyNamePtr){var keyName=UTF8ToString(keyNamePtr);debug("is_supported_key:",keyName);return 1}function _vimwasm_read_clipboard(){return VW.runtime.readClipboard()}function _vimwasm_resize(width,height){debug("resize:",width,height)}function _vimwasm_set_bg_color(name){VW.runtime.draw("setColorBG",[UTF8ToString(name)])}function _vimwasm_set_fg_color(name){VW.runtime.draw("setColorFG",[UTF8ToString(name)])}function _vimwasm_set_font(name,size){VW.runtime.draw("setFont",[UTF8ToString(name),size])}function _vimwasm_set_sp_color(name){VW.runtime.draw("setColorSP",[UTF8ToString(name)])}function _vimwasm_set_title(title){VW.runtime.setTitle(UTF8ToString(title))}function _vimwasm_wait_for_event(timeout){return VW.runtime.waitAndHandleEventFromMain(timeout>0?timeout:undefined)}function _vimwasm_will_init(){VW.runtime.vimStarted()}function _vimwasm_write_clipboard(textPtr,size){var text=UTF8ToString(textPtr,size);VW.runtime.writeClipboard(text)}if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function _emscripten_get_now_actual(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else if(typeof performance==="object"&&performance&&typeof performance["now"]==="function"){_emscripten_get_now=function(){return performance["now"]()}}else{_emscripten_get_now=Date.now}FS.staticInit();Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;if(ENVIRONMENT_HAS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}VW.init();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmGlobalArg={};var asmLibraryArg={e:abort,Sa:___assert_fail,Ka:___buildEnvironment,Ba:___clock_gettime,o:___lock,la:___map_file,x:___setErrNo,$:___syscall10,T:___syscall118,r:___syscall12,Ra:___syscall122,Qa:___syscall133,E:___syscall140,Pa:___syscall145,D:___syscall146,C:___syscall15,Oa:___syscall168,Na:___syscall183,Ma:___syscall191,La:___syscall194,B:___syscall195,Ja:___syscall196,Ia:___syscall197,Ha:___syscall199,Ga:___syscall20,Fa:___syscall200,Ea:___syscall207,Da:___syscall212,Ca:___syscall220,c:___syscall221,Aa:___syscall3,za:___syscall33,ya:___syscall340,xa:___syscall36,wa:___syscall38,va:___syscall39,ua:___syscall4,ta:___syscall40,sa:___syscall41,A:___syscall5,n:___syscall54,j:___syscall6,ra:___syscall60,qa:___syscall85,pa:___syscall91,oa:___syscall94,h:___unlock,na:__exit,ma:_dlclose,m:_dlerror,ka:_dlopen,ja:_dlsym,ia:_emscripten_get_heap_size,ha:_emscripten_memcpy_big,ga:_emscripten_resize_heap,fa:_endpwent,i:_exit,b:_getenv,z:_getpwent,y:_getpwnam,ea:_getpwuid,f:_gettimeofday,l:_kill,w:_llvm_log10_f64,da:_localtime_r,ca:_nanosleep,ba:_setenv,aa:_setpwent,d:_signal,k:_strftime,v:_sysconf,g:_time,_:_tzset,Z:_unsetenv,Y:_utime,X:_vimwasm_call_shell,u:_vimwasm_draw_rect,W:_vimwasm_draw_text,V:_vimwasm_export_file,U:_vimwasm_get_dom_height,S:_vimwasm_get_dom_width,R:_vimwasm_get_mouse_x,Q:_vimwasm_get_mouse_y,t:_vimwasm_image_scroll,P:_vimwasm_invert_rect,O:_vimwasm_is_font,N:_vimwasm_is_supported_key,M:_vimwasm_read_clipboard,s:_vimwasm_resize,L:_vimwasm_set_bg_color,K:_vimwasm_set_fg_color,q:_vimwasm_set_font,J:_vimwasm_set_sp_color,I:_vimwasm_set_title,p:_vimwasm_wait_for_event,H:_vimwasm_will_init,G:_vimwasm_write_clipboard,F:abortOnCannotGrowMemory,a:DYNAMICTOP_PTR};var asm=Module["asm"](asmGlobalArg,asmLibraryArg,buffer);Module["asm"]=asm;var ___emscripten_environ_constructor=Module["___emscripten_environ_constructor"]=function(){return Module["asm"]["Ta"].apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return Module["asm"]["Ua"].apply(null,arguments)};var __get_daylight=Module["__get_daylight"]=function(){return Module["asm"]["Va"].apply(null,arguments)};var __get_environ=Module["__get_environ"]=function(){return Module["asm"]["Wa"].apply(null,arguments)};var __get_timezone=Module["__get_timezone"]=function(){return Module["asm"]["Xa"].apply(null,arguments)};var __get_tzname=Module["__get_tzname"]=function(){return Module["asm"]["Ya"].apply(null,arguments)};var _fflush=Module["_fflush"]=function(){return Module["asm"]["Za"].apply(null,arguments)};var _free=Module["_free"]=function(){return Module["asm"]["_a"].apply(null,arguments)};var _gui_wasm_do_cmdline=Module["_gui_wasm_do_cmdline"]=function(){return Module["asm"]["$a"].apply(null,arguments)};var _gui_wasm_emsg=Module["_gui_wasm_emsg"]=function(){return Module["asm"]["ab"].apply(null,arguments)};var _gui_wasm_handle_drop=Module["_gui_wasm_handle_drop"]=function(){return Module["asm"]["bb"].apply(null,arguments)};var _gui_wasm_handle_keydown=Module["_gui_wasm_handle_keydown"]=function(){return Module["asm"]["cb"].apply(null,arguments)};var _gui_wasm_resize_shell=Module["_gui_wasm_resize_shell"]=function(){return Module["asm"]["db"].apply(null,arguments)};var _gui_wasm_set_clip_avail=Module["_gui_wasm_set_clip_avail"]=function(){return Module["asm"]["eb"].apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return Module["asm"]["fb"].apply(null,arguments)};var _wasm_main=Module["_wasm_main"]=function(){return Module["asm"]["gb"].apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return Module["asm"]["ib"].apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return Module["asm"]["jb"].apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return Module["asm"]["kb"].apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return Module["asm"]["hb"].apply(null,arguments)};Module["asm"]=asm;Module["cwrap"]=cwrap;Module["getMemory"]=getMemory;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}Module["quit"](status,new ExitStatus(status))}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){out(what);err(what);what='"'+what+'"'}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();