"use strict";Object.defineProperty(exports,"__esModule",{value:!0});varr="__ES6-PROMISIFY--CUSTOM-ARGUMENTS__";functiono(e){if("function"!=typeofe)thrownewTypeError("Argument to promisify must be a function");varn=e[r],t=o.Promise||Promise;if("function"!=typeoft)thrownewError("No Promise implementation found; do you need a polyfill?");returnfunction(){for(varr=this,o=arguments.length,i=Array(o),f=0;f<o;f++)i[f]=arguments[f];returnnewt(function(o,t){i.push(function(r){if(r)returnt(r);for(vare=arguments.length,i=Array(e>1?e-1:0),f=1;f<e;f++)i[f-1]=arguments[f];if(1===i.length||!n)returno(i[0]);varu={};i.forEach(function(r,o){vare=n[o];e&&(u[e]=r)}),o(u)}),e.call.apply(e,[r].concat(i))})}}o.argumentNames=r,o.Promise=void0,exports.promisify=o;
vart,e,n=module.exports={};functionr(){thrownewError("setTimeout has not been defined")}functiono(){thrownewError("clearTimeout has not been defined")}functioni(e){if(t===setTimeout)returnsetTimeout(e,0);if((t===r||!t)&&setTimeout)returnt=setTimeout,setTimeout(e,0);try{returnt(e,0)}catch(n){try{returnt.call(null,e,0)}catch(n){returnt.call(this,e,0)}}}functionu(t){if(e===clearTimeout)returnclearTimeout(t);if((e===o||!e)&&clearTimeout)returne=clearTimeout,clearTimeout(t);try{returne(t)}catch(n){try{returne.call(null,t)}catch(n){returne.call(this,t)}}}!function(){try{t="function"==typeofsetTimeout?setTimeout:r}catch(n){t=r}try{e="function"==typeofclearTimeout?clearTimeout:o}catch(n){e=o}}();varc,s=[],l=!1,a=-1;functionf(){l&&c&&(l=!1,c.length?s=c.concat(s):a=-1,s.length&&h())}functionh(){if(!l){vart=i(f);l=!0;for(vare=s.length;e;){for(c=s,s=[];++a<e;)c&&c[a].run();a=-1,e=s.length}c=null,l=!1,u(t)}}functionm(t,e){this.fun=t,this.array=e}functionp(){}n.nextTick=function(t){vare=newArray(arguments.length-1);if(arguments.length>1)for(varn=1;n<arguments.length;n++)e[n-1]=arguments[n];s.push(newm(t,e)),1!==s.length||l||i(h)},m.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=p,n.addListener=p,n.once=p,n.off=p,n.removeListener=p,n.removeAllListeners=p,n.emit=p,n.prependListener=p,n.prependOnceListener=p,n.listeners=function(t){return[]},n.binding=function(t){thrownewError("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(t){thrownewError("process.chdir is not supported")},n.umask=function(){return0};
},{}],"UUq2":[function(require,module,exports){
varprocess=require("process");
varr=require("process");functiont(r,t){for(vare=0,n=r.length-1;n>=0;n--){vars=r[n];"."===s?r.splice(n,1):".."===s?(r.splice(n,1),e++):e&&(r.splice(n,1),e--)}if(t)for(;e--;e)r.unshift("..");returnr}vare=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,n=function(r){returne.exec(r).slice(1)};functions(r,t){if(r.filter)returnr.filter(t);for(vare=[],n=0;n<r.length;n++)t(r[n],n,r)&&e.push(r[n]);returne}exports.resolve=function(){for(vare="",n=!1,o=arguments.length-1;o>=-1&&!n;o--){vari=o>=0?arguments[o]:r.cwd();if("string"!=typeofi)thrownewTypeError("Arguments to path.resolve must be strings");i&&(e=i+"/"+e,n="/"===i.charAt(0))}return(n?"/":"")+(e=t(s(e.split("/"),function(r){return!!r}),!n).join("/"))||"."},exports.normalize=function(r){vare=exports.isAbsolute(r),n="/"===o(r,-1);return(r=t(s(r.split("/"),function(r){return!!r}),!e).join("/"))||e||(r="."),r&&n&&(r+="/"),(e?"/":"")+r},exports.isAbsolute=function(r){return"/"===r.charAt(0)},exports.join=function(){varr=Array.prototype.slice.call(arguments,0);returnexports.normalize(s(r,function(r,t){if("string"!=typeofr)thrownewTypeError("Arguments to path.join must be strings");returnr}).join("/"))},exports.relative=function(r,t){functione(r){for(vart=0;t<r.length&&""===r[t];t++);for(vare=r.length-1;e>=0&&""===r[e];e--);returnt>e?[]:r.slice(t,e-t+1)}r=exports.resolve(r).substr(1),t=exports.resolve(t).substr(1);for(varn=e(r.split("/")),s=e(t.split("/")),o=Math.min(n.length,s.length),i=o,u=0;u<o;u++)if(n[u]!==s[u]){i=u;break}varl=[];for(u=i;u<n.length;u++)l.push("..");return(l=l.concat(s.slice(i))).join("/")},exports.sep="/",exports.delimiter=":",exports.dirname=function(r){vart=n(r),e=t[0],s=t[1];returne||s?(s&&(s=s.substr(0,s.length-1)),e+s):"."},exports.basename=function(r,t){vare=n(r)[2];returnt&&e.substr(-1*t.length)===t&&(e=e.substr(0,e.length-t.length)),e},exports.extname=function(r){returnn(r)[3]};varo="b"==="ab".substr(-1)?function(r,t,e){returnr.substr(t,e)}:function(r,t,e){returnt<0&&(t=r.length+t),r.substr(t,e)};
"use strict";exports.byteLength=u,exports.toByteArray=i,exports.fromByteArray=d;for(varr=[],t=[],e="undefined"!=typeofUint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,a=n.length;o<a;++o)r[o]=n[o],t[n.charCodeAt(o)]=o;functionh(r){vart=r.length;if(t%4>0)thrownewError("Invalid string. Length must be a multiple of 4");vare=r.indexOf("=");return-1===e&&(e=t),[e,e===t?0:4-e%4]}functionu(r){vart=h(r),e=t[0],n=t[1];return3*(e+n)/4-n}functionc(r,t,e){return3*(t+e)/4-e}functioni(r){for(varn,o=h(r),a=o[0],u=o[1],i=newe(c(r,a,u)),f=0,A=u>0?a-4:a,d=0;d<A;d+=4)n=t[r.charCodeAt(d)]<<18|t[r.charCodeAt(d+1)]<<12|t[r.charCodeAt(d+2)]<<6|t[r.charCodeAt(d+3)],i[f++]=n>>16&255,i[f++]=n>>8&255,i[f++]=255&n;return2===u&&(n=t[r.charCodeAt(d)]<<2|t[r.charCodeAt(d+1)]>>4,i[f++]=255&n),1===u&&(n=t[r.charCodeAt(d)]<<10|t[r.charCodeAt(d+1)]<<4|t[r.charCodeAt(d+2)]>>2,i[f++]=n>>8&255,i[f++]=255&n),i}functionf(t){returnr[t>>18&63]+r[t>>12&63]+r[t>>6&63]+r[63&t]}functionA(r,t,e){for(varn,o=[],a=t;a<e;a+=3)n=(r[a]<<16&16711680)+(r[a+1]<<8&65280)+(255&r[a+2]),o.push(f(n));returno.join("")}functiond(t){for(vare,n=t.length,o=n%3,a=[],h=0,u=n-o;h<u;h+=16383)a.push(A(t,h,h+16383>u?u:h+16383));return1===o?(e=t[n-1],a.push(r[e>>2]+r[e<<4&63]+"==")):2===o&&(e=(t[n-2]<<8)+t[n-1],a.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),a.join("")}t["-".charCodeAt(0)]=62,t["_".charCodeAt(0)]=63;
vart=arguments[3],r=require("base64-js"),e=require("ieee754"),n=require("isarray");functioni(){try{vart=newUint8Array(1);returnt.__proto__={__proto__:Uint8Array.prototype,foo:function(){return42}},42===t.foo()&&"function"==typeoft.subarray&&0===t.subarray(1,1).byteLength}catch(r){return!1}}functiono(){returnu.TYPED_ARRAY_SUPPORT?2147483647:1073741823}functions(t,r){if(o()<r)thrownewRangeError("Invalid typed array length");returnu.TYPED_ARRAY_SUPPORT?(t=newUint8Array(r)).__proto__=u.prototype:(null===t&&(t=newu(r)),t.length=r),t}functionu(t,r,e){if(!(u.TYPED_ARRAY_SUPPORT||thisinstanceofu))returnnewu(t,r,e);if("number"==typeoft){if("string"==typeofr)thrownewError("If encoding is specified then the first argument must be a string");returnp(this,t)}returnh(this,t,r,e)}functionh(t,r,e,n){if("number"==typeofr)thrownewTypeError('"value" argument must not be a number');return"undefined"!=typeofArrayBuffer&&rinstanceofArrayBuffer?g(t,r,e,n):"string"==typeofr?l(t,r,e):y(t,r)}functionf(t){if("number"!=typeoft)thrownewTypeError('"size" argument must be a number');if(t<0)thrownewRangeError('"size" argument must not be negative')}functiona(t,r,e,n){returnf(r),r<=0?s(t,r):void0!==e?"string"==typeofn?s(t,r).fill(e,n):s(t,r).fill(e):s(t,r)}functionp(t,r){if(f(r),t=s(t,r<0?0:0|w(r)),!u.TYPED_ARRAY_SUPPORT)for(vare=0;e<r;++e)t[e]=0;returnt}functionl(t,r,e){if("string"==typeofe&&""!==e||(e="utf8"),!u.isEncoding(e))thrownewTypeError('"encoding" must be a valid string encoding');varn=0|v(r,e),i=(t=s(t,n)).write(r,e);returni!==n&&(t=t.slice(0,i)),t}functionc(t,r){vare=r.length<0?0:0|w(r.length);t=s(t,e);for(varn=0;n<e;n+=1)t[n]=255&r[n];returnt}functiong(t,r,e,n){if(r.byteLength,e<0||r.byteLength<e)thrownewRangeError("'offset' is out of bounds");if(r.byteLength<e+(n||0))thrownewRangeError("'length' is out of bounds");returnr=void0===e&&void0===n?newUint8Array(r):void0===n?newUint8Array(r,e):newUint8Array(r,e,n),u.TYPED_ARRAY_SUPPORT?(t=r).__proto__=u.prototype:t=c(t,r),t}functiony(t,r){if(u.isBuffer(r)){vare=0|w(r.length);return0===(t=s(t,e)).length?t:(r.copy(t,0,0,e),t)}if(r){if("undefined"!=typeofArrayBuffer&&r.bufferinstanceofArrayBuffer||"length"inr)return"number"!=typeofr.length||d(r.length)?s(t,0):c(t,r);if("Buffer"===r.type&&n(r.data))returnc(t,r.data)}thrownewTypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}functionw(t){if(t>=o())thrownewRangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return0|t}functionE(t){return+t!=t&&(t=0),u.alloc(+t)}functionv(t,r){if(u.isBuffer(t))returnt.length;if("undefined"!=typeofArrayBuffer&&"function"==typeofArrayBuffer.isView&&(ArrayBuffer.isView(t)||tinstanceofArrayBuffer))returnt.byteLength;"string"!=typeoft&&(t=""+t);vare=t.length;if(0===e)return0;for(varn=!1;;)switch(r){case"ascii":case"latin1":case"binary":returne;case"utf8":case"utf-8":casevoid0:returnK(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return2*e;case"hex":returne>>>1;case"base64":returnI(t).length;default:if(n)returnK(t).length;r=(""+r).toLowerCase(),n=!0}}functionR(t,r,e){varn=!1;if((void0===r||r<0)&&(r=0),r>this.length)return"";if((void0===e||e>this.length)&&(e=this.length),e<=0)return"";if((e>>>=0)<=(r>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":returnk(this,r,e);case"utf8":case"utf-8":returnO(this,r,e);case"ascii":returnL(this,r,e);case"latin1":case"binary":returnM(this,r,e);case"base64":returnS(this,r,e);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":returnN(this,r,e);default:if(n)thrownewTypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function_(t,r,e){varn=t[r];t[r]=t[e],t[e]=n}functionA(t,r,e,n,i){if(0===t.length)return-1;if("string"==typeofe?(n=e,e=0):e>2147483647?e=2147483647:e<-2147483648&&(e=-2147483648),e=+e,isNaN(e)&&(e=i?0:t.length-1),e<0&&(e=t.length+e),e>=t.length){if(i)return-1;e=t.length-1}elseif(e<0){if(!i)return-1;e=0}if("string"==typeofr&&(r=u.from(r,n)),u.
vart=require("../constants.js").FILE_SYSTEM_NAME,e=require("../../lib/async.js").setImmediate,o=function(){vart={};returnfunction(e){returnt.hasOwnProperty(e)||(t[e]={}),t[e]}}();functionn(t,e){this.readOnly=e,this.objectStore=t}functionr(e){this.name=e||t}n.prototype.clear=function(t){if(this.readOnly)e(function(){t("[MemoryContext] Error: write operation on read only context")});else{varo=this.objectStore;Object.keys(o).forEach(function(t){deleteo[t]}),e(t)}},n.prototype.getObject=n.prototype.getBuffer=function(t,o){varn=this;e(function(){o(null,n.objectStore[t])})},n.prototype.putObject=n.prototype.putBuffer=function(t,o,n){this.readOnly?e(function(){n("[MemoryContext] Error: write operation on read only context")}):(this.objectStore[t]=o,e(n))},n.prototype.delete=function(t,o){this.readOnly?e(function(){o("[MemoryContext] Error: write operation on read only context")}):(deletethis.objectStore[t],e(o))},r.isSupported=function(){return!0},r.prototype.open=function(t){this.db=o(this.name),e(t)},r.prototype.getReadOnlyContext=function(){returnnewn(this.db,!0)},r.prototype.getReadWriteContext=function(){returnnewn(this.db,!1)},module.exports=r;
vart={};["3:EACCES:permission denied","9:EBADF:bad file descriptor","10:EBUSY:resource busy or locked","18:EINVAL:invalid argument","27:ENOTDIR:not a directory","28:EISDIR:illegal operation on a directory","34:ENOENT:no such file or directory","47:EEXIST:file already exists","50:EPERM:operation not permitted","51:ELOOP:too many symbolic links encountered","53:ENOTEMPTY:directory not empty","55:EIO:i/o error","1000:ENOTMOUNTED:not mounted","1001:EFILESYSTEMERROR:missing super node, use 'FORMAT' flag to format filesystem.","1002:ENOATTR:attribute does not exist"].forEach(function(e){varo=+(e=e.split(":"))[0],r=e[1],i=e[2];functions(t,e){Error.call(this),this.name=r,this.code=r,this.errno=o,this.message=t||i,e&&(this.path=e),this.stack=newError(this.message).stack}s.prototype=Object.create(Error.prototype),s.prototype.constructor=s,s.prototype.toString=function(){vart=this.path?", '"+this.path+"'":"";returnthis.name+": "+this.message+t},t[r]=t[o]=s}),module.exports=t;
vare=require("../lib/eventemitter.js"),t=require("./path.js"),n=require("../lib/intercom.js");functionr(){e.call(this);varr,i,o=this,s=!1;functionc(e){(i===e||s&&0===e.indexOf(r))&&o.trigger("change","change",e)}o.start=function(e,o,a){if(!i){if(t.isNull(e))thrownewError("Path must be a string without null bytes.");i=t.normalize(e),(s=!0===a)&&(r="/"===i?"/":i+"/"),n.getInstance().on("change",c)}},o.close=function(){n.getInstance().off("change",c),o.removeAllListeners("change")}}r.prototype=newe,r.prototype.constructor=r,module.exports=r;
functiont(t,i){if(!(tinstanceofi))thrownewTypeError("Cannot call a class as a function")}functioni(t,i){for(vars=0;s<i.length;s++){vare=i[s];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"ine&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}functions(t,s,e){returns&&i(t.prototype,s),e&&i(t,e),t}vare=require("./constants"),n=e.NODE_TYPE_FILE,r=e.NODE_TYPE_DIRECTORY,a=e.NODE_TYPE_SYMBOLIC_LINK,o=e.DEFAULT_FILE_PERMISSIONS,u=e.DEFAULT_DIR_PERMISSIONS,h=require("./constants").fsConstants,c=h.S_IFREG,f=h.S_IFDIR,m=h.S_IFLNK;functiond(t,i,s){if(t[i])returns();t.guid(function(e,n){if(e)returns(e);t[i]=n,s()})}functionl(t,i){switch(t){caser:return(i||u)|f;casea:return(i||o)|m;casen:default:return(i||o)|c}}varp=function(){functioni(s){t(this,i);vare=Date.now();this.id=s.id,this.data=s.data,this.size=s.size||0,this.atime=s.atime||e,this.ctime=s.ctime||e,this.mtime=s.mtime||e,this.flags=s.flags||[],this.xattrs=s.xattrs||{},this.nlinks=s.nlinks||0,"string"==typeofs.type?this.type=s.type:"string"==typeofs.mode?this.type=s.mode:this.type=n,this.permissions=s.permissions||l(this.type),this.uid=s.uid||0,this.gid=s.gid||0}returns(i,[{key:"toJSON",value:function(){return{id:this.id,data:this.data,size:this.size,atime:this.atime,ctime:this.ctime,mtime:this.ctime,flags:this.flags,xattrs:this.xattrs,nlinks:this.nlinks,mode:this.type,permissions:this.permissions,uid:this.uid,gid:this.gid}}},{key:"mode",get:function(){returnl(this.type,this.permissions)},set:function(t){this.permissions=t}}]),i}();module.exports.create=function(t,i){d(t,"id",function(s){if(s)returni(s);d(t,"data",function(s){if(s)returni(s);i(null,newp(t))})})};
varn=require("buffer").Buffer;functiont(n){return(t="function"==typeofSymbol&&"symbol"==typeofSymbol.iterator?function(n){returntypeofn}:function(n){returnn&&"function"==typeofSymbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeofn})(n)}vare=require("../path.js"),i=e.normalize,u=e.dirname,o=e.basename,f=e.isAbsolute,s=require("../shared.js"),r=require("../constants.js"),a=r.NODE_TYPE_FILE,c=r.NODE_TYPE_DIRECTORY,p=r.NODE_TYPE_SYMBOLIC_LINK,d=r.NODE_TYPE_META,m=r.FULL_READ_WRITE_EXEC_PERMISSIONS,E=r.ROOT_DIRECTORY_NAME,w=r.SUPER_NODE_ID,O=r.SYMLOOP_MAX,l=r.O_READ,g=r.O_WRITE,v=r.O_CREATE,y=r.O_EXCLUSIVE,N=r.O_APPEND,A=r.O_FLAGS,D=r.XATTR_CREATE,I=r.XATTR_REPLACE,j=r.FS_NOMTIME,T=r.FS_NOCTIME,h=require("../errors.js"),b=require("../directory-entry.js"),L=require("../open-files.js"),R=require("../open-file-description.js"),F=require("../super-node.js"),V=require("../node.js"),B=require("../stats.js");functionP(n,t,e,i,u){varo=n.flags;o.includes(T)&&deletei.ctime,o.includes(j)&&deletei.mtime;varf=!1;functions(e){n.changes.push({event:"change",path:t}),u(e)}i.ctime&&(e.ctime=i.ctime,e.atime=i.ctime,f=!0),i.atime&&(e.atime=i.atime,f=!0),i.mtime&&(e.mtime=i.mtime,f=!0),f?n.putObject(e.id,e,s):s()}functionS(n,t,e,f){if(e!==c&&e!==a)returnf(newh.EINVAL("type must be a directory or file",t));t=i(t);vars,r,p,d=o(t),m=u(t);functionE(e,i){!e&&i?f(newh.EEXIST("path name already exists",t)):!e||einstanceofh.ENOENT?n.getObject(s.data,w):f(e)}functionw(t,i){t?f(t):(r=i,V.create({guid:n.guid,type:e},function(t,e){t?f(t):((p=e).nlinks+=1,n.putObject(p.id,p,l))}))}functionO(t){if(t)f(t);else{vare=Date.now();P(n,m,p,{mtime:e,ctime:e},f)}}functionl(t){t?f(t):(r[d]=newb(p.id,e),n.putObject(s.data,r,O))}_(n,m,function(e,i){e?f(e):i.type!==c?f(newh.ENOTDIR("a component of the path prefix is not a directory",t)):(s=i,_(n,t,E))})}function_(n,t,e){if(!(t=i(t)))returne(newh.ENOENT("path is an empty string"));varf=o(t),s=u(t),r=0;functiona(t,i){if(t)returne(t);varu=newF(i);u&&u.type===d&&u.rnode?n.getObject(u.rnode,m):e(newh.EFILESYSTEMERROR)}functionm(n,t){n?e(n):t?V.create(t,e):e(newh.ENOENT)}functionl(i,u){i?e(i):u.type===c&&u.data?n.getObject(u.data,g):e(newh.ENOTDIR("a component of the path prefix is not a directory",t))}functiong(i,u){if(i)e(i);elseif(u.hasOwnProperty(f)){varo=u[f].id;n.getObject(o,v)}elsee(newh.ENOENT(null,t))}functionv(n,t){if(n)returne(n);V.create(t,y)}functiony(c,d){varm;c?e(c):d.type===p?++r>O?e(newh.ELOOP(null,t)):(m=d.data,m=i(m),s=u(m),f=o(m),E===f?n.getObject(w,a):_(n,s,l)):e(null,d)}E===f?n.getObject(w,a):_(n,s,l)}functionx(n,t,e,i,u,o,f){vars=e.xattrs;o===D&&s.hasOwnProperty(i)?f(newh.EEXIST("attribute already exists",t)):o!==I||s.hasOwnProperty(i)?(s[i]=u,n.putObject(e.id,e,function(i){i?f(i):P(n,t,e,{ctime:Date.now()},f)})):f(newh.ENOATTR(null,t))}functionC(n,t){vare,i,u;functiono(u){u?t(u):V.create({guid:n.guid,id:e.rnode,type:c},function(e,u){e?t(e):((i=u).nlinks+=1,n.putObject(i.id,i,f))})}functionf(e){e?t(e):(u={},n.putObject(i.data,u,t))}n.getObject(w,function(i,u){!i&&u?t():!i||iinstanceofh.ENOENT?F.create({guid:n.guid},function(i,u){i?t(i):(e=u,n.putObject(e.id,e,o))}):t(i)})}functionX(n,t,e){t=i(t);varf,s,r,a,p=o(t),d=u(t);functionm(t,i){t?e(t):(r=i,n.getObject(r.data,E))}functionE(t,i){t?e(t):(a=i,V.create({guid:n.guid,type:c},function(t,i){t?e(t):((f=i).nlinks+=1,n.putObject(f.id,f,w))}))}functionw(t){t?e(t):(s={},n.putObject(f.data,s,l))}functionO(t){if(t)e(t);else{vari=Date.now();P(n,d,r,{mtime:i,ctime:i},e)}}functionl(t){t?e(t):(a[p]=newb(f.id,c),n.putObject(r.data,a,O))}_(n,t,function(i,u){!i&&u?e(newh.EEXIST(null,t)):!i||iinstanceofh.ENOENT?_(n,d,m):e(i)})}functionq(n,t,e,u){varo=r.fsConstants,f=o.F_OK,s=o.R_OK,a=o.W_OK,c=o.X_OK,p=o.S_IXUSR,d=o.S_IXGRP,m=o.S_IXOTH;_(n,t=i(t),function(n,i){if(n)returnu(n);if(e===f)returnu(null);varo=Pn(i.mode,u);returno?e&(s|a)?u(null):e&c&&o&(p|d|m)?u(null):voidu(newh.EACCES("permission denied",t)):void0})}functionM(n,t,e){t=i(t);varf,s,r,a,p=o(t),d=u(t);functionm(i,
vare=require("buffer").Buffer,r=require("es6-promisify"),t=r.promisify,n=require("../path.js"),a=require("../providers/index.js"),s=require("../shell/shell.js"),o=require("../../lib/intercom.js"),i=require("../fs-watcher.js"),u=require("../errors.js"),m=require("../shared.js"),c=m.nop,f=m.guid,l=require("../constants.js"),h=l.fsConstants,p=l.FILE_SYSTEM_NAME,d=l.FS_FORMAT,g=l.FS_READY,b=l.FS_PENDING,A=l.FS_ERROR,P=l.FS_NODUPEIDCHECK,v=l.STDIN,y=l.STDOUT,E=l.STDERR,R=require("./implementation.js");functionw(e){return"function"==typeofe?e:function(e){if(e)throwe}}functionS(e){e&&console.error("Filer error: ",e)}functionO(e){if(!(e&&e.protocol&&e.pathname))returne;if("file:"!==e.protocol)thrownewu.EINVAL("only file: URLs are supported for paths",e);for(varr=e.pathname,t=0;t<r.length;t++)if("%"===r[t]){varn=32|r.codePointAt(t+2);if("2"===r[t+1]&&102===n)thrownewu.EINVAL("file: URLs must not include encoded / characters",e)}returndecodeURIComponent(r)}functionx(r){returne.isBuffer(r)?r.toString():r}functionF(e,r){returne?n.isNull(e)?newu.EINVAL("Path must be a string without null bytes.",e):r||n.isAbsolute(e)?void0:newu.EINVAL("Path must be absolute.",e):newu.EINVAL("Path must be a string",e)}function_(e,r,t){varn=e[r],a=F(n=x(n=O(n)),t);if(a)throwa;e[r]=n}functionq(e,r){r=r||S;varm=(e=e||{}).flags||[],l=e.guid?e.guid:f,O=e.provider||newa.Default(e.name||p),x=e.name||O.name,F=m.includes(d),I=this;I.readyState=b,I.name=x,I.error=null,I.stdin=v,I.stdout=y,I.stderr=E,I.constants=h,I.F_OK=h.F_OK,I.R_OK=h.R_OK,I.W_OK=h.W_OK,I.X_OK=h.X_OK,this.Shell=s.bind(void0,this);varN=[];functionj(e){returnfunction(r){m.includes(P)?r(null,l()):functionr(t){varn=l();e.getObject(n,function(e,a){e?t(e):a?r(t):t(null,n)})}(r)}}this.queueOrRun=function(e){varr;returng===I.readyState?e.call(I):A===I.readyState?r=newu.EFILESYSTEMERROR("unknown error"):N.push(e),r},this.watch=function(e,r,t){if(n.isNull(e))thrownewError("Path must be a string without null bytes.");"function"==typeofr&&(t=r,r={}),r=r||{},t=t||c;vara=newi;returna.start(e,!1,r.recursive),a.on("change",t),a},O.open(function(e){functiont(e){functiont(e){varr=O[e]();returnr.name=x,r.flags=m,r.changes=[],r.guid=j(r),r.close=function(){vare=r.changes;!function(e){if(e.length){varr=o.getInstance();e.forEach(function(e){r.emit(e.event,e.path)})}}(e),e.length=0},r}I.provider={openReadWriteContext:function(){returnt("getReadWriteContext")},openReadOnlyContext:function(){returnt("getReadOnlyContext")}},I.readyState=e?A:g,N.forEach(function(e){e.call(this)}.bind(I)),N=null,r(e,I)}if(e)returnt(e);varn=O.getReadWriteContext();n.guid=j(n),F?n.clear(function(e){if(e)returnt(e);R.ensureRootDirectory(n,t)}):R.ensureRootDirectory(n,t)}),q.prototype.promises={},[{name:"appendFile",promises:!0,absPathArgs:[0]},{name:"access",promises:!0,absPathArgs:[0]},{name:"chown",promises:!0,absPathArgs:[0]},{name:"chmod",promises:!0,absPathArgs:[0]},{name:"close"},{name:"exists",absPathArgs:[0]},{name:"fchown"},{name:"fchmod"},{name:"fgetxattr"},{name:"fremovexattr"},{name:"fsetxattr"},{name:"fstat"},{name:"fsync"},{name:"ftruncate"},{name:"futimes"},{name:"getxattr",promises:!0,absPathArgs:[0]},{name:"link",promises:!0,absPathArgs:[0,1]},{name:"lseek"},{name:"lstat",promises:!0},{name:"mkdir",promises:!0,absPathArgs:[0]},{name:"mkdtemp",promises:!0},{name:"mknod",promises:!0,absPathArgs:[0]},{name:"open",promises:!0,absPathArgs:[0]},{name:"readdir",promises:!0,absPathArgs:[0]},{name:"read"},{name:"readFile",promises:!0,absPathArgs:[0]},{name:"readlink",promises:!0,absPathArgs:[0]},{name:"removexattr",promises:!0,absPathArgs:[0]},{name:"rename",promises:!0,absPathArgs:[0,1]},{name:"rmdir",promises:!0,absPathArgs:[0]},{name:"setxattr",promises:!0,absPathArgs:[0]},{name:"stat",promises:!0,absPathArgs:[0]},{name:"symlink",promises:!0,relPathArgs:[0],absPathArgs:[1]},{name:"truncate",promises:!0,absPathArgs:[0]},{name:"unlink",promises:!0,absPathArgs:[0]},{name:"utimes",promises:!0,absPathArgs:[0]},{name:"writeFile",promises:!0,absPathArgs:[0]},{name:"write"}].forEach(