s3db.js 4.1.0 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,29 +1,29 @@
1
1
  /* istanbul ignore file */
2
- var S3DB=function(P,ji,L,ce,le,Ni,Yt,Df,Ff){"use strict";function Bi(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];i==="."?e.splice(n,1):i===".."?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}var Mf=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,jr=function(e){return Mf.exec(e).slice(1)};function Nr(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:"/";if(typeof n!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!n)continue;e=n+"/"+e,t=n.charAt(0)==="/"}return e=Bi(Br(e.split("/"),function(i){return!!i}),!t).join("/"),(t?"/":"")+e||"."}function Ui(e){var t=$i(e),r=zf(e,-1)==="/";return e=Bi(Br(e.split("/"),function(n){return!!n}),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function $i(e){return e.charAt(0)==="/"}function we(){var e=Array.prototype.slice.call(arguments,0);return Ui(Br(e,function(t,r){if(typeof t!="string")throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))}function Lf(e,t){e=Nr(e).substr(1),t=Nr(t).substr(1);function r(f){for(var l=0;l<f.length&&f[l]==="";l++);for(var d=f.length-1;d>=0&&f[d]==="";d--);return l>d?[]:f.slice(l,d-l+1)}for(var n=r(e.split("/")),i=r(t.split("/")),a=Math.min(n.length,i.length),o=a,s=0;s<a;s++)if(n[s]!==i[s]){o=s;break}for(var c=[],s=o;s<n.length;s++)c.push("..");return c=c.concat(i.slice(o)),c.join("/")}var jf="/",Nf=":";function Bf(e){var t=jr(e),r=t[0],n=t[1];return!r&&!n?".":(n&&(n=n.substr(0,n.length-1)),r+n)}function Uf(e,t){var r=jr(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r}function $f(e){return jr(e)[3]}var ue={extname:$f,basename:Uf,dirname:Bf,sep:jf,delimiter:Nf,relative:Lf,join:we,isAbsolute:$i,normalize:Ui,resolve:Nr};function Br(e,t){if(e.filter)return e.filter(t);for(var r=[],n=0;n<e.length;n++)t(e[n],n,e)&&r.push(e[n]);return r}var zf="ab".substr(-1)==="b"?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)};const zi=ji.customAlphabet(ji.urlAlphabet,22);var Ur;function Te(){}Te.prototype=Object.create(null);function R(){R.init.call(this)}R.EventEmitter=R,R.usingDomains=!1,R.prototype.domain=void 0,R.prototype._events=void 0,R.prototype._maxListeners=void 0,R.defaultMaxListeners=10,R.init=function(){this.domain=null,R.usingDomains&&Ur.active&&!(this instanceof Ur.Domain)&&(this.domain=Ur.active),(!this._events||this._events===Object.getPrototypeOf(this)._events)&&(this._events=new Te,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},R.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||isNaN(t))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=t,this};function Zi(e){return e._maxListeners===void 0?R.defaultMaxListeners:e._maxListeners}R.prototype.getMaxListeners=function(){return Zi(this)};function Zf(e,t,r){if(t)e.call(r);else for(var n=e.length,i=At(e,n),a=0;a<n;++a)i[a].call(r)}function qf(e,t,r,n){if(t)e.call(r,n);else for(var i=e.length,a=At(e,i),o=0;o<i;++o)a[o].call(r,n)}function Hf(e,t,r,n,i){if(t)e.call(r,n,i);else for(var a=e.length,o=At(e,a),s=0;s<a;++s)o[s].call(r,n,i)}function Kf(e,t,r,n,i,a){if(t)e.call(r,n,i,a);else for(var o=e.length,s=At(e,o),c=0;c<o;++c)s[c].call(r,n,i,a)}function Wf(e,t,r,n){if(t)e.apply(r,n);else for(var i=e.length,a=At(e,i),o=0;o<i;++o)a[o].apply(r,n)}R.prototype.emit=function(t){var r,n,i,a,o,s,c,f=t==="error";if(s=this._events,s)f=f&&s.error==null;else if(!f)return!1;if(c=this.domain,f){if(r=arguments[1],c)r||(r=new Error('Uncaught, unspecified "error" event')),r.domainEmitter=this,r.domain=c,r.domainThrown=!1,c.emit("error",r);else{if(r instanceof Error)throw r;var l=new Error('Uncaught, unspecified "error" event. ('+r+")");throw l.context=r,l}return!1}if(n=s[t],!n)return!1;var d=typeof n=="function";switch(i=arguments.length,i){case 1:Zf(n,d,this);break;case 2:qf(n,d,this,arguments[1]);break;case 3:Hf(n,d,this,arguments[1],arguments[2]);break;case 4:Kf(n,d,this,arguments[1],arguments[2],arguments[3]);break;default:for(a=new Array(i-1),o=1;o<i;o++)a[o-1]=arguments[o];Wf(n,d,this,a)}return!0};function qi(e,t,r,n){var i,a,o;if(typeof r!="function")throw new TypeError('"listener" argument must be a function');if(a=e._events,a?(a.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),a=e._events),o=a[t]):(a=e._events=new Te,e._eventsCount=0),!o)o=a[t]=r,++e._eventsCount;else if(typeof o=="function"?o=a[t]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),!o.warned&&(i=Zi(e),i&&i>0&&o.length>i)){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,Vf(s)}return e}function Vf(e){typeof console.warn=="function"?console.warn(e):console.log(e)}R.prototype.addListener=function(t,r){return qi(this,t,r,!1)},R.prototype.on=R.prototype.addListener,R.prototype.prependListener=function(t,r){return qi(this,t,r,!0)};function Hi(e,t,r){var n=!1;function i(){e.removeListener(t,i),n||(n=!0,r.apply(e,arguments))}return i.listener=r,i}R.prototype.once=function(t,r){if(typeof r!="function")throw new TypeError('"listener" argument must be a function');return this.on(t,Hi(this,t,r)),this},R.prototype.prependOnceListener=function(t,r){if(typeof r!="function")throw new TypeError('"listener" argument must be a function');return this.prependListener(t,Hi(this,t,r)),this},R.prototype.removeListener=function(t,r){var n,i,a,o,s;if(typeof r!="function")throw new TypeError('"listener" argument must be a function');if(i=this._events,!i)return this;if(n=i[t],!n)return this;if(n===r||n.listener&&n.listener===r)--this._eventsCount===0?this._events=new Te:(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(a=-1,o=n.length;o-- >0;)if(n[o]===r||n[o].listener&&n[o].listener===r){s=n[o].listener,a=o;break}if(a<0)return this;if(n.length===1){if(n[0]=void 0,--this._eventsCount===0)return this._events=new Te,this;delete i[t]}else Gf(n,a);i.removeListener&&this.emit("removeListener",t,s||r)}return this},R.prototype.off=function(e,t){return this.removeListener(e,t)},R.prototype.removeAllListeners=function(t){var r,n;if(n=this._events,!n)return this;if(!n.removeListener)return arguments.length===0?(this._events=new Te,this._eventsCount=0):n[t]&&(--this._eventsCount===0?this._events=new Te:delete n[t]),this;if(arguments.length===0){for(var i=Object.keys(n),a=0,o;a<i.length;++a)o=i[a],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=new Te,this._eventsCount=0,this}if(r=n[t],typeof r=="function")this.removeListener(t,r);else if(r)do this.removeListener(t,r[r.length-1]);while(r[0]);return this},R.prototype.listeners=function(t){var r,n,i=this._events;return i?(r=i[t],r?typeof r=="function"?n=[r.listener||r]:n=Yf(r):n=[]):n=[],n},R.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Ki.call(e,t)},R.prototype.listenerCount=Ki;function Ki(e){var t=this._events;if(t){var r=t[e];if(typeof r=="function")return 1;if(r)return r.length}return 0}R.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};function Gf(e,t){for(var r=t,n=r+1,i=e.length;n<i;r+=1,n+=1)e[r]=e[n];e.pop()}function At(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}function Yf(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}class lt extends Error{constructor({verbose:t,bucket:r,message:n,...i}){t&&(n=n+`
2
+ var S3DB=function(P,Li,L,ce,le,Ni,Jt,Df,Ff){"use strict";function Bi(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];i==="."?e.splice(n,1):i===".."?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}var Mf=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,Lr=function(e){return Mf.exec(e).slice(1)};function Nr(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:"/";if(typeof n!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!n)continue;e=n+"/"+e,t=n.charAt(0)==="/"}return e=Bi(Br(e.split("/"),function(i){return!!i}),!t).join("/"),(t?"/":"")+e||"."}function Ui(e){var t=$i(e),r=zf(e,-1)==="/";return e=Bi(Br(e.split("/"),function(n){return!!n}),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function $i(e){return e.charAt(0)==="/"}function we(){var e=Array.prototype.slice.call(arguments,0);return Ui(Br(e,function(t,r){if(typeof t!="string")throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))}function jf(e,t){e=Nr(e).substr(1),t=Nr(t).substr(1);function r(f){for(var l=0;l<f.length&&f[l]==="";l++);for(var d=f.length-1;d>=0&&f[d]==="";d--);return l>d?[]:f.slice(l,d-l+1)}for(var n=r(e.split("/")),i=r(t.split("/")),a=Math.min(n.length,i.length),o=a,s=0;s<a;s++)if(n[s]!==i[s]){o=s;break}for(var c=[],s=o;s<n.length;s++)c.push("..");return c=c.concat(i.slice(o)),c.join("/")}var Lf="/",Nf=":";function Bf(e){var t=Lr(e),r=t[0],n=t[1];return!r&&!n?".":(n&&(n=n.substr(0,n.length-1)),r+n)}function Uf(e,t){var r=Lr(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r}function $f(e){return Lr(e)[3]}var ue={extname:$f,basename:Uf,dirname:Bf,sep:Lf,delimiter:Nf,relative:jf,join:we,isAbsolute:$i,normalize:Ui,resolve:Nr};function Br(e,t){if(e.filter)return e.filter(t);for(var r=[],n=0;n<e.length;n++)t(e[n],n,e)&&r.push(e[n]);return r}var zf="ab".substr(-1)==="b"?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)};const zi=Li.customAlphabet(Li.urlAlphabet,22);var Ur;function Te(){}Te.prototype=Object.create(null);function R(){R.init.call(this)}R.EventEmitter=R,R.usingDomains=!1,R.prototype.domain=void 0,R.prototype._events=void 0,R.prototype._maxListeners=void 0,R.defaultMaxListeners=10,R.init=function(){this.domain=null,R.usingDomains&&Ur.active&&!(this instanceof Ur.Domain)&&(this.domain=Ur.active),(!this._events||this._events===Object.getPrototypeOf(this)._events)&&(this._events=new Te,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},R.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||isNaN(t))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=t,this};function Zi(e){return e._maxListeners===void 0?R.defaultMaxListeners:e._maxListeners}R.prototype.getMaxListeners=function(){return Zi(this)};function Zf(e,t,r){if(t)e.call(r);else for(var n=e.length,i=kt(e,n),a=0;a<n;++a)i[a].call(r)}function qf(e,t,r,n){if(t)e.call(r,n);else for(var i=e.length,a=kt(e,i),o=0;o<i;++o)a[o].call(r,n)}function Hf(e,t,r,n,i){if(t)e.call(r,n,i);else for(var a=e.length,o=kt(e,a),s=0;s<a;++s)o[s].call(r,n,i)}function Kf(e,t,r,n,i,a){if(t)e.call(r,n,i,a);else for(var o=e.length,s=kt(e,o),c=0;c<o;++c)s[c].call(r,n,i,a)}function Wf(e,t,r,n){if(t)e.apply(r,n);else for(var i=e.length,a=kt(e,i),o=0;o<i;++o)a[o].apply(r,n)}R.prototype.emit=function(t){var r,n,i,a,o,s,c,f=t==="error";if(s=this._events,s)f=f&&s.error==null;else if(!f)return!1;if(c=this.domain,f){if(r=arguments[1],c)r||(r=new Error('Uncaught, unspecified "error" event')),r.domainEmitter=this,r.domain=c,r.domainThrown=!1,c.emit("error",r);else{if(r instanceof Error)throw r;var l=new Error('Uncaught, unspecified "error" event. ('+r+")");throw l.context=r,l}return!1}if(n=s[t],!n)return!1;var d=typeof n=="function";switch(i=arguments.length,i){case 1:Zf(n,d,this);break;case 2:qf(n,d,this,arguments[1]);break;case 3:Hf(n,d,this,arguments[1],arguments[2]);break;case 4:Kf(n,d,this,arguments[1],arguments[2],arguments[3]);break;default:for(a=new Array(i-1),o=1;o<i;o++)a[o-1]=arguments[o];Wf(n,d,this,a)}return!0};function qi(e,t,r,n){var i,a,o;if(typeof r!="function")throw new TypeError('"listener" argument must be a function');if(a=e._events,a?(a.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),a=e._events),o=a[t]):(a=e._events=new Te,e._eventsCount=0),!o)o=a[t]=r,++e._eventsCount;else if(typeof o=="function"?o=a[t]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),!o.warned&&(i=Zi(e),i&&i>0&&o.length>i)){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,Vf(s)}return e}function Vf(e){typeof console.warn=="function"?console.warn(e):console.log(e)}R.prototype.addListener=function(t,r){return qi(this,t,r,!1)},R.prototype.on=R.prototype.addListener,R.prototype.prependListener=function(t,r){return qi(this,t,r,!0)};function Hi(e,t,r){var n=!1;function i(){e.removeListener(t,i),n||(n=!0,r.apply(e,arguments))}return i.listener=r,i}R.prototype.once=function(t,r){if(typeof r!="function")throw new TypeError('"listener" argument must be a function');return this.on(t,Hi(this,t,r)),this},R.prototype.prependOnceListener=function(t,r){if(typeof r!="function")throw new TypeError('"listener" argument must be a function');return this.prependListener(t,Hi(this,t,r)),this},R.prototype.removeListener=function(t,r){var n,i,a,o,s;if(typeof r!="function")throw new TypeError('"listener" argument must be a function');if(i=this._events,!i)return this;if(n=i[t],!n)return this;if(n===r||n.listener&&n.listener===r)--this._eventsCount===0?this._events=new Te:(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(a=-1,o=n.length;o-- >0;)if(n[o]===r||n[o].listener&&n[o].listener===r){s=n[o].listener,a=o;break}if(a<0)return this;if(n.length===1){if(n[0]=void 0,--this._eventsCount===0)return this._events=new Te,this;delete i[t]}else Gf(n,a);i.removeListener&&this.emit("removeListener",t,s||r)}return this},R.prototype.off=function(e,t){return this.removeListener(e,t)},R.prototype.removeAllListeners=function(t){var r,n;if(n=this._events,!n)return this;if(!n.removeListener)return arguments.length===0?(this._events=new Te,this._eventsCount=0):n[t]&&(--this._eventsCount===0?this._events=new Te:delete n[t]),this;if(arguments.length===0){for(var i=Object.keys(n),a=0,o;a<i.length;++a)o=i[a],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=new Te,this._eventsCount=0,this}if(r=n[t],typeof r=="function")this.removeListener(t,r);else if(r)do this.removeListener(t,r[r.length-1]);while(r[0]);return this},R.prototype.listeners=function(t){var r,n,i=this._events;return i?(r=i[t],r?typeof r=="function"?n=[r.listener||r]:n=Yf(r):n=[]):n=[],n},R.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Ki.call(e,t)},R.prototype.listenerCount=Ki;function Ki(e){var t=this._events;if(t){var r=t[e];if(typeof r=="function")return 1;if(r)return r.length}return 0}R.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};function Gf(e,t){for(var r=t,n=r+1,i=e.length;n<i;r+=1,n+=1)e[r]=e[n];e.pop()}function kt(e,t){for(var r=new Array(t);t--;)r[t]=e[t];return r}function Yf(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}class ut extends Error{constructor({verbose:t,bucket:r,message:n,...i}){t&&(n=n+`
3
3
 
4
4
  Verbose:
5
5
 
6
- ${JSON.stringify(i,null,2)}`),super(n),typeof Error.captureStackTrace=="function"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(n).stack,super.name=this.constructor.name,this.name=this.constructor.name,this.bucket=r,this.thrownAt=new Date}toJson(){return{...this}}toString(){return`${this.name} | ${this.message}`}}class Wi extends lt{constructor({bucket:t,...r}){super({...r,bucket:t,message:`Bucket does not exists [bucket:${t}]`})}}class $r extends lt{constructor({bucket:t,key:r,...n}){super({...n,bucket:t,message:`Key [${r}] does not exists [bucket:${t}/${r}]`}),this.key=r}}class Vi extends $r{}class Gi extends lt{constructor({bucket:t,...r}){super({...r,bucket:t,message:`Missing metadata for bucket [bucket:${t}]`})}}class Jt extends lt{constructor({bucket:t,resourceName:r,attributes:n,validation:i}){super({bucket:t,message:`This item is not valid. Resource=${r} [bucket:${t}].
7
- ${JSON.stringify(i,null,2)}`}),this.resourceName=r,this.attributes=n,this.validation=i}}class Yi extends lt{}const Ji={NotFound:Vi,NoSuchKey:$r,UnknownError:Yi,NoSuchBucket:Wi,MissingMetadata:Gi,InvalidResourceItem:Jt},Xi="us-east-1",Qi="https://s3.us-east-1.amazonaws.com";class ea{constructor(t){let r;try{r=new URL(t)}catch{throw new Error("Invalid connection string: "+t)}this.region=Xi,r.protocol==="s3:"?this.defineS3(r):this.defineMinio(r);for(const[n,i]of r.searchParams.entries())this[n]=i}defineS3(t){if(this.bucket=t.hostname,this.accessKeyId=t.username,this.secretAccessKey=t.password,this.endpoint=Qi,["/","",null].includes(t.pathname))this.keyPrefix="";else{let[,...r]=t.pathname.split("/");this.keyPrefix=[...r||[]].join("/")}}defineMinio(t){if(this.forcePathStyle=!0,this.endpoint=t.origin,this.accessKeyId=t.username,this.secretAccessKey=t.password,["/","",null].includes(t.pathname))this.bucket="s3db",this.keyPrefix="";else{let[,r,...n]=t.pathname.split("/");this.bucket=r,this.keyPrefix=[...n||[]].join("/")}}}class ta extends R{constructor({verbose:t=!1,id:r=null,AwsS3Client:n,connectionString:i,parallelism:a=10}){super(),this.verbose=t,this.id=r??zi(),this.parallelism=a,this.config=new ea(i),this.client=n||this.createClient()}createClient(){let t={region:this.config.region,endpoint:this.config.endpoint};return this.config.forcePathStyle&&(t.forcePathStyle=!0),this.config.accessKeyId&&(t.credentials={accessKeyId:this.config.accessKeyId,secretAccessKey:this.config.secretAccessKey}),new le.S3Client(t)}async sendCommand(t){this.emit("command.request",t.constructor.name,t.input);const r=console.warn;try{console.warn=i=>{i.includes("Stream of unknown length")||r(i)}}catch(i){console.error(i)}const n=await this.client.send(t);this.emit("command.response",t.constructor.name,n,t.input);try{console.warn=r}catch(i){console.error(i)}return n}errorProxy(t,r){this.verbose&&(r.bucket=this.config.bucket,r.config=this.config,r.verbose=this.verbose),t.data=r;const n=Ji[t.name];return n?new n(r):t}async putObject({key:t,metadata:r,contentType:n,body:i,contentEncoding:a}){const o={Bucket:this.config.bucket,Key:this.config.keyPrefix?ue.join(this.config.keyPrefix,t):t,Metadata:{...r},Body:i||"",ContentType:n,ContentEncoding:a};try{const s=await this.sendCommand(new le.PutObjectCommand(o));return this.emit("putObject",s,o),s}catch(s){throw this.errorProxy(s,{key:t,command:o})}}async getObject(t){const r={Bucket:this.config.bucket,Key:ue.join(this.config.keyPrefix,t)};try{const n=await this.sendCommand(new le.GetObjectCommand(r));return this.emit("getObject",n,r),n}catch(n){throw this.errorProxy(n,{key:t,command:r})}}async headObject(t){const r={Bucket:this.config.bucket,Key:this.config.keyPrefix?ue.join(this.config.keyPrefix,t):t};try{const n=await this.client.send(new le.HeadObjectCommand(r));return this.emit("headObject",n,r),n}catch(n){throw this.errorProxy(n,{key:t,command:r})}}async copyObject({from:t,to:r}){const n={Bucket:this.config.bucket,Key:this.config.keyPrefix?ue.join(this.config.keyPrefix,r):r,CopySource:ue.join(this.config.bucket,this.config.keyPrefix?ue.join(this.config.keyPrefix,t):t)};try{const i=await this.client.send(new le.CopyObjectCommand(n));return this.emit("copyObject",i,n),i}catch(i){throw this.errorProxy(i,{from:t,to:r,command:n})}}async exists(t){try{return await this.headObject(t),!0}catch(r){if(r.name==="NoSuchKey")return!1;if(r.name==="NotFound")return!1;throw r}}async deleteObject(t){const r={Bucket:this.config.bucket,Key:this.config.keyPrefix?ue.join(this.config.keyPrefix,t):t};try{const n=await this.sendCommand(new le.DeleteObjectCommand(r));return this.emit("deleteObject",n,r),n}catch(n){throw this.errorProxy(n,{key:t,command:r})}}async deleteObjects(t){const r=L.chunk(t,1e3),{results:n,errors:i}=await ce.PromisePool.for(r).withConcurrency(this.parallelism).process(async o=>{const s={Bucket:this.config.bucket,Delete:{Objects:o.map(c=>({Key:this.config.keyPrefix?ue.join(this.config.keyPrefix,c):c}))}};try{return await this.sendCommand(new le.DeleteObjectsCommand(s))}catch(c){throw this.errorProxy(c,{keys:o,command:s})}}),a={deleted:n,notFound:i};return this.emit("deleteObjects",a,t),a}async deleteAll({prefix:t}={}){let r,n=0;do{const i=new le.ListObjectsV2Command({Bucket:this.config.bucket,Prefix:this.config.keyPrefix?ue.join(this.config.keyPrefix,t):t,ContinuationToken:r}),a=await this.client.send(i);if(a.Contents&&a.Contents.length>0){const o=new le.DeleteObjectsCommand({Bucket:this.config.bucket,Delete:{Objects:a.Contents.map(f=>({Key:f.Key}))}}),s=await this.client.send(o),c=s.Deleted?s.Deleted.length:0;n+=c,this.emit("deleteAll",{prefix:t,batch:c,total:n})}r=a.IsTruncated?a.NextContinuationToken:void 0}while(r);return this.emit("deleteAllComplete",{prefix:t,totalDeleted:n}),n}async moveObject({from:t,to:r}){try{return await this.copyObject({from:t,to:r}),await this.deleteObject(t),!0}catch(n){throw this.errorProxy(n,{from:t,to:r,command:options})}}async listObjects({prefix:t,maxKeys:r=1e3,continuationToken:n}={}){const i={Bucket:this.config.bucket,MaxKeys:r,ContinuationToken:n,Prefix:this.config.keyPrefix?ue.join(this.config.keyPrefix,t||""):t||""};try{const a=await this.sendCommand(new le.ListObjectsV2Command(i));return this.emit("listObjects",a,i),a}catch(a){throw this.errorProxy(a,{command:i})}}async count({prefix:t}={}){let r=0,n=!0,i;for(;n;){const a={prefix:t,continuationToken:i},o=await this.listObjects(a);r+=o.KeyCount||0,n=o.IsTruncated||!1,i=o.NextContinuationToken}return this.emit("count",r,{prefix:t}),r}async getAllKeys({prefix:t}={}){let r=[],n=!0,i;for(;n;){const a={prefix:t,continuationToken:i},o=await this.listObjects(a);o.Contents&&(r=r.concat(o.Contents.map(s=>s.Key))),n=o.IsTruncated||!1,i=o.NextContinuationToken}return this.config.keyPrefix&&(r=r.map(a=>a.replace(this.config.keyPrefix,"")).map(a=>a.startsWith("/")?a.replace("/",""):a)),this.emit("getAllKeys",r,{prefix:t}),r}async getContinuationTokenAfterOffset(t={}){const{prefix:r,offset:n=1e3}=t;if(n===0)return null;let i=!0,a,o=0;for(;i;){let s=n<1e3?n:n-o>1e3?1e3:n-o;const c={prefix:r,maxKeys:s,continuationToken:a},f=await this.listObjects(c);if(f.Contents&&(o+=f.Contents.length),i=f.IsTruncated||!1,a=f.NextContinuationToken,o>=n)break}return this.emit("getContinuationTokenAfterOffset",a||null,t),a||null}async getKeysPage(t={}){const{prefix:r,offset:n=0,amount:i=100}=t;let a=[],o=!0,s;for(n>0&&(s=await this.getContinuationTokenAfterOffset({prefix:r,offset:n}));o;){const c={prefix:r,continuationToken:s},f=await this.listObjects(c);if(f.Contents&&(a=a.concat(f.Contents.map(l=>l.Key))),o=f.IsTruncated||!1,s=f.NextContinuationToken,a.length>i){a=a.splice(0,i);break}}return this.config.keyPrefix&&(a=a.map(c=>c.replace(this.config.keyPrefix,"")).map(c=>c.startsWith("/")?c.replace("/",""):c)),this.emit("getKeysPage",a,t),a}async moveAllObjects({prefixFrom:t,prefixTo:r}){const n=await this.getAllKeys({prefix:t}),{results:i,errors:a}=await ce.PromisePool.for(n).withConcurrency(this.parallelism).process(async o=>{const s=o.replace(t,r);try{return await this.moveObject({from:o,to:s}),s}catch(c){throw this.errorProxy(c,{from:o,to:s})}});if(this.emit("moveAllObjects",{results:i,errors:a},{prefixFrom:t,prefixTo:r}),a.length>0)throw new Error("Some objects could not be moved");return i}}async function Xt(){let e;if(typeof process<"u")try{const{webcrypto:t}=await import("crypto");e=t}catch{throw new Error("Crypto API not available")}else typeof window<"u"&&(e=window.crypto);if(!e)throw new Error("Could not load any crypto library");return e}async function ra(e){const t=await Xt(),n=new TextEncoder().encode(e),i=await t.subtle.digest("SHA-256",n);return Array.from(new Uint8Array(i)).map(s=>s.toString(16).padStart(2,"0")).join("")}async function zr(e,t){const r=await Xt(),n=r.getRandomValues(new Uint8Array(16)),i=await ia(t,n),a=r.getRandomValues(new Uint8Array(12)),s=new TextEncoder().encode(e),c=await r.subtle.encrypt({name:"AES-GCM",iv:a},i,s),f=new Uint8Array(n.length+a.length+c.byteLength);return f.set(n),f.set(a,n.length),f.set(new Uint8Array(c),n.length+a.length),Jf(f)}async function na(e,t){const r=await Xt(),n=Xf(e),i=n.slice(0,16),a=n.slice(16,28),o=n.slice(28),s=await ia(t,i),c=await r.subtle.decrypt({name:"AES-GCM",iv:a},s,o);return new TextDecoder().decode(c)}async function ia(e,t){const r=await Xt(),i=new TextEncoder().encode(e),a=await r.subtle.importKey("raw",i,{name:"PBKDF2"},!1,["deriveKey"]);return await r.subtle.deriveKey({name:"PBKDF2",salt:t,iterations:1e5,hash:"SHA-256"},a,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}function Jf(e){if(typeof process<"u")return Buffer.from(e).toString("base64");{const t=String.fromCharCode.apply(null,new Uint8Array(e));return window.btoa(t)}}function Xf(e){if(typeof process<"u")return new Uint8Array(Buffer.from(e,"base64"));{const t=window.atob(e),r=t.length,n=new Uint8Array(r);for(let i=0;i<r;i++)n[i]=t.charCodeAt(i);return n}}function Qf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Qt={},Zr,aa;function ec(){if(aa)return Zr;aa=1;var e,t,r={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
6
+ ${JSON.stringify(i,null,2)}`),super(n),typeof Error.captureStackTrace=="function"?Error.captureStackTrace(this,this.constructor):this.stack=new Error(n).stack,super.name=this.constructor.name,this.name=this.constructor.name,this.bucket=r,this.thrownAt=new Date}toJson(){return{...this}}toString(){return`${this.name} | ${this.message}`}}class Wi extends ut{constructor({bucket:t,...r}){super({...r,bucket:t,message:`Bucket does not exists [bucket:${t}]`})}}class $r extends ut{constructor({bucket:t,key:r,...n}){super({...n,bucket:t,message:`Key [${r}] does not exists [bucket:${t}/${r}]`}),this.key=r}}class Vi extends $r{}class Gi extends ut{constructor({bucket:t,...r}){super({...r,bucket:t,message:`Missing metadata for bucket [bucket:${t}]`})}}class Xt extends ut{constructor({bucket:t,resourceName:r,attributes:n,validation:i}){super({bucket:t,message:`This item is not valid. Resource=${r} [bucket:${t}].
7
+ ${JSON.stringify(i,null,2)}`}),this.resourceName=r,this.attributes=n,this.validation=i}}class Yi extends ut{}const Ji={NotFound:Vi,NoSuchKey:$r,UnknownError:Yi,NoSuchBucket:Wi,MissingMetadata:Gi,InvalidResourceItem:Xt},Xi="us-east-1",Qi="https://s3.us-east-1.amazonaws.com";class ea{constructor(t){let r;try{r=new URL(t)}catch{throw new Error("Invalid connection string: "+t)}this.region=Xi,r.protocol==="s3:"?this.defineS3(r):this.defineMinio(r);for(const[n,i]of r.searchParams.entries())this[n]=i}defineS3(t){if(this.bucket=t.hostname,this.accessKeyId=t.username,this.secretAccessKey=t.password,this.endpoint=Qi,["/","",null].includes(t.pathname))this.keyPrefix="";else{let[,...r]=t.pathname.split("/");this.keyPrefix=[...r||[]].join("/")}}defineMinio(t){if(this.forcePathStyle=!0,this.endpoint=t.origin,this.accessKeyId=t.username,this.secretAccessKey=t.password,["/","",null].includes(t.pathname))this.bucket="s3db",this.keyPrefix="";else{let[,r,...n]=t.pathname.split("/");this.bucket=r,this.keyPrefix=[...n||[]].join("/")}}}class ta extends R{constructor({verbose:t=!1,id:r=null,AwsS3Client:n,connectionString:i,parallelism:a=10}){super(),this.verbose=t,this.id=r??zi(),this.parallelism=a,this.config=new ea(i),this.client=n||this.createClient()}createClient(){let t={region:this.config.region,endpoint:this.config.endpoint};return this.config.forcePathStyle&&(t.forcePathStyle=!0),this.config.accessKeyId&&(t.credentials={accessKeyId:this.config.accessKeyId,secretAccessKey:this.config.secretAccessKey}),new le.S3Client(t)}async sendCommand(t){this.emit("command.request",t.constructor.name,t.input);const r=console.warn;try{console.warn=i=>{i.includes("Stream of unknown length")||r(i)}}catch(i){console.error(i)}const n=await this.client.send(t);this.emit("command.response",t.constructor.name,n,t.input);try{console.warn=r}catch(i){console.error(i)}return n}errorProxy(t,r){this.verbose&&(r.bucket=this.config.bucket,r.config=this.config,r.verbose=this.verbose),t.data=r;const n=Ji[t.name];return n?new n(r):t}async putObject({key:t,metadata:r,contentType:n,body:i,contentEncoding:a}){const o={Bucket:this.config.bucket,Key:this.config.keyPrefix?ue.join(this.config.keyPrefix,t):t,Metadata:{...r},Body:i||"",ContentType:n,ContentEncoding:a};try{const s=await this.sendCommand(new le.PutObjectCommand(o));return this.emit("putObject",s,o),s}catch(s){throw this.errorProxy(s,{key:t,command:o})}}async getObject(t){const r={Bucket:this.config.bucket,Key:ue.join(this.config.keyPrefix,t)};try{const n=await this.sendCommand(new le.GetObjectCommand(r));return this.emit("getObject",n,r),n}catch(n){throw this.errorProxy(n,{key:t,command:r})}}async headObject(t){const r={Bucket:this.config.bucket,Key:this.config.keyPrefix?ue.join(this.config.keyPrefix,t):t};try{const n=await this.sendCommand(new le.HeadObjectCommand(r));return this.emit("headObject",n,r),n}catch(n){throw this.errorProxy(n,{key:t,command:r})}}async copyObject({from:t,to:r}){const n={Bucket:this.config.bucket,Key:this.config.keyPrefix?ue.join(this.config.keyPrefix,r):r,CopySource:ue.join(this.config.bucket,this.config.keyPrefix?ue.join(this.config.keyPrefix,t):t)};try{const i=await this.client.send(new le.CopyObjectCommand(n));return this.emit("copyObject",i,n),i}catch(i){throw this.errorProxy(i,{from:t,to:r,command:n})}}async exists(t){try{return await this.headObject(t),!0}catch(r){if(r.name==="NoSuchKey")return!1;if(r.name==="NotFound")return!1;throw r}}async deleteObject(t){const r={Bucket:this.config.bucket,Key:this.config.keyPrefix?ue.join(this.config.keyPrefix,t):t};try{const n=await this.sendCommand(new le.DeleteObjectCommand(r));return this.emit("deleteObject",n,r),n}catch(n){throw this.errorProxy(n,{key:t,command:r})}}async deleteObjects(t){const r=L.chunk(t,1e3),{results:n,errors:i}=await ce.PromisePool.for(r).withConcurrency(this.parallelism).process(async o=>{const s={Bucket:this.config.bucket,Delete:{Objects:o.map(c=>({Key:this.config.keyPrefix?ue.join(this.config.keyPrefix,c):c}))}};try{return await this.sendCommand(new le.DeleteObjectsCommand(s))}catch(c){throw this.errorProxy(c,{keys:o,command:s})}}),a={deleted:n,notFound:i};return this.emit("deleteObjects",a,t),a}async deleteAll({prefix:t}={}){let r,n=0;do{const i=new le.ListObjectsV2Command({Bucket:this.config.bucket,Prefix:this.config.keyPrefix?ue.join(this.config.keyPrefix,t):t,ContinuationToken:r}),a=await this.client.send(i);if(a.Contents&&a.Contents.length>0){const o=new le.DeleteObjectsCommand({Bucket:this.config.bucket,Delete:{Objects:a.Contents.map(f=>({Key:f.Key}))}}),s=await this.client.send(o),c=s.Deleted?s.Deleted.length:0;n+=c,this.emit("deleteAll",{prefix:t,batch:c,total:n})}r=a.IsTruncated?a.NextContinuationToken:void 0}while(r);return this.emit("deleteAllComplete",{prefix:t,totalDeleted:n}),n}async moveObject({from:t,to:r}){try{return await this.copyObject({from:t,to:r}),await this.deleteObject(t),!0}catch(n){throw this.errorProxy(n,{from:t,to:r,command:options})}}async listObjects({prefix:t,maxKeys:r=1e3,continuationToken:n}={}){const i={Bucket:this.config.bucket,MaxKeys:r,ContinuationToken:n,Prefix:this.config.keyPrefix?ue.join(this.config.keyPrefix,t||""):t||""};try{const a=await this.sendCommand(new le.ListObjectsV2Command(i));return this.emit("listObjects",a,i),a}catch(a){throw this.errorProxy(a,{command:i})}}async count({prefix:t}={}){let r=0,n=!0,i;for(;n;){const a={prefix:t,continuationToken:i},o=await this.listObjects(a);r+=o.KeyCount||0,n=o.IsTruncated||!1,i=o.NextContinuationToken}return this.emit("count",r,{prefix:t}),r}async getAllKeys({prefix:t}={}){let r=[],n=!0,i;for(;n;){const a={prefix:t,continuationToken:i},o=await this.listObjects(a);o.Contents&&(r=r.concat(o.Contents.map(s=>s.Key))),n=o.IsTruncated||!1,i=o.NextContinuationToken}return this.config.keyPrefix&&(r=r.map(a=>a.replace(this.config.keyPrefix,"")).map(a=>a.startsWith("/")?a.replace("/",""):a)),this.emit("getAllKeys",r,{prefix:t}),r}async getContinuationTokenAfterOffset(t={}){const{prefix:r,offset:n=1e3}=t;if(n===0)return null;let i=!0,a,o=0;for(;i;){let s=n<1e3?n:n-o>1e3?1e3:n-o;const c={prefix:r,maxKeys:s,continuationToken:a},f=await this.listObjects(c);if(f.Contents&&(o+=f.Contents.length),i=f.IsTruncated||!1,a=f.NextContinuationToken,o>=n)break}return this.emit("getContinuationTokenAfterOffset",a||null,t),a||null}async getKeysPage(t={}){const{prefix:r,offset:n=0,amount:i=100}=t;let a=[],o=!0,s;for(n>0&&(s=await this.getContinuationTokenAfterOffset({prefix:r,offset:n}));o;){const c={prefix:r,continuationToken:s},f=await this.listObjects(c);if(f.Contents&&(a=a.concat(f.Contents.map(l=>l.Key))),o=f.IsTruncated||!1,s=f.NextContinuationToken,a.length>i){a=a.splice(0,i);break}}return this.config.keyPrefix&&(a=a.map(c=>c.replace(this.config.keyPrefix,"")).map(c=>c.startsWith("/")?c.replace("/",""):c)),this.emit("getKeysPage",a,t),a}async moveAllObjects({prefixFrom:t,prefixTo:r}){const n=await this.getAllKeys({prefix:t}),{results:i,errors:a}=await ce.PromisePool.for(n).withConcurrency(this.parallelism).process(async o=>{const s=o.replace(t,r);try{return await this.moveObject({from:o,to:s}),s}catch(c){throw this.errorProxy(c,{from:o,to:s})}});if(this.emit("moveAllObjects",{results:i,errors:a},{prefixFrom:t,prefixTo:r}),a.length>0)throw new Error("Some objects could not be moved");return i}}async function Qt(){let e;if(typeof process<"u")try{const{webcrypto:t}=await import("crypto");e=t}catch{throw new Error("Crypto API not available")}else typeof window<"u"&&(e=window.crypto);if(!e)throw new Error("Could not load any crypto library");return e}async function ra(e){const t=await Qt(),n=new TextEncoder().encode(e),i=await t.subtle.digest("SHA-256",n);return Array.from(new Uint8Array(i)).map(s=>s.toString(16).padStart(2,"0")).join("")}async function zr(e,t){const r=await Qt(),n=r.getRandomValues(new Uint8Array(16)),i=await ia(t,n),a=r.getRandomValues(new Uint8Array(12)),s=new TextEncoder().encode(e),c=await r.subtle.encrypt({name:"AES-GCM",iv:a},i,s),f=new Uint8Array(n.length+a.length+c.byteLength);return f.set(n),f.set(a,n.length),f.set(new Uint8Array(c),n.length+a.length),Jf(f)}async function na(e,t){const r=await Qt(),n=Xf(e),i=n.slice(0,16),a=n.slice(16,28),o=n.slice(28),s=await ia(t,i),c=await r.subtle.decrypt({name:"AES-GCM",iv:a},s,o);return new TextDecoder().decode(c)}async function ia(e,t){const r=await Qt(),i=new TextEncoder().encode(e),a=await r.subtle.importKey("raw",i,{name:"PBKDF2"},!1,["deriveKey"]);return await r.subtle.deriveKey({name:"PBKDF2",salt:t,iterations:1e5,hash:"SHA-256"},a,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}function Jf(e){if(typeof process<"u")return Buffer.from(e).toString("base64");{const t=String.fromCharCode.apply(null,new Uint8Array(e));return window.btoa(t)}}function Xf(e){if(typeof process<"u")return new Uint8Array(Buffer.from(e,"base64"));{const t=window.atob(e),r=t.length,n=new Uint8Array(r);for(let i=0;i<r;i++)n[i]=t.charCodeAt(i);return n}}function Qf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var er={},Zr,aa;function ec(){if(aa)return Zr;aa=1;var e,t,r={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
8
8
  `,r:"\r",t:" "},n;function i(u){throw{name:"SyntaxError",message:u,at:e,text:n}}function a(u){return u&&u!==t&&i("Expected '"+u+"' instead of '"+t+"'"),t=n.charAt(e),e+=1,t}function o(){var u,p="";for(t==="-"&&(p="-",a("-"));t>="0"&&t<="9";)p+=t,a();if(t===".")for(p+=".";a()&&t>="0"&&t<="9";)p+=t;if(t==="e"||t==="E")for(p+=t,a(),(t==="-"||t==="+")&&(p+=t,a());t>="0"&&t<="9";)p+=t,a();return u=Number(p),isFinite(u)||i("Bad number"),u}function s(){var u,p,v="",_;if(t==='"')for(;a();){if(t==='"')return a(),v;if(t==="\\")if(a(),t==="u"){for(_=0,p=0;p<4&&(u=parseInt(a(),16),!!isFinite(u));p+=1)_=_*16+u;v+=String.fromCharCode(_)}else if(typeof r[t]=="string")v+=r[t];else break;else v+=t}i("Bad string")}function c(){for(;t&&t<=" ";)a()}function f(){switch(t){case"t":return a("t"),a("r"),a("u"),a("e"),!0;case"f":return a("f"),a("a"),a("l"),a("s"),a("e"),!1;case"n":return a("n"),a("u"),a("l"),a("l"),null;default:i("Unexpected '"+t+"'")}}function l(){var u=[];if(t==="["){if(a("["),c(),t==="]")return a("]"),u;for(;t;){if(u.push(h()),c(),t==="]")return a("]"),u;a(","),c()}}i("Bad array")}function d(){var u,p={};if(t==="{"){if(a("{"),c(),t==="}")return a("}"),p;for(;t;){if(u=s(),c(),a(":"),Object.prototype.hasOwnProperty.call(p,u)&&i('Duplicate key "'+u+'"'),p[u]=h(),c(),t==="}")return a("}"),p;a(","),c()}}i("Bad object")}function h(){switch(c(),t){case"{":return d();case"[":return l();case'"':return s();case"-":return o();default:return t>="0"&&t<="9"?o():f()}}return Zr=function(u,p){var v;return n=u,e=0,t=" ",v=h(),c(),t&&i("Syntax error"),typeof p=="function"?function _(w,x){var S,g,A=w[x];if(A&&typeof A=="object")for(S in h)Object.prototype.hasOwnProperty.call(A,S)&&(g=_(A,S),typeof g>"u"?delete A[S]:A[S]=g);return p.call(w,x,A)}({"":v},""):v},Zr}var qr,oa;function tc(){if(oa)return qr;oa=1;var e=/[\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,t,r,n={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},i;function a(s){return e.lastIndex=0,e.test(s)?'"'+s.replace(e,function(c){var f=n[c];return typeof f=="string"?f:"\\u"+("0000"+c.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+s+'"'}function o(s,c){var f,l,d,h,u=t,p,v=c[s];switch(v&&typeof v=="object"&&typeof v.toJSON=="function"&&(v=v.toJSON(s)),typeof i=="function"&&(v=i.call(c,s,v)),typeof v){case"string":return a(v);case"number":return isFinite(v)?String(v):"null";case"boolean":case"null":return String(v);case"object":if(!v)return"null";if(t+=r,p=[],Object.prototype.toString.apply(v)==="[object Array]"){for(h=v.length,f=0;f<h;f+=1)p[f]=o(f,v)||"null";return d=p.length===0?"[]":t?`[
9
9
  `+t+p.join(`,
10
10
  `+t)+`
11
11
  `+u+"]":"["+p.join(",")+"]",t=u,d}if(i&&typeof i=="object")for(h=i.length,f=0;f<h;f+=1)l=i[f],typeof l=="string"&&(d=o(l,v),d&&p.push(a(l)+(t?": ":":")+d));else for(l in v)Object.prototype.hasOwnProperty.call(v,l)&&(d=o(l,v),d&&p.push(a(l)+(t?": ":":")+d));return d=p.length===0?"{}":t?`{
12
12
  `+t+p.join(`,
13
13
  `+t)+`
14
- `+u+"}":"{"+p.join(",")+"}",t=u,d}}return qr=function(s,c,f){var l;if(t="",r="",typeof f=="number")for(l=0;l<f;l+=1)r+=" ";else typeof f=="string"&&(r=f);if(i=c,c&&typeof c!="function"&&(typeof c!="object"||typeof c.length!="number"))throw new Error("JSON.stringify");return o("",{"":s})},qr}var sa;function rc(){return sa||(sa=1,Qt.parse=ec(),Qt.stringify=tc()),Qt}var Hr,fa;function nc(){if(fa)return Hr;fa=1;var e={}.toString;return Hr=Array.isArray||function(t){return e.call(t)=="[object Array]"},Hr}var Kr,ca;function la(){if(ca)return Kr;ca=1;var e=Object.prototype.toString;return Kr=function(r){var n=e.call(r),i=n==="[object Arguments]";return i||(i=n!=="[object Array]"&&r!==null&&typeof r=="object"&&typeof r.length=="number"&&r.length>=0&&e.call(r.callee)==="[object Function]"),i},Kr}var Wr,ua;function ic(){if(ua)return Wr;ua=1;var e;if(!Object.keys){var t=Object.prototype.hasOwnProperty,r=Object.prototype.toString,n=la(),i=Object.prototype.propertyIsEnumerable,a=!i.call({toString:null},"toString"),o=i.call(function(){},"prototype"),s=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],c=function(h){var u=h.constructor;return u&&u.prototype===h},f={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if(typeof window>"u")return!1;for(var h in window)try{if(!f["$"+h]&&t.call(window,h)&&window[h]!==null&&typeof window[h]=="object")try{c(window[h])}catch{return!0}}catch{return!0}return!1}(),d=function(h){if(typeof window>"u"||!l)return c(h);try{return c(h)}catch{return!1}};e=function(u){var p=u!==null&&typeof u=="object",v=r.call(u)==="[object Function]",_=n(u),w=p&&r.call(u)==="[object String]",x=[];if(!p&&!v&&!_)throw new TypeError("Object.keys called on a non-object");var S=o&&v;if(w&&u.length>0&&!t.call(u,0))for(var g=0;g<u.length;++g)x.push(String(g));if(_&&u.length>0)for(var A=0;A<u.length;++A)x.push(String(A));else for(var T in u)!(S&&T==="prototype")&&t.call(u,T)&&x.push(String(T));if(a)for(var b=d(u),E=0;E<s.length;++E)!(b&&s[E]==="constructor")&&t.call(u,s[E])&&x.push(s[E]);return x}}return Wr=e,Wr}var Vr,ha;function ac(){if(ha)return Vr;ha=1;var e=Array.prototype.slice,t=la(),r=Object.keys,n=r?function(o){return r(o)}:ic(),i=Object.keys;return n.shim=function(){if(Object.keys){var o=function(){var s=Object.keys(arguments);return s&&s.length===arguments.length}(1,2);o||(Object.keys=function(c){return t(c)?i(e.call(c)):i(c)})}else Object.keys=n;return Object.keys||n},Vr=n,Vr}var Gr={exports:{}},Yr,da;function pa(){return da||(da=1,Yr=Object),Yr}var Jr,ya;function oc(){return ya||(ya=1,Jr=Error),Jr}var Xr,va;function sc(){return va||(va=1,Xr=EvalError),Xr}var Qr,ga;function fc(){return ga||(ga=1,Qr=RangeError),Qr}var en,_a;function cc(){return _a||(_a=1,en=ReferenceError),en}var tn,wa;function ba(){return wa||(wa=1,tn=SyntaxError),tn}var rn,ma;function er(){return ma||(ma=1,rn=TypeError),rn}var nn,Ea;function lc(){return Ea||(Ea=1,nn=URIError),nn}var an,xa;function uc(){return xa||(xa=1,an=Math.abs),an}var on,Sa;function hc(){return Sa||(Sa=1,on=Math.floor),on}var sn,Aa;function dc(){return Aa||(Aa=1,sn=Math.max),sn}var fn,ka;function pc(){return ka||(ka=1,fn=Math.min),fn}var cn,Ra;function yc(){return Ra||(Ra=1,cn=Math.pow),cn}var ln,Oa;function vc(){return Oa||(Oa=1,ln=Math.round),ln}var un,Ta;function gc(){return Ta||(Ta=1,un=Number.isNaN||function(t){return t!==t}),un}var hn,Pa;function _c(){if(Pa)return hn;Pa=1;var e=gc();return hn=function(r){return e(r)||r===0?r:r<0?-1:1},hn}var dn,Ia;function wc(){return Ia||(Ia=1,dn=Object.getOwnPropertyDescriptor),dn}var pn,Ca;function tr(){if(Ca)return pn;Ca=1;var e=wc();if(e)try{e([],"length")}catch{e=null}return pn=e,pn}var yn,Da;function rr(){if(Da)return yn;Da=1;var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch{e=!1}return yn=e,yn}var vn,Fa;function bc(){return Fa||(Fa=1,vn=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;t[r]=i;for(var a in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var o=Object.getOwnPropertySymbols(t);if(o.length!==1||o[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var s=Object.getOwnPropertyDescriptor(t,r);if(s.value!==i||s.enumerable!==!0)return!1}return!0}),vn}var gn,Ma;function mc(){if(Ma)return gn;Ma=1;var e=typeof Symbol<"u"&&Symbol,t=bc();return gn=function(){return typeof e!="function"||typeof Symbol!="function"||typeof e("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:t()},gn}var _n,La;function ja(){return La||(La=1,_n=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),_n}var wn,Na;function Ba(){if(Na)return wn;Na=1;var e=pa();return wn=e.getPrototypeOf||null,wn}var bn,Ua;function Ec(){if(Ua)return bn;Ua=1;var e="Function.prototype.bind called on incompatible ",t=Object.prototype.toString,r=Math.max,n="[object Function]",i=function(c,f){for(var l=[],d=0;d<c.length;d+=1)l[d]=c[d];for(var h=0;h<f.length;h+=1)l[h+c.length]=f[h];return l},a=function(c,f){for(var l=[],d=f,h=0;d<c.length;d+=1,h+=1)l[h]=c[d];return l},o=function(s,c){for(var f="",l=0;l<s.length;l+=1)f+=s[l],l+1<s.length&&(f+=c);return f};return bn=function(c){var f=this;if(typeof f!="function"||t.apply(f)!==n)throw new TypeError(e+f);for(var l=a(arguments,1),d,h=function(){if(this instanceof d){var w=f.apply(this,i(l,arguments));return Object(w)===w?w:this}return f.apply(c,i(l,arguments))},u=r(0,f.length-l.length),p=[],v=0;v<u;v++)p[v]="$"+v;if(d=Function("binder","return function ("+o(p,",")+"){ return binder.apply(this,arguments); }")(h),f.prototype){var _=function(){};_.prototype=f.prototype,d.prototype=new _,_.prototype=null}return d},bn}var mn,$a;function kt(){if($a)return mn;$a=1;var e=Ec();return mn=Function.prototype.bind||e,mn}var En,za;function xn(){return za||(za=1,En=Function.prototype.call),En}var Sn,Za;function An(){return Za||(Za=1,Sn=Function.prototype.apply),Sn}var kn,qa;function xc(){return qa||(qa=1,kn=typeof Reflect<"u"&&Reflect&&Reflect.apply),kn}var Rn,Ha;function Ka(){if(Ha)return Rn;Ha=1;var e=kt(),t=An(),r=xn(),n=xc();return Rn=n||e.call(r,t),Rn}var On,Wa;function Tn(){if(Wa)return On;Wa=1;var e=kt(),t=er(),r=xn(),n=Ka();return On=function(a){if(a.length<1||typeof a[0]!="function")throw new t("a function is required");return n(e,r,a)},On}var Pn,Va;function Sc(){if(Va)return Pn;Va=1;var e=Tn(),t=tr(),r;try{r=[].__proto__===Array.prototype}catch(o){if(!o||typeof o!="object"||!("code"in o)||o.code!=="ERR_PROTO_ACCESS")throw o}var n=!!r&&t&&t(Object.prototype,"__proto__"),i=Object,a=i.getPrototypeOf;return Pn=n&&typeof n.get=="function"?e([n.get]):typeof a=="function"?function(s){return a(s==null?s:i(s))}:!1,Pn}var In,Ga;function Ac(){if(Ga)return In;Ga=1;var e=ja(),t=Ba(),r=Sc();return In=e?function(i){return e(i)}:t?function(i){if(!i||typeof i!="object"&&typeof i!="function")throw new TypeError("getProto: not an object");return t(i)}:r?function(i){return r(i)}:null,In}var Cn,Ya;function kc(){if(Ya)return Cn;Ya=1;var e=Function.prototype.call,t=Object.prototype.hasOwnProperty,r=kt();return Cn=r.call(e,t),Cn}var Dn,Ja;function Xa(){if(Ja)return Dn;Ja=1;var e,t=pa(),r=oc(),n=sc(),i=fc(),a=cc(),o=ba(),s=er(),c=lc(),f=uc(),l=hc(),d=dc(),h=pc(),u=yc(),p=vc(),v=_c(),_=Function,w=function(ge){try{return _('"use strict"; return ('+ge+").constructor;")()}catch{}},x=tr(),S=rr(),g=function(){throw new s},A=x?function(){try{return arguments.callee,g}catch{try{return x(arguments,"callee").get}catch{return g}}}():g,T=mc()(),b=Ac(),E=Ba(),O=ja(),k=An(),F=xn(),K={},G=typeof Uint8Array>"u"||!b?e:b(Uint8Array),oe={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?e:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?e:ArrayBuffer,"%ArrayIteratorPrototype%":T&&b?b([][Symbol.iterator]()):e,"%AsyncFromSyncIteratorPrototype%":e,"%AsyncFunction%":K,"%AsyncGenerator%":K,"%AsyncGeneratorFunction%":K,"%AsyncIteratorPrototype%":K,"%Atomics%":typeof Atomics>"u"?e:Atomics,"%BigInt%":typeof BigInt>"u"?e:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?e:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?e:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?e:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":r,"%eval%":eval,"%EvalError%":n,"%Float16Array%":typeof Float16Array>"u"?e:Float16Array,"%Float32Array%":typeof Float32Array>"u"?e:Float32Array,"%Float64Array%":typeof Float64Array>"u"?e:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?e:FinalizationRegistry,"%Function%":_,"%GeneratorFunction%":K,"%Int8Array%":typeof Int8Array>"u"?e:Int8Array,"%Int16Array%":typeof Int16Array>"u"?e:Int16Array,"%Int32Array%":typeof Int32Array>"u"?e:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":T&&b?b(b([][Symbol.iterator]())):e,"%JSON%":typeof JSON=="object"?JSON:e,"%Map%":typeof Map>"u"?e:Map,"%MapIteratorPrototype%":typeof Map>"u"||!T||!b?e:b(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":t,"%Object.getOwnPropertyDescriptor%":x,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?e:Promise,"%Proxy%":typeof Proxy>"u"?e:Proxy,"%RangeError%":i,"%ReferenceError%":a,"%Reflect%":typeof Reflect>"u"?e:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?e:Set,"%SetIteratorPrototype%":typeof Set>"u"||!T||!b?e:b(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?e:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":T&&b?b(""[Symbol.iterator]()):e,"%Symbol%":T?Symbol:e,"%SyntaxError%":o,"%ThrowTypeError%":A,"%TypedArray%":G,"%TypeError%":s,"%Uint8Array%":typeof Uint8Array>"u"?e:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?e:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?e:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?e:Uint32Array,"%URIError%":c,"%WeakMap%":typeof WeakMap>"u"?e:WeakMap,"%WeakRef%":typeof WeakRef>"u"?e:WeakRef,"%WeakSet%":typeof WeakSet>"u"?e:WeakSet,"%Function.prototype.call%":F,"%Function.prototype.apply%":k,"%Object.defineProperty%":S,"%Object.getPrototypeOf%":E,"%Math.abs%":f,"%Math.floor%":l,"%Math.max%":d,"%Math.min%":h,"%Math.pow%":u,"%Math.round%":p,"%Math.sign%":v,"%Reflect.getPrototypeOf%":O};if(b)try{null.error}catch(ge){var st=b(b(ge));oe["%Error.prototype%"]=st}var Q=function ge(B){var V;if(B==="%AsyncFunction%")V=w("async function () {}");else if(B==="%GeneratorFunction%")V=w("function* () {}");else if(B==="%AsyncGeneratorFunction%")V=w("async function* () {}");else if(B==="%AsyncGenerator%"){var U=ge("%AsyncGeneratorFunction%");U&&(V=U.prototype)}else if(B==="%AsyncIteratorPrototype%"){var Y=ge("%AsyncGenerator%");Y&&b&&(V=b(Y.prototype))}return oe[B]=V,V},ve={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},ft=kt(),ct=kc(),Vt=ft.call(F,Array.prototype.concat),up=ft.call(k,Array.prototype.splice),Cf=ft.call(F,String.prototype.replace),Ir=ft.call(F,String.prototype.slice),hp=ft.call(F,RegExp.prototype.exec),dp=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,pp=/\\(\\)?/g,yp=function(B){var V=Ir(B,0,1),U=Ir(B,-1);if(V==="%"&&U!=="%")throw new o("invalid intrinsic syntax, expected closing `%`");if(U==="%"&&V!=="%")throw new o("invalid intrinsic syntax, expected opening `%`");var Y=[];return Cf(B,dp,function(_e,St,ee,Cr){Y[Y.length]=ee?Cf(Cr,pp,"$1"):St||_e}),Y},vp=function(B,V){var U=B,Y;if(ct(ve,U)&&(Y=ve[U],U="%"+Y[0]+"%"),ct(oe,U)){var _e=oe[U];if(_e===K&&(_e=Q(U)),typeof _e>"u"&&!V)throw new s("intrinsic "+B+" exists, but is not available. Please file an issue!");return{alias:Y,name:U,value:_e}}throw new o("intrinsic "+B+" does not exist!")};return Dn=function(B,V){if(typeof B!="string"||B.length===0)throw new s("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof V!="boolean")throw new s('"allowMissing" argument must be a boolean');if(hp(/^%?[^%]*%?$/,B)===null)throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var U=yp(B),Y=U.length>0?U[0]:"",_e=vp("%"+Y+"%",V),St=_e.name,ee=_e.value,Cr=!1,Li=_e.alias;Li&&(Y=Li[0],up(U,Vt([0,1],Li)));for(var Dr=1,Gt=!0;Dr<U.length;Dr+=1){var Oe=U[Dr],Fr=Ir(Oe,0,1),Mr=Ir(Oe,-1);if((Fr==='"'||Fr==="'"||Fr==="`"||Mr==='"'||Mr==="'"||Mr==="`")&&Fr!==Mr)throw new o("property names with quotes must have matching quotes");if((Oe==="constructor"||!Gt)&&(Cr=!0),Y+="."+Oe,St="%"+Y+"%",ct(oe,St))ee=oe[St];else if(ee!=null){if(!(Oe in ee)){if(!V)throw new s("base intrinsic for "+B+" exists, but the property is not available.");return}if(x&&Dr+1>=U.length){var Lr=x(ee,Oe);Gt=!!Lr,Gt&&"get"in Lr&&!("originalValue"in Lr.get)?ee=Lr.get:ee=ee[Oe]}else Gt=ct(ee,Oe),ee=ee[Oe];Gt&&!Cr&&(oe[St]=ee)}}return ee},Dn}var Fn,Qa;function Rc(){if(Qa)return Fn;Qa=1;var e=rr(),t=ba(),r=er(),n=tr();return Fn=function(a,o,s){if(!a||typeof a!="object"&&typeof a!="function")throw new r("`obj` must be an object or a function`");if(typeof o!="string"&&typeof o!="symbol")throw new r("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new r("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new r("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new r("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new r("`loose`, if provided, must be a boolean");var c=arguments.length>3?arguments[3]:null,f=arguments.length>4?arguments[4]:null,l=arguments.length>5?arguments[5]:null,d=arguments.length>6?arguments[6]:!1,h=!!n&&n(a,o);if(e)e(a,o,{configurable:l===null&&h?h.configurable:!l,enumerable:c===null&&h?h.enumerable:!c,value:s,writable:f===null&&h?h.writable:!f});else if(d||!c&&!f&&!l)a[o]=s;else throw new t("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Fn}var Mn,eo;function Oc(){if(eo)return Mn;eo=1;var e=rr(),t=function(){return!!e};return t.hasArrayLengthDefineBug=function(){if(!e)return null;try{return e([],"length",{value:1}).length!==1}catch{return!0}},Mn=t,Mn}var Ln,to;function Tc(){if(to)return Ln;to=1;var e=Xa(),t=Rc(),r=Oc()(),n=tr(),i=er(),a=e("%Math.floor%");return Ln=function(s,c){if(typeof s!="function")throw new i("`fn` is not a function");if(typeof c!="number"||c<0||c>4294967295||a(c)!==c)throw new i("`length` must be a positive 32-bit integer");var f=arguments.length>2&&!!arguments[2],l=!0,d=!0;if("length"in s&&n){var h=n(s,"length");h&&!h.configurable&&(l=!1),h&&!h.writable&&(d=!1)}return(l||d||!f)&&(r?t(s,"length",c,!0,!0):t(s,"length",c)),s},Ln}var jn,ro;function Pc(){if(ro)return jn;ro=1;var e=kt(),t=An(),r=Ka();return jn=function(){return r(e,t,arguments)},jn}var no;function Ic(){return no||(no=1,function(e){var t=Tc(),r=rr(),n=Tn(),i=Pc();e.exports=function(o){var s=n(arguments),c=o.length-(arguments.length-1);return t(s,1+(c>0?c:0),!0)},r?r(e.exports,"apply",{value:i}):e.exports.apply=i}(Gr)),Gr.exports}var Nn,io;function Cc(){if(io)return Nn;io=1;var e=Xa(),t=Tn(),r=t([e("%String.prototype.indexOf%")]);return Nn=function(i,a){var o=e(i,!!a);return typeof o=="function"&&r(i,".prototype.")>-1?t([o]):o},Nn}var Bn,ao;function Dc(){if(ao)return Bn;ao=1;var e=(typeof JSON<"u"?JSON:rc()).stringify,t=nc(),r=ac(),n=Ic(),i=Cc(),a=i("Array.prototype.join"),o=i("Array.prototype.indexOf"),s=i("Array.prototype.splice"),c=i("Array.prototype.sort"),f=function(h,u){for(var p="",v=0;v<h;v+=1)p+=u;return p},l=function(d,h,u){return u};return Bn=function(h){var u=arguments.length>1?arguments[1]:void 0,p=u&&u.space||"";typeof p=="number"&&(p=f(p," "));var v=!!u&&typeof u.cycles=="boolean"&&u.cycles,_=u&&u.replacer?n(u.replacer):l;if(u&&typeof u.collapseEmpty<"u"&&typeof u.collapseEmpty!="boolean")throw new TypeError("`collapseEmpty` must be a boolean, if provided");var w=!!u&&u.collapseEmpty,x=typeof u=="function"?u:u&&u.cmp,S=x&&function(A){var T=x.length>2&&function(E){return A[E]};return function(b,E){return x({key:b,value:A[b]},{key:E,value:A[E]},T?{__proto__:null,get:T}:void 0)}},g=[];return function A(T,b,E,O){var k=p?`
15
- `+f(O,p):"",F=p?": ":":";if(E&&E.toJSON&&typeof E.toJSON=="function"&&(E=E.toJSON()),E=_(T,b,E),E!==void 0){if(typeof E!="object"||E===null)return e(E);var K=function(ct,Vt){return w&&ct.length===0?Vt:(Vt==="[]"?"[":"{")+a(ct,",")+k+(Vt==="[]"?"]":"}")};if(t(E)){for(var Q=[],G=0;G<E.length;G++){var oe=A(E,G,E[G],O+1)||e(null);Q[Q.length]=k+p+oe}return K(Q,"[]")}if(o(g,E)!==-1){if(v)return e("__cycle__");throw new TypeError("Converting circular structure to JSON")}else g[g.length]=E;for(var st=c(r(E),S&&S(E)),Q=[],G=0;G<st.length;G++){var b=st[G],ve=A(E,b,E[b],O+1);if(ve){var ft=e(b)+F+ve;Q[Q.length]=k+p+ft}}return s(g,o(g,E),1),K(Q,"{}")}}({"":h},"",h,0)},Bn}var Fc=Dc(),oo=Qf(Fc);async function Un(e,t,r){if(!this.passphrase)return t.push({actual:e,type:"encryptionKeyMissing"}),e;try{return await zr(String(e),this.passphrase)}catch(n){t.push({actual:e,type:"encryptionProblem",error:n})}return e}class so extends Df{constructor({options:t,passphrase:r,autoEncrypt:n=!0}={}){super(L.merge({},{useNewCustomCheckerFunction:!0,messages:{encryptionKeyMissing:"Missing configuration for secrets encryption.",encryptionProblem:"Problem encrypting secret. Actual: {actual}. Error: {error}"},defaults:{string:{trim:!0},object:{strict:"remove"}}},t)),this.passphrase=r,this.autoEncrypt=n,this.alias("secret",{type:"string",custom:this.autoEncrypt?Un:void 0,messages:{string:"The '{field}' field must be a string.",stringMin:"This secret '{field}' field length must be at least {expected} long."}}),this.alias("secretAny",{type:"any",custom:this.autoEncrypt?Un:void 0}),this.alias("secretNumber",{type:"number",custom:this.autoEncrypt?Un:void 0})}}const fo=new Proxy(so,{instance:null,construct(e,t){return this.instance||(this.instance=new e(...t)),this.instance}}),co={trim:e=>e.trim(),encrypt:(e,{passphrase:t})=>zr(e,t),decrypt:(e,{passphrase:t})=>na(e,t),toString:e=>String(e),fromArray:(e,{separator:t})=>e==null||!Array.isArray(e)?e:e.length===0?"[]":e.map(n=>typeof n=="string"?n.replace(/\\/g,"\\\\").replace(new RegExp(`\\${t}`,"g"),`\\${t}`):String(n)).join(t),toArray:(e,{separator:t})=>{if(e==null)return e;if(e==="[]")return[];if(e==="")return[];const r=[];let n="",i=0;const a=String(e);for(;i<a.length;)a[i]==="\\"&&i+1<a.length?a[i+1]===t?(n+=t,i+=2):a[i+1]==="\\"?(n+="\\",i+=2):(n+=a[i],i++):a[i]===t?(r.push(n),n="",i++):(n+=a[i],i++);return r.push(n),r},toJSON:e=>JSON.stringify(e),fromJSON:e=>JSON.parse(e),toNumber:e=>L.isString(e)?e.includes(".")?parseFloat(e):parseInt(e):e,toBool:e=>[!0,1,"true","1","yes","y"].includes(e),fromBool:e=>[!0,1,"true","1","yes","y"].includes(e)?"1":"0"};class nr{constructor(t){const{map:r,name:n,attributes:i,passphrase:a,version:o=1,options:s={}}=t;this.name=n,this.version=o,this.attributes=i||{},this.passphrase=a??"secret",this.options=L.merge({},this.defaultOptions(),s);const c=this.preprocessAttributesForValidation(this.attributes);if(this.validator=new fo({autoEncrypt:!1}).compile(L.merge({$$async:!0},c)),this.options.generateAutoHooks&&this.generateAutoHooks(),!L.isEmpty(r))this.map=r,this.reversedMap=L.invert(r);else{const f=Yt.flatten(this.attributes,{safe:!0}),l=Object.keys(f).filter(u=>!u.includes("$$")),d=this.extractObjectKeys(this.attributes),h=[...new Set([...l,...d])];this.reversedMap={...h},this.map=L.invert(this.reversedMap)}}defaultOptions(){return{autoEncrypt:!0,autoDecrypt:!0,arraySeparator:"|",generateAutoHooks:!0,hooks:{beforeMap:{},afterMap:{},beforeUnmap:{},afterUnmap:{}}}}addHook(t,r,n){this.options.hooks[t][r]||(this.options.hooks[t][r]=[]),this.options.hooks[t][r]=L.uniq([...this.options.hooks[t][r],n])}extractObjectKeys(t,r=""){const n=[];for(const[i,a]of Object.entries(t)){if(i.startsWith("$$"))continue;const o=r?`${r}.${i}`:i;typeof a=="object"&&a!==null&&!Array.isArray(a)&&(n.push(o),a.$$type==="object"&&n.push(...this.extractObjectKeys(a,o)))}return n}generateAutoHooks(){const t=Yt.flatten(L.cloneDeep(this.attributes),{safe:!0});for(const[r,n]of Object.entries(t))n.includes("array")?(this.addHook("beforeMap",r,"fromArray"),this.addHook("afterUnmap",r,"toArray")):(n.includes("secret")&&(this.options.autoEncrypt&&this.addHook("beforeMap",r,"encrypt"),this.options.autoDecrypt&&this.addHook("afterUnmap",r,"decrypt")),n.includes("number")&&(this.addHook("beforeMap",r,"toString"),this.addHook("afterUnmap",r,"toNumber")),n.includes("boolean")&&(this.addHook("beforeMap",r,"fromBool"),this.addHook("afterUnmap",r,"toBool")))}static import(t){let{map:r,name:n,options:i,version:a,attributes:o}=L.isString(t)?JSON.parse(t):t;return new nr({map:r,name:n,options:i,version:a,attributes:o})}export(){const t={version:this.version,name:this.name,options:this.options,attributes:L.cloneDeep(this.attributes),map:this.map};for(const[r,n]of Object.entries(this.attributes))typeof n!="string"?t.attributes[r]=JSON.stringify(n):t.attributes[r]=n;return t}async applyHooksActions(t,r){for(const[n,i]of Object.entries(this.options.hooks[r]))for(const a of i){const o=L.get(t,n);o!==void 0&&typeof co[a]=="function"&&L.set(t,n,await co[a](o,{passphrase:this.passphrase,separator:this.options.arraySeparator}))}}async validate(t,{mutateOriginal:r=!1}={}){let n=r?t:L.cloneDeep(t);return await this.validator(n)}async mapper(t){const r=Yt.flatten(L.cloneDeep(t),{safe:!0});await this.applyHooksActions(r,"beforeMap");const n={_v:this.version+""};for(const[i,a]of Object.entries(r))n[this.map[i]]=a;return await this.applyHooksActions(n,"afterMap"),n}async unmapper(t){const r=L.cloneDeep(t);delete r._v,await this.applyHooksActions(r,"beforeUnmap");const n={};for(const[i,a]of Object.entries(r))n[this.reversedMap[i]]=a;return await this.applyHooksActions(n,"afterUnmap"),Yt.unflatten(n)}preprocessAttributesForValidation(t){const r={};for(const[n,i]of Object.entries(t))typeof i=="object"&&i!==null&&!Array.isArray(i)?r[n]={type:"object",properties:this.preprocessAttributesForValidation(i),strict:!1}:r[n]=i;return r}}var ut=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{},he=[],ne=[],Mc=typeof Uint8Array<"u"?Uint8Array:Array,$n=!1;function lo(){$n=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t<r;++t)he[t]=e[t],ne[e.charCodeAt(t)]=t;ne[45]=62,ne[95]=63}function Lc(e){$n||lo();var t,r,n,i,a,o,s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a=e[s-2]==="="?2:e[s-1]==="="?1:0,o=new Mc(s*3/4-a),n=a>0?s-4:s;var c=0;for(t=0,r=0;t<n;t+=4,r+=3)i=ne[e.charCodeAt(t)]<<18|ne[e.charCodeAt(t+1)]<<12|ne[e.charCodeAt(t+2)]<<6|ne[e.charCodeAt(t+3)],o[c++]=i>>16&255,o[c++]=i>>8&255,o[c++]=i&255;return a===2?(i=ne[e.charCodeAt(t)]<<2|ne[e.charCodeAt(t+1)]>>4,o[c++]=i&255):a===1&&(i=ne[e.charCodeAt(t)]<<10|ne[e.charCodeAt(t+1)]<<4|ne[e.charCodeAt(t+2)]>>2,o[c++]=i>>8&255,o[c++]=i&255),o}function jc(e){return he[e>>18&63]+he[e>>12&63]+he[e>>6&63]+he[e&63]}function Nc(e,t,r){for(var n,i=[],a=t;a<r;a+=3)n=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(jc(n));return i.join("")}function uo(e){$n||lo();for(var t,r=e.length,n=r%3,i="",a=[],o=16383,s=0,c=r-n;s<c;s+=o)a.push(Nc(e,s,s+o>c?c:s+o));return n===1?(t=e[r-1],i+=he[t>>2],i+=he[t<<4&63],i+="=="):n===2&&(t=(e[r-2]<<8)+e[r-1],i+=he[t>>10],i+=he[t>>4&63],i+=he[t<<2&63],i+="="),a.push(i),a.join("")}function ir(e,t,r,n,i){var a,o,s=i*8-n-1,c=(1<<s)-1,f=c>>1,l=-7,d=r?i-1:0,h=r?-1:1,u=e[t+d];for(d+=h,a=u&(1<<-l)-1,u>>=-l,l+=s;l>0;a=a*256+e[t+d],d+=h,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=n;l>0;o=o*256+e[t+d],d+=h,l-=8);if(a===0)a=1-f;else{if(a===c)return o?NaN:(u?-1:1)*(1/0);o=o+Math.pow(2,n),a=a-f}return(u?-1:1)*o*Math.pow(2,a-n)}function ho(e,t,r,n,i,a){var o,s,c,f=a*8-i-1,l=(1<<f)-1,d=l>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,u=n?0:a-1,p=n?1:-1,v=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+d>=1?t+=h/c:t+=h*Math.pow(2,1-d),t*c>=2&&(o++,c/=2),o+d>=l?(s=0,o=l):o+d>=1?(s=(t*c-1)*Math.pow(2,i),o=o+d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[r+u]=s&255,u+=p,s/=256,i-=8);for(o=o<<i|s,f+=i;f>0;e[r+u]=o&255,u+=p,o/=256,f-=8);e[r+u-p]|=v*128}var Bc={}.toString,po=Array.isArray||function(e){return Bc.call(e)=="[object Array]"};/*!
14
+ `+u+"}":"{"+p.join(",")+"}",t=u,d}}return qr=function(s,c,f){var l;if(t="",r="",typeof f=="number")for(l=0;l<f;l+=1)r+=" ";else typeof f=="string"&&(r=f);if(i=c,c&&typeof c!="function"&&(typeof c!="object"||typeof c.length!="number"))throw new Error("JSON.stringify");return o("",{"":s})},qr}var sa;function rc(){return sa||(sa=1,er.parse=ec(),er.stringify=tc()),er}var Hr,fa;function nc(){if(fa)return Hr;fa=1;var e={}.toString;return Hr=Array.isArray||function(t){return e.call(t)=="[object Array]"},Hr}var Kr,ca;function la(){if(ca)return Kr;ca=1;var e=Object.prototype.toString;return Kr=function(r){var n=e.call(r),i=n==="[object Arguments]";return i||(i=n!=="[object Array]"&&r!==null&&typeof r=="object"&&typeof r.length=="number"&&r.length>=0&&e.call(r.callee)==="[object Function]"),i},Kr}var Wr,ua;function ic(){if(ua)return Wr;ua=1;var e;if(!Object.keys){var t=Object.prototype.hasOwnProperty,r=Object.prototype.toString,n=la(),i=Object.prototype.propertyIsEnumerable,a=!i.call({toString:null},"toString"),o=i.call(function(){},"prototype"),s=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],c=function(h){var u=h.constructor;return u&&u.prototype===h},f={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if(typeof window>"u")return!1;for(var h in window)try{if(!f["$"+h]&&t.call(window,h)&&window[h]!==null&&typeof window[h]=="object")try{c(window[h])}catch{return!0}}catch{return!0}return!1}(),d=function(h){if(typeof window>"u"||!l)return c(h);try{return c(h)}catch{return!1}};e=function(u){var p=u!==null&&typeof u=="object",v=r.call(u)==="[object Function]",_=n(u),w=p&&r.call(u)==="[object String]",x=[];if(!p&&!v&&!_)throw new TypeError("Object.keys called on a non-object");var S=o&&v;if(w&&u.length>0&&!t.call(u,0))for(var g=0;g<u.length;++g)x.push(String(g));if(_&&u.length>0)for(var A=0;A<u.length;++A)x.push(String(A));else for(var T in u)!(S&&T==="prototype")&&t.call(u,T)&&x.push(String(T));if(a)for(var b=d(u),E=0;E<s.length;++E)!(b&&s[E]==="constructor")&&t.call(u,s[E])&&x.push(s[E]);return x}}return Wr=e,Wr}var Vr,ha;function ac(){if(ha)return Vr;ha=1;var e=Array.prototype.slice,t=la(),r=Object.keys,n=r?function(o){return r(o)}:ic(),i=Object.keys;return n.shim=function(){if(Object.keys){var o=function(){var s=Object.keys(arguments);return s&&s.length===arguments.length}(1,2);o||(Object.keys=function(c){return t(c)?i(e.call(c)):i(c)})}else Object.keys=n;return Object.keys||n},Vr=n,Vr}var Gr={exports:{}},Yr,da;function pa(){return da||(da=1,Yr=Object),Yr}var Jr,ya;function oc(){return ya||(ya=1,Jr=Error),Jr}var Xr,va;function sc(){return va||(va=1,Xr=EvalError),Xr}var Qr,ga;function fc(){return ga||(ga=1,Qr=RangeError),Qr}var en,_a;function cc(){return _a||(_a=1,en=ReferenceError),en}var tn,wa;function ba(){return wa||(wa=1,tn=SyntaxError),tn}var rn,ma;function tr(){return ma||(ma=1,rn=TypeError),rn}var nn,Ea;function lc(){return Ea||(Ea=1,nn=URIError),nn}var an,xa;function uc(){return xa||(xa=1,an=Math.abs),an}var on,Sa;function hc(){return Sa||(Sa=1,on=Math.floor),on}var sn,Aa;function dc(){return Aa||(Aa=1,sn=Math.max),sn}var fn,ka;function pc(){return ka||(ka=1,fn=Math.min),fn}var cn,Ra;function yc(){return Ra||(Ra=1,cn=Math.pow),cn}var ln,Oa;function vc(){return Oa||(Oa=1,ln=Math.round),ln}var un,Ta;function gc(){return Ta||(Ta=1,un=Number.isNaN||function(t){return t!==t}),un}var hn,Pa;function _c(){if(Pa)return hn;Pa=1;var e=gc();return hn=function(r){return e(r)||r===0?r:r<0?-1:1},hn}var dn,Ia;function wc(){return Ia||(Ia=1,dn=Object.getOwnPropertyDescriptor),dn}var pn,Ca;function rr(){if(Ca)return pn;Ca=1;var e=wc();if(e)try{e([],"length")}catch{e=null}return pn=e,pn}var yn,Da;function nr(){if(Da)return yn;Da=1;var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch{e=!1}return yn=e,yn}var vn,Fa;function bc(){return Fa||(Fa=1,vn=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;t[r]=i;for(var a in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var o=Object.getOwnPropertySymbols(t);if(o.length!==1||o[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var s=Object.getOwnPropertyDescriptor(t,r);if(s.value!==i||s.enumerable!==!0)return!1}return!0}),vn}var gn,Ma;function mc(){if(Ma)return gn;Ma=1;var e=typeof Symbol<"u"&&Symbol,t=bc();return gn=function(){return typeof e!="function"||typeof Symbol!="function"||typeof e("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:t()},gn}var _n,ja;function La(){return ja||(ja=1,_n=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),_n}var wn,Na;function Ba(){if(Na)return wn;Na=1;var e=pa();return wn=e.getPrototypeOf||null,wn}var bn,Ua;function Ec(){if(Ua)return bn;Ua=1;var e="Function.prototype.bind called on incompatible ",t=Object.prototype.toString,r=Math.max,n="[object Function]",i=function(c,f){for(var l=[],d=0;d<c.length;d+=1)l[d]=c[d];for(var h=0;h<f.length;h+=1)l[h+c.length]=f[h];return l},a=function(c,f){for(var l=[],d=f,h=0;d<c.length;d+=1,h+=1)l[h]=c[d];return l},o=function(s,c){for(var f="",l=0;l<s.length;l+=1)f+=s[l],l+1<s.length&&(f+=c);return f};return bn=function(c){var f=this;if(typeof f!="function"||t.apply(f)!==n)throw new TypeError(e+f);for(var l=a(arguments,1),d,h=function(){if(this instanceof d){var w=f.apply(this,i(l,arguments));return Object(w)===w?w:this}return f.apply(c,i(l,arguments))},u=r(0,f.length-l.length),p=[],v=0;v<u;v++)p[v]="$"+v;if(d=Function("binder","return function ("+o(p,",")+"){ return binder.apply(this,arguments); }")(h),f.prototype){var _=function(){};_.prototype=f.prototype,d.prototype=new _,_.prototype=null}return d},bn}var mn,$a;function Rt(){if($a)return mn;$a=1;var e=Ec();return mn=Function.prototype.bind||e,mn}var En,za;function xn(){return za||(za=1,En=Function.prototype.call),En}var Sn,Za;function An(){return Za||(Za=1,Sn=Function.prototype.apply),Sn}var kn,qa;function xc(){return qa||(qa=1,kn=typeof Reflect<"u"&&Reflect&&Reflect.apply),kn}var Rn,Ha;function Ka(){if(Ha)return Rn;Ha=1;var e=Rt(),t=An(),r=xn(),n=xc();return Rn=n||e.call(r,t),Rn}var On,Wa;function Tn(){if(Wa)return On;Wa=1;var e=Rt(),t=tr(),r=xn(),n=Ka();return On=function(a){if(a.length<1||typeof a[0]!="function")throw new t("a function is required");return n(e,r,a)},On}var Pn,Va;function Sc(){if(Va)return Pn;Va=1;var e=Tn(),t=rr(),r;try{r=[].__proto__===Array.prototype}catch(o){if(!o||typeof o!="object"||!("code"in o)||o.code!=="ERR_PROTO_ACCESS")throw o}var n=!!r&&t&&t(Object.prototype,"__proto__"),i=Object,a=i.getPrototypeOf;return Pn=n&&typeof n.get=="function"?e([n.get]):typeof a=="function"?function(s){return a(s==null?s:i(s))}:!1,Pn}var In,Ga;function Ac(){if(Ga)return In;Ga=1;var e=La(),t=Ba(),r=Sc();return In=e?function(i){return e(i)}:t?function(i){if(!i||typeof i!="object"&&typeof i!="function")throw new TypeError("getProto: not an object");return t(i)}:r?function(i){return r(i)}:null,In}var Cn,Ya;function kc(){if(Ya)return Cn;Ya=1;var e=Function.prototype.call,t=Object.prototype.hasOwnProperty,r=Rt();return Cn=r.call(e,t),Cn}var Dn,Ja;function Xa(){if(Ja)return Dn;Ja=1;var e,t=pa(),r=oc(),n=sc(),i=fc(),a=cc(),o=ba(),s=tr(),c=lc(),f=uc(),l=hc(),d=dc(),h=pc(),u=yc(),p=vc(),v=_c(),_=Function,w=function(ge){try{return _('"use strict"; return ('+ge+").constructor;")()}catch{}},x=rr(),S=nr(),g=function(){throw new s},A=x?function(){try{return arguments.callee,g}catch{try{return x(arguments,"callee").get}catch{return g}}}():g,T=mc()(),b=Ac(),E=Ba(),O=La(),k=An(),F=xn(),K={},G=typeof Uint8Array>"u"||!b?e:b(Uint8Array),oe={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?e:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?e:ArrayBuffer,"%ArrayIteratorPrototype%":T&&b?b([][Symbol.iterator]()):e,"%AsyncFromSyncIteratorPrototype%":e,"%AsyncFunction%":K,"%AsyncGenerator%":K,"%AsyncGeneratorFunction%":K,"%AsyncIteratorPrototype%":K,"%Atomics%":typeof Atomics>"u"?e:Atomics,"%BigInt%":typeof BigInt>"u"?e:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?e:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?e:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?e:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":r,"%eval%":eval,"%EvalError%":n,"%Float16Array%":typeof Float16Array>"u"?e:Float16Array,"%Float32Array%":typeof Float32Array>"u"?e:Float32Array,"%Float64Array%":typeof Float64Array>"u"?e:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?e:FinalizationRegistry,"%Function%":_,"%GeneratorFunction%":K,"%Int8Array%":typeof Int8Array>"u"?e:Int8Array,"%Int16Array%":typeof Int16Array>"u"?e:Int16Array,"%Int32Array%":typeof Int32Array>"u"?e:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":T&&b?b(b([][Symbol.iterator]())):e,"%JSON%":typeof JSON=="object"?JSON:e,"%Map%":typeof Map>"u"?e:Map,"%MapIteratorPrototype%":typeof Map>"u"||!T||!b?e:b(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":t,"%Object.getOwnPropertyDescriptor%":x,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?e:Promise,"%Proxy%":typeof Proxy>"u"?e:Proxy,"%RangeError%":i,"%ReferenceError%":a,"%Reflect%":typeof Reflect>"u"?e:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?e:Set,"%SetIteratorPrototype%":typeof Set>"u"||!T||!b?e:b(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?e:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":T&&b?b(""[Symbol.iterator]()):e,"%Symbol%":T?Symbol:e,"%SyntaxError%":o,"%ThrowTypeError%":A,"%TypedArray%":G,"%TypeError%":s,"%Uint8Array%":typeof Uint8Array>"u"?e:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?e:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?e:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?e:Uint32Array,"%URIError%":c,"%WeakMap%":typeof WeakMap>"u"?e:WeakMap,"%WeakRef%":typeof WeakRef>"u"?e:WeakRef,"%WeakSet%":typeof WeakSet>"u"?e:WeakSet,"%Function.prototype.call%":F,"%Function.prototype.apply%":k,"%Object.defineProperty%":S,"%Object.getPrototypeOf%":E,"%Math.abs%":f,"%Math.floor%":l,"%Math.max%":d,"%Math.min%":h,"%Math.pow%":u,"%Math.round%":p,"%Math.sign%":v,"%Reflect.getPrototypeOf%":O};if(b)try{null.error}catch(ge){var ft=b(b(ge));oe["%Error.prototype%"]=ft}var Q=function ge(B){var V;if(B==="%AsyncFunction%")V=w("async function () {}");else if(B==="%GeneratorFunction%")V=w("function* () {}");else if(B==="%AsyncGeneratorFunction%")V=w("async function* () {}");else if(B==="%AsyncGenerator%"){var U=ge("%AsyncGeneratorFunction%");U&&(V=U.prototype)}else if(B==="%AsyncIteratorPrototype%"){var Y=ge("%AsyncGenerator%");Y&&b&&(V=b(Y.prototype))}return oe[B]=V,V},ve={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},ct=Rt(),lt=kc(),Gt=ct.call(F,Array.prototype.concat),up=ct.call(k,Array.prototype.splice),Cf=ct.call(F,String.prototype.replace),Ir=ct.call(F,String.prototype.slice),hp=ct.call(F,RegExp.prototype.exec),dp=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,pp=/\\(\\)?/g,yp=function(B){var V=Ir(B,0,1),U=Ir(B,-1);if(V==="%"&&U!=="%")throw new o("invalid intrinsic syntax, expected closing `%`");if(U==="%"&&V!=="%")throw new o("invalid intrinsic syntax, expected opening `%`");var Y=[];return Cf(B,dp,function(_e,At,ee,Cr){Y[Y.length]=ee?Cf(Cr,pp,"$1"):At||_e}),Y},vp=function(B,V){var U=B,Y;if(lt(ve,U)&&(Y=ve[U],U="%"+Y[0]+"%"),lt(oe,U)){var _e=oe[U];if(_e===K&&(_e=Q(U)),typeof _e>"u"&&!V)throw new s("intrinsic "+B+" exists, but is not available. Please file an issue!");return{alias:Y,name:U,value:_e}}throw new o("intrinsic "+B+" does not exist!")};return Dn=function(B,V){if(typeof B!="string"||B.length===0)throw new s("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof V!="boolean")throw new s('"allowMissing" argument must be a boolean');if(hp(/^%?[^%]*%?$/,B)===null)throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var U=yp(B),Y=U.length>0?U[0]:"",_e=vp("%"+Y+"%",V),At=_e.name,ee=_e.value,Cr=!1,ji=_e.alias;ji&&(Y=ji[0],up(U,Gt([0,1],ji)));for(var Dr=1,Yt=!0;Dr<U.length;Dr+=1){var Oe=U[Dr],Fr=Ir(Oe,0,1),Mr=Ir(Oe,-1);if((Fr==='"'||Fr==="'"||Fr==="`"||Mr==='"'||Mr==="'"||Mr==="`")&&Fr!==Mr)throw new o("property names with quotes must have matching quotes");if((Oe==="constructor"||!Yt)&&(Cr=!0),Y+="."+Oe,At="%"+Y+"%",lt(oe,At))ee=oe[At];else if(ee!=null){if(!(Oe in ee)){if(!V)throw new s("base intrinsic for "+B+" exists, but the property is not available.");return}if(x&&Dr+1>=U.length){var jr=x(ee,Oe);Yt=!!jr,Yt&&"get"in jr&&!("originalValue"in jr.get)?ee=jr.get:ee=ee[Oe]}else Yt=lt(ee,Oe),ee=ee[Oe];Yt&&!Cr&&(oe[At]=ee)}}return ee},Dn}var Fn,Qa;function Rc(){if(Qa)return Fn;Qa=1;var e=nr(),t=ba(),r=tr(),n=rr();return Fn=function(a,o,s){if(!a||typeof a!="object"&&typeof a!="function")throw new r("`obj` must be an object or a function`");if(typeof o!="string"&&typeof o!="symbol")throw new r("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new r("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new r("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new r("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new r("`loose`, if provided, must be a boolean");var c=arguments.length>3?arguments[3]:null,f=arguments.length>4?arguments[4]:null,l=arguments.length>5?arguments[5]:null,d=arguments.length>6?arguments[6]:!1,h=!!n&&n(a,o);if(e)e(a,o,{configurable:l===null&&h?h.configurable:!l,enumerable:c===null&&h?h.enumerable:!c,value:s,writable:f===null&&h?h.writable:!f});else if(d||!c&&!f&&!l)a[o]=s;else throw new t("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Fn}var Mn,eo;function Oc(){if(eo)return Mn;eo=1;var e=nr(),t=function(){return!!e};return t.hasArrayLengthDefineBug=function(){if(!e)return null;try{return e([],"length",{value:1}).length!==1}catch{return!0}},Mn=t,Mn}var jn,to;function Tc(){if(to)return jn;to=1;var e=Xa(),t=Rc(),r=Oc()(),n=rr(),i=tr(),a=e("%Math.floor%");return jn=function(s,c){if(typeof s!="function")throw new i("`fn` is not a function");if(typeof c!="number"||c<0||c>4294967295||a(c)!==c)throw new i("`length` must be a positive 32-bit integer");var f=arguments.length>2&&!!arguments[2],l=!0,d=!0;if("length"in s&&n){var h=n(s,"length");h&&!h.configurable&&(l=!1),h&&!h.writable&&(d=!1)}return(l||d||!f)&&(r?t(s,"length",c,!0,!0):t(s,"length",c)),s},jn}var Ln,ro;function Pc(){if(ro)return Ln;ro=1;var e=Rt(),t=An(),r=Ka();return Ln=function(){return r(e,t,arguments)},Ln}var no;function Ic(){return no||(no=1,function(e){var t=Tc(),r=nr(),n=Tn(),i=Pc();e.exports=function(o){var s=n(arguments),c=o.length-(arguments.length-1);return t(s,1+(c>0?c:0),!0)},r?r(e.exports,"apply",{value:i}):e.exports.apply=i}(Gr)),Gr.exports}var Nn,io;function Cc(){if(io)return Nn;io=1;var e=Xa(),t=Tn(),r=t([e("%String.prototype.indexOf%")]);return Nn=function(i,a){var o=e(i,!!a);return typeof o=="function"&&r(i,".prototype.")>-1?t([o]):o},Nn}var Bn,ao;function Dc(){if(ao)return Bn;ao=1;var e=(typeof JSON<"u"?JSON:rc()).stringify,t=nc(),r=ac(),n=Ic(),i=Cc(),a=i("Array.prototype.join"),o=i("Array.prototype.indexOf"),s=i("Array.prototype.splice"),c=i("Array.prototype.sort"),f=function(h,u){for(var p="",v=0;v<h;v+=1)p+=u;return p},l=function(d,h,u){return u};return Bn=function(h){var u=arguments.length>1?arguments[1]:void 0,p=u&&u.space||"";typeof p=="number"&&(p=f(p," "));var v=!!u&&typeof u.cycles=="boolean"&&u.cycles,_=u&&u.replacer?n(u.replacer):l;if(u&&typeof u.collapseEmpty<"u"&&typeof u.collapseEmpty!="boolean")throw new TypeError("`collapseEmpty` must be a boolean, if provided");var w=!!u&&u.collapseEmpty,x=typeof u=="function"?u:u&&u.cmp,S=x&&function(A){var T=x.length>2&&function(E){return A[E]};return function(b,E){return x({key:b,value:A[b]},{key:E,value:A[E]},T?{__proto__:null,get:T}:void 0)}},g=[];return function A(T,b,E,O){var k=p?`
15
+ `+f(O,p):"",F=p?": ":":";if(E&&E.toJSON&&typeof E.toJSON=="function"&&(E=E.toJSON()),E=_(T,b,E),E!==void 0){if(typeof E!="object"||E===null)return e(E);var K=function(lt,Gt){return w&&lt.length===0?Gt:(Gt==="[]"?"[":"{")+a(lt,",")+k+(Gt==="[]"?"]":"}")};if(t(E)){for(var Q=[],G=0;G<E.length;G++){var oe=A(E,G,E[G],O+1)||e(null);Q[Q.length]=k+p+oe}return K(Q,"[]")}if(o(g,E)!==-1){if(v)return e("__cycle__");throw new TypeError("Converting circular structure to JSON")}else g[g.length]=E;for(var ft=c(r(E),S&&S(E)),Q=[],G=0;G<ft.length;G++){var b=ft[G],ve=A(E,b,E[b],O+1);if(ve){var ct=e(b)+F+ve;Q[Q.length]=k+p+ct}}return s(g,o(g,E),1),K(Q,"{}")}}({"":h},"",h,0)},Bn}var Fc=Dc(),oo=Qf(Fc);async function Un(e,t,r){if(!this.passphrase)return t.push({actual:e,type:"encryptionKeyMissing"}),e;try{return await zr(String(e),this.passphrase)}catch(n){t.push({actual:e,type:"encryptionProblem",error:n})}return e}class so extends Df{constructor({options:t,passphrase:r,autoEncrypt:n=!0}={}){super(L.merge({},{useNewCustomCheckerFunction:!0,messages:{encryptionKeyMissing:"Missing configuration for secrets encryption.",encryptionProblem:"Problem encrypting secret. Actual: {actual}. Error: {error}"},defaults:{string:{trim:!0},object:{strict:"remove"}}},t)),this.passphrase=r,this.autoEncrypt=n,this.alias("secret",{type:"string",custom:this.autoEncrypt?Un:void 0,messages:{string:"The '{field}' field must be a string.",stringMin:"This secret '{field}' field length must be at least {expected} long."}}),this.alias("secretAny",{type:"any",custom:this.autoEncrypt?Un:void 0}),this.alias("secretNumber",{type:"number",custom:this.autoEncrypt?Un:void 0})}}const fo=new Proxy(so,{instance:null,construct(e,t){return this.instance||(this.instance=new e(...t)),this.instance}}),co={trim:e=>e.trim(),encrypt:(e,{passphrase:t})=>zr(e,t),decrypt:(e,{passphrase:t})=>na(e,t),toString:e=>String(e),fromArray:(e,{separator:t})=>e==null||!Array.isArray(e)?e:e.length===0?"[]":e.map(n=>typeof n=="string"?n.replace(/\\/g,"\\\\").replace(new RegExp(`\\${t}`,"g"),`\\${t}`):String(n)).join(t),toArray:(e,{separator:t})=>{if(e==null)return e;if(e==="[]")return[];if(e==="")return[];const r=[];let n="",i=0;const a=String(e);for(;i<a.length;)a[i]==="\\"&&i+1<a.length?a[i+1]===t?(n+=t,i+=2):a[i+1]==="\\"?(n+="\\",i+=2):(n+=a[i],i++):a[i]===t?(r.push(n),n="",i++):(n+=a[i],i++);return r.push(n),r},toJSON:e=>JSON.stringify(e),fromJSON:e=>JSON.parse(e),toNumber:e=>L.isString(e)?e.includes(".")?parseFloat(e):parseInt(e):e,toBool:e=>[!0,1,"true","1","yes","y"].includes(e),fromBool:e=>[!0,1,"true","1","yes","y"].includes(e)?"1":"0"};class Pe{constructor(t){const{map:r,name:n,attributes:i,passphrase:a,version:o=1,options:s={}}=t;this.name=n,this.version=o,this.attributes=i||{},this.passphrase=a??"secret",this.options=L.merge({},this.defaultOptions(),s);const c=this.preprocessAttributesForValidation(this.attributes);if(this.validator=new fo({autoEncrypt:!1}).compile(L.merge({$$async:!0},c)),this.options.generateAutoHooks&&this.generateAutoHooks(),!L.isEmpty(r))this.map=r,this.reversedMap=L.invert(r);else{const f=Jt.flatten(this.attributes,{safe:!0}),l=Object.keys(f).filter(u=>!u.includes("$$")),d=this.extractObjectKeys(this.attributes),h=[...new Set([...l,...d])];this.reversedMap={...h},this.map=L.invert(this.reversedMap)}}defaultOptions(){return{autoEncrypt:!0,autoDecrypt:!0,arraySeparator:"|",generateAutoHooks:!0,hooks:{beforeMap:{},afterMap:{},beforeUnmap:{},afterUnmap:{}}}}addHook(t,r,n){this.options.hooks[t][r]||(this.options.hooks[t][r]=[]),this.options.hooks[t][r]=L.uniq([...this.options.hooks[t][r],n])}extractObjectKeys(t,r=""){const n=[];for(const[i,a]of Object.entries(t)){if(i.startsWith("$$"))continue;const o=r?`${r}.${i}`:i;typeof a=="object"&&a!==null&&!Array.isArray(a)&&(n.push(o),a.$$type==="object"&&n.push(...this.extractObjectKeys(a,o)))}return n}generateAutoHooks(){const t=Jt.flatten(L.cloneDeep(this.attributes),{safe:!0});for(const[r,n]of Object.entries(t))n.includes("array")?(this.addHook("beforeMap",r,"fromArray"),this.addHook("afterUnmap",r,"toArray")):(n.includes("secret")&&(this.options.autoEncrypt&&this.addHook("beforeMap",r,"encrypt"),this.options.autoDecrypt&&this.addHook("afterUnmap",r,"decrypt")),n.includes("number")&&(this.addHook("beforeMap",r,"toString"),this.addHook("afterUnmap",r,"toNumber")),n.includes("boolean")&&(this.addHook("beforeMap",r,"fromBool"),this.addHook("afterUnmap",r,"toBool")))}static import(t){let{map:r,name:n,options:i,version:a,attributes:o}=L.isString(t)?JSON.parse(t):t;return o=Pe._importAttributes(o),new Pe({map:r,name:n,options:i,version:a,attributes:o})}static _importAttributes(t){if(typeof t=="string"){try{const r=JSON.parse(t);if(typeof r=="object"&&r!==null)return Pe._importAttributes(r)}catch{}return t}if(Array.isArray(t))return t.map(r=>Pe._importAttributes(r));if(typeof t=="object"&&t!==null){const r={};for(const[n,i]of Object.entries(t))r[n]=Pe._importAttributes(i);return r}return t}export(){return{version:this.version,name:this.name,options:this.options,attributes:this._exportAttributes(this.attributes),map:this.map}}_exportAttributes(t){if(typeof t=="string")return t;if(Array.isArray(t))return t.map(r=>this._exportAttributes(r));if(typeof t=="object"&&t!==null){const r={};for(const[n,i]of Object.entries(t))r[n]=this._exportAttributes(i);return r}return t}async applyHooksActions(t,r){for(const[n,i]of Object.entries(this.options.hooks[r]))for(const a of i){const o=L.get(t,n);o!==void 0&&typeof co[a]=="function"&&L.set(t,n,await co[a](o,{passphrase:this.passphrase,separator:this.options.arraySeparator}))}}async validate(t,{mutateOriginal:r=!1}={}){let n=r?t:L.cloneDeep(t);return await this.validator(n)}async mapper(t){const r=Jt.flatten(L.cloneDeep(t),{safe:!0});await this.applyHooksActions(r,"beforeMap");const n={_v:this.version+""};for(const[i,a]of Object.entries(r))n[this.map[i]]=a;return await this.applyHooksActions(n,"afterMap"),n}async unmapper(t){const r=L.cloneDeep(t);delete r._v,await this.applyHooksActions(r,"beforeUnmap");const n={};for(const[i,a]of Object.entries(r))n[this.reversedMap[i]]=a;return await this.applyHooksActions(n,"afterUnmap"),Jt.unflatten(n)}preprocessAttributesForValidation(t){const r={};for(const[n,i]of Object.entries(t))typeof i=="object"&&i!==null&&!Array.isArray(i)?r[n]={type:"object",properties:this.preprocessAttributesForValidation(i),strict:!1}:r[n]=i;return r}}var ht=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{},he=[],ne=[],Mc=typeof Uint8Array<"u"?Uint8Array:Array,$n=!1;function lo(){$n=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t<r;++t)he[t]=e[t],ne[e.charCodeAt(t)]=t;ne[45]=62,ne[95]=63}function jc(e){$n||lo();var t,r,n,i,a,o,s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");a=e[s-2]==="="?2:e[s-1]==="="?1:0,o=new Mc(s*3/4-a),n=a>0?s-4:s;var c=0;for(t=0,r=0;t<n;t+=4,r+=3)i=ne[e.charCodeAt(t)]<<18|ne[e.charCodeAt(t+1)]<<12|ne[e.charCodeAt(t+2)]<<6|ne[e.charCodeAt(t+3)],o[c++]=i>>16&255,o[c++]=i>>8&255,o[c++]=i&255;return a===2?(i=ne[e.charCodeAt(t)]<<2|ne[e.charCodeAt(t+1)]>>4,o[c++]=i&255):a===1&&(i=ne[e.charCodeAt(t)]<<10|ne[e.charCodeAt(t+1)]<<4|ne[e.charCodeAt(t+2)]>>2,o[c++]=i>>8&255,o[c++]=i&255),o}function Lc(e){return he[e>>18&63]+he[e>>12&63]+he[e>>6&63]+he[e&63]}function Nc(e,t,r){for(var n,i=[],a=t;a<r;a+=3)n=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(Lc(n));return i.join("")}function uo(e){$n||lo();for(var t,r=e.length,n=r%3,i="",a=[],o=16383,s=0,c=r-n;s<c;s+=o)a.push(Nc(e,s,s+o>c?c:s+o));return n===1?(t=e[r-1],i+=he[t>>2],i+=he[t<<4&63],i+="=="):n===2&&(t=(e[r-2]<<8)+e[r-1],i+=he[t>>10],i+=he[t>>4&63],i+=he[t<<2&63],i+="="),a.push(i),a.join("")}function ir(e,t,r,n,i){var a,o,s=i*8-n-1,c=(1<<s)-1,f=c>>1,l=-7,d=r?i-1:0,h=r?-1:1,u=e[t+d];for(d+=h,a=u&(1<<-l)-1,u>>=-l,l+=s;l>0;a=a*256+e[t+d],d+=h,l-=8);for(o=a&(1<<-l)-1,a>>=-l,l+=n;l>0;o=o*256+e[t+d],d+=h,l-=8);if(a===0)a=1-f;else{if(a===c)return o?NaN:(u?-1:1)*(1/0);o=o+Math.pow(2,n),a=a-f}return(u?-1:1)*o*Math.pow(2,a-n)}function ho(e,t,r,n,i,a){var o,s,c,f=a*8-i-1,l=(1<<f)-1,d=l>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,u=n?0:a-1,p=n?1:-1,v=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+d>=1?t+=h/c:t+=h*Math.pow(2,1-d),t*c>=2&&(o++,c/=2),o+d>=l?(s=0,o=l):o+d>=1?(s=(t*c-1)*Math.pow(2,i),o=o+d):(s=t*Math.pow(2,d-1)*Math.pow(2,i),o=0));i>=8;e[r+u]=s&255,u+=p,s/=256,i-=8);for(o=o<<i|s,f+=i;f>0;e[r+u]=o&255,u+=p,o/=256,f-=8);e[r+u-p]|=v*128}var Bc={}.toString,po=Array.isArray||function(e){return Bc.call(e)=="[object Array]"};/*!
16
16
  * The buffer module from node.js, for the browser.
17
17
  *
18
18
  * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
19
19
  * @license MIT
20
- */var Uc=50;y.TYPED_ARRAY_SUPPORT=ut.TYPED_ARRAY_SUPPORT!==void 0?ut.TYPED_ARRAY_SUPPORT:!0,ar();function ar(){return y.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function be(e,t){if(ar()<t)throw new RangeError("Invalid typed array length");return y.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=y.prototype):(e===null&&(e=new y(t)),e.length=t),e}function y(e,t,r){if(!y.TYPED_ARRAY_SUPPORT&&!(this instanceof y))return new y(e,t,r);if(typeof e=="number"){if(typeof t=="string")throw new Error("If encoding is specified then the first argument must be a string");return zn(this,e)}return yo(this,e,t,r)}y.poolSize=8192,y._augment=function(e){return e.__proto__=y.prototype,e};function yo(e,t,r,n){if(typeof t=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer?Zc(e,t,r,n):typeof t=="string"?zc(e,t,r):qc(e,t)}y.from=function(e,t,r){return yo(null,e,t,r)},y.TYPED_ARRAY_SUPPORT&&(y.prototype.__proto__=Uint8Array.prototype,y.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&y[Symbol.species]);function vo(e){if(typeof e!="number")throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function $c(e,t,r,n){return vo(t),t<=0?be(e,t):r!==void 0?typeof n=="string"?be(e,t).fill(r,n):be(e,t).fill(r):be(e,t)}y.alloc=function(e,t,r){return $c(null,e,t,r)};function zn(e,t){if(vo(t),e=be(e,t<0?0:qn(t)|0),!y.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}y.allocUnsafe=function(e){return zn(null,e)},y.allocUnsafeSlow=function(e){return zn(null,e)};function zc(e,t,r){if((typeof r!="string"||r==="")&&(r="utf8"),!y.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=go(t,r)|0;e=be(e,n);var i=e.write(t,r);return i!==n&&(e=e.slice(0,i)),e}function Zn(e,t){var r=t.length<0?0:qn(t.length)|0;e=be(e,r);for(var n=0;n<r;n+=1)e[n]=t[n]&255;return e}function Zc(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return r===void 0&&n===void 0?t=new Uint8Array(t):n===void 0?t=new Uint8Array(t,r):t=new Uint8Array(t,r,n),y.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=y.prototype):e=Zn(e,t),e}function qc(e,t){if(de(t)){var r=qn(t.length)|0;return e=be(e,r),e.length===0||t.copy(e,0,0,r),e}if(t){if(typeof ArrayBuffer<"u"&&t.buffer instanceof ArrayBuffer||"length"in t)return typeof t.length!="number"||cl(t.length)?be(e,0):Zn(e,t);if(t.type==="Buffer"&&po(t.data))return Zn(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function qn(e){if(e>=ar())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ar().toString(16)+" bytes");return e|0}y.isBuffer=ll;function de(e){return!!(e!=null&&e._isBuffer)}y.compare=function(t,r){if(!de(t)||!de(r))throw new TypeError("Arguments must be Buffers");if(t===r)return 0;for(var n=t.length,i=r.length,a=0,o=Math.min(n,i);a<o;++a)if(t[a]!==r[a]){n=t[a],i=r[a];break}return n<i?-1:i<n?1:0},y.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},y.concat=function(t,r){if(!po(t))throw new TypeError('"list" argument must be an Array of Buffers');if(t.length===0)return y.alloc(0);var n;if(r===void 0)for(r=0,n=0;n<t.length;++n)r+=t[n].length;var i=y.allocUnsafe(r),a=0;for(n=0;n<t.length;++n){var o=t[n];if(!de(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,a),a+=o.length}return i};function go(e,t){if(de(e))return e.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;typeof e!="string"&&(e=""+e);var r=e.length;if(r===0)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return fr(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return ko(e).length;default:if(n)return fr(e).length;t=(""+t).toLowerCase(),n=!0}}y.byteLength=go;function Hc(e,t,r){var n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return tl(this,t,r);case"utf8":case"utf-8":return mo(this,t,r);case"ascii":return Qc(this,t,r);case"latin1":case"binary":return el(this,t,r);case"base64":return Jc(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return rl(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}y.prototype._isBuffer=!0;function ze(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}y.prototype.swap16=function(){var t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var r=0;r<t;r+=2)ze(this,r,r+1);return this},y.prototype.swap32=function(){var t=this.length;if(t%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var r=0;r<t;r+=4)ze(this,r,r+3),ze(this,r+1,r+2);return this},y.prototype.swap64=function(){var t=this.length;if(t%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var r=0;r<t;r+=8)ze(this,r,r+7),ze(this,r+1,r+6),ze(this,r+2,r+5),ze(this,r+3,r+4);return this},y.prototype.toString=function(){var t=this.length|0;return t===0?"":arguments.length===0?mo(this,0,t):Hc.apply(this,arguments)},y.prototype.equals=function(t){if(!de(t))throw new TypeError("Argument must be a Buffer");return this===t?!0:y.compare(this,t)===0},y.prototype.inspect=function(){var t="",r=Uc;return this.length>0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),"<Buffer "+t+">"},y.prototype.compare=function(t,r,n,i,a){if(!de(t))throw new TypeError("Argument must be a Buffer");if(r===void 0&&(r=0),n===void 0&&(n=t?t.length:0),i===void 0&&(i=0),a===void 0&&(a=this.length),r<0||n>t.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&r>=n)return 0;if(i>=a)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,a>>>=0,this===t)return 0;for(var o=a-i,s=n-r,c=Math.min(o,s),f=this.slice(i,a),l=t.slice(r,n),d=0;d<c;++d)if(f[d]!==l[d]){o=f[d],s=l[d];break}return o<s?-1:s<o?1:0};function _o(e,t,r,n,i){if(e.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=y.from(t,n)),de(t))return t.length===0?-1:wo(e,t,r,n,i);if(typeof t=="number")return t=t&255,y.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):wo(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function wo(e,t,r,n,i){var a=1,o=e.length,s=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;a=2,o/=2,s/=2,r/=2}function c(u,p){return a===1?u[p]:u.readUInt16BE(p*a)}var f;if(i){var l=-1;for(f=r;f<o;f++)if(c(e,f)===c(t,l===-1?0:f-l)){if(l===-1&&(l=f),f-l+1===s)return l*a}else l!==-1&&(f-=f-l),l=-1}else for(r+s>o&&(r=o-s),f=r;f>=0;f--){for(var d=!0,h=0;h<s;h++)if(c(e,f+h)!==c(t,h)){d=!1;break}if(d)return f}return-1}y.prototype.includes=function(t,r,n){return this.indexOf(t,r,n)!==-1},y.prototype.indexOf=function(t,r,n){return _o(this,t,r,n,!0)},y.prototype.lastIndexOf=function(t,r,n){return _o(this,t,r,n,!1)};function Kc(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n),n>i&&(n=i)):n=i;var a=t.length;if(a%2!==0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o<n;++o){var s=parseInt(t.substr(o*2,2),16);if(isNaN(s))return o;e[r+o]=s}return o}function Wc(e,t,r,n){return cr(fr(t,e.length-r),e,r,n)}function bo(e,t,r,n){return cr(sl(t),e,r,n)}function Vc(e,t,r,n){return bo(e,t,r,n)}function Gc(e,t,r,n){return cr(ko(t),e,r,n)}function Yc(e,t,r,n){return cr(fl(t,e.length-r),e,r,n)}y.prototype.write=function(t,r,n,i){if(r===void 0)i="utf8",n=this.length,r=0;else if(n===void 0&&typeof r=="string")i=r,n=this.length,r=0;else if(isFinite(r))r=r|0,isFinite(n)?(n=n|0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var a=this.length-r;if((n===void 0||n>a)&&(n=a),t.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return Kc(this,t,r,n);case"utf8":case"utf-8":return Wc(this,t,r,n);case"ascii":return bo(this,t,r,n);case"latin1":case"binary":return Vc(this,t,r,n);case"base64":return Gc(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Yc(this,t,r,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Jc(e,t,r){return t===0&&r===e.length?uo(e):uo(e.slice(t,r))}function mo(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var a=e[i],o=null,s=a>239?4:a>223?3:a>191?2:1;if(i+s<=r){var c,f,l,d;switch(s){case 1:a<128&&(o=a);break;case 2:c=e[i+1],(c&192)===128&&(d=(a&31)<<6|c&63,d>127&&(o=d));break;case 3:c=e[i+1],f=e[i+2],(c&192)===128&&(f&192)===128&&(d=(a&15)<<12|(c&63)<<6|f&63,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:c=e[i+1],f=e[i+2],l=e[i+3],(c&192)===128&&(f&192)===128&&(l&192)===128&&(d=(a&15)<<18|(c&63)<<12|(f&63)<<6|l&63,d>65535&&d<1114112&&(o=d))}}o===null?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=s}return Xc(n)}var Eo=4096;function Xc(e){var t=e.length;if(t<=Eo)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=Eo));return r}function Qc(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]&127);return n}function el(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function tl(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i="",a=t;a<r;++a)i+=ol(e[a]);return i}function rl(e,t,r){for(var n=e.slice(t,r),i="",a=0;a<n.length;a+=2)i+=String.fromCharCode(n[a]+n[a+1]*256);return i}y.prototype.slice=function(t,r){var n=this.length;t=~~t,r=r===void 0?n:~~r,t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),r<t&&(r=t);var i;if(y.TYPED_ARRAY_SUPPORT)i=this.subarray(t,r),i.__proto__=y.prototype;else{var a=r-t;i=new y(a,void 0);for(var o=0;o<a;++o)i[o]=this[o+t]}return i};function z(e,t,r){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUIntLE=function(t,r,n){t=t|0,r=r|0,n||z(t,r,this.length);for(var i=this[t],a=1,o=0;++o<r&&(a*=256);)i+=this[t+o]*a;return i},y.prototype.readUIntBE=function(t,r,n){t=t|0,r=r|0,n||z(t,r,this.length);for(var i=this[t+--r],a=1;r>0&&(a*=256);)i+=this[t+--r]*a;return i},y.prototype.readUInt8=function(t,r){return r||z(t,1,this.length),this[t]},y.prototype.readUInt16LE=function(t,r){return r||z(t,2,this.length),this[t]|this[t+1]<<8},y.prototype.readUInt16BE=function(t,r){return r||z(t,2,this.length),this[t]<<8|this[t+1]},y.prototype.readUInt32LE=function(t,r){return r||z(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216},y.prototype.readUInt32BE=function(t,r){return r||z(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])},y.prototype.readIntLE=function(t,r,n){t=t|0,r=r|0,n||z(t,r,this.length);for(var i=this[t],a=1,o=0;++o<r&&(a*=256);)i+=this[t+o]*a;return a*=128,i>=a&&(i-=Math.pow(2,8*r)),i},y.prototype.readIntBE=function(t,r,n){t=t|0,r=r|0,n||z(t,r,this.length);for(var i=r,a=1,o=this[t+--i];i>0&&(a*=256);)o+=this[t+--i]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*r)),o},y.prototype.readInt8=function(t,r){return r||z(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]},y.prototype.readInt16LE=function(t,r){r||z(t,2,this.length);var n=this[t]|this[t+1]<<8;return n&32768?n|4294901760:n},y.prototype.readInt16BE=function(t,r){r||z(t,2,this.length);var n=this[t+1]|this[t]<<8;return n&32768?n|4294901760:n},y.prototype.readInt32LE=function(t,r){return r||z(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},y.prototype.readInt32BE=function(t,r){return r||z(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},y.prototype.readFloatLE=function(t,r){return r||z(t,4,this.length),ir(this,t,!0,23,4)},y.prototype.readFloatBE=function(t,r){return r||z(t,4,this.length),ir(this,t,!1,23,4)},y.prototype.readDoubleLE=function(t,r){return r||z(t,8,this.length),ir(this,t,!0,52,8)},y.prototype.readDoubleBE=function(t,r){return r||z(t,8,this.length),ir(this,t,!1,52,8)};function J(e,t,r,n,i,a){if(!de(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}y.prototype.writeUIntLE=function(t,r,n,i){if(t=+t,r=r|0,n=n|0,!i){var a=Math.pow(2,8*n)-1;J(this,t,r,n,a,0)}var o=1,s=0;for(this[r]=t&255;++s<n&&(o*=256);)this[r+s]=t/o&255;return r+n},y.prototype.writeUIntBE=function(t,r,n,i){if(t=+t,r=r|0,n=n|0,!i){var a=Math.pow(2,8*n)-1;J(this,t,r,n,a,0)}var o=n-1,s=1;for(this[r+o]=t&255;--o>=0&&(s*=256);)this[r+o]=t/s&255;return r+n},y.prototype.writeUInt8=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,1,255,0),y.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=t&255,r+1};function or(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i<a;++i)e[r+i]=(t&255<<8*(n?i:1-i))>>>(n?i:1-i)*8}y.prototype.writeUInt16LE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):or(this,t,r,!0),r+2},y.prototype.writeUInt16BE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):or(this,t,r,!1),r+2};function sr(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i<a;++i)e[r+i]=t>>>(n?i:3-i)*8&255}y.prototype.writeUInt32LE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=t&255):sr(this,t,r,!0),r+4},y.prototype.writeUInt32BE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):sr(this,t,r,!1),r+4},y.prototype.writeIntLE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);J(this,t,r,n,a-1,-a)}var o=0,s=1,c=0;for(this[r]=t&255;++o<n&&(s*=256);)t<0&&c===0&&this[r+o-1]!==0&&(c=1),this[r+o]=(t/s>>0)-c&255;return r+n},y.prototype.writeIntBE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);J(this,t,r,n,a-1,-a)}var o=n-1,s=1,c=0;for(this[r+o]=t&255;--o>=0&&(s*=256);)t<0&&c===0&&this[r+o+1]!==0&&(c=1),this[r+o]=(t/s>>0)-c&255;return r+n},y.prototype.writeInt8=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,1,127,-128),y.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=t&255,r+1},y.prototype.writeInt16LE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):or(this,t,r,!0),r+2},y.prototype.writeInt16BE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):or(this,t,r,!1),r+2},y.prototype.writeInt32LE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,4,2147483647,-2147483648),y.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):sr(this,t,r,!0),r+4},y.prototype.writeInt32BE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),y.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):sr(this,t,r,!1),r+4};function xo(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function So(e,t,r,n,i){return i||xo(e,t,r,4),ho(e,t,r,n,23,4),r+4}y.prototype.writeFloatLE=function(t,r,n){return So(this,t,r,!0,n)},y.prototype.writeFloatBE=function(t,r,n){return So(this,t,r,!1,n)};function Ao(e,t,r,n,i){return i||xo(e,t,r,8),ho(e,t,r,n,52,8),r+8}y.prototype.writeDoubleLE=function(t,r,n){return Ao(this,t,r,!0,n)},y.prototype.writeDoubleBE=function(t,r,n){return Ao(this,t,r,!1,n)},y.prototype.copy=function(t,r,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i<n&&(i=n),i===n||t.length===0||this.length===0)return 0;if(r<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-r<i-n&&(i=t.length-r+n);var a=i-n,o;if(this===t&&n<r&&r<i)for(o=a-1;o>=0;--o)t[o+r]=this[o+n];else if(a<1e3||!y.TYPED_ARRAY_SUPPORT)for(o=0;o<a;++o)t[o+r]=this[o+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+a),r);return a},y.prototype.fill=function(t,r,n,i){if(typeof t=="string"){if(typeof r=="string"?(i=r,r=0,n=this.length):typeof n=="string"&&(i=n,n=this.length),t.length===1){var a=t.charCodeAt(0);a<256&&(t=a)}if(i!==void 0&&typeof i!="string")throw new TypeError("encoding must be a string");if(typeof i=="string"&&!y.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else typeof t=="number"&&(t=t&255);if(r<0||this.length<r||this.length<n)throw new RangeError("Out of range index");if(n<=r)return this;r=r>>>0,n=n===void 0?this.length:n>>>0,t||(t=0);var o;if(typeof t=="number")for(o=r;o<n;++o)this[o]=t;else{var s=de(t)?t:fr(new y(t,i).toString()),c=s.length;for(o=0;o<n-r;++o)this[o+r]=s[o%c]}return this};var nl=/[^+\/0-9A-Za-z-_]/g;function il(e){if(e=al(e).replace(nl,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function al(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function ol(e){return e<16?"0"+e.toString(16):e.toString(16)}function fr(e,t){t=t||1/0;for(var r,n=e.length,i=null,a=[],o=0;o<n;++o){if(r=e.charCodeAt(o),r>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function sl(e){for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r)&255);return t}function fl(e,t){for(var r,n,i,a=[],o=0;o<e.length&&!((t-=2)<0);++o)r=e.charCodeAt(o),n=r>>8,i=r%256,a.push(i),a.push(n);return a}function ko(e){return Lc(il(e))}function cr(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function cl(e){return e!==e}function ll(e){return e!=null&&(!!e._isBuffer||Ro(e)||ul(e))}function Ro(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function ul(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&Ro(e.slice(0,0))}function Oo(){throw new Error("setTimeout has not been defined")}function To(){throw new Error("clearTimeout has not been defined")}var Pe=Oo,Ie=To;typeof ut.setTimeout=="function"&&(Pe=setTimeout),typeof ut.clearTimeout=="function"&&(Ie=clearTimeout);function Po(e){if(Pe===setTimeout)return setTimeout(e,0);if((Pe===Oo||!Pe)&&setTimeout)return Pe=setTimeout,setTimeout(e,0);try{return Pe(e,0)}catch{try{return Pe.call(null,e,0)}catch{return Pe.call(this,e,0)}}}function hl(e){if(Ie===clearTimeout)return clearTimeout(e);if((Ie===To||!Ie)&&clearTimeout)return Ie=clearTimeout,clearTimeout(e);try{return Ie(e)}catch{try{return Ie.call(null,e)}catch{return Ie.call(this,e)}}}var me=[],ht=!1,Ze,lr=-1;function dl(){!ht||!Ze||(ht=!1,Ze.length?me=Ze.concat(me):lr=-1,me.length&&Io())}function Io(){if(!ht){var e=Po(dl);ht=!0;for(var t=me.length;t;){for(Ze=me,me=[];++lr<t;)Ze&&Ze[lr].run();lr=-1,t=me.length}Ze=null,ht=!1,hl(e)}}function te(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];me.push(new Co(e,t)),me.length===1&&!ht&&Po(Io)}function Co(e,t){this.fun=e,this.array=t}Co.prototype.run=function(){this.fun.apply(null,this.array)};var pl="browser",yl="browser",vl=!0,gl={},_l=[],wl="",bl={},ml={},El={};function qe(){}var xl=qe,Sl=qe,Al=qe,kl=qe,Rl=qe,Ol=qe,Tl=qe;function Pl(e){throw new Error("process.binding is not supported")}function Il(){return"/"}function Cl(e){throw new Error("process.chdir is not supported")}function Dl(){return 0}var dt=ut.performance||{},Fl=dt.now||dt.mozNow||dt.msNow||dt.oNow||dt.webkitNow||function(){return new Date().getTime()};function Ml(e){var t=Fl.call(dt)*.001,r=Math.floor(t),n=Math.floor(t%1*1e9);return e&&(r=r-e[0],n=n-e[1],n<0&&(r--,n+=1e9)),[r,n]}var Ll=new Date;function jl(){var e=new Date,t=e-Ll;return t/1e3}var Ee={nextTick:te,title:pl,browser:vl,env:gl,argv:_l,version:wl,versions:bl,on:xl,addListener:Sl,once:Al,off:kl,removeListener:Rl,removeAllListeners:Ol,emit:Tl,binding:Pl,cwd:Il,chdir:Cl,umask:Dl,hrtime:Ml,platform:yl,release:ml,config:El,uptime:jl},W;typeof Object.create=="function"?W=function(t,r){t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:W=function(t,r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t};var Nl=/%[sdj%]/g;function Bl(e){if(!Gn(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(Ce(arguments[r]));return t.join(" ")}for(var r=1,n=arguments,i=n.length,a=String(e).replace(Nl,function(s){if(s==="%%")return"%";if(r>=i)return s;switch(s){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch{return"[Circular]"}default:return s}}),o=n[r];r<i;o=n[++r])Vn(o)||!Rt(o)?a+=" "+o:a+=" "+Ce(o);return a}function Do(e,t){if(De(ut.process))return function(){return Do(e,t).apply(this,arguments)};if(Ee.noDeprecation===!0)return e;var r=!1;function n(){if(!r){if(Ee.throwDeprecation)throw new Error(t);Ee.traceDeprecation?console.trace(t):console.error(t),r=!0}return e.apply(this,arguments)}return n}var ur={},Hn;function Ul(e){if(De(Hn)&&(Hn=Ee.env.NODE_DEBUG||""),e=e.toUpperCase(),!ur[e])if(new RegExp("\\b"+e+"\\b","i").test(Hn)){var t=0;ur[e]=function(){var r=Bl.apply(null,arguments);console.error("%s %d: %s",e,t,r)}}else ur[e]=function(){};return ur[e]}function Ce(e,t){var r={seen:[],stylize:zl};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),Fo(t)?r.showHidden=t:t&&Gl(r,t),De(r.showHidden)&&(r.showHidden=!1),De(r.depth)&&(r.depth=2),De(r.colors)&&(r.colors=!1),De(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=$l),hr(r,e,r.depth)}Ce.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},Ce.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function $l(e,t){var r=Ce.styles[t];return r?"\x1B["+Ce.colors[r][0]+"m"+e+"\x1B["+Ce.colors[r][1]+"m":e}function zl(e,t){return e}function Zl(e){var t={};return e.forEach(function(r,n){t[r]=!0}),t}function hr(e,t,r){if(e.customInspect&&t&&Xn(t.inspect)&&t.inspect!==Ce&&!(t.constructor&&t.constructor.prototype===t)){var n=t.inspect(r,e);return Gn(n)||(n=hr(e,n,r)),n}var i=ql(e,t);if(i)return i;var a=Object.keys(t),o=Zl(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),Jn(t)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return Kn(t);if(a.length===0){if(Xn(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(Yn(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Mo(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Jn(t))return Kn(t)}var c="",f=!1,l=["{","}"];if(Wl(t)&&(f=!0,l=["[","]"]),Xn(t)){var d=t.name?": "+t.name:"";c=" [Function"+d+"]"}if(Yn(t)&&(c=" "+RegExp.prototype.toString.call(t)),Mo(t)&&(c=" "+Date.prototype.toUTCString.call(t)),Jn(t)&&(c=" "+Kn(t)),a.length===0&&(!f||t.length==0))return l[0]+c+l[1];if(r<0)return Yn(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var h;return f?h=Hl(e,t,r,o,a):h=a.map(function(u){return Wn(e,t,r,o,u,f)}),e.seen.pop(),Kl(h,c,l)}function ql(e,t){if(De(t))return e.stylize("undefined","undefined");if(Gn(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(Vl(t))return e.stylize(""+t,"number");if(Fo(t))return e.stylize(""+t,"boolean");if(Vn(t))return e.stylize("null","null")}function Kn(e){return"["+Error.prototype.toString.call(e)+"]"}function Hl(e,t,r,n,i){for(var a=[],o=0,s=t.length;o<s;++o)Lo(t,String(o))?a.push(Wn(e,t,r,n,String(o),!0)):a.push("");return i.forEach(function(c){c.match(/^\d+$/)||a.push(Wn(e,t,r,n,c,!0))}),a}function Wn(e,t,r,n,i,a){var o,s,c;if(c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},c.get?c.set?s=e.stylize("[Getter/Setter]","special"):s=e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),Lo(n,i)||(o="["+i+"]"),s||(e.seen.indexOf(c.value)<0?(Vn(r)?s=hr(e,c.value,null):s=hr(e,c.value,r-1),s.indexOf(`
20
+ */var Uc=50;y.TYPED_ARRAY_SUPPORT=ht.TYPED_ARRAY_SUPPORT!==void 0?ht.TYPED_ARRAY_SUPPORT:!0,ar();function ar(){return y.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function be(e,t){if(ar()<t)throw new RangeError("Invalid typed array length");return y.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=y.prototype):(e===null&&(e=new y(t)),e.length=t),e}function y(e,t,r){if(!y.TYPED_ARRAY_SUPPORT&&!(this instanceof y))return new y(e,t,r);if(typeof e=="number"){if(typeof t=="string")throw new Error("If encoding is specified then the first argument must be a string");return zn(this,e)}return yo(this,e,t,r)}y.poolSize=8192,y._augment=function(e){return e.__proto__=y.prototype,e};function yo(e,t,r,n){if(typeof t=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer?Zc(e,t,r,n):typeof t=="string"?zc(e,t,r):qc(e,t)}y.from=function(e,t,r){return yo(null,e,t,r)},y.TYPED_ARRAY_SUPPORT&&(y.prototype.__proto__=Uint8Array.prototype,y.__proto__=Uint8Array,typeof Symbol<"u"&&Symbol.species&&y[Symbol.species]);function vo(e){if(typeof e!="number")throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function $c(e,t,r,n){return vo(t),t<=0?be(e,t):r!==void 0?typeof n=="string"?be(e,t).fill(r,n):be(e,t).fill(r):be(e,t)}y.alloc=function(e,t,r){return $c(null,e,t,r)};function zn(e,t){if(vo(t),e=be(e,t<0?0:qn(t)|0),!y.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}y.allocUnsafe=function(e){return zn(null,e)},y.allocUnsafeSlow=function(e){return zn(null,e)};function zc(e,t,r){if((typeof r!="string"||r==="")&&(r="utf8"),!y.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=go(t,r)|0;e=be(e,n);var i=e.write(t,r);return i!==n&&(e=e.slice(0,i)),e}function Zn(e,t){var r=t.length<0?0:qn(t.length)|0;e=be(e,r);for(var n=0;n<r;n+=1)e[n]=t[n]&255;return e}function Zc(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return r===void 0&&n===void 0?t=new Uint8Array(t):n===void 0?t=new Uint8Array(t,r):t=new Uint8Array(t,r,n),y.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=y.prototype):e=Zn(e,t),e}function qc(e,t){if(de(t)){var r=qn(t.length)|0;return e=be(e,r),e.length===0||t.copy(e,0,0,r),e}if(t){if(typeof ArrayBuffer<"u"&&t.buffer instanceof ArrayBuffer||"length"in t)return typeof t.length!="number"||cl(t.length)?be(e,0):Zn(e,t);if(t.type==="Buffer"&&po(t.data))return Zn(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function qn(e){if(e>=ar())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ar().toString(16)+" bytes");return e|0}y.isBuffer=ll;function de(e){return!!(e!=null&&e._isBuffer)}y.compare=function(t,r){if(!de(t)||!de(r))throw new TypeError("Arguments must be Buffers");if(t===r)return 0;for(var n=t.length,i=r.length,a=0,o=Math.min(n,i);a<o;++a)if(t[a]!==r[a]){n=t[a],i=r[a];break}return n<i?-1:i<n?1:0},y.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},y.concat=function(t,r){if(!po(t))throw new TypeError('"list" argument must be an Array of Buffers');if(t.length===0)return y.alloc(0);var n;if(r===void 0)for(r=0,n=0;n<t.length;++n)r+=t[n].length;var i=y.allocUnsafe(r),a=0;for(n=0;n<t.length;++n){var o=t[n];if(!de(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,a),a+=o.length}return i};function go(e,t){if(de(e))return e.length;if(typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;typeof e!="string"&&(e=""+e);var r=e.length;if(r===0)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return fr(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return ko(e).length;default:if(n)return fr(e).length;t=(""+t).toLowerCase(),n=!0}}y.byteLength=go;function Hc(e,t,r){var n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return tl(this,t,r);case"utf8":case"utf-8":return mo(this,t,r);case"ascii":return Qc(this,t,r);case"latin1":case"binary":return el(this,t,r);case"base64":return Jc(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return rl(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}y.prototype._isBuffer=!0;function Ze(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}y.prototype.swap16=function(){var t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var r=0;r<t;r+=2)Ze(this,r,r+1);return this},y.prototype.swap32=function(){var t=this.length;if(t%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var r=0;r<t;r+=4)Ze(this,r,r+3),Ze(this,r+1,r+2);return this},y.prototype.swap64=function(){var t=this.length;if(t%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var r=0;r<t;r+=8)Ze(this,r,r+7),Ze(this,r+1,r+6),Ze(this,r+2,r+5),Ze(this,r+3,r+4);return this},y.prototype.toString=function(){var t=this.length|0;return t===0?"":arguments.length===0?mo(this,0,t):Hc.apply(this,arguments)},y.prototype.equals=function(t){if(!de(t))throw new TypeError("Argument must be a Buffer");return this===t?!0:y.compare(this,t)===0},y.prototype.inspect=function(){var t="",r=Uc;return this.length>0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),"<Buffer "+t+">"},y.prototype.compare=function(t,r,n,i,a){if(!de(t))throw new TypeError("Argument must be a Buffer");if(r===void 0&&(r=0),n===void 0&&(n=t?t.length:0),i===void 0&&(i=0),a===void 0&&(a=this.length),r<0||n>t.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&r>=n)return 0;if(i>=a)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,a>>>=0,this===t)return 0;for(var o=a-i,s=n-r,c=Math.min(o,s),f=this.slice(i,a),l=t.slice(r,n),d=0;d<c;++d)if(f[d]!==l[d]){o=f[d],s=l[d];break}return o<s?-1:s<o?1:0};function _o(e,t,r,n,i){if(e.length===0)return-1;if(typeof r=="string"?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=y.from(t,n)),de(t))return t.length===0?-1:wo(e,t,r,n,i);if(typeof t=="number")return t=t&255,y.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):wo(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function wo(e,t,r,n,i){var a=1,o=e.length,s=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;a=2,o/=2,s/=2,r/=2}function c(u,p){return a===1?u[p]:u.readUInt16BE(p*a)}var f;if(i){var l=-1;for(f=r;f<o;f++)if(c(e,f)===c(t,l===-1?0:f-l)){if(l===-1&&(l=f),f-l+1===s)return l*a}else l!==-1&&(f-=f-l),l=-1}else for(r+s>o&&(r=o-s),f=r;f>=0;f--){for(var d=!0,h=0;h<s;h++)if(c(e,f+h)!==c(t,h)){d=!1;break}if(d)return f}return-1}y.prototype.includes=function(t,r,n){return this.indexOf(t,r,n)!==-1},y.prototype.indexOf=function(t,r,n){return _o(this,t,r,n,!0)},y.prototype.lastIndexOf=function(t,r,n){return _o(this,t,r,n,!1)};function Kc(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n),n>i&&(n=i)):n=i;var a=t.length;if(a%2!==0)throw new TypeError("Invalid hex string");n>a/2&&(n=a/2);for(var o=0;o<n;++o){var s=parseInt(t.substr(o*2,2),16);if(isNaN(s))return o;e[r+o]=s}return o}function Wc(e,t,r,n){return cr(fr(t,e.length-r),e,r,n)}function bo(e,t,r,n){return cr(sl(t),e,r,n)}function Vc(e,t,r,n){return bo(e,t,r,n)}function Gc(e,t,r,n){return cr(ko(t),e,r,n)}function Yc(e,t,r,n){return cr(fl(t,e.length-r),e,r,n)}y.prototype.write=function(t,r,n,i){if(r===void 0)i="utf8",n=this.length,r=0;else if(n===void 0&&typeof r=="string")i=r,n=this.length,r=0;else if(isFinite(r))r=r|0,isFinite(n)?(n=n|0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var a=this.length-r;if((n===void 0||n>a)&&(n=a),t.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return Kc(this,t,r,n);case"utf8":case"utf-8":return Wc(this,t,r,n);case"ascii":return bo(this,t,r,n);case"latin1":case"binary":return Vc(this,t,r,n);case"base64":return Gc(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Yc(this,t,r,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Jc(e,t,r){return t===0&&r===e.length?uo(e):uo(e.slice(t,r))}function mo(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var a=e[i],o=null,s=a>239?4:a>223?3:a>191?2:1;if(i+s<=r){var c,f,l,d;switch(s){case 1:a<128&&(o=a);break;case 2:c=e[i+1],(c&192)===128&&(d=(a&31)<<6|c&63,d>127&&(o=d));break;case 3:c=e[i+1],f=e[i+2],(c&192)===128&&(f&192)===128&&(d=(a&15)<<12|(c&63)<<6|f&63,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:c=e[i+1],f=e[i+2],l=e[i+3],(c&192)===128&&(f&192)===128&&(l&192)===128&&(d=(a&15)<<18|(c&63)<<12|(f&63)<<6|l&63,d>65535&&d<1114112&&(o=d))}}o===null?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=s}return Xc(n)}var Eo=4096;function Xc(e){var t=e.length;if(t<=Eo)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=Eo));return r}function Qc(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]&127);return n}function el(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function tl(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i="",a=t;a<r;++a)i+=ol(e[a]);return i}function rl(e,t,r){for(var n=e.slice(t,r),i="",a=0;a<n.length;a+=2)i+=String.fromCharCode(n[a]+n[a+1]*256);return i}y.prototype.slice=function(t,r){var n=this.length;t=~~t,r=r===void 0?n:~~r,t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),r<t&&(r=t);var i;if(y.TYPED_ARRAY_SUPPORT)i=this.subarray(t,r),i.__proto__=y.prototype;else{var a=r-t;i=new y(a,void 0);for(var o=0;o<a;++o)i[o]=this[o+t]}return i};function z(e,t,r){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUIntLE=function(t,r,n){t=t|0,r=r|0,n||z(t,r,this.length);for(var i=this[t],a=1,o=0;++o<r&&(a*=256);)i+=this[t+o]*a;return i},y.prototype.readUIntBE=function(t,r,n){t=t|0,r=r|0,n||z(t,r,this.length);for(var i=this[t+--r],a=1;r>0&&(a*=256);)i+=this[t+--r]*a;return i},y.prototype.readUInt8=function(t,r){return r||z(t,1,this.length),this[t]},y.prototype.readUInt16LE=function(t,r){return r||z(t,2,this.length),this[t]|this[t+1]<<8},y.prototype.readUInt16BE=function(t,r){return r||z(t,2,this.length),this[t]<<8|this[t+1]},y.prototype.readUInt32LE=function(t,r){return r||z(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216},y.prototype.readUInt32BE=function(t,r){return r||z(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])},y.prototype.readIntLE=function(t,r,n){t=t|0,r=r|0,n||z(t,r,this.length);for(var i=this[t],a=1,o=0;++o<r&&(a*=256);)i+=this[t+o]*a;return a*=128,i>=a&&(i-=Math.pow(2,8*r)),i},y.prototype.readIntBE=function(t,r,n){t=t|0,r=r|0,n||z(t,r,this.length);for(var i=r,a=1,o=this[t+--i];i>0&&(a*=256);)o+=this[t+--i]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*r)),o},y.prototype.readInt8=function(t,r){return r||z(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]},y.prototype.readInt16LE=function(t,r){r||z(t,2,this.length);var n=this[t]|this[t+1]<<8;return n&32768?n|4294901760:n},y.prototype.readInt16BE=function(t,r){r||z(t,2,this.length);var n=this[t+1]|this[t]<<8;return n&32768?n|4294901760:n},y.prototype.readInt32LE=function(t,r){return r||z(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},y.prototype.readInt32BE=function(t,r){return r||z(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},y.prototype.readFloatLE=function(t,r){return r||z(t,4,this.length),ir(this,t,!0,23,4)},y.prototype.readFloatBE=function(t,r){return r||z(t,4,this.length),ir(this,t,!1,23,4)},y.prototype.readDoubleLE=function(t,r){return r||z(t,8,this.length),ir(this,t,!0,52,8)},y.prototype.readDoubleBE=function(t,r){return r||z(t,8,this.length),ir(this,t,!1,52,8)};function J(e,t,r,n,i,a){if(!de(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}y.prototype.writeUIntLE=function(t,r,n,i){if(t=+t,r=r|0,n=n|0,!i){var a=Math.pow(2,8*n)-1;J(this,t,r,n,a,0)}var o=1,s=0;for(this[r]=t&255;++s<n&&(o*=256);)this[r+s]=t/o&255;return r+n},y.prototype.writeUIntBE=function(t,r,n,i){if(t=+t,r=r|0,n=n|0,!i){var a=Math.pow(2,8*n)-1;J(this,t,r,n,a,0)}var o=n-1,s=1;for(this[r+o]=t&255;--o>=0&&(s*=256);)this[r+o]=t/s&255;return r+n},y.prototype.writeUInt8=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,1,255,0),y.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=t&255,r+1};function or(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-r,2);i<a;++i)e[r+i]=(t&255<<8*(n?i:1-i))>>>(n?i:1-i)*8}y.prototype.writeUInt16LE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):or(this,t,r,!0),r+2},y.prototype.writeUInt16BE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):or(this,t,r,!1),r+2};function sr(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-r,4);i<a;++i)e[r+i]=t>>>(n?i:3-i)*8&255}y.prototype.writeUInt32LE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=t&255):sr(this,t,r,!0),r+4},y.prototype.writeUInt32BE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,4,4294967295,0),y.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):sr(this,t,r,!1),r+4},y.prototype.writeIntLE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);J(this,t,r,n,a-1,-a)}var o=0,s=1,c=0;for(this[r]=t&255;++o<n&&(s*=256);)t<0&&c===0&&this[r+o-1]!==0&&(c=1),this[r+o]=(t/s>>0)-c&255;return r+n},y.prototype.writeIntBE=function(t,r,n,i){if(t=+t,r=r|0,!i){var a=Math.pow(2,8*n-1);J(this,t,r,n,a-1,-a)}var o=n-1,s=1,c=0;for(this[r+o]=t&255;--o>=0&&(s*=256);)t<0&&c===0&&this[r+o+1]!==0&&(c=1),this[r+o]=(t/s>>0)-c&255;return r+n},y.prototype.writeInt8=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,1,127,-128),y.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[r]=t&255,r+1},y.prototype.writeInt16LE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):or(this,t,r,!0),r+2},y.prototype.writeInt16BE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):or(this,t,r,!1),r+2},y.prototype.writeInt32LE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,4,2147483647,-2147483648),y.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24):sr(this,t,r,!0),r+4},y.prototype.writeInt32BE=function(t,r,n){return t=+t,r=r|0,n||J(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),y.TYPED_ARRAY_SUPPORT?(this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255):sr(this,t,r,!1),r+4};function xo(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function So(e,t,r,n,i){return i||xo(e,t,r,4),ho(e,t,r,n,23,4),r+4}y.prototype.writeFloatLE=function(t,r,n){return So(this,t,r,!0,n)},y.prototype.writeFloatBE=function(t,r,n){return So(this,t,r,!1,n)};function Ao(e,t,r,n,i){return i||xo(e,t,r,8),ho(e,t,r,n,52,8),r+8}y.prototype.writeDoubleLE=function(t,r,n){return Ao(this,t,r,!0,n)},y.prototype.writeDoubleBE=function(t,r,n){return Ao(this,t,r,!1,n)},y.prototype.copy=function(t,r,n,i){if(n||(n=0),!i&&i!==0&&(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i<n&&(i=n),i===n||t.length===0||this.length===0)return 0;if(r<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-r<i-n&&(i=t.length-r+n);var a=i-n,o;if(this===t&&n<r&&r<i)for(o=a-1;o>=0;--o)t[o+r]=this[o+n];else if(a<1e3||!y.TYPED_ARRAY_SUPPORT)for(o=0;o<a;++o)t[o+r]=this[o+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+a),r);return a},y.prototype.fill=function(t,r,n,i){if(typeof t=="string"){if(typeof r=="string"?(i=r,r=0,n=this.length):typeof n=="string"&&(i=n,n=this.length),t.length===1){var a=t.charCodeAt(0);a<256&&(t=a)}if(i!==void 0&&typeof i!="string")throw new TypeError("encoding must be a string");if(typeof i=="string"&&!y.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else typeof t=="number"&&(t=t&255);if(r<0||this.length<r||this.length<n)throw new RangeError("Out of range index");if(n<=r)return this;r=r>>>0,n=n===void 0?this.length:n>>>0,t||(t=0);var o;if(typeof t=="number")for(o=r;o<n;++o)this[o]=t;else{var s=de(t)?t:fr(new y(t,i).toString()),c=s.length;for(o=0;o<n-r;++o)this[o+r]=s[o%c]}return this};var nl=/[^+\/0-9A-Za-z-_]/g;function il(e){if(e=al(e).replace(nl,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function al(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function ol(e){return e<16?"0"+e.toString(16):e.toString(16)}function fr(e,t){t=t||1/0;for(var r,n=e.length,i=null,a=[],o=0;o<n;++o){if(r=e.charCodeAt(o),r>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function sl(e){for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r)&255);return t}function fl(e,t){for(var r,n,i,a=[],o=0;o<e.length&&!((t-=2)<0);++o)r=e.charCodeAt(o),n=r>>8,i=r%256,a.push(i),a.push(n);return a}function ko(e){return jc(il(e))}function cr(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function cl(e){return e!==e}function ll(e){return e!=null&&(!!e._isBuffer||Ro(e)||ul(e))}function Ro(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function ul(e){return typeof e.readFloatLE=="function"&&typeof e.slice=="function"&&Ro(e.slice(0,0))}function Oo(){throw new Error("setTimeout has not been defined")}function To(){throw new Error("clearTimeout has not been defined")}var Ie=Oo,Ce=To;typeof ht.setTimeout=="function"&&(Ie=setTimeout),typeof ht.clearTimeout=="function"&&(Ce=clearTimeout);function Po(e){if(Ie===setTimeout)return setTimeout(e,0);if((Ie===Oo||!Ie)&&setTimeout)return Ie=setTimeout,setTimeout(e,0);try{return Ie(e,0)}catch{try{return Ie.call(null,e,0)}catch{return Ie.call(this,e,0)}}}function hl(e){if(Ce===clearTimeout)return clearTimeout(e);if((Ce===To||!Ce)&&clearTimeout)return Ce=clearTimeout,clearTimeout(e);try{return Ce(e)}catch{try{return Ce.call(null,e)}catch{return Ce.call(this,e)}}}var me=[],dt=!1,qe,lr=-1;function dl(){!dt||!qe||(dt=!1,qe.length?me=qe.concat(me):lr=-1,me.length&&Io())}function Io(){if(!dt){var e=Po(dl);dt=!0;for(var t=me.length;t;){for(qe=me,me=[];++lr<t;)qe&&qe[lr].run();lr=-1,t=me.length}qe=null,dt=!1,hl(e)}}function te(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];me.push(new Co(e,t)),me.length===1&&!dt&&Po(Io)}function Co(e,t){this.fun=e,this.array=t}Co.prototype.run=function(){this.fun.apply(null,this.array)};var pl="browser",yl="browser",vl=!0,gl={},_l=[],wl="",bl={},ml={},El={};function He(){}var xl=He,Sl=He,Al=He,kl=He,Rl=He,Ol=He,Tl=He;function Pl(e){throw new Error("process.binding is not supported")}function Il(){return"/"}function Cl(e){throw new Error("process.chdir is not supported")}function Dl(){return 0}var pt=ht.performance||{},Fl=pt.now||pt.mozNow||pt.msNow||pt.oNow||pt.webkitNow||function(){return new Date().getTime()};function Ml(e){var t=Fl.call(pt)*.001,r=Math.floor(t),n=Math.floor(t%1*1e9);return e&&(r=r-e[0],n=n-e[1],n<0&&(r--,n+=1e9)),[r,n]}var jl=new Date;function Ll(){var e=new Date,t=e-jl;return t/1e3}var Ee={nextTick:te,title:pl,browser:vl,env:gl,argv:_l,version:wl,versions:bl,on:xl,addListener:Sl,once:Al,off:kl,removeListener:Rl,removeAllListeners:Ol,emit:Tl,binding:Pl,cwd:Il,chdir:Cl,umask:Dl,hrtime:Ml,platform:yl,release:ml,config:El,uptime:Ll},W;typeof Object.create=="function"?W=function(t,r){t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:W=function(t,r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t};var Nl=/%[sdj%]/g;function Bl(e){if(!Gn(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(De(arguments[r]));return t.join(" ")}for(var r=1,n=arguments,i=n.length,a=String(e).replace(Nl,function(s){if(s==="%%")return"%";if(r>=i)return s;switch(s){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch{return"[Circular]"}default:return s}}),o=n[r];r<i;o=n[++r])Vn(o)||!Ot(o)?a+=" "+o:a+=" "+De(o);return a}function Do(e,t){if(Fe(ht.process))return function(){return Do(e,t).apply(this,arguments)};if(Ee.noDeprecation===!0)return e;var r=!1;function n(){if(!r){if(Ee.throwDeprecation)throw new Error(t);Ee.traceDeprecation?console.trace(t):console.error(t),r=!0}return e.apply(this,arguments)}return n}var ur={},Hn;function Ul(e){if(Fe(Hn)&&(Hn=Ee.env.NODE_DEBUG||""),e=e.toUpperCase(),!ur[e])if(new RegExp("\\b"+e+"\\b","i").test(Hn)){var t=0;ur[e]=function(){var r=Bl.apply(null,arguments);console.error("%s %d: %s",e,t,r)}}else ur[e]=function(){};return ur[e]}function De(e,t){var r={seen:[],stylize:zl};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),Fo(t)?r.showHidden=t:t&&Gl(r,t),Fe(r.showHidden)&&(r.showHidden=!1),Fe(r.depth)&&(r.depth=2),Fe(r.colors)&&(r.colors=!1),Fe(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=$l),hr(r,e,r.depth)}De.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},De.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function $l(e,t){var r=De.styles[t];return r?"\x1B["+De.colors[r][0]+"m"+e+"\x1B["+De.colors[r][1]+"m":e}function zl(e,t){return e}function Zl(e){var t={};return e.forEach(function(r,n){t[r]=!0}),t}function hr(e,t,r){if(e.customInspect&&t&&Xn(t.inspect)&&t.inspect!==De&&!(t.constructor&&t.constructor.prototype===t)){var n=t.inspect(r,e);return Gn(n)||(n=hr(e,n,r)),n}var i=ql(e,t);if(i)return i;var a=Object.keys(t),o=Zl(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),Jn(t)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return Kn(t);if(a.length===0){if(Xn(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(Yn(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(Mo(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Jn(t))return Kn(t)}var c="",f=!1,l=["{","}"];if(Wl(t)&&(f=!0,l=["[","]"]),Xn(t)){var d=t.name?": "+t.name:"";c=" [Function"+d+"]"}if(Yn(t)&&(c=" "+RegExp.prototype.toString.call(t)),Mo(t)&&(c=" "+Date.prototype.toUTCString.call(t)),Jn(t)&&(c=" "+Kn(t)),a.length===0&&(!f||t.length==0))return l[0]+c+l[1];if(r<0)return Yn(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var h;return f?h=Hl(e,t,r,o,a):h=a.map(function(u){return Wn(e,t,r,o,u,f)}),e.seen.pop(),Kl(h,c,l)}function ql(e,t){if(Fe(t))return e.stylize("undefined","undefined");if(Gn(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(Vl(t))return e.stylize(""+t,"number");if(Fo(t))return e.stylize(""+t,"boolean");if(Vn(t))return e.stylize("null","null")}function Kn(e){return"["+Error.prototype.toString.call(e)+"]"}function Hl(e,t,r,n,i){for(var a=[],o=0,s=t.length;o<s;++o)jo(t,String(o))?a.push(Wn(e,t,r,n,String(o),!0)):a.push("");return i.forEach(function(c){c.match(/^\d+$/)||a.push(Wn(e,t,r,n,c,!0))}),a}function Wn(e,t,r,n,i,a){var o,s,c;if(c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},c.get?c.set?s=e.stylize("[Getter/Setter]","special"):s=e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),jo(n,i)||(o="["+i+"]"),s||(e.seen.indexOf(c.value)<0?(Vn(r)?s=hr(e,c.value,null):s=hr(e,c.value,r-1),s.indexOf(`
21
21
  `)>-1&&(a?s=s.split(`
22
22
  `).map(function(f){return" "+f}).join(`
23
23
  `).substr(2):s=`
24
24
  `+s.split(`
25
25
  `).map(function(f){return" "+f}).join(`
26
- `))):s=e.stylize("[Circular]","special")),De(o)){if(a&&i.match(/^\d+$/))return s;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function Kl(e,t,r){var n=e.reduce(function(i,a){return a.indexOf(`
26
+ `))):s=e.stylize("[Circular]","special")),Fe(o)){if(a&&i.match(/^\d+$/))return s;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function Kl(e,t,r){var n=e.reduce(function(i,a){return a.indexOf(`
27
27
  `)>=0,i+a.replace(/\u001b\[\d\d?m/g,"").length+1},0);return n>60?r[0]+(t===""?"":t+`
28
28
  `)+" "+e.join(`,
29
- `)+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function Wl(e){return Array.isArray(e)}function Fo(e){return typeof e=="boolean"}function Vn(e){return e===null}function Vl(e){return typeof e=="number"}function Gn(e){return typeof e=="string"}function De(e){return e===void 0}function Yn(e){return Rt(e)&&Qn(e)==="[object RegExp]"}function Rt(e){return typeof e=="object"&&e!==null}function Mo(e){return Rt(e)&&Qn(e)==="[object Date]"}function Jn(e){return Rt(e)&&(Qn(e)==="[object Error]"||e instanceof Error)}function Xn(e){return typeof e=="function"}function Qn(e){return Object.prototype.toString.call(e)}function Gl(e,t){if(!t||!Rt(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}function Lo(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function He(){this.head=null,this.tail=null,this.length=0}He.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},He.prototype.unshift=function(e){var t={data:e,next:this.head};this.length===0&&(this.tail=t),this.head=t,++this.length},He.prototype.shift=function(){if(this.length!==0){var e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},He.prototype.clear=function(){this.head=this.tail=null,this.length=0},He.prototype.join=function(e){if(this.length===0)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},He.prototype.concat=function(e){if(this.length===0)return y.alloc(0);if(this.length===1)return this.head.data;for(var t=y.allocUnsafe(e>>>0),r=this.head,n=0;r;)r.data.copy(t,n),n+=r.data.length,r=r.next;return t};var Yl=y.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Jl(e){if(e&&!Yl(e))throw new Error("Unknown encoding: "+e)}function Ot(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),Jl(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Ql;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=eu;break;default:this.write=Xl;return}this.charBuffer=new y(6),this.charReceived=0,this.charLength=0}Ot.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived<this.charLength)return"";e=e.slice(r,e.length),t=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319){this.charLength+=this.surrogateSize,t="";continue}if(this.charReceived=this.charLength=0,e.length===0)return t;break}this.detectIncompleteChar(e);var n=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,n),n-=this.charReceived),t+=e.toString(this.encoding,0,n);var n=t.length-1,i=t.charCodeAt(n);if(i>=55296&&i<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),e.copy(this.charBuffer,0,0,a),t.substring(0,n)}return t},Ot.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(t==1&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},Ot.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;t+=n.slice(0,r).toString(i)}return t};function Xl(e){return e.toString(this.encoding)}function Ql(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function eu(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}N.ReadableState=jo;var D=Ul("stream");W(N,R);function tu(e,t,r){if(typeof e.prependListener=="function")return e.prependListener(t,r);!e._events||!e._events[t]?e.on(t,r):Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]}function ru(e,t){return e.listeners(t).length}function jo(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof ie&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16*1024;this.highWaterMark=r||r===0?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new He,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new Ot(e.encoding),this.encoding=e.encoding)}function N(e){if(!(this instanceof N))return new N(e);this._readableState=new jo(e,this),this.readable=!0,e&&typeof e.read=="function"&&(this._read=e.read),R.call(this)}N.prototype.push=function(e,t){var r=this._readableState;return!r.objectMode&&typeof e=="string"&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=y.from(e,t),t="")),No(this,r,e,t,!1)},N.prototype.unshift=function(e){var t=this._readableState;return No(this,t,e,"",!0)},N.prototype.isPaused=function(){return this._readableState.flowing===!1};function No(e,t,r,n,i){var a=au(t,r);if(a)e.emit("error",a);else if(r===null)t.reading=!1,ou(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!i){var o=new Error("stream.push() after EOF");e.emit("error",o)}else if(t.endEmitted&&i){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var c;t.decoder&&!i&&!n&&(r=t.decoder.write(r),c=!t.objectMode&&r.length===0),i||(t.reading=!1),c||(t.flowing&&t.length===0&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&dr(e))),su(e,t)}else i||(t.reading=!1);return nu(t)}function nu(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}N.prototype.setEncoding=function(e){return this._readableState.decoder=new Ot(e),this._readableState.encoding=e,this};var Bo=8388608;function iu(e){return e>=Bo?e=Bo:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function Uo(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=iu(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}N.prototype.read=function(e){D("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return D("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?ti(this):dr(this),null;if(e=Uo(e,t),e===0&&t.ended)return t.length===0&&ti(this),null;var n=t.needReadable;D("need readable",n),(t.length===0||t.length-e<t.highWaterMark)&&(n=!0,D("length less than watermark",n)),t.ended||t.reading?(n=!1,D("reading or ended",n)):n&&(D("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=Uo(r,t)));var i;return e>0?i=zo(e,t):i=null,i===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&ti(this)),i!==null&&this.emit("data",i),i};function au(e,t){var r=null;return!y.isBuffer(t)&&typeof t!="string"&&t!==null&&t!==void 0&&!e.objectMode&&(r=new TypeError("Invalid non-string/buffer chunk")),r}function ou(e,t){if(!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,dr(e)}}function dr(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(D("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?te($o,e):$o(e))}function $o(e){D("emit readable"),e.emit("readable"),ei(e)}function su(e,t){t.readingMore||(t.readingMore=!0,te(fu,e,t))}function fu(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(D("maybeReadMore read 0"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}N.prototype._read=function(e){this.emit("error",new Error("not implemented"))},N.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e);break}n.pipesCount+=1,D("pipe count=%d opts=%j",n.pipesCount,t);var i=!t||t.end!==!1,a=i?s:l;n.endEmitted?te(a):r.once("end",a),e.on("unpipe",o);function o(w){D("onunpipe"),w===r&&l()}function s(){D("onend"),e.end()}var c=cu(r);e.on("drain",c);var f=!1;function l(){D("cleanup"),e.removeListener("close",p),e.removeListener("finish",v),e.removeListener("drain",c),e.removeListener("error",u),e.removeListener("unpipe",o),r.removeListener("end",s),r.removeListener("end",l),r.removeListener("data",h),f=!0,n.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&c()}var d=!1;r.on("data",h);function h(w){D("ondata"),d=!1;var x=e.write(w);x===!1&&!d&&((n.pipesCount===1&&n.pipes===e||n.pipesCount>1&&Zo(n.pipes,e)!==-1)&&!f&&(D("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,d=!0),r.pause())}function u(w){D("onerror",w),_(),e.removeListener("error",u),ru(e,"error")===0&&e.emit("error",w)}tu(e,"error",u);function p(){e.removeListener("finish",v),_()}e.once("close",p);function v(){D("onfinish"),e.removeListener("close",p),_()}e.once("finish",v);function _(){D("unpipe"),r.unpipe(e)}return e.emit("pipe",r),n.flowing||(D("pipe resume"),r.resume()),e};function cu(e){return function(){var t=e._readableState;D("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&e.listeners("data").length&&(t.flowing=!0,ei(e))}}N.prototype.unpipe=function(e){var t=this._readableState;if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var r=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<n;i++)r[i].emit("unpipe",this);return this}var a=Zo(t.pipes,e);return a===-1?this:(t.pipes.splice(a,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)},N.prototype.on=function(e,t){var r=R.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var n=this._readableState;!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&dr(this):te(lu,this))}return r},N.prototype.addListener=N.prototype.on;function lu(e){D("readable nexttick read 0"),e.read(0)}N.prototype.resume=function(){var e=this._readableState;return e.flowing||(D("resume"),e.flowing=!0,uu(this,e)),this};function uu(e,t){t.resumeScheduled||(t.resumeScheduled=!0,te(hu,e,t))}function hu(e,t){t.reading||(D("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),ei(e),t.flowing&&!t.reading&&e.read(0)}N.prototype.pause=function(){return D("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(D("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function ei(e){var t=e._readableState;for(D("flow",t.flowing);t.flowing&&e.read()!==null;);}N.prototype.wrap=function(e){var t=this._readableState,r=!1,n=this;e.on("end",function(){if(D("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&n.push(o)}n.push(null)}),e.on("data",function(o){if(D("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var s=n.push(o);s||(r=!0,e.pause())}});for(var i in e)this[i]===void 0&&typeof e[i]=="function"&&(this[i]=function(o){return function(){return e[o].apply(e,arguments)}}(i));var a=["error","close","destroy","pause","resume"];return gu(a,function(o){e.on(o,n.emit.bind(n,o))}),n._read=function(o){D("wrapped _read",o),r&&(r=!1,e.resume())},n},N._fromList=zo;function zo(e,t){if(t.length===0)return null;var r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(t.decoder?r=t.buffer.join(""):t.buffer.length===1?r=t.buffer.head.data:r=t.buffer.concat(t.length),t.buffer.clear()):r=du(e,t.buffer,t.decoder),r}function du(e,t,r){var n;return e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?n=t.shift():n=r?pu(e,t):yu(e,t),n}function pu(e,t){var r=t.head,n=1,i=r.data;for(e-=i.length;r=r.next;){var a=r.data,o=e>a.length?a.length:e;if(o===a.length?i+=a:i+=a.slice(0,e),e-=o,e===0){o===a.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(o));break}++n}return t.length-=n,i}function yu(e,t){var r=y.allocUnsafe(e),n=t.head,i=1;for(n.data.copy(r),e-=n.data.length;n=n.next;){var a=n.data,o=e>a.length?a.length:e;if(a.copy(r,r.length-e,0,o),e-=o,e===0){o===a.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(o));break}++i}return t.length-=i,r}function ti(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,te(vu,t,e))}function vu(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function gu(e,t){for(var r=0,n=e.length;r<n;r++)t(e[r],r)}function Zo(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}q.WritableState=ri,W(q,R);function _u(){}function wu(e,t,r){this.chunk=e,this.encoding=t,this.callback=r,this.next=null}function ri(e,t){Object.defineProperty(this,"buffer",{get:Do(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),e=e||{},this.objectMode=!!e.objectMode,t instanceof ie&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16*1024;this.highWaterMark=r||r===0?r:n,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var i=e.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){ku(t,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new Go(this)}ri.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};function q(e){if(!(this instanceof q)&&!(this instanceof ie))return new q(e);this._writableState=new ri(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev)),R.call(this)}q.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function bu(e,t){var r=new Error("write after end");e.emit("error",r),te(t,r)}function mu(e,t,r,n){var i=!0,a=!1;return r===null?a=new TypeError("May not write null values to stream"):!y.isBuffer(r)&&typeof r!="string"&&r!==void 0&&!t.objectMode&&(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),te(n,a),i=!1),i}q.prototype.write=function(e,t,r){var n=this._writableState,i=!1;return typeof t=="function"&&(r=t,t=null),y.isBuffer(e)?t="buffer":t||(t=n.defaultEncoding),typeof r!="function"&&(r=_u),n.ended?bu(this,r):mu(this,n,e,r)&&(n.pendingcb++,i=xu(this,n,e,t,r)),i},q.prototype.cork=function(){var e=this._writableState;e.corked++},q.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest&&Ho(this,e))},q.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function Eu(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=y.from(t,r)),t}function xu(e,t,r,n,i){r=Eu(t,r,n),y.isBuffer(r)&&(n="buffer");var a=t.objectMode?1:r.length;t.length+=a;var o=t.length<t.highWaterMark;if(o||(t.needDrain=!0),t.writing||t.corked){var s=t.lastBufferedRequest;t.lastBufferedRequest=new wu(r,n,i),s?s.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else ni(e,t,!1,a,r,n,i);return o}function ni(e,t,r,n,i,a,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,r?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function Su(e,t,r,n,i){--t.pendingcb,r?te(i,n):i(n),e._writableState.errorEmitted=!0,e.emit("error",n)}function Au(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function ku(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if(Au(r),t)Su(e,r,n,t,i);else{var a=Ko(r);!a&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ho(e,r),n?te(qo,e,r,a,i):qo(e,r,a,i)}}function qo(e,t,r,n){r||Ru(e,t),t.pendingcb--,n(),Vo(e,t)}function Ru(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function Ho(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,i=new Array(n),a=t.corkedRequestsFree;a.entry=r;for(var o=0;r;)i[o]=r,r=r.next,o+=1;ni(e,t,!0,t.length,i,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new Go(t)}else{for(;r;){var s=r.chunk,c=r.encoding,f=r.callback,l=t.objectMode?1:s.length;if(ni(e,t,!1,l,s,c,f),r=r.next,t.writing)break}r===null&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=r,t.bufferProcessing=!1}q.prototype._write=function(e,t,r){r(new Error("not implemented"))},q.prototype._writev=null,q.prototype.end=function(e,t,r){var n=this._writableState;typeof e=="function"?(r=e,e=null,t=null):typeof t=="function"&&(r=t,t=null),e!=null&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),!n.ending&&!n.finished&&Ou(this,n,r)};function Ko(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function Wo(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function Vo(e,t){var r=Ko(t);return r&&(t.pendingcb===0?(Wo(e,t),t.finished=!0,e.emit("finish")):Wo(e,t)),r}function Ou(e,t,r){t.ending=!0,Vo(e,t),r&&(t.finished?te(r):e.once("finish",r)),t.ended=!0,e.writable=!1}function Go(e){var t=this;this.next=null,this.entry=null,this.finish=function(r){var n=t.entry;for(t.entry=null;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}W(ie,N);for(var Yo=Object.keys(q.prototype),ii=0;ii<Yo.length;ii++){var ai=Yo[ii];ie.prototype[ai]||(ie.prototype[ai]=q.prototype[ai])}function ie(e){if(!(this instanceof ie))return new ie(e);N.call(this,e),q.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",Tu)}function Tu(){this.allowHalfOpen||this._writableState.ended||te(Pu,this)}function Pu(e){e.end()}W(re,ie);function Iu(e){this.afterTransform=function(t,r){return Cu(e,t,r)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function Cu(e,t,r){var n=e._transformState;n.transforming=!1;var i=n.writecb;if(!i)return e.emit("error",new Error("no writecb in Transform class"));n.writechunk=null,n.writecb=null,r!=null&&e.push(r),i(t);var a=e._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&e._read(a.highWaterMark)}function re(e){if(!(this instanceof re))return new re(e);ie.call(this,e),this._transformState=new Iu(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.once("prefinish",function(){typeof this._flush=="function"?this._flush(function(r){Jo(t,r)}):Jo(t)})}re.prototype.push=function(e,t){return this._transformState.needTransform=!1,ie.prototype.push.call(this,e,t)},re.prototype._transform=function(e,t,r){throw new Error("Not implemented")},re.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},re.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};function Jo(e,t){if(t)return e.emit("error",t);var r=e._writableState,n=e._transformState;if(r.length)throw new Error("Calling transform done when ws.length != 0");if(n.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}W(Tt,re);function Tt(e){if(!(this instanceof Tt))return new Tt(e);re.call(this,e)}Tt.prototype._transform=function(e,t,r){r(null,e)},W(xe,R),xe.Readable=N,xe.Writable=q,xe.Duplex=ie,xe.Transform=re,xe.PassThrough=Tt,xe.Stream=xe;function xe(){R.call(this)}xe.prototype.pipe=function(e,t){var r=this;function n(l){e.writable&&e.write(l)===!1&&r.pause&&r.pause()}r.on("data",n);function i(){r.readable&&r.resume&&r.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(r.on("end",o),r.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function c(l){if(f(),R.listenerCount(this,"error")===0)throw l}r.on("error",c),e.on("error",c);function f(){r.removeListener("data",n),e.removeListener("drain",i),r.removeListener("end",o),r.removeListener("close",s),r.removeListener("error",c),e.removeListener("error",c),r.removeListener("end",f),r.removeListener("close",f),e.removeListener("close",f)}return r.on("end",f),r.on("close",f),e.on("close",f),e.emit("pipe",r),e};class Xo extends R{constructor({resource:t}){super(),this.resource=t,this.client=t.client,this.stream=new Ff.ReadableStream({highWaterMark:this.client.parallelism*3,start:this._start.bind(this),pull:this._pull.bind(this),cancel:this._cancel.bind(this)})}build(){return this.stream.getReader()}async _start(t){this.controller=t,this.continuationToken=null,this.closeNextIteration=!1}async _pull(t){if(this.closeNextIteration){t.close();return}const r=await this.client.listObjects({prefix:`resource=${this.resource.name}`,continuationToken:this.continuationToken}),n=r?.Contents.map(i=>i.Key).map(i=>i.replace(this.client.config.keyPrefix,"")).map(i=>i.startsWith("/")?i.replace("/",""):i).map(i=>i.replace(`resource=${this.resource.name}/id=`,""));this.continuationToken=r.NextContinuationToken,this.enqueue(n),r.IsTruncated||(this.closeNextIteration=!0)}enqueue(t){t.forEach(r=>{this.controller.enqueue(r),this.emit("id",r)})}_cancel(t){console.warn("Stream cancelled",t)}}class Qo extends Xo{enqueue(t){this.controller.enqueue(t),this.emit("page",t)}}class es extends R{constructor({resource:t,batchSize:r=10,concurrency:n=5}){if(super(),!t)throw new Error("Resource is required for ResourceReader");this.resource=t,this.client=t.client,this.batchSize=r,this.concurrency=n,this.input=new Qo({resource:this.resource}),this.transform=new re({objectMode:!0,transform:this._transform.bind(this)}),this.input.on("data",i=>{this.transform.write(i)}),this.input.on("end",()=>{this.transform.end()}),this.input.on("error",i=>{this.emit("error",i)}),this.transform.on("data",i=>{this.emit("data",i)}),this.transform.on("end",()=>{this.emit("end")}),this.transform.on("error",i=>{this.emit("error",i)})}build(){return this}async _transform(t,r,n){try{await ce.PromisePool.for(t).withConcurrency(this.concurrency).handleError(async(i,a)=>{this.emit("error",i,a)}).process(async i=>{const a=await this.resource.get(i);return this.push(a),a}),n()}catch(i){n(i)}}resume(){this.input.resume()}}class ts extends R{constructor({resource:t,batchSize:r=10,concurrency:n=5}){super(),this.resource=t,this.client=t.client,this.batchSize=r,this.concurrency=n,this.buffer=[],this.writing=!1,this.writable=new q({objectMode:!0,write:this._write.bind(this)}),this.writable.on("finish",()=>{this.emit("finish")}),this.writable.on("error",i=>{this.emit("error",i)})}build(){return this}write(t){return this.buffer.push(t),this._maybeWrite(),!0}end(){this.ended=!0,this._maybeWrite()}async _maybeWrite(){if(!this.writing&&!(this.buffer.length===0&&!this.ended)){for(this.writing=!0;this.buffer.length>0;){const t=this.buffer.splice(0,this.batchSize);try{await ce.PromisePool.for(t).withConcurrency(this.concurrency).handleError(async(r,n)=>{this.emit("error",r,n)}).process(async r=>{await this.resource.insert(r)})}catch(r){this.emit("error",r)}}this.writing=!1,this.ended&&this.writable.emit("finish")}}async _write(t,r,n){n()}}function Pt(e){return new Promise((t,r)=>{const n=[];e.on("data",i=>n.push(i)),e.on("error",r),e.on("end",()=>t(Buffer.concat(n).toString("utf-8")))})}function It(e){typeof e!="string"&&(e=String(e));let t=0;for(let r=0;r<e.length;r++){const n=e.codePointAt(r);n<=127?t+=1:n<=2047?t+=2:n<=65535?t+=3:n<=1114111&&(t+=4,n>65535&&r++)}return t}function rs(e){return e==null?"":typeof e=="boolean"?e?"1":"0":typeof e=="number"?String(e):typeof e=="string"?e:Array.isArray(e)?e.length===0?"[]":e.map(t=>String(t)).join("|"):typeof e=="object"?JSON.stringify(e):String(e)}function oi(e){const t={};for(const[r,n]of Object.entries(e)){const i=rs(n),a=It(i);t[r]=a}return t}function Ke(e){const t=oi(e);return Object.values(t).reduce((r,n)=>r+n,0)}const Se=2048;async function Du({resource:e,data:t,mappedData:r}){const n=Ke(r);return n>Se&&e.emit("exceedsLimit",{operation:"insert",totalSize:n,limit:Se,excess:n-Se,data:t}),{mappedData:r,body:""}}async function Fu({resource:e,id:t,data:r,mappedData:n}){const i=Ke(n);return i>Se&&e.emit("exceedsLimit",{operation:"update",id:t,totalSize:i,limit:Se,excess:i-Se,data:r}),{mappedData:n,body:""}}async function Mu({resource:e,id:t,data:r,mappedData:n}){const i=Ke(n);return i>Se&&e.emit("exceedsLimit",{operation:"upsert",id:t,totalSize:i,limit:Se,excess:i-Se,data:r}),{mappedData:n,body:""}}async function Lu({resource:e,metadata:t,body:r}){return{metadata:t,body:r}}var ju=Object.freeze({__proto__:null,handleGet:Lu,handleInsert:Du,handleUpdate:Fu,handleUpsert:Mu});const pt=2048;async function Nu({resource:e,data:t,mappedData:r}){const n=Ke(r);if(n>pt)throw new Error(`S3 metadata size exceeds 2KB limit. Current size: ${n} bytes, limit: ${pt} bytes`);return{mappedData:r,body:""}}async function Bu({resource:e,id:t,data:r,mappedData:n}){const i=Ke(n);if(i>pt)throw new Error(`S3 metadata size exceeds 2KB limit. Current size: ${i} bytes, limit: ${pt} bytes`);return{mappedData:n,body:""}}async function Uu({resource:e,id:t,data:r,mappedData:n}){const i=Ke(n);if(i>pt)throw new Error(`S3 metadata size exceeds 2KB limit. Current size: ${i} bytes, limit: ${pt} bytes`);return{mappedData:n,body:""}}async function $u({resource:e,metadata:t,body:r}){return{metadata:t,body:r}}var zu=Object.freeze({__proto__:null,handleGet:$u,handleInsert:Nu,handleUpdate:Bu,handleUpsert:Uu});const ns=2048,is="...",as=It(is);async function Zu({resource:e,data:t,mappedData:r}){return si({resource:e,data:t,mappedData:r})}async function qu({resource:e,id:t,data:r,mappedData:n}){return si({resource:e,data:r,mappedData:n})}async function Hu({resource:e,id:t,data:r,mappedData:n}){return si({resource:e,data:r,mappedData:n})}async function Ku({resource:e,metadata:t,body:r}){return{metadata:t,body:r}}function si({resource:e,data:t,mappedData:r}){const n=oi(r),i=Object.entries(n).sort(([,s],[,c])=>s-c),a={};let o=0;for(const[s,c]of i){const f=ns-o;if(c<=f)a[s]=r[s],o+=c;else if(f>as){const l=f-as,d=rs(r[s]);let h="",u=0;for(let p=0;p<d.length;p++){const v=d[p],_=It(v);if(u+_<=l)h+=v,u+=_;else break}a[s]=h+is,o=ns;break}else break}return{mappedData:a,body:""}}var Wu=Object.freeze({__proto__:null,handleGet:Ku,handleInsert:Zu,handleUpdate:qu,handleUpsert:Hu});const os=2048,pr="$overflow",fi="true",Vu=It(pr)+It(fi);async function Gu({resource:e,data:t,mappedData:r}){return ci({resource:e,data:t,mappedData:r})}async function Yu({resource:e,id:t,data:r,mappedData:n}){return ci({resource:e,data:r,mappedData:n})}async function Ju({resource:e,id:t,data:r,mappedData:n}){return ci({resource:e,data:r,mappedData:n})}async function Xu({resource:e,metadata:t,body:r}){if(t[pr]===fi)try{const n=r?JSON.parse(r):{},i={...t};return delete i[pr],{metadata:{...i,...n},body:""}}catch{return{metadata:t,body:r}}return{metadata:t,body:r}}function ci({resource:e,data:t,mappedData:r}){if(Ke(r)<=os)return{mappedData:r,body:""};const i=os-Vu,a=oi(r),o=Object.entries(a).sort(([,d],[,h])=>d-h),s={},c={};let f=0;for(const[d,h]of o)f+h<=i?(s[d]=r[d],f+=h):c[d]=r[d];s[pr]=fi;const l=Object.keys(c).length>0?JSON.stringify(c):"";return{mappedData:s,body:l}}var Qu=Object.freeze({__proto__:null,handleGet:Xu,handleInsert:Gu,handleUpdate:Yu,handleUpsert:Ju});const ss={"user-management":ju,"enforce-limits":zu,"data-truncate":Wu,"body-overflow":Qu};function yt(e){const t=ss[e];if(!t)throw new Error(`Unknown behavior: ${e}. Available behaviors: ${Object.keys(ss).join(", ")}`);return t}const eh="user-management";class fs extends R{constructor({name:t,client:r,version:n="1",options:i={},attributes:a={},parallelism:o=10,passphrase:s="secret",observers:c=[],behavior:f=eh}){if(super(),this.name=t,this.client=r,this.version=n,this.behavior=f,this.observers=c,this.parallelism=o,this.passphrase=s??"secret",this.options={cache:!1,autoDecrypt:!0,timestamps:!1,partitions:{},paranoid:!0,...i},this.hooks={preInsert:[],afterInsert:[],preUpdate:[],afterUpdate:[],preDelete:[],afterDelete:[]},this.attributes=a||{},i.timestamps&&(this.attributes.createdAt="string|optional",this.attributes.updatedAt="string|optional",this.options.partitions.byCreatedDate||(this.options.partitions.byCreatedDate={fields:{createdAt:"date|maxlength:10"}}),this.options.partitions.byUpdatedDate||(this.options.partitions.byUpdatedDate={fields:{updatedAt:"date|maxlength:10"}})),this.schema=new nr({name:t,attributes:this.attributes,passphrase:s,version:this.version,options:this.options}),this.validatePartitions(),this.setupPartitionHooks(),i.hooks){for(const[l,d]of Object.entries(i.hooks))if(Array.isArray(d)&&this.hooks[l])for(const h of d)this.hooks[l].push(h.bind(this))}}export(){const t=this.schema.export();return t.behavior=this.behavior,t}updateAttributes(t){const r=this.attributes;return this.attributes=t,this.options.timestamps&&(t.createdAt="string|optional",t.updatedAt="string|optional",this.options.partitions.byCreatedDate||(this.options.partitions.byCreatedDate={fields:{createdAt:"date|maxlength:10"}}),this.options.partitions.byUpdatedDate||(this.options.partitions.byUpdatedDate={fields:{updatedAt:"date|maxlength:10"}})),this.schema=new nr({name:this.name,attributes:t,passphrase:this.passphrase,version:this.version,options:this.options}),this.validatePartitions(),this.setupPartitionHooks(),{oldAttributes:r,newAttributes:t}}addHook(t,r){this.hooks[t]&&this.hooks[t].push(r.bind(this))}async executeHooks(t,r){if(!this.hooks[t])return r;let n=r;for(const i of this.hooks[t])n=await i(n);return n}setupPartitionHooks(){const t=this.options.partitions;!t||Object.keys(t).length===0||(this.addHook("afterInsert",async r=>(await this.createPartitionReferences(r),r)),this.addHook("afterDelete",async r=>(await this.deletePartitionReferences(r),r)))}async validate(t){const r={original:L.cloneDeep(t),isValid:!1,errors:[]},n=await this.schema.validate(t,{mutateOriginal:!0});return n===!0?r.isValid=!0:r.errors=n,r.data=t,r}validatePartitions(){const t=this.options.partitions;if(!t||Object.keys(t).length===0)return;const r=Object.keys(this.attributes||{});for(const[n,i]of Object.entries(t))if(i.fields){for(const a of Object.keys(i.fields))if(!this.fieldExistsInAttributes(a))throw new Error(`Partition '${n}' uses field '${a}' which does not exist in resource version '${this.version}'. Available fields: ${r.join(", ")}. This version of resource does not have support for this partition.`)}}fieldExistsInAttributes(t){if(!t.includes("."))return Object.keys(this.attributes||{}).includes(t);const r=t.split(".");let n=this.attributes||{};for(const i of r){if(!n||typeof n!="object"||!(i in n))return!1;n=n[i]}return!0}applyPartitionRule(t,r){if(t==null)return t;let n=t;if(typeof r=="string"&&r.includes("maxlength:")){const i=r.match(/maxlength:(\d+)/);if(i){const a=parseInt(i[1]);typeof n=="string"&&n.length>a&&(n=n.substring(0,a))}}if(r.includes("date")){if(n instanceof Date)n=n.toISOString().split("T")[0];else if(typeof n=="string")try{if(n.includes("T")&&n.includes("Z"))n=n.split("T")[0];else{const i=new Date(n);isNaN(i.getTime())||(n=i.toISOString().split("T")[0])}}catch{}}return n}getResourceKey(t){return we(`resource=${this.name}`,`v=${this.version}`,`id=${t}`)}getPartitionKey(t,r,n){const i=this.options.partitions[t];if(!i)throw new Error(`Partition '${t}' not found`);const a=[],o=Object.entries(i.fields).sort(([s],[c])=>s.localeCompare(c));for(const[s,c]of o){const f=this.getNestedFieldValue(n,s),l=this.applyPartitionRule(f,c);if(l==null)return null;a.push(`${s}=${l}`)}return a.length===0?null:we(`resource=${this.name}`,`partition=${t}`,...a,`id=${r}`)}getNestedFieldValue(t,r){if(!r.includes("."))return t[r];const n=r.split(".");let i=t;for(const a of n){if(i==null||typeof i!="object")return;i=i[a]}return i}async insert({id:t,...r}){this.options.timestamps&&(r.createdAt=new Date().toISOString(),r.updatedAt=new Date().toISOString());const n=await this.executeHooks("preInsert",r),{errors:i,isValid:a,data:o}=await this.validate(n);if(!a)throw new Jt({bucket:this.client.config.bucket,resourceName:this.name,attributes:n,validation:i});!t&&t!==0&&(t=zi());const s=await this.schema.mapper(o),c=yt(this.behavior),{mappedData:f,body:l}=await c.handleInsert({resource:this,data:o,mappedData:s}),d=this.getResourceKey(t);await this.client.putObject({metadata:f,key:d,body:l});const h=L.merge({id:t},o);return await this.executeHooks("afterInsert",h),this.emit("insert",h),h}async get(t){const r=this.getResourceKey(t),n=await this.client.headObject(r),i=this.extractVersionFromKey(r)||this.version;let o=await(await this.getSchemaForVersion(i)).unmapper(n.Metadata);const s=yt(this.behavior);let c="";if(n.ContentLength>0)try{const d=await this.client.getObject(r);c=await Pt(d.Body)}catch{c=""}const{metadata:f}=await s.handleGet({resource:this,metadata:o,body:c});let l=f;return l.id=t,l._contentLength=n.ContentLength,l._lastModified=n.LastModified,l._hasContent=n.ContentLength>0,l._mimeType=n.ContentType||null,n.VersionId&&(l._versionId=n.VersionId),n.Expiration&&(l._expiresAt=n.Expiration),l._definitionHash=this.getDefinitionHash(),this.emit("get",l),l}async exists(t){try{const r=this.getResourceKey(t);return await this.client.headObject(r),!0}catch{return!1}}async update(t,r){const n=await this.get(t);this.options.timestamps&&(r.updatedAt=new Date().toISOString());const i=await this.executeHooks("preUpdate",r),a=L.merge(n,i);delete a.id;const{isValid:o,errors:s,data:c}=await this.validate(a);if(!o)throw new Jt({bucket:this.client.bucket,resourceName:this.name,attributes:i,validation:s});const f=await this.schema.mapper(c),l=yt(this.behavior),{mappedData:d,body:h}=await l.handleUpdate({resource:this,id:t,data:c,mappedData:f}),u=this.getResourceKey(t);let p,v=h;if(h===""&&this.behavior!=="body-overflow")try{const _=await this.client.getObject(u);if(_.ContentLength>0){const w=Buffer.from(await _.Body.transformToByteArray()),x=w.toString();try{JSON.parse(x)}catch{v=w,p=_.ContentType}}}catch{}return await this.client.putObject({key:u,body:v,contentType:p,metadata:d}),c.id=t,await this.executeHooks("afterUpdate",c),await this.updatePartitionReferences(c),this.emit("update",i,c),c}async delete(t){let r;try{r=await this.get(t)}catch{r={id:t}}await this.executeHooks("preDelete",r);const n=this.getResourceKey(t),i=await this.client.deleteObject(n);return await this.executeHooks("afterDelete",r),this.emit("delete",t),i}async upsert({id:t,...r}){return await this.exists(t)?this.update(t,r):this.insert({id:t,...r})}async count({partition:t=null,partitionValues:r={}}={}){let n;if(t&&Object.keys(r).length>0){const a=this.options.partitions[t];if(!a)throw new Error(`Partition '${t}' not found`);const o=[],s=Object.entries(a.fields).sort(([c],[f])=>c.localeCompare(f));for(const[c,f]of s){const l=r[c];if(l!=null){const d=this.applyPartitionRule(l,f);o.push(`${c}=${d}`)}}o.length>0?n=`resource=${this.name}/partition=${t}/${o.join("/")}`:n=`resource=${this.name}/partition=${t}`}else n=`resource=${this.name}/v=${this.version}`;const i=await this.client.count({prefix:n});return this.emit("count",i),i}async insertMany(t){const{results:r}=await ce.PromisePool.for(t).withConcurrency(this.parallelism).handleError(async(n,i)=>{this.emit("error",n,i),this.observers.map(a=>a.emit("error",this.name,n,i))}).process(async n=>await this.insert(n));return this.emit("insertMany",t.length),r}async deleteMany(t){const r=L.chunk(t.map(i=>this.getResourceKey(i)),1e3),{results:n}=await ce.PromisePool.for(r).withConcurrency(this.parallelism).handleError(async(i,a)=>{this.emit("error",i,a),this.observers.map(o=>o.emit("error",this.name,i,a))}).process(async i=>{const a=await this.client.deleteObjects(i);return i.forEach(o=>{const c=o.split("/").find(l=>l.startsWith("id=")),f=c?c.replace("id=",""):null;f&&(this.emit("deleted",f),this.observers.map(l=>l.emit("deleted",this.name,f)))}),a});return this.emit("deleteMany",t.length),n}async deleteAll(){if(this.options.paranoid!==!1)throw new Error(`deleteAll() is a dangerous operation and requires paranoid: false option. Current paranoid setting: ${this.options.paranoid}`);const t=`resource=${this.name}/v=${this.version}`,r=await this.client.deleteAll({prefix:t});return this.emit("deleteAll",{version:this.version,prefix:t,deletedCount:r}),{deletedCount:r,version:this.version}}async deleteAllData(){if(this.options.paranoid!==!1)throw new Error(`deleteAllData() is a dangerous operation and requires paranoid: false option. Current paranoid setting: ${this.options.paranoid}`);const t=`resource=${this.name}`,r=await this.client.deleteAll({prefix:t});return this.emit("deleteAllData",{resource:this.name,prefix:t,deletedCount:r}),{deletedCount:r,resource:this.name}}async listIds({partition:t=null,partitionValues:r={}}={}){let n;if(t&&Object.keys(r).length>0){const o=this.options.partitions[t];if(!o)throw new Error(`Partition '${t}' not found`);const s=[],c=Object.entries(o.fields).sort(([f],[l])=>f.localeCompare(l));for(const[f,l]of c){const d=r[f];if(d!=null){const h=this.applyPartitionRule(d,l);s.push(`${f}=${h}`)}}s.length>0?n=`resource=${this.name}/partition=${t}/${s.join("/")}`:n=`resource=${this.name}/partition=${t}`}else n=`resource=${this.name}/v=${this.version}`;const a=(await this.client.getAllKeys({prefix:n})).map(o=>{const c=o.split("/").find(f=>f.startsWith("id="));return c?c.replace("id=",""):null}).filter(Boolean);return this.emit("listIds",a.length),a}async listByPartition({partition:t=null,partitionValues:r={}}={},n={}){const{limit:i,offset:a=0}=n;if(!t){let v=(await this.listIds({partition:t,partitionValues:r})).slice(a);i&&(v=v.slice(0,i));const{results:_}=await ce.PromisePool.for(v).withConcurrency(this.parallelism).process(async w=>await this.get(w));return this.emit("listByPartition",{partition:t,partitionValues:r,count:_.length}),_}const o=this.options.partitions[t];if(!o)throw new Error(`Partition '${t}' not found`);const s=[],c=Object.entries(o.fields).sort(([p],[v])=>p.localeCompare(v));for(const[p,v]of c){const _=r[p];if(_!=null){const w=this.applyPartitionRule(_,v);s.push(`${p}=${w}`)}}let f;s.length>0?f=`resource=${this.name}/partition=${t}/${s.join("/")}`:f=`resource=${this.name}/partition=${t}`;let h=(await this.client.getAllKeys({prefix:f})).map(p=>{const _=p.split("/").find(w=>w.startsWith("id="));return _?_.replace("id=",""):null}).filter(Boolean).slice(a);i&&(h=h.slice(0,i));const{results:u}=await ce.PromisePool.for(h).withConcurrency(this.parallelism).process(async p=>await this.getFromPartition(p,t,r));return this.emit("listByPartition",{partition:t,partitionValues:r,count:u.length}),u}async getMany(t){const{results:r}=await ce.PromisePool.for(t).withConcurrency(this.client.parallelism).process(async n=>{this.emit("id",n);const i=await this.get(n);return this.emit("data",i),i});return this.emit("getMany",t.length),r}async getAll(){let t=await this.listIds();if(t.length===0)return[];const{results:r}=await ce.PromisePool.for(t).withConcurrency(this.client.parallelism).process(async n=>await this.get(n));return this.emit("getAll",r.length),r}async page(t=0,r=100,{partition:n=null,partitionValues:i={}}={}){const a=await this.listIds({partition:n,partitionValues:i}),o=a.length,s=Math.ceil(o/r),c=a.slice(t*r,(t+1)*r),l={items:await Promise.all(c.map(d=>this.get(d))),totalItems:o,page:t,pageSize:r,totalPages:s};return this.emit("page",l),l}readable(){return new es({resource:this}).build()}writable(){return new ts({resource:this}).build()}async setContent(t,r,n="application/octet-stream"){if(!Buffer.isBuffer(r))throw new Error("Content must be a Buffer");const i=this.getResourceKey(t);let a={};try{a=(await this.client.headObject(i)).Metadata||{}}catch{}const o=await this.client.putObject({key:i,body:r,contentType:n,metadata:a});return this.emit("setContent",t,r.length,n),o}async content(t){const r=this.getResourceKey(t);try{const n=await this.client.getObject(r),i=Buffer.from(await n.Body.transformToByteArray()),a=n.ContentType||null;return this.emit("content",t,i.length,a),{buffer:i,contentType:a}}catch(n){if(n.name==="NoSuchKey")return{buffer:null,contentType:null};throw n}}async hasContent(t){const r=this.getResourceKey(t);try{return(await this.client.headObject(r)).ContentLength>0}catch{return!1}}async deleteContent(t){const r=this.getResourceKey(t),i=(await this.client.headObject(r)).Metadata||{},a=await this.client.putObject({key:r,body:"",metadata:i});return this.emit("deleteContent",t),a}getDefinitionHash(){const t=this.schema.export(),r=oo(t);return`sha256:${Ni.createHash("sha256").update(r).digest("hex")}`}extractVersionFromKey(t){const n=t.split("/").find(i=>i.startsWith("v="));return n?n.replace("v=",""):null}async getSchemaForVersion(t){return this.schema}async createPartitionReferences(t){const r=this.options.partitions;if(!(!r||Object.keys(r).length===0))for(const[n,i]of Object.entries(r)){const a=this.getPartitionKey(n,t.id,t);if(a){const o=await this.schema.mapper(t),s=yt(this.behavior),{mappedData:c,body:f}=await s.handleInsert({resource:this,data:t,mappedData:o}),l={...c,_version:this.version};await this.client.putObject({key:a,metadata:l,body:f})}}}async deletePartitionReferences(t){const r=this.options.partitions;if(!r||Object.keys(r).length===0)return;const n=[];for(const[i,a]of Object.entries(r)){const o=this.getPartitionKey(i,t.id,t);o&&n.push(o)}if(n.length>0)try{await this.client.deleteObjects(n)}catch(i){console.warn("Some partition objects could not be deleted:",i.message)}}async query(t={}){const r=await this.getAll();return Object.keys(t).length===0?r:r.filter(n=>Object.entries(t).every(([i,a])=>n[i]===a))}async updatePartitionReferences(t){const r=this.options.partitions;if(!(!r||Object.keys(r).length===0))for(const[n,i]of Object.entries(r)){const a=this.getPartitionKey(n,t.id,t);if(a){const o=await this.schema.mapper(t),s=yt(this.behavior),{mappedData:c,body:f}=await s.handleUpdate({resource:this,id:t.id,data:t,mappedData:o}),l={...c,_version:this.version};try{await this.client.putObject({key:a,metadata:l,body:f})}catch(d){console.warn(`Partition object could not be updated for ${n}:`,d.message)}}}}async getFromPartition(t,r,n={}){const i=this.options.partitions[r];if(!i)throw new Error(`Partition '${r}' not found`);const a=[],o=Object.entries(i.fields).sort(([_],[w])=>_.localeCompare(w));for(const[_,w]of o){const x=n[_];if(x!=null){const S=this.applyPartitionRule(x,w);a.push(`${_}=${S}`)}}if(a.length===0)throw new Error(`No partition values provided for partition '${r}'`);const s=we(`resource=${this.name}`,`partition=${r}`,...a,`id=${t}`),c=await this.client.headObject(s),f=c.Metadata?._version||this.version;let d=await(await this.getSchemaForVersion(f)).unmapper(c.Metadata);const h=yt(this.behavior);let u="";if(c.ContentLength>0)try{const _=await this.client.getObject(s);u=await Pt(_.Body)}catch{u=""}const{metadata:p}=await h.handleGet({resource:this,metadata:d,body:u});let v=p;return v.id=t,v._contentLength=c.ContentLength,v._lastModified=c.LastModified,v._hasContent=c.ContentLength>0,v._mimeType=c.ContentType||null,v._partition=r,v._partitionValues=n,c.VersionId&&(v._versionId=c.VersionId),c.Expiration&&(v._expiresAt=c.Expiration),v._definitionHash=this.getDefinitionHash(),this.emit("getFromPartition",v),v}}class cs extends R{constructor(t){super(),this.version="1",this.s3dbVersion=(()=>{try{return"4.0.2"}catch{return"latest"}})(),this.resources={},this.savedMetadata=null,this.options=t,this.verbose=t.verbose||!1,this.parallelism=parseInt(t.parallelism+"")||10,this.plugins=t.plugins||[],this.cache=t.cache,this.passphrase=t.passphrase||"secret",this.client=t.client||new ta({verbose:this.verbose,parallelism:this.parallelism,connectionString:t.connectionString}),this.bucket=this.client.bucket,this.keyPrefix=this.client.keyPrefix}async connect(){await this.startPlugins();let t=null;if(await this.client.exists("s3db.json")){const n=await this.client.getObject("s3db.json");t=JSON.parse(await Pt(n?.Body))}else t=this.blankMetadataStructure(),await this.uploadMetadataFile();this.savedMetadata=t;const r=this.detectDefinitionChanges(t);for(const[n,i]of Object.entries(t.resources||{})){const a=i.currentVersion||"v0",o=i.versions?.[a];o&&(this.resources[n]=new fs({name:n,client:this.client,version:a,options:{...o.options,partitions:i.partitions||o.options?.partitions||{}},attributes:o.attributes,behavior:o.behavior||"user-management",parallelism:this.parallelism,passphrase:this.passphrase,observers:[this]}))}r.length>0&&this.emit("resourceDefinitionsChanged",{changes:r,metadata:this.savedMetadata}),this.emit("connected",new Date)}detectDefinitionChanges(t){const r=[];for(const[n,i]of Object.entries(this.resources)){const a=this.generateDefinitionHash(i.export()),o=t.resources?.[n];if(!o)r.push({type:"new",resourceName:n,currentHash:a,savedHash:null});else{const s=o.currentVersion||"v0",f=o.versions?.[s]?.hash;f!==a&&r.push({type:"changed",resourceName:n,currentHash:a,savedHash:f,fromVersion:s,toVersion:this.getNextVersion(o.versions)})}}for(const[n,i]of Object.entries(t.resources||{}))if(!this.resources[n]){const a=i.currentVersion||"v0",o=i.versions?.[a];r.push({type:"deleted",resourceName:n,currentHash:null,savedHash:o?.hash,deletedVersion:a})}return r}generateDefinitionHash(t){const r=oo(t);return`sha256:${Ni.createHash("sha256").update(r).digest("hex")}`}getNextVersion(t={}){const r=Object.keys(t).filter(i=>i.startsWith("v")).map(i=>parseInt(i.substring(1))).filter(i=>!isNaN(i));return`v${(r.length>0?Math.max(...r):-1)+1}`}async startPlugins(){const t=this;if(!L.isEmpty(this.plugins)){const r=this.plugins.map(a=>L.isFunction(a)?new a(this):a),n=r.map(async a=>{a.beforeSetup&&await a.beforeSetup(),await a.setup(t),a.afterSetup&&await a.afterSetup()});await Promise.all(n);const i=r.map(async a=>{a.beforeStart&&await a.beforeStart(),await a.start(),a.afterStart&&await a.afterStart()});await Promise.all(i)}}async uploadMetadataFile(){const t={version:this.version,s3dbVersion:this.s3dbVersion,lastUpdated:new Date().toISOString(),resources:{}};Object.entries(this.resources).forEach(([r,n])=>{const i=n.export(),a=this.generateDefinitionHash(i),o=this.savedMetadata?.resources?.[r],s=o?.currentVersion||"v0",c=o?.versions?.[s];let f,l;!c||c.hash!==a?(f=this.getNextVersion(o?.versions),l=!0):(f=s,l=!1),t.resources[r]={currentVersion:f,partitions:i.options?.partitions||{},versions:{...o?.versions,[f]:{hash:a,attributes:i.attributes,options:i.options,behavior:i.behavior||"user-management",createdAt:l?new Date().toISOString():c?.createdAt}}},n.version!==f&&(n.version=f,n.emit("versionUpdated",{oldVersion:s,newVersion:f}))}),await this.client.putObject({key:"s3db.json",body:JSON.stringify(t,null,2),contentType:"application/json"}),this.savedMetadata=t,this.emit("metadataUploaded",t)}blankMetadataStructure(){return{version:"1",s3dbVersion:this.s3dbVersion,resources:{}}}async createResource({name:t,attributes:r,options:n={},behavior:i="user-management"}){if(this.resources[t]){const c=this.resources[t];return Object.assign(c.options,{cache:this.cache,...n}),i&&(c.behavior=i),c.updateAttributes(r),await this.uploadMetadataFile(),this.emit("s3db.resourceUpdated",t),c}const o=this.savedMetadata?.resources?.[t]?.currentVersion||"v0",s=new fs({name:t,attributes:r,behavior:i,observers:[this],client:this.client,version:o,options:{cache:this.cache,...n}});return this.resources[t]=s,await this.uploadMetadataFile(),this.emit("s3db.resourceCreated",t),s}resource(t){return this.resources[t]?this.resources[t]:Promise.reject(`resource ${t} does not exist`)}async listResources(){return Object.keys(this.resources).map(t=>({name:t}))}async getResource(t){if(!this.resources[t])throw new Error(`Resource not found: ${t}`);return this.resources[t]}get config(){return{version:this.version,s3dbVersion:this.s3dbVersion,bucket:this.bucket,keyPrefix:this.keyPrefix,parallelism:this.parallelism,verbose:this.verbose}}isConnected(){return!!this.savedMetadata}}class th extends cs{}class li extends R{constructor(t={}){super(),this.config=t}async _set(t,r){}async _get(t){}async _del(t){}async _clear(t){}validateKey(t){if(t==null||typeof t!="string"||!t)throw new Error("Invalid key")}async set(t,r){return this.validateKey(t),await this._set(t,r),this.emit("set",r),r}async get(t){this.validateKey(t);const r=await this._get(t);return this.emit("get",r),r}async del(t){this.validateKey(t);const r=await this._del(t);return this.emit("delete",r),r}async delete(t){return this.del(t)}async clear(){const t=await this._clear();return this.emit("clear",t),t}}class rh extends li{constructor(t={}){super(t),this.cache={},this.meta={},this.maxSize=t.maxSize||0,this.ttl=t.ttl||0}async _set(t,r){if(this.maxSize>0&&Object.keys(this.cache).length>=this.maxSize){const n=Object.entries(this.meta).sort((i,a)=>i[1].ts-a[1].ts)[0]?.[0];n&&(delete this.cache[n],delete this.meta[n])}return this.cache[t]=r,this.meta[t]={ts:Date.now()},r}async _get(t){if(!Object.prototype.hasOwnProperty.call(this.cache,t))return null;if(this.ttl>0){const r=Date.now(),n=this.meta[t];if(n&&r-n.ts>this.ttl*1e3)return delete this.cache[t],delete this.meta[t],null}return this.cache[t]}async _del(t){return delete this.cache[t],delete this.meta[t],!0}async _clear(){return this.cache={},this.meta={},!0}async size(){return Object.keys(this.cache).length}async keys(){return Object.keys(this.cache)}}var ls={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function nh(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}function Ae(e,t,r,n,i){if(t.subarray&&e.subarray){e.set(t.subarray(r,r+n),i);return}for(var a=0;a<n;a++)e[i+a]=t[r+a]}var yr=Uint8Array,ae=Uint16Array,vr=Int32Array,ih=4,us=0,hs=1,ah=2;function vt(e){for(var t=e.length;--t>=0;)e[t]=0}var oh=0,ds=1,sh=2,fh=3,ch=258,ui=29,Ct=256,Dt=Ct+1+ui,gt=30,hi=19,ps=2*Dt+1,We=15,di=16,lh=7,pi=256,ys=16,vs=17,gs=18,yi=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],gr=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],uh=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],_s=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],hh=512,ke=new Array((Dt+2)*2);vt(ke);var Ft=new Array(gt*2);vt(Ft);var Mt=new Array(hh);vt(Mt);var Lt=new Array(ch-fh+1);vt(Lt);var vi=new Array(ui);vt(vi);var _r=new Array(gt);vt(_r);function gi(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}var ws,bs,ms;function _i(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Es(e){return e<256?Mt[e]:Mt[256+(e>>>7)]}function jt(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function X(e,t,r){e.bi_valid>di-r?(e.bi_buf|=t<<e.bi_valid&65535,jt(e,e.bi_buf),e.bi_buf=t>>di-e.bi_valid,e.bi_valid+=r-di):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function pe(e,t,r){X(e,r[t*2],r[t*2+1])}function xs(e,t){var r=0;do r|=e&1,e>>>=1,r<<=1;while(--t>0);return r>>>1}function dh(e){e.bi_valid===16?(jt(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function ph(e,t){var r=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,f,l,d,h,u,p,v=0;for(h=0;h<=We;h++)e.bl_count[h]=0;for(r[e.heap[e.heap_max]*2+1]=0,f=e.heap_max+1;f<ps;f++)l=e.heap[f],h=r[r[l*2+1]*2+1]+1,h>c&&(h=c,v++),r[l*2+1]=h,!(l>n)&&(e.bl_count[h]++,u=0,l>=s&&(u=o[l-s]),p=r[l*2],e.opt_len+=p*(h+u),a&&(e.static_len+=p*(i[l*2+1]+u)));if(v!==0){do{for(h=c-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,v-=2}while(v>0);for(h=c;h!==0;h--)for(l=e.bl_count[h];l!==0;)d=e.heap[--f],!(d>n)&&(r[d*2+1]!==h&&(e.opt_len+=(h-r[d*2+1])*r[d*2],r[d*2+1]=h),l--)}}function Ss(e,t,r){var n=new Array(We+1),i=0,a,o;for(a=1;a<=We;a++)n[a]=i=i+r[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=xs(n[s]++,s))}}function yh(){var e,t,r,n,i,a=new Array(We+1);for(r=0,n=0;n<ui-1;n++)for(vi[n]=r,e=0;e<1<<yi[n];e++)Lt[r++]=n;for(Lt[r-1]=n,i=0,n=0;n<16;n++)for(_r[n]=i,e=0;e<1<<gr[n];e++)Mt[i++]=n;for(i>>=7;n<gt;n++)for(_r[n]=i<<7,e=0;e<1<<gr[n]-7;e++)Mt[256+i++]=n;for(t=0;t<=We;t++)a[t]=0;for(e=0;e<=143;)ke[e*2+1]=8,e++,a[8]++;for(;e<=255;)ke[e*2+1]=9,e++,a[9]++;for(;e<=279;)ke[e*2+1]=7,e++,a[7]++;for(;e<=287;)ke[e*2+1]=8,e++,a[8]++;for(Ss(ke,Dt+1,a),e=0;e<gt;e++)Ft[e*2+1]=5,Ft[e*2]=xs(e,5);ws=new gi(ke,yi,Ct+1,Dt,We),bs=new gi(Ft,gr,0,gt,We),ms=new gi(new Array(0),uh,0,hi,lh)}function As(e){var t;for(t=0;t<Dt;t++)e.dyn_ltree[t*2]=0;for(t=0;t<gt;t++)e.dyn_dtree[t*2]=0;for(t=0;t<hi;t++)e.bl_tree[t*2]=0;e.dyn_ltree[pi*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function ks(e){e.bi_valid>8?jt(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function vh(e,t,r,n){ks(e),jt(e,r),jt(e,~r),Ae(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}function Rs(e,t,r,n){var i=t*2,a=r*2;return e[i]<e[a]||e[i]===e[a]&&n[t]<=n[r]}function wi(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&Rs(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Rs(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function Os(e,t,r){var n,i,a=0,o,s;if(e.last_lit!==0)do n=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,n===0?pe(e,i,t):(o=Lt[i],pe(e,o+Ct+1,t),s=yi[o],s!==0&&(i-=vi[o],X(e,i,s)),n--,o=Es(n),pe(e,o,r),s=gr[o],s!==0&&(n-=_r[o],X(e,n,s)));while(a<e.last_lit);pe(e,pi,t)}function bi(e,t){var r=t.dyn_tree,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,c=-1,f;for(e.heap_len=0,e.heap_max=ps,o=0;o<a;o++)r[o*2]!==0?(e.heap[++e.heap_len]=c=o,e.depth[o]=0):r[o*2+1]=0;for(;e.heap_len<2;)f=e.heap[++e.heap_len]=c<2?++c:0,r[f*2]=1,e.depth[f]=0,e.opt_len--,i&&(e.static_len-=n[f*2+1]);for(t.max_code=c,o=e.heap_len>>1;o>=1;o--)wi(e,r,o);f=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],wi(e,r,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,r[f*2]=r[o*2]+r[s*2],e.depth[f]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,r[o*2+1]=r[s*2+1]=f,e.heap[1]=f++,wi(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ph(e,t),Ss(r,c,e.bl_count)}function Ts(e,t,r){var n,i=-1,a,o=t[0*2+1],s=0,c=7,f=4;for(o===0&&(c=138,f=3),t[(r+1)*2+1]=65535,n=0;n<=r;n++)a=o,o=t[(n+1)*2+1],!(++s<c&&a===o)&&(s<f?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[ys*2]++):s<=10?e.bl_tree[vs*2]++:e.bl_tree[gs*2]++,s=0,i=a,o===0?(c=138,f=3):a===o?(c=6,f=3):(c=7,f=4))}function Ps(e,t,r){var n,i=-1,a,o=t[0*2+1],s=0,c=7,f=4;for(o===0&&(c=138,f=3),n=0;n<=r;n++)if(a=o,o=t[(n+1)*2+1],!(++s<c&&a===o)){if(s<f)do pe(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(pe(e,a,e.bl_tree),s--),pe(e,ys,e.bl_tree),X(e,s-3,2)):s<=10?(pe(e,vs,e.bl_tree),X(e,s-3,3)):(pe(e,gs,e.bl_tree),X(e,s-11,7));s=0,i=a,o===0?(c=138,f=3):a===o?(c=6,f=3):(c=7,f=4)}}function gh(e){var t;for(Ts(e,e.dyn_ltree,e.l_desc.max_code),Ts(e,e.dyn_dtree,e.d_desc.max_code),bi(e,e.bl_desc),t=hi-1;t>=3&&e.bl_tree[_s[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function _h(e,t,r,n){var i;for(X(e,t-257,5),X(e,r-1,5),X(e,n-4,4),i=0;i<n;i++)X(e,e.bl_tree[_s[i]*2+1],3);Ps(e,e.dyn_ltree,t-1),Ps(e,e.dyn_dtree,r-1)}function wh(e){var t=4093624447,r;for(r=0;r<=31;r++,t>>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return us;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return hs;for(r=32;r<Ct;r++)if(e.dyn_ltree[r*2]!==0)return hs;return us}var Is=!1;function bh(e){Is||(yh(),Is=!0),e.l_desc=new _i(e.dyn_ltree,ws),e.d_desc=new _i(e.dyn_dtree,bs),e.bl_desc=new _i(e.bl_tree,ms),e.bi_buf=0,e.bi_valid=0,As(e)}function Cs(e,t,r,n){X(e,(oh<<1)+(n?1:0),3),vh(e,t,r)}function mh(e){X(e,ds<<1,3),pe(e,pi,ke),dh(e)}function Eh(e,t,r,n){var i,a,o=0;e.level>0?(e.strm.data_type===ah&&(e.strm.data_type=wh(e)),bi(e,e.l_desc),bi(e,e.d_desc),o=gh(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=r+5,r+4<=i&&t!==-1?Cs(e,t,r,n):e.strategy===ih||a===i?(X(e,(ds<<1)+(n?1:0),3),Os(e,ke,Ft)):(X(e,(sh<<1)+(n?1:0),3),_h(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),Os(e,e.dyn_ltree,e.dyn_dtree)),As(e),n&&ks(e)}function Fe(e,t,r){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=r&255,e.last_lit++,t===0?e.dyn_ltree[r*2]++:(e.matches++,t--,e.dyn_ltree[(Lt[r]+Ct+1)*2]++,e.dyn_dtree[Es(t)*2]++),e.last_lit===e.lit_bufsize-1}function mi(e,t,r,n){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;r!==0;){o=r>2e3?2e3:r,r-=o;do i=i+t[n++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}function xh(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t}var Sh=xh();function Z(e,t,r,n){var i=Sh,a=n+r;e^=-1;for(var o=n;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var Ve=0,Ah=1,kh=3,Me=4,Ds=5,Le=0,Fs=1,je=-2,Rh=-3,Ei=-5,Oh=-1,Th=1,wr=2,Ph=3,Ih=4,Ch=2,xi=8,Dh=9,Fh=29,Mh=256,Si=Mh+1+Fh,Lh=30,jh=19,Nh=2*Si+1,Bh=15,C=3,Ne=258,se=Ne+C+1,Uh=32,Ai=42,ki=69,br=73,mr=91,Er=103,Ge=113,Nt=666,$=1,Bt=2,Ye=3,_t=4,$h=3;function Be(e,t){return e.msg=ls[t],t}function Ms(e){return(e<<1)-(e>4?9:0)}function Je(e){for(var t=e.length;--t>=0;)e[t]=0}function Ue(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(Ae(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,t.pending===0&&(t.pending_out=0))}function H(e,t){Eh(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ue(e.strm)}function I(e,t){e.pending_buf[e.pending++]=t}function Ut(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function zh(e,t,r,n){var i=e.avail_in;return i>n&&(i=n),i===0?0:(e.avail_in-=i,Ae(t,e.input,e.next_in,i,r),e.state.wrap===1?e.adler=mi(e.adler,t,i,r):e.state.wrap===2&&(e.adler=Z(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)}function Ls(e,t){var r=e.max_chain_length,n=e.strstart,i,a,o=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-se?e.strstart-(e.w_size-se):0,f=e.window,l=e.w_mask,d=e.prev,h=e.strstart+Ne,u=f[n+o-1],p=f[n+o];e.prev_length>=e.good_match&&(r>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(f[i+o]!==p||f[i+o-1]!==u||f[i]!==f[n]||f[++i]!==f[n+1])){n+=2,i++;do;while(f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&n<h);if(a=Ne-(h-n),n=h-Ne,a>o){if(e.match_start=t,o=a,a>=s)break;u=f[n+o-1],p=f[n+o]}}while((t=d[t&l])>c&&--r!==0);return o<=e.lookahead?o:e.lookahead}function $t(e){var t=e.w_size,r,n,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-se)){Ae(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,r=n;do i=e.head[--r],e.head[r]=i>=t?i-t:0;while(--n);n=t,r=n;do i=e.prev[--r],e.prev[r]=i>=t?i-t:0;while(--n);a+=t}if(e.strm.avail_in===0)break;if(n=zh(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=C)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+C-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<C)););}while(e.lookahead<se&&e.strm.avail_in!==0)}function Zh(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if($t(e),e.lookahead===0&&t===Ve)return $;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((e.strstart===0||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,H(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-se&&(H(e,!1),e.strm.avail_out===0))return $}return e.insert=0,t===Me?(H(e,!0),e.strm.avail_out===0?Ye:_t):(e.strstart>e.block_start&&(H(e,!1),e.strm.avail_out===0),$)}function Ri(e,t){for(var r,n;;){if(e.lookahead<se){if($t(e),e.lookahead<se&&t===Ve)return $;if(e.lookahead===0)break}if(r=0,e.lookahead>=C&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),r!==0&&e.strstart-r<=e.w_size-se&&(e.match_length=Ls(e,r)),e.match_length>=C)if(n=Fe(e,e.strstart-e.match_start,e.match_length-C),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=C){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=Fe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(H(e,!1),e.strm.avail_out===0))return $}return e.insert=e.strstart<C-1?e.strstart:C-1,t===Me?(H(e,!0),e.strm.avail_out===0?Ye:_t):e.last_lit&&(H(e,!1),e.strm.avail_out===0)?$:Bt}function wt(e,t){for(var r,n,i;;){if(e.lookahead<se){if($t(e),e.lookahead<se&&t===Ve)return $;if(e.lookahead===0)break}if(r=0,e.lookahead>=C&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=C-1,r!==0&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-se&&(e.match_length=Ls(e,r),e.match_length<=5&&(e.strategy===Th||e.match_length===C&&e.strstart-e.match_start>4096)&&(e.match_length=C-1)),e.prev_length>=C&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-C,n=Fe(e,e.strstart-1-e.prev_match,e.prev_length-C),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=C-1,e.strstart++,n&&(H(e,!1),e.strm.avail_out===0))return $}else if(e.match_available){if(n=Fe(e,0,e.window[e.strstart-1]),n&&H(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return $}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=Fe(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<C-1?e.strstart:C-1,t===Me?(H(e,!0),e.strm.avail_out===0?Ye:_t):e.last_lit&&(H(e,!1),e.strm.avail_out===0)?$:Bt}function qh(e,t){for(var r,n,i,a,o=e.window;;){if(e.lookahead<=Ne){if($t(e),e.lookahead<=Ne&&t===Ve)return $;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=C&&e.strstart>0&&(i=e.strstart-1,n=o[i],n===o[++i]&&n===o[++i]&&n===o[++i])){a=e.strstart+Ne;do;while(n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&i<a);e.match_length=Ne-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=C?(r=Fe(e,1,e.match_length-C),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=Fe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(H(e,!1),e.strm.avail_out===0))return $}return e.insert=0,t===Me?(H(e,!0),e.strm.avail_out===0?Ye:_t):e.last_lit&&(H(e,!1),e.strm.avail_out===0)?$:Bt}function Hh(e,t){for(var r;;){if(e.lookahead===0&&($t(e),e.lookahead===0)){if(t===Ve)return $;break}if(e.match_length=0,r=Fe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(H(e,!1),e.strm.avail_out===0))return $}return e.insert=0,t===Me?(H(e,!0),e.strm.avail_out===0?Ye:_t):e.last_lit&&(H(e,!1),e.strm.avail_out===0)?$:Bt}function ye(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}var bt;bt=[new ye(0,0,0,0,Zh),new ye(4,4,8,4,Ri),new ye(4,5,16,8,Ri),new ye(4,6,32,32,Ri),new ye(4,4,16,16,wt),new ye(8,16,32,32,wt),new ye(8,16,128,128,wt),new ye(8,32,128,256,wt),new ye(32,128,258,1024,wt),new ye(32,258,258,4096,wt)];function Kh(e){e.window_size=2*e.w_size,Je(e.head),e.max_lazy_match=bt[e.level].max_lazy,e.good_match=bt[e.level].good_length,e.nice_match=bt[e.level].nice_length,e.max_chain_length=bt[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=C-1,e.match_available=0,e.ins_h=0}function Wh(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=xi,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new ae(Nh*2),this.dyn_dtree=new ae((2*Lh+1)*2),this.bl_tree=new ae((2*jh+1)*2),Je(this.dyn_ltree),Je(this.dyn_dtree),Je(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new ae(Bh+1),this.heap=new ae(2*Si+1),Je(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new ae(2*Si+1),Je(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Vh(e){var t;return!e||!e.state?Be(e,je):(e.total_in=e.total_out=0,e.data_type=Ch,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Ai:Ge,e.adler=t.wrap===2?0:1,t.last_flush=Ve,bh(t),Le)}function js(e){var t=Vh(e);return t===Le&&Kh(e.state),t}function Gh(e,t,r,n,i,a){if(!e)return je;var o=1;if(t===Oh&&(t=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),i<1||i>Dh||r!==xi||n<8||n>15||t<0||t>9||a<0||a>Ih)return Be(e,je);n===8&&(n=9);var s=new Wh;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=n,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+C-1)/C),s.window=new yr(s.w_size*2),s.head=new ae(s.hash_size),s.prev=new ae(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new yr(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=a,s.method=r,js(e)}function Yh(e,t){var r,n,i,a;if(!e||!e.state||t>Ds||t<0)return e?Be(e,je):je;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===Nt&&t!==Me)return Be(e,e.avail_out===0?Ei:je);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===Ai)if(n.wrap===2)e.adler=0,I(n,31),I(n,139),I(n,8),n.gzhead?(I(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),I(n,n.gzhead.time&255),I(n,n.gzhead.time>>8&255),I(n,n.gzhead.time>>16&255),I(n,n.gzhead.time>>24&255),I(n,n.level===9?2:n.strategy>=wr||n.level<2?4:0),I(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(I(n,n.gzhead.extra.length&255),I(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Z(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=ki):(I(n,0),I(n,0),I(n,0),I(n,0),I(n,0),I(n,n.level===9?2:n.strategy>=wr||n.level<2?4:0),I(n,$h),n.status=Ge);else{var o=xi+(n.w_bits-8<<4)<<8,s=-1;n.strategy>=wr||n.level<2?s=0:n.level<6?s=1:n.level===6?s=2:s=3,o|=s<<6,n.strstart!==0&&(o|=Uh),o+=31-o%31,n.status=Ge,Ut(n,o),n.strstart!==0&&(Ut(n,e.adler>>>16),Ut(n,e.adler&65535)),e.adler=1}if(n.status===ki)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),Ue(e),i=n.pending,n.pending===n.pending_buf_size));)I(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=br)}else n.status=br;if(n.status===br)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),Ue(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,I(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.gzindex=0,n.status=mr)}else n.status=mr;if(n.status===mr)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),Ue(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,I(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.status=Er)}else n.status=Er;if(n.status===Er&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Ue(e),n.pending+2<=n.pending_buf_size&&(I(n,e.adler&255),I(n,e.adler>>8&255),e.adler=0,n.status=Ge)):n.status=Ge),n.pending!==0){if(Ue(e),e.avail_out===0)return n.last_flush=-1,Le}else if(e.avail_in===0&&Ms(t)<=Ms(r)&&t!==Me)return Be(e,Ei);if(n.status===Nt&&e.avail_in!==0)return Be(e,Ei);if(e.avail_in!==0||n.lookahead!==0||t!==Ve&&n.status!==Nt){var c=n.strategy===wr?Hh(n,t):n.strategy===Ph?qh(n,t):bt[n.level].func(n,t);if((c===Ye||c===_t)&&(n.status=Nt),c===$||c===Ye)return e.avail_out===0&&(n.last_flush=-1),Le;if(c===Bt&&(t===Ah?mh(n):t!==Ds&&(Cs(n,0,0,!1),t===kh&&(Je(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Ue(e),e.avail_out===0))return n.last_flush=-1,Le}return t!==Me?Le:n.wrap<=0?Fs:(n.wrap===2?(I(n,e.adler&255),I(n,e.adler>>8&255),I(n,e.adler>>16&255),I(n,e.adler>>24&255),I(n,e.total_in&255),I(n,e.total_in>>8&255),I(n,e.total_in>>16&255),I(n,e.total_in>>24&255)):(Ut(n,e.adler>>>16),Ut(n,e.adler&65535)),Ue(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Le:Fs)}function Jh(e){var t;return!e||!e.state?je:(t=e.state.status,t!==Ai&&t!==ki&&t!==br&&t!==mr&&t!==Er&&t!==Ge&&t!==Nt?Be(e,je):(e.state=null,t===Ge?Be(e,Rh):Le))}var xr=30,Xh=12;function Qh(e,t){var r,n,i,a,o,s,c,f,l,d,h,u,p,v,_,w,x,S,g,A,T,b,E,O,k;r=e.state,n=e.next_in,O=e.input,i=n+(e.avail_in-5),a=e.next_out,k=e.output,o=a-(t-e.avail_out),s=a+(e.avail_out-257),c=r.dmax,f=r.wsize,l=r.whave,d=r.wnext,h=r.window,u=r.hold,p=r.bits,v=r.lencode,_=r.distcode,w=(1<<r.lenbits)-1,x=(1<<r.distbits)-1;e:do{p<15&&(u+=O[n++]<<p,p+=8,u+=O[n++]<<p,p+=8),S=v[u&w];t:for(;;){if(g=S>>>24,u>>>=g,p-=g,g=S>>>16&255,g===0)k[a++]=S&65535;else if(g&16){A=S&65535,g&=15,g&&(p<g&&(u+=O[n++]<<p,p+=8),A+=u&(1<<g)-1,u>>>=g,p-=g),p<15&&(u+=O[n++]<<p,p+=8,u+=O[n++]<<p,p+=8),S=_[u&x];r:for(;;){if(g=S>>>24,u>>>=g,p-=g,g=S>>>16&255,g&16){if(T=S&65535,g&=15,p<g&&(u+=O[n++]<<p,p+=8,p<g&&(u+=O[n++]<<p,p+=8)),T+=u&(1<<g)-1,T>c){e.msg="invalid distance too far back",r.mode=xr;break e}if(u>>>=g,p-=g,g=a-o,T>g){if(g=T-g,g>l&&r.sane){e.msg="invalid distance too far back",r.mode=xr;break e}if(b=0,E=h,d===0){if(b+=f-g,g<A){A-=g;do k[a++]=h[b++];while(--g);b=a-T,E=k}}else if(d<g){if(b+=f+d-g,g-=d,g<A){A-=g;do k[a++]=h[b++];while(--g);if(b=0,d<A){g=d,A-=g;do k[a++]=h[b++];while(--g);b=a-T,E=k}}}else if(b+=d-g,g<A){A-=g;do k[a++]=h[b++];while(--g);b=a-T,E=k}for(;A>2;)k[a++]=E[b++],k[a++]=E[b++],k[a++]=E[b++],A-=3;A&&(k[a++]=E[b++],A>1&&(k[a++]=E[b++]))}else{b=a-T;do k[a++]=k[b++],k[a++]=k[b++],k[a++]=k[b++],A-=3;while(A>2);A&&(k[a++]=k[b++],A>1&&(k[a++]=k[b++]))}}else if((g&64)===0){S=_[(S&65535)+(u&(1<<g)-1)];continue r}else{e.msg="invalid distance code",r.mode=xr;break e}break}}else if((g&64)===0){S=v[(S&65535)+(u&(1<<g)-1)];continue t}else if(g&32){r.mode=Xh;break e}else{e.msg="invalid literal/length code",r.mode=xr;break e}break}}while(n<i&&a<s);A=p>>3,n-=A,p-=A<<3,u&=(1<<p)-1,e.next_in=n,e.next_out=a,e.avail_in=n<i?5+(i-n):5-(n-i),e.avail_out=a<s?257+(s-a):257-(a-s),r.hold=u,r.bits=p}var mt=15,Ns=852,Bs=592,Us=0,Oi=1,$s=2,ed=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],td=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],rd=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],nd=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function zt(e,t,r,n,i,a,o,s){var c=s.bits,f=0,l=0,d=0,h=0,u=0,p=0,v=0,_=0,w=0,x=0,S,g,A,T,b,E=null,O=0,k,F=new ae(mt+1),K=new ae(mt+1),G=null,oe=0,st,Q,ve;for(f=0;f<=mt;f++)F[f]=0;for(l=0;l<n;l++)F[t[r+l]]++;for(u=c,h=mt;h>=1&&F[h]===0;h--);if(u>h&&(u=h),h===0)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(d=1;d<h&&F[d]===0;d++);for(u<d&&(u=d),_=1,f=1;f<=mt;f++)if(_<<=1,_-=F[f],_<0)return-1;if(_>0&&(e===Us||h!==1))return-1;for(K[1]=0,f=1;f<mt;f++)K[f+1]=K[f]+F[f];for(l=0;l<n;l++)t[r+l]!==0&&(o[K[t[r+l]]++]=l);if(e===Us?(E=G=o,k=19):e===Oi?(E=ed,O-=257,G=td,oe-=257,k=256):(E=rd,G=nd,k=-1),x=0,l=0,f=d,b=a,p=u,v=0,A=-1,w=1<<u,T=w-1,e===Oi&&w>Ns||e===$s&&w>Bs)return 1;for(;;){st=f-v,o[l]<k?(Q=0,ve=o[l]):o[l]>k?(Q=G[oe+o[l]],ve=E[O+o[l]]):(Q=96,ve=0),S=1<<f-v,g=1<<p,d=g;do g-=S,i[b+(x>>v)+g]=st<<24|Q<<16|ve|0;while(g!==0);for(S=1<<f-1;x&S;)S>>=1;if(S!==0?(x&=S-1,x+=S):x=0,l++,--F[f]===0){if(f===h)break;f=t[r+o[l]]}if(f>u&&(x&T)!==A){for(v===0&&(v=u),b+=d,p=f-v,_=1<<p;p+v<h&&(_-=F[p+v],!(_<=0));)p++,_<<=1;if(w+=1<<p,e===Oi&&w>Ns||e===$s&&w>Bs)return 1;A=x&T,i[A]=u<<24|p<<16|b-a|0}}return x!==0&&(i[b+x]=f-v<<24|4194304|0),s.bits=u,0}var id=0,zs=1,Zs=2,qs=4,ad=5,Sr=6,Zt=0,od=1,sd=2,$e=-2,fd=-3,cd=-4,ld=-5,Hs=8,Ks=1,Ws=2,Vs=3,Gs=4,Ys=5,Js=6,Xs=7,Qs=8,ef=9,tf=10,rf=11,Re=12,Ti=13,nf=14,Pi=15,af=16,of=17,sf=18,ff=19,Ar=20,kr=21,cf=22,lf=23,uf=24,hf=25,df=26,Ii=27,pf=28,yf=29,M=30,ud=31,hd=32,dd=852,pd=592;function vf(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function yd(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new ae(320),this.work=new ae(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function vd(e){var t;return!e||!e.state?$e:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Ks,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new vr(dd),t.distcode=t.distdyn=new vr(pd),t.sane=1,t.back=-1,Zt)}function gf(e){var t;return!e||!e.state?$e:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,vd(e))}function gd(e,t){var r,n;return!e||!e.state||(n=e.state,t<0?(r=0,t=-t):(r=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?$e:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,gf(e))}function _d(e,t){var r,n;return e?(n=new yd,e.state=n,n.window=null,r=gd(e,t),r!==Zt&&(e.state=null),r):$e}var _f=!0,Ci,Di;function wd(e){if(_f){var t;for(Ci=new vr(512),Di=new vr(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(zt(zs,e.lens,0,288,Ci,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;zt(Zs,e.lens,0,32,Di,0,e.work,{bits:5}),_f=!1}e.lencode=Ci,e.lenbits=9,e.distcode=Di,e.distbits=5}function bd(e,t,r,n){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new yr(a.wsize)),n>=a.wsize?(Ae(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>n&&(i=n),Ae(a.window,t,r-n,i,a.wnext),n-=i,n?(Ae(a.window,t,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function md(e,t){var r,n,i,a,o,s,c,f,l,d,h,u,p,v,_=0,w,x,S,g,A,T,b,E,O=new yr(4),k,F,K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return $e;r=e.state,r.mode===Re&&(r.mode=Ti),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,n=e.input,s=e.avail_in,f=r.hold,l=r.bits,d=s,h=c,E=Zt;e:for(;;)switch(r.mode){case Ks:if(r.wrap===0){r.mode=Ti;break}for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(r.wrap&2&&f===35615){r.check=0,O[0]=f&255,O[1]=f>>>8&255,r.check=Z(r.check,O,2,0),f=0,l=0,r.mode=Ws;break}if(r.flags=0,r.head&&(r.head.done=!1),!(r.wrap&1)||(((f&255)<<8)+(f>>8))%31){e.msg="incorrect header check",r.mode=M;break}if((f&15)!==Hs){e.msg="unknown compression method",r.mode=M;break}if(f>>>=4,l-=4,b=(f&15)+8,r.wbits===0)r.wbits=b;else if(b>r.wbits){e.msg="invalid window size",r.mode=M;break}r.dmax=1<<b,e.adler=r.check=1,r.mode=f&512?tf:Re,f=0,l=0;break;case Ws:for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(r.flags=f,(r.flags&255)!==Hs){e.msg="unknown compression method",r.mode=M;break}if(r.flags&57344){e.msg="unknown header flags set",r.mode=M;break}r.head&&(r.head.text=f>>8&1),r.flags&512&&(O[0]=f&255,O[1]=f>>>8&255,r.check=Z(r.check,O,2,0)),f=0,l=0,r.mode=Vs;case Vs:for(;l<32;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.head&&(r.head.time=f),r.flags&512&&(O[0]=f&255,O[1]=f>>>8&255,O[2]=f>>>16&255,O[3]=f>>>24&255,r.check=Z(r.check,O,4,0)),f=0,l=0,r.mode=Gs;case Gs:for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.head&&(r.head.xflags=f&255,r.head.os=f>>8),r.flags&512&&(O[0]=f&255,O[1]=f>>>8&255,r.check=Z(r.check,O,2,0)),f=0,l=0,r.mode=Ys;case Ys:if(r.flags&1024){for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.length=f,r.head&&(r.head.extra_len=f),r.flags&512&&(O[0]=f&255,O[1]=f>>>8&255,r.check=Z(r.check,O,2,0)),f=0,l=0}else r.head&&(r.head.extra=null);r.mode=Js;case Js:if(r.flags&1024&&(u=r.length,u>s&&(u=s),u&&(r.head&&(b=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),Ae(r.head.extra,n,a,u,b)),r.flags&512&&(r.check=Z(r.check,n,u,a)),s-=u,a+=u,r.length-=u),r.length))break e;r.length=0,r.mode=Xs;case Xs:if(r.flags&2048){if(s===0)break e;u=0;do b=n[a+u++],r.head&&b&&r.length<65536&&(r.head.name+=String.fromCharCode(b));while(b&&u<s);if(r.flags&512&&(r.check=Z(r.check,n,u,a)),s-=u,a+=u,b)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=Qs;case Qs:if(r.flags&4096){if(s===0)break e;u=0;do b=n[a+u++],r.head&&b&&r.length<65536&&(r.head.comment+=String.fromCharCode(b));while(b&&u<s);if(r.flags&512&&(r.check=Z(r.check,n,u,a)),s-=u,a+=u,b)break e}else r.head&&(r.head.comment=null);r.mode=ef;case ef:if(r.flags&512){for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(f!==(r.check&65535)){e.msg="header crc mismatch",r.mode=M;break}f=0,l=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Re;break;case tf:for(;l<32;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}e.adler=r.check=vf(f),f=0,l=0,r.mode=rf;case rf:if(r.havedict===0)return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,sd;e.adler=r.check=1,r.mode=Re;case Re:if(t===ad||t===Sr)break e;case Ti:if(r.last){f>>>=l&7,l-=l&7,r.mode=Ii;break}for(;l<3;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}switch(r.last=f&1,f>>>=1,l-=1,f&3){case 0:r.mode=nf;break;case 1:if(wd(r),r.mode=Ar,t===Sr){f>>>=2,l-=2;break e}break;case 2:r.mode=of;break;case 3:e.msg="invalid block type",r.mode=M}f>>>=2,l-=2;break;case nf:for(f>>>=l&7,l-=l&7;l<32;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if((f&65535)!==(f>>>16^65535)){e.msg="invalid stored block lengths",r.mode=M;break}if(r.length=f&65535,f=0,l=0,r.mode=Pi,t===Sr)break e;case Pi:r.mode=af;case af:if(u=r.length,u){if(u>s&&(u=s),u>c&&(u=c),u===0)break e;Ae(i,n,a,u,o),s-=u,a+=u,c-=u,o+=u,r.length-=u;break}r.mode=Re;break;case of:for(;l<14;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(r.nlen=(f&31)+257,f>>>=5,l-=5,r.ndist=(f&31)+1,f>>>=5,l-=5,r.ncode=(f&15)+4,f>>>=4,l-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=M;break}r.have=0,r.mode=sf;case sf:for(;r.have<r.ncode;){for(;l<3;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.lens[K[r.have++]]=f&7,f>>>=3,l-=3}for(;r.have<19;)r.lens[K[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,k={bits:r.lenbits},E=zt(id,r.lens,0,19,r.lencode,0,r.work,k),r.lenbits=k.bits,E){e.msg="invalid code lengths set",r.mode=M;break}r.have=0,r.mode=ff;case ff:for(;r.have<r.nlen+r.ndist;){for(;_=r.lencode[f&(1<<r.lenbits)-1],w=_>>>24,x=_>>>16&255,S=_&65535,!(w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(S<16)f>>>=w,l-=w,r.lens[r.have++]=S;else{if(S===16){for(F=w+2;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(f>>>=w,l-=w,r.have===0){e.msg="invalid bit length repeat",r.mode=M;break}b=r.lens[r.have-1],u=3+(f&3),f>>>=2,l-=2}else if(S===17){for(F=w+3;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=w,l-=w,b=0,u=3+(f&7),f>>>=3,l-=3}else{for(F=w+7;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=w,l-=w,b=0,u=11+(f&127),f>>>=7,l-=7}if(r.have+u>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=M;break}for(;u--;)r.lens[r.have++]=b}}if(r.mode===M)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=M;break}if(r.lenbits=9,k={bits:r.lenbits},E=zt(zs,r.lens,0,r.nlen,r.lencode,0,r.work,k),r.lenbits=k.bits,E){e.msg="invalid literal/lengths set",r.mode=M;break}if(r.distbits=6,r.distcode=r.distdyn,k={bits:r.distbits},E=zt(Zs,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,k),r.distbits=k.bits,E){e.msg="invalid distances set",r.mode=M;break}if(r.mode=Ar,t===Sr)break e;case Ar:r.mode=kr;case kr:if(s>=6&&c>=258){e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,Qh(e,h),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,n=e.input,s=e.avail_in,f=r.hold,l=r.bits,r.mode===Re&&(r.back=-1);break}for(r.back=0;_=r.lencode[f&(1<<r.lenbits)-1],w=_>>>24,x=_>>>16&255,S=_&65535,!(w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(x&&(x&240)===0){for(g=w,A=x,T=S;_=r.lencode[T+((f&(1<<g+A)-1)>>g)],w=_>>>24,x=_>>>16&255,S=_&65535,!(g+w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=g,l-=g,r.back+=g}if(f>>>=w,l-=w,r.back+=w,r.length=S,x===0){r.mode=df;break}if(x&32){r.back=-1,r.mode=Re;break}if(x&64){e.msg="invalid literal/length code",r.mode=M;break}r.extra=x&15,r.mode=cf;case cf:if(r.extra){for(F=r.extra;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.length+=f&(1<<r.extra)-1,f>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=lf;case lf:for(;_=r.distcode[f&(1<<r.distbits)-1],w=_>>>24,x=_>>>16&255,S=_&65535,!(w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if((x&240)===0){for(g=w,A=x,T=S;_=r.distcode[T+((f&(1<<g+A)-1)>>g)],w=_>>>24,x=_>>>16&255,S=_&65535,!(g+w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=g,l-=g,r.back+=g}if(f>>>=w,l-=w,r.back+=w,x&64){e.msg="invalid distance code",r.mode=M;break}r.offset=S,r.extra=x&15,r.mode=uf;case uf:if(r.extra){for(F=r.extra;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.offset+=f&(1<<r.extra)-1,f>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=M;break}r.mode=hf;case hf:if(c===0)break e;if(u=h-c,r.offset>u){if(u=r.offset-u,u>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=M;break}u>r.wnext?(u-=r.wnext,p=r.wsize-u):p=r.wnext-u,u>r.length&&(u=r.length),v=r.window}else v=i,p=o-r.offset,u=r.length;u>c&&(u=c),c-=u,r.length-=u;do i[o++]=v[p++];while(--u);r.length===0&&(r.mode=kr);break;case df:if(c===0)break e;i[o++]=r.length,c--,r.mode=kr;break;case Ii:if(r.wrap){for(;l<32;){if(s===0)break e;s--,f|=n[a++]<<l,l+=8}if(h-=c,e.total_out+=h,r.total+=h,h&&(e.adler=r.check=r.flags?Z(r.check,i,h,o-h):mi(r.check,i,h,o-h)),h=c,(r.flags?f:vf(f))!==r.check){e.msg="incorrect data check",r.mode=M;break}f=0,l=0}r.mode=pf;case pf:if(r.wrap&&r.flags){for(;l<32;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(f!==(r.total&4294967295)){e.msg="incorrect length check",r.mode=M;break}f=0,l=0}r.mode=yf;case yf:E=od;break e;case M:E=fd;break e;case ud:return cd;case hd:default:return $e}return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,(r.wsize||h!==e.avail_out&&r.mode<M&&(r.mode<Ii||t!==qs))&&bd(e,e.output,e.next_out,h-e.avail_out),d-=e.avail_in,h-=e.avail_out,e.total_in+=d,e.total_out+=h,r.total+=h,r.wrap&&h&&(e.adler=r.check=r.flags?Z(r.check,i,h,e.next_out-h):mi(r.check,i,h,e.next_out-h)),e.data_type=r.bits+(r.last?64:0)+(r.mode===Re?128:0)+(r.mode===Ar||r.mode===Pi?256:0),(d===0&&h===0||t===qs)&&E===Zt&&(E=ld),E}function Ed(e){if(!e||!e.state)return $e;var t=e.state;return t.window&&(t.window=null),e.state=null,Zt}var Fi=0,Et=1,Rr=2,qt=3,Or=4,xt=5,Ht=6,Kt=7,wf=0,bf=1,mf=2,Ef=3,Mi=4,xf=5,xd=6,Tr=0,Sf=1,Af=2,Sd=-1,Ad=-2,kd=-3,kf=-5,Rd=0,Od=1,Td=9,Pd=-1,Id=1,Cd=2,Dd=3,Fd=4,Md=0,Ld=0,jd=1,Nd=2,Rf=8;function fe(e){if(e<Et||e>Kt)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}fe.prototype.init=function(e,t,r,n,i){this.windowBits=e,this.level=t,this.memLevel=r,this.strategy=n,(this.mode===qt||this.mode===Or)&&(this.windowBits+=16),this.mode===Kt&&(this.windowBits+=32),(this.mode===xt||this.mode===Ht)&&(this.windowBits=-this.windowBits),this.strm=new nh;var a;switch(this.mode){case Et:case qt:case xt:a=Gh(this.strm,this.level,Rf,this.windowBits,this.memLevel,this.strategy);break;case Rr:case Or:case Ht:case Kt:a=_d(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}if(a!==Tr){this._error(a);return}this.write_in_progress=!1,this.init_done=!0},fe.prototype.params=function(){throw new Error("deflateParams Not supported")},fe.prototype._writeCheck=function(){if(!this.init_done)throw new Error("write before init");if(this.mode===Fi)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")},fe.prototype.write=function(e,t,r,n,i,a,o){this._writeCheck(),this.write_in_progress=!0;var s=this;return Ee.nextTick(function(){s.write_in_progress=!1;var c=s._write(e,t,r,n,i,a,o);s.callback(c[0],c[1]),s.pending_close&&s.close()}),this};function Bd(e,t){for(var r=0;r<e.length;r++)this[t+r]=e[r]}fe.prototype.writeSync=function(e,t,r,n,i,a,o){return this._writeCheck(),this._write(e,t,r,n,i,a,o)},fe.prototype._write=function(e,t,r,n,i,a,o){if(this.write_in_progress=!0,e!==wf&&e!==bf&&e!==mf&&e!==Ef&&e!==Mi&&e!==xf)throw new Error("Invalid flush value");t==null&&(t=new y(0),n=0,r=0),i._set?i.set=i._set:i.set=Bd;var s=this.strm;s.avail_in=n,s.input=t,s.next_in=r,s.avail_out=o,s.output=i,s.next_out=a;var c;switch(this.mode){case Et:case qt:case xt:c=Yh(s,e);break;case Kt:case Rr:case Or:case Ht:c=md(s,e);break;default:throw new Error("Unknown mode "+this.mode)}return this._checkError(c,s,e)||this._error(c),this.write_in_progress=!1,[s.avail_in,s.avail_out]},fe.prototype._checkError=function(e,t,r){switch(e){case Tr:case kf:if(t.avail_out!==0&&r===Mi)return!1;break;case Sf:break;case Af:return!1;default:return!1}return!0},fe.prototype.close=function(){if(this.write_in_progress){this.pending_close=!0;return}this.pending_close=!1,this.mode===Et||this.mode===qt||this.mode===xt?Jh(this.strm):Ed(this.strm),this.mode=Fi};var Pr;fe.prototype.reset=function(){switch(this.mode){case Et:case xt:Pr=js(this.strm);break;case Rr:case Ht:Pr=gf(this.strm);break}Pr!==Tr&&this._error(Pr)},fe.prototype._error=function(e){this.onerror(ls[e]+": "+this.strm.msg,e),this.write_in_progress=!1,this.pending_close&&this.close()};var Of=Object.freeze({__proto__:null,DEFLATE:Et,DEFLATERAW:xt,GUNZIP:Or,GZIP:qt,INFLATE:Rr,INFLATERAW:Ht,NONE:Fi,UNZIP:Kt,Z_BEST_COMPRESSION:Td,Z_BEST_SPEED:Od,Z_BINARY:Ld,Z_BLOCK:xf,Z_BUF_ERROR:kf,Z_DATA_ERROR:kd,Z_DEFAULT_COMPRESSION:Pd,Z_DEFAULT_STRATEGY:Md,Z_DEFLATED:Rf,Z_ERRNO:Sd,Z_FILTERED:Id,Z_FINISH:Mi,Z_FIXED:Fd,Z_FULL_FLUSH:Ef,Z_HUFFMAN_ONLY:Cd,Z_NEED_DICT:Af,Z_NO_COMPRESSION:Rd,Z_NO_FLUSH:wf,Z_OK:Tr,Z_PARTIAL_FLUSH:bf,Z_RLE:Dd,Z_STREAM_END:Sf,Z_STREAM_ERROR:Ad,Z_SYNC_FLUSH:mf,Z_TEXT:jd,Z_TREES:xd,Z_UNKNOWN:Nd,Zlib:fe});function Ud(e,t){if(!e)throw new Error(t)}var m={};Object.keys(Of).forEach(function(e){m[e]=Of[e]}),m.Z_MIN_WINDOWBITS=8,m.Z_MAX_WINDOWBITS=15,m.Z_DEFAULT_WINDOWBITS=15,m.Z_MIN_CHUNK=64,m.Z_MAX_CHUNK=1/0,m.Z_DEFAULT_CHUNK=16384,m.Z_MIN_MEMLEVEL=1,m.Z_MAX_MEMLEVEL=9,m.Z_DEFAULT_MEMLEVEL=8,m.Z_MIN_LEVEL=-1,m.Z_MAX_LEVEL=9,m.Z_DEFAULT_LEVEL=m.Z_DEFAULT_COMPRESSION;var Wt={Z_OK:m.Z_OK,Z_STREAM_END:m.Z_STREAM_END,Z_NEED_DICT:m.Z_NEED_DICT,Z_ERRNO:m.Z_ERRNO,Z_STREAM_ERROR:m.Z_STREAM_ERROR,Z_DATA_ERROR:m.Z_DATA_ERROR,Z_MEM_ERROR:m.Z_MEM_ERROR,Z_BUF_ERROR:m.Z_BUF_ERROR,Z_VERSION_ERROR:m.Z_VERSION_ERROR};Object.keys(Wt).forEach(function(e){Wt[Wt[e]]=e});function $d(e){return new et(e)}function zd(e){return new tt(e)}function Zd(e){return new it(e)}function qd(e){return new at(e)}function Hd(e){return new rt(e)}function Kd(e){return new nt(e)}function Wd(e){return new ot(e)}function Vd(e,t,r){return typeof t=="function"&&(r=t,t={}),Xe(new et(t),e,r)}function Gd(e,t){return Qe(new et(t),e)}function Yd(e,t,r){return typeof t=="function"&&(r=t,t={}),Xe(new rt(t),e,r)}function Jd(e,t){return Qe(new rt(t),e)}function Xd(e,t,r){return typeof t=="function"&&(r=t,t={}),Xe(new it(t),e,r)}function Qd(e,t){return Qe(new it(t),e)}function ep(e,t,r){return typeof t=="function"&&(r=t,t={}),Xe(new ot(t),e,r)}function tp(e,t){return Qe(new ot(t),e)}function rp(e,t,r){return typeof t=="function"&&(r=t,t={}),Xe(new tt(t),e,r)}function np(e,t){return Qe(new tt(t),e)}function ip(e,t,r){return typeof t=="function"&&(r=t,t={}),Xe(new nt(t),e,r)}function ap(e,t){return Qe(new nt(t),e)}function op(e,t,r){return typeof t=="function"&&(r=t,t={}),Xe(new at(t),e,r)}function sp(e,t){return Qe(new at(t),e)}function Xe(e,t,r){var n=[],i=0;e.on("error",o),e.on("end",s),e.end(t),a();function a(){for(var c;(c=e.read())!==null;)n.push(c),i+=c.length;e.once("readable",a)}function o(c){e.removeListener("end",s),e.removeListener("readable",a),r(c)}function s(){var c=y.concat(n,i);n=[],r(null,c),e.close()}}function Qe(e,t){if(typeof t=="string"&&(t=new y(t)),!y.isBuffer(t))throw new TypeError("Not a string or buffer");var r=m.Z_FINISH;return e._processChunk(t,r)}function et(e){if(!(this instanceof et))return new et(e);j.call(this,e,m.DEFLATE)}function tt(e){if(!(this instanceof tt))return new tt(e);j.call(this,e,m.INFLATE)}function rt(e){if(!(this instanceof rt))return new rt(e);j.call(this,e,m.GZIP)}function nt(e){if(!(this instanceof nt))return new nt(e);j.call(this,e,m.GUNZIP)}function it(e){if(!(this instanceof it))return new it(e);j.call(this,e,m.DEFLATERAW)}function at(e){if(!(this instanceof at))return new at(e);j.call(this,e,m.INFLATERAW)}function ot(e){if(!(this instanceof ot))return new ot(e);j.call(this,e,m.UNZIP)}function j(e,t){if(this._opts=e=e||{},this._chunkSize=e.chunkSize||m.Z_DEFAULT_CHUNK,re.call(this,e),e.flush&&e.flush!==m.Z_NO_FLUSH&&e.flush!==m.Z_PARTIAL_FLUSH&&e.flush!==m.Z_SYNC_FLUSH&&e.flush!==m.Z_FULL_FLUSH&&e.flush!==m.Z_FINISH&&e.flush!==m.Z_BLOCK)throw new Error("Invalid flush flag: "+e.flush);if(this._flushFlag=e.flush||m.Z_NO_FLUSH,e.chunkSize&&(e.chunkSize<m.Z_MIN_CHUNK||e.chunkSize>m.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBits<m.Z_MIN_WINDOWBITS||e.windowBits>m.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+e.windowBits);if(e.level&&(e.level<m.Z_MIN_LEVEL||e.level>m.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevel<m.Z_MIN_MEMLEVEL||e.memLevel>m.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+e.memLevel);if(e.strategy&&e.strategy!=m.Z_FILTERED&&e.strategy!=m.Z_HUFFMAN_ONLY&&e.strategy!=m.Z_RLE&&e.strategy!=m.Z_FIXED&&e.strategy!=m.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+e.strategy);if(e.dictionary&&!y.isBuffer(e.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new m.Zlib(t);var r=this;this._hadError=!1,this._binding.onerror=function(a,o){r._binding=null,r._hadError=!0;var s=new Error(a);s.errno=o,s.code=Wt[o],r.emit("error",s)};var n=m.Z_DEFAULT_COMPRESSION;typeof e.level=="number"&&(n=e.level);var i=m.Z_DEFAULT_STRATEGY;typeof e.strategy=="number"&&(i=e.strategy),this._binding.init(e.windowBits||m.Z_DEFAULT_WINDOWBITS,n,e.memLevel||m.Z_DEFAULT_MEMLEVEL,i,e.dictionary),this._buffer=new y(this._chunkSize),this._offset=0,this._closed=!1,this._level=n,this._strategy=i,this.once("end",this.close)}W(j,re),j.prototype.params=function(e,t,r){if(e<m.Z_MIN_LEVEL||e>m.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(t!=m.Z_FILTERED&&t!=m.Z_HUFFMAN_ONLY&&t!=m.Z_RLE&&t!=m.Z_FIXED&&t!=m.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+t);if(this._level!==e||this._strategy!==t){var n=this;this.flush(m.Z_SYNC_FLUSH,function(){n._binding.params(e,t),n._hadError||(n._level=e,n._strategy=t,r&&r())})}else Ee.nextTick(r)},j.prototype.reset=function(){return this._binding.reset()},j.prototype._flush=function(e){this._transform(new y(0),"",e)},j.prototype.flush=function(e,t){var r=this._writableState;if((typeof e=="function"||e===void 0&&!t)&&(t=e,e=m.Z_FULL_FLUSH),r.ended)t&&Ee.nextTick(t);else if(r.ending)t&&this.once("end",t);else if(r.needDrain){var n=this;this.once("drain",function(){n.flush(t)})}else this._flushFlag=e,this.write(new y(0),"",t)},j.prototype.close=function(e){if(e&&Ee.nextTick(e),!this._closed){this._closed=!0,this._binding.close();var t=this;Ee.nextTick(function(){t.emit("close")})}},j.prototype._transform=function(e,t,r){var n,i=this._writableState,a=i.ending||i.ended,o=a&&(!e||i.length===e.length);if(!e===null&&!y.isBuffer(e))return r(new Error("invalid input"));o?n=m.Z_FINISH:(n=this._flushFlag,e.length>=i.length&&(this._flushFlag=this._opts.flush||m.Z_NO_FLUSH)),this._processChunk(e,n,r)},j.prototype._processChunk=function(e,t,r){var n=e&&e.length,i=this._chunkSize-this._offset,a=0,o=this,s=typeof r=="function";if(!s){var c=[],f=0,l;this.on("error",function(v){l=v});do var d=this._binding.writeSync(t,e,a,n,this._buffer,this._offset,i);while(!this._hadError&&p(d[0],d[1]));if(this._hadError)throw l;var h=y.concat(c,f);return this.close(),h}var u=this._binding.write(t,e,a,n,this._buffer,this._offset,i);u.buffer=e,u.callback=p;function p(v,_){if(!o._hadError){var w=i-_;if(Ud(w>=0,"have should not go down"),w>0){var x=o._buffer.slice(o._offset,o._offset+w);o._offset+=w,s?o.push(x):(c.push(x),f+=x.length)}if((_===0||o._offset>=o._chunkSize)&&(i=o._chunkSize,o._offset=0,o._buffer=new y(o._chunkSize)),_===0){if(a+=n-v,n=v,!s)return!0;var S=o._binding.write(t,e,a,n,o._buffer,o._offset,o._chunkSize);S.callback=p,S.buffer=e;return}if(!s)return!1;r()}}},W(et,j),W(tt,j),W(rt,j),W(nt,j),W(it,j),W(at,j),W(ot,j);var Tf={codes:Wt,createDeflate:$d,createInflate:zd,createDeflateRaw:Zd,createInflateRaw:qd,createGzip:Hd,createGunzip:Kd,createUnzip:Wd,deflate:Vd,deflateSync:Gd,gzip:Yd,gzipSync:Jd,deflateRaw:Xd,deflateRawSync:Qd,unzip:ep,unzipSync:tp,inflate:rp,inflateSync:np,gunzip:ip,gunzipSync:ap,inflateRaw:op,inflateRawSync:sp,Deflate:et,Inflate:tt,Gzip:rt,Gunzip:nt,DeflateRaw:it,InflateRaw:at,Unzip:ot,Zlib:j};class Pf extends li{constructor({client:t,keyPrefix:r="cache",ttl:n=0,prefix:i=void 0}){super({client:t,keyPrefix:r,ttl:n,prefix:i}),this.client=t,this.keyPrefix=r,this.config.ttl=n,this.config.client=t,this.config.prefix=i!==void 0?i:r+(r.endsWith("/")?"":"/")}async _set(t,r){let n=JSON.stringify(r);const i=n.length;return n=Tf.gzipSync(n).toString("base64"),this.client.putObject({key:we(this.keyPrefix,t),body:n,contentEncoding:"gzip",contentType:"application/gzip",metadata:{compressor:"zlib",compressed:"true","client-id":this.client.id,"length-serialized":String(i),"length-compressed":String(n.length),"compression-gain":(n.length/i).toFixed(2)}})}async _get(t){try{const{Body:r}=await this.client.getObject(we(this.keyPrefix,t));let n=await Pt(r);return n=Buffer.from(n,"base64"),n=Tf.unzipSync(n).toString(),JSON.parse(n)}catch(r){if(r.name==="NoSuchKey"||r.name==="NotFound")return null;throw r}}async _del(t){return await this.client.deleteObject(we(this.keyPrefix,t)),!0}async _clear(){const t=await this.client.getAllKeys({prefix:this.keyPrefix});for(const r of t)await this.client.deleteObject(r)}async size(){return(await this.keys()).length}async keys(){const t=await this.client.getAllKeys({prefix:this.keyPrefix}),r=this.keyPrefix.endsWith("/")?this.keyPrefix:this.keyPrefix+"/";return t.map(n=>n.startsWith(r)?n.slice(r.length):n)}}class If extends R{async setup(t){}async start(){}async stop(){}beforeSetup(){this.emit("plugin.beforeSetup",new Date)}afterSetup(){this.emit("plugin.afterSetup",new Date)}beforeStart(){this.emit("plugin.beforeStart",new Date)}afterStart(){this.emit("plugin.afterStart",new Date)}beforeStop(){this.emit("plugin.beforeStop",new Date)}afterStop(){this.emit("plugin.afterStop",new Date)}}const fp={setup(e){},start(){},stop(){}},cp={async setup(e){this.client=e.client,this.map={PutObjectCommand:"put",GetObjectCommand:"get",HeadObjectCommand:"get",DeleteObjectCommand:"delete",DeleteObjectsCommand:"delete",ListObjectsV2Command:"list"},this.costs={total:0,prices:{put:.005/1e3,copy:.005/1e3,list:.005/1e3,post:.005/1e3,get:4e-4/1e3,select:4e-4/1e3,delete:4e-4/1e3},requests:{total:0,put:0,post:0,copy:0,list:0,get:0,select:0,delete:0},events:{total:0,PutObjectCommand:0,GetObjectCommand:0,HeadObjectCommand:0,DeleteObjectCommand:0,DeleteObjectsCommand:0,ListObjectsV2Command:0}},this.client.costs=JSON.parse(JSON.stringify(this.costs))},async start(){this.client.on("command.response",e=>this.addRequest(e,this.map[e]))},addRequest(e,t){this.costs.events[e]++,this.costs.events.total++,this.costs.requests.total++,this.costs.requests[t]++,this.costs.total+=this.costs.prices[t],this.client.costs.events[e]++,this.client.costs.events.total++,this.client.costs.requests.total++,this.client.costs.requests[t]++,this.client.costs.total+=this.client.costs.prices[t]}};class lp extends If{constructor(t={}){super(),this.driver=t.driver}async setup(t){this.database=t,this.driver||(this.driver=new Pf({keyPrefix:"cache",client:t.client})),this.installDatabaseProxy();for(const r of Object.values(t.resources))this.installResourcesProxies(r)}async start(){}async stop(){}installDatabaseProxy(){const t=this.installResourcesProxies.bind(this);this.database._createResource=this.database.createResource,this.database.createResource=async function(...r){const n=await this._createResource(...r);return t(n),n}}installResourcesProxies(t){t.cache=this.driver;let r=`resource=${t.name}`;this.driver.keyPrefix&&(this.driver.keyPrefix=we(this.driver.keyPrefix,r)),t.cacheKeyFor=async function({params:n={},action:i="list"}){let a=Object.keys(n).sort().map(o=>`${o}:${n[o]}`).join("|")||"empty";return a=await ra(a),a=we(r,`action=${i}`,`${a}.json.gz`),a},t._count=t.count,t._listIds=t.listIds,t._getMany=t.getMany,t._getAll=t.getAll,t._page=t.page,t.count=async function(){const n=await this.cacheKeyFor({action:"count"});try{const a=await this.cache.get(n);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const i=await t._count();return await this.cache.set(n,i),i},t.listIds=async function(){const n=await this.cacheKeyFor({action:"listIds"});try{const a=await this.cache.get(n);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const i=await t._listIds();return await this.cache.set(n,i),i},t.getMany=async function(n){const i=await this.cacheKeyFor({action:"getMany",params:{ids:n}});try{const o=await this.cache.get(i);if(o)return o}catch(o){if(o.name!=="NoSuchKey")throw o}const a=await t._getMany(n);return await this.cache.set(i,a),a},t.getAll=async function(){const n=await this.cacheKeyFor({action:"getAll"});try{const a=await this.cache.get(n);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const i=await t._getAll();return await this.cache.set(n,i),i},t.page=async function({offset:n,size:i}){const a=await this.cacheKeyFor({action:"page",params:{offset:n,size:i}});try{const s=await this.cache.get(a);if(s)return s}catch(s){if(s.name!=="NoSuchKey")throw s}const o=await t._page({offset:n,size:i});return await this.cache.set(a,o),o},t._insert=t.insert,t._update=t.update,t._delete=t.delete,t._deleteMany=t.deleteMany,t.insert=async function(...n){const i=await t._insert(...n);return await this.cache.clear(r),i},t.update=async function(...n){const i=await t._update(...n);return await this.cache.clear(r),i},t.delete=async function(...n){const i=await t._delete(...n);return await this.cache.clear(r),i},t.deleteMany=async function(...n){const i=await t._deleteMany(...n);return await this.cache.clear(r),i}}}return P.BaseError=lt,P.Cache=li,P.CachePlugin=lp,P.Client=ta,P.ConnectionString=ea,P.CostsPlugin=cp,P.Database=cs,P.ErrorMap=Ji,P.InvalidResourceItem=Jt,P.MemoryCache=rh,P.MissingMetadata=Gi,P.NoSuchBucket=Wi,P.NoSuchKey=$r,P.NotFound=Vi,P.Plugin=If,P.PluginObject=fp,P.ResourceIdsPageReader=Qo,P.ResourceIdsReader=Xo,P.ResourceReader=es,P.ResourceWriter=ts,P.S3Cache=Pf,P.S3_DEFAULT_ENDPOINT=Qi,P.S3_DEFAULT_REGION=Xi,P.S3db=th,P.UnknownError=Yi,P.Validator=so,P.ValidatorManager=fo,P.decrypt=na,P.encrypt=zr,P.sha256=ra,P.streamToString=Pt,P}({},nanoid,lodashEs,promisePool,clientS3,crypto,flat,FastestValidator,web);
29
+ `)+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function Wl(e){return Array.isArray(e)}function Fo(e){return typeof e=="boolean"}function Vn(e){return e===null}function Vl(e){return typeof e=="number"}function Gn(e){return typeof e=="string"}function Fe(e){return e===void 0}function Yn(e){return Ot(e)&&Qn(e)==="[object RegExp]"}function Ot(e){return typeof e=="object"&&e!==null}function Mo(e){return Ot(e)&&Qn(e)==="[object Date]"}function Jn(e){return Ot(e)&&(Qn(e)==="[object Error]"||e instanceof Error)}function Xn(e){return typeof e=="function"}function Qn(e){return Object.prototype.toString.call(e)}function Gl(e,t){if(!t||!Ot(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}function jo(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ke(){this.head=null,this.tail=null,this.length=0}Ke.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},Ke.prototype.unshift=function(e){var t={data:e,next:this.head};this.length===0&&(this.tail=t),this.head=t,++this.length},Ke.prototype.shift=function(){if(this.length!==0){var e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},Ke.prototype.clear=function(){this.head=this.tail=null,this.length=0},Ke.prototype.join=function(e){if(this.length===0)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},Ke.prototype.concat=function(e){if(this.length===0)return y.alloc(0);if(this.length===1)return this.head.data;for(var t=y.allocUnsafe(e>>>0),r=this.head,n=0;r;)r.data.copy(t,n),n+=r.data.length,r=r.next;return t};var Yl=y.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Jl(e){if(e&&!Yl(e))throw new Error("Unknown encoding: "+e)}function Tt(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),Jl(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Ql;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=eu;break;default:this.write=Xl;return}this.charBuffer=new y(6),this.charReceived=0,this.charLength=0}Tt.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived<this.charLength)return"";e=e.slice(r,e.length),t=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var i=t.charCodeAt(t.length-1);if(i>=55296&&i<=56319){this.charLength+=this.surrogateSize,t="";continue}if(this.charReceived=this.charLength=0,e.length===0)return t;break}this.detectIncompleteChar(e);var n=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,n),n-=this.charReceived),t+=e.toString(this.encoding,0,n);var n=t.length-1,i=t.charCodeAt(n);if(i>=55296&&i<=56319){var a=this.surrogateSize;return this.charLength+=a,this.charReceived+=a,this.charBuffer.copy(this.charBuffer,a,0,a),e.copy(this.charBuffer,0,0,a),t.substring(0,n)}return t},Tt.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(t==1&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},Tt.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,n=this.charBuffer,i=this.encoding;t+=n.slice(0,r).toString(i)}return t};function Xl(e){return e.toString(this.encoding)}function Ql(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function eu(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}N.ReadableState=Lo;var D=Ul("stream");W(N,R);function tu(e,t,r){if(typeof e.prependListener=="function")return e.prependListener(t,r);!e._events||!e._events[t]?e.on(t,r):Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]}function ru(e,t){return e.listeners(t).length}function Lo(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof ie&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16*1024;this.highWaterMark=r||r===0?r:n,this.highWaterMark=~~this.highWaterMark,this.buffer=new Ke,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(this.decoder=new Tt(e.encoding),this.encoding=e.encoding)}function N(e){if(!(this instanceof N))return new N(e);this._readableState=new Lo(e,this),this.readable=!0,e&&typeof e.read=="function"&&(this._read=e.read),R.call(this)}N.prototype.push=function(e,t){var r=this._readableState;return!r.objectMode&&typeof e=="string"&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=y.from(e,t),t="")),No(this,r,e,t,!1)},N.prototype.unshift=function(e){var t=this._readableState;return No(this,t,e,"",!0)},N.prototype.isPaused=function(){return this._readableState.flowing===!1};function No(e,t,r,n,i){var a=au(t,r);if(a)e.emit("error",a);else if(r===null)t.reading=!1,ou(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!i){var o=new Error("stream.push() after EOF");e.emit("error",o)}else if(t.endEmitted&&i){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{var c;t.decoder&&!i&&!n&&(r=t.decoder.write(r),c=!t.objectMode&&r.length===0),i||(t.reading=!1),c||(t.flowing&&t.length===0&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&dr(e))),su(e,t)}else i||(t.reading=!1);return nu(t)}function nu(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}N.prototype.setEncoding=function(e){return this._readableState.decoder=new Tt(e),this._readableState.encoding=e,this};var Bo=8388608;function iu(e){return e>=Bo?e=Bo:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function Uo(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=iu(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}N.prototype.read=function(e){D("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return D("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?ti(this):dr(this),null;if(e=Uo(e,t),e===0&&t.ended)return t.length===0&&ti(this),null;var n=t.needReadable;D("need readable",n),(t.length===0||t.length-e<t.highWaterMark)&&(n=!0,D("length less than watermark",n)),t.ended||t.reading?(n=!1,D("reading or ended",n)):n&&(D("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=Uo(r,t)));var i;return e>0?i=zo(e,t):i=null,i===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&ti(this)),i!==null&&this.emit("data",i),i};function au(e,t){var r=null;return!y.isBuffer(t)&&typeof t!="string"&&t!==null&&t!==void 0&&!e.objectMode&&(r=new TypeError("Invalid non-string/buffer chunk")),r}function ou(e,t){if(!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,dr(e)}}function dr(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(D("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?te($o,e):$o(e))}function $o(e){D("emit readable"),e.emit("readable"),ei(e)}function su(e,t){t.readingMore||(t.readingMore=!0,te(fu,e,t))}function fu(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(D("maybeReadMore read 0"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}N.prototype._read=function(e){this.emit("error",new Error("not implemented"))},N.prototype.pipe=function(e,t){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e);break}n.pipesCount+=1,D("pipe count=%d opts=%j",n.pipesCount,t);var i=!t||t.end!==!1,a=i?s:l;n.endEmitted?te(a):r.once("end",a),e.on("unpipe",o);function o(w){D("onunpipe"),w===r&&l()}function s(){D("onend"),e.end()}var c=cu(r);e.on("drain",c);var f=!1;function l(){D("cleanup"),e.removeListener("close",p),e.removeListener("finish",v),e.removeListener("drain",c),e.removeListener("error",u),e.removeListener("unpipe",o),r.removeListener("end",s),r.removeListener("end",l),r.removeListener("data",h),f=!0,n.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&c()}var d=!1;r.on("data",h);function h(w){D("ondata"),d=!1;var x=e.write(w);x===!1&&!d&&((n.pipesCount===1&&n.pipes===e||n.pipesCount>1&&Zo(n.pipes,e)!==-1)&&!f&&(D("false write response, pause",r._readableState.awaitDrain),r._readableState.awaitDrain++,d=!0),r.pause())}function u(w){D("onerror",w),_(),e.removeListener("error",u),ru(e,"error")===0&&e.emit("error",w)}tu(e,"error",u);function p(){e.removeListener("finish",v),_()}e.once("close",p);function v(){D("onfinish"),e.removeListener("close",p),_()}e.once("finish",v);function _(){D("unpipe"),r.unpipe(e)}return e.emit("pipe",r),n.flowing||(D("pipe resume"),r.resume()),e};function cu(e){return function(){var t=e._readableState;D("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&e.listeners("data").length&&(t.flowing=!0,ei(e))}}N.prototype.unpipe=function(e){var t=this._readableState;if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var r=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<n;i++)r[i].emit("unpipe",this);return this}var a=Zo(t.pipes,e);return a===-1?this:(t.pipes.splice(a,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)},N.prototype.on=function(e,t){var r=R.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var n=this._readableState;!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&dr(this):te(lu,this))}return r},N.prototype.addListener=N.prototype.on;function lu(e){D("readable nexttick read 0"),e.read(0)}N.prototype.resume=function(){var e=this._readableState;return e.flowing||(D("resume"),e.flowing=!0,uu(this,e)),this};function uu(e,t){t.resumeScheduled||(t.resumeScheduled=!0,te(hu,e,t))}function hu(e,t){t.reading||(D("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),ei(e),t.flowing&&!t.reading&&e.read(0)}N.prototype.pause=function(){return D("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(D("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function ei(e){var t=e._readableState;for(D("flow",t.flowing);t.flowing&&e.read()!==null;);}N.prototype.wrap=function(e){var t=this._readableState,r=!1,n=this;e.on("end",function(){if(D("wrapped end"),t.decoder&&!t.ended){var o=t.decoder.end();o&&o.length&&n.push(o)}n.push(null)}),e.on("data",function(o){if(D("wrapped data"),t.decoder&&(o=t.decoder.write(o)),!(t.objectMode&&o==null)&&!(!t.objectMode&&(!o||!o.length))){var s=n.push(o);s||(r=!0,e.pause())}});for(var i in e)this[i]===void 0&&typeof e[i]=="function"&&(this[i]=function(o){return function(){return e[o].apply(e,arguments)}}(i));var a=["error","close","destroy","pause","resume"];return gu(a,function(o){e.on(o,n.emit.bind(n,o))}),n._read=function(o){D("wrapped _read",o),r&&(r=!1,e.resume())},n},N._fromList=zo;function zo(e,t){if(t.length===0)return null;var r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(t.decoder?r=t.buffer.join(""):t.buffer.length===1?r=t.buffer.head.data:r=t.buffer.concat(t.length),t.buffer.clear()):r=du(e,t.buffer,t.decoder),r}function du(e,t,r){var n;return e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?n=t.shift():n=r?pu(e,t):yu(e,t),n}function pu(e,t){var r=t.head,n=1,i=r.data;for(e-=i.length;r=r.next;){var a=r.data,o=e>a.length?a.length:e;if(o===a.length?i+=a:i+=a.slice(0,e),e-=o,e===0){o===a.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(o));break}++n}return t.length-=n,i}function yu(e,t){var r=y.allocUnsafe(e),n=t.head,i=1;for(n.data.copy(r),e-=n.data.length;n=n.next;){var a=n.data,o=e>a.length?a.length:e;if(a.copy(r,r.length-e,0,o),e-=o,e===0){o===a.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(o));break}++i}return t.length-=i,r}function ti(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,te(vu,t,e))}function vu(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function gu(e,t){for(var r=0,n=e.length;r<n;r++)t(e[r],r)}function Zo(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}q.WritableState=ri,W(q,R);function _u(){}function wu(e,t,r){this.chunk=e,this.encoding=t,this.callback=r,this.next=null}function ri(e,t){Object.defineProperty(this,"buffer",{get:Do(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),e=e||{},this.objectMode=!!e.objectMode,t instanceof ie&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var r=e.highWaterMark,n=this.objectMode?16:16*1024;this.highWaterMark=r||r===0?r:n,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var i=e.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){ku(t,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new Go(this)}ri.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};function q(e){if(!(this instanceof q)&&!(this instanceof ie))return new q(e);this._writableState=new ri(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev)),R.call(this)}q.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function bu(e,t){var r=new Error("write after end");e.emit("error",r),te(t,r)}function mu(e,t,r,n){var i=!0,a=!1;return r===null?a=new TypeError("May not write null values to stream"):!y.isBuffer(r)&&typeof r!="string"&&r!==void 0&&!t.objectMode&&(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),te(n,a),i=!1),i}q.prototype.write=function(e,t,r){var n=this._writableState,i=!1;return typeof t=="function"&&(r=t,t=null),y.isBuffer(e)?t="buffer":t||(t=n.defaultEncoding),typeof r!="function"&&(r=_u),n.ended?bu(this,r):mu(this,n,e,r)&&(n.pendingcb++,i=xu(this,n,e,t,r)),i},q.prototype.cork=function(){var e=this._writableState;e.corked++},q.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest&&Ho(this,e))},q.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function Eu(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=y.from(t,r)),t}function xu(e,t,r,n,i){r=Eu(t,r,n),y.isBuffer(r)&&(n="buffer");var a=t.objectMode?1:r.length;t.length+=a;var o=t.length<t.highWaterMark;if(o||(t.needDrain=!0),t.writing||t.corked){var s=t.lastBufferedRequest;t.lastBufferedRequest=new wu(r,n,i),s?s.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else ni(e,t,!1,a,r,n,i);return o}function ni(e,t,r,n,i,a,o){t.writelen=n,t.writecb=o,t.writing=!0,t.sync=!0,r?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function Su(e,t,r,n,i){--t.pendingcb,r?te(i,n):i(n),e._writableState.errorEmitted=!0,e.emit("error",n)}function Au(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function ku(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if(Au(r),t)Su(e,r,n,t,i);else{var a=Ko(r);!a&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ho(e,r),n?te(qo,e,r,a,i):qo(e,r,a,i)}}function qo(e,t,r,n){r||Ru(e,t),t.pendingcb--,n(),Vo(e,t)}function Ru(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function Ho(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,i=new Array(n),a=t.corkedRequestsFree;a.entry=r;for(var o=0;r;)i[o]=r,r=r.next,o+=1;ni(e,t,!0,t.length,i,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new Go(t)}else{for(;r;){var s=r.chunk,c=r.encoding,f=r.callback,l=t.objectMode?1:s.length;if(ni(e,t,!1,l,s,c,f),r=r.next,t.writing)break}r===null&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=r,t.bufferProcessing=!1}q.prototype._write=function(e,t,r){r(new Error("not implemented"))},q.prototype._writev=null,q.prototype.end=function(e,t,r){var n=this._writableState;typeof e=="function"?(r=e,e=null,t=null):typeof t=="function"&&(r=t,t=null),e!=null&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),!n.ending&&!n.finished&&Ou(this,n,r)};function Ko(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function Wo(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function Vo(e,t){var r=Ko(t);return r&&(t.pendingcb===0?(Wo(e,t),t.finished=!0,e.emit("finish")):Wo(e,t)),r}function Ou(e,t,r){t.ending=!0,Vo(e,t),r&&(t.finished?te(r):e.once("finish",r)),t.ended=!0,e.writable=!1}function Go(e){var t=this;this.next=null,this.entry=null,this.finish=function(r){var n=t.entry;for(t.entry=null;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}W(ie,N);for(var Yo=Object.keys(q.prototype),ii=0;ii<Yo.length;ii++){var ai=Yo[ii];ie.prototype[ai]||(ie.prototype[ai]=q.prototype[ai])}function ie(e){if(!(this instanceof ie))return new ie(e);N.call(this,e),q.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",Tu)}function Tu(){this.allowHalfOpen||this._writableState.ended||te(Pu,this)}function Pu(e){e.end()}W(re,ie);function Iu(e){this.afterTransform=function(t,r){return Cu(e,t,r)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function Cu(e,t,r){var n=e._transformState;n.transforming=!1;var i=n.writecb;if(!i)return e.emit("error",new Error("no writecb in Transform class"));n.writechunk=null,n.writecb=null,r!=null&&e.push(r),i(t);var a=e._readableState;a.reading=!1,(a.needReadable||a.length<a.highWaterMark)&&e._read(a.highWaterMark)}function re(e){if(!(this instanceof re))return new re(e);ie.call(this,e),this._transformState=new Iu(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.once("prefinish",function(){typeof this._flush=="function"?this._flush(function(r){Jo(t,r)}):Jo(t)})}re.prototype.push=function(e,t){return this._transformState.needTransform=!1,ie.prototype.push.call(this,e,t)},re.prototype._transform=function(e,t,r){throw new Error("Not implemented")},re.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},re.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};function Jo(e,t){if(t)return e.emit("error",t);var r=e._writableState,n=e._transformState;if(r.length)throw new Error("Calling transform done when ws.length != 0");if(n.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}W(Pt,re);function Pt(e){if(!(this instanceof Pt))return new Pt(e);re.call(this,e)}Pt.prototype._transform=function(e,t,r){r(null,e)},W(xe,R),xe.Readable=N,xe.Writable=q,xe.Duplex=ie,xe.Transform=re,xe.PassThrough=Pt,xe.Stream=xe;function xe(){R.call(this)}xe.prototype.pipe=function(e,t){var r=this;function n(l){e.writable&&e.write(l)===!1&&r.pause&&r.pause()}r.on("data",n);function i(){r.readable&&r.resume&&r.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(r.on("end",o),r.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function c(l){if(f(),R.listenerCount(this,"error")===0)throw l}r.on("error",c),e.on("error",c);function f(){r.removeListener("data",n),e.removeListener("drain",i),r.removeListener("end",o),r.removeListener("close",s),r.removeListener("error",c),e.removeListener("error",c),r.removeListener("end",f),r.removeListener("close",f),e.removeListener("close",f)}return r.on("end",f),r.on("close",f),e.on("close",f),e.emit("pipe",r),e};class Xo extends R{constructor({resource:t}){super(),this.resource=t,this.client=t.client,this.stream=new Ff.ReadableStream({highWaterMark:this.client.parallelism*3,start:this._start.bind(this),pull:this._pull.bind(this),cancel:this._cancel.bind(this)})}build(){return this.stream.getReader()}async _start(t){this.controller=t,this.continuationToken=null,this.closeNextIteration=!1}async _pull(t){if(this.closeNextIteration){t.close();return}const r=await this.client.listObjects({prefix:`resource=${this.resource.name}`,continuationToken:this.continuationToken}),n=r?.Contents.map(i=>i.Key).map(i=>i.replace(this.client.config.keyPrefix,"")).map(i=>i.startsWith("/")?i.replace("/",""):i).map(i=>i.replace(`resource=${this.resource.name}/id=`,""));this.continuationToken=r.NextContinuationToken,this.enqueue(n),r.IsTruncated||(this.closeNextIteration=!0)}enqueue(t){t.forEach(r=>{this.controller.enqueue(r),this.emit("id",r)})}_cancel(t){console.warn("Stream cancelled",t)}}class Qo extends Xo{enqueue(t){this.controller.enqueue(t),this.emit("page",t)}}class es extends R{constructor({resource:t,batchSize:r=10,concurrency:n=5}){if(super(),!t)throw new Error("Resource is required for ResourceReader");this.resource=t,this.client=t.client,this.batchSize=r,this.concurrency=n,this.input=new Qo({resource:this.resource}),this.transform=new re({objectMode:!0,transform:this._transform.bind(this)}),this.input.on("data",i=>{this.transform.write(i)}),this.input.on("end",()=>{this.transform.end()}),this.input.on("error",i=>{this.emit("error",i)}),this.transform.on("data",i=>{this.emit("data",i)}),this.transform.on("end",()=>{this.emit("end")}),this.transform.on("error",i=>{this.emit("error",i)})}build(){return this}async _transform(t,r,n){try{await ce.PromisePool.for(t).withConcurrency(this.concurrency).handleError(async(i,a)=>{this.emit("error",i,a)}).process(async i=>{const a=await this.resource.get(i);return this.push(a),a}),n()}catch(i){n(i)}}resume(){this.input.resume()}}class ts extends R{constructor({resource:t,batchSize:r=10,concurrency:n=5}){super(),this.resource=t,this.client=t.client,this.batchSize=r,this.concurrency=n,this.buffer=[],this.writing=!1,this.writable=new q({objectMode:!0,write:this._write.bind(this)}),this.writable.on("finish",()=>{this.emit("finish")}),this.writable.on("error",i=>{this.emit("error",i)})}build(){return this}write(t){return this.buffer.push(t),this._maybeWrite(),!0}end(){this.ended=!0,this._maybeWrite()}async _maybeWrite(){if(!this.writing&&!(this.buffer.length===0&&!this.ended)){for(this.writing=!0;this.buffer.length>0;){const t=this.buffer.splice(0,this.batchSize);try{await ce.PromisePool.for(t).withConcurrency(this.concurrency).handleError(async(r,n)=>{this.emit("error",r,n)}).process(async r=>{await this.resource.insert(r)})}catch(r){this.emit("error",r)}}this.writing=!1,this.ended&&this.writable.emit("finish")}}async _write(t,r,n){n()}}function It(e){return new Promise((t,r)=>{const n=[];e.on("data",i=>n.push(i)),e.on("error",r),e.on("end",()=>t(Buffer.concat(n).toString("utf-8")))})}function Ct(e){typeof e!="string"&&(e=String(e));let t=0;for(let r=0;r<e.length;r++){const n=e.codePointAt(r);n<=127?t+=1:n<=2047?t+=2:n<=65535?t+=3:n<=1114111&&(t+=4,n>65535&&r++)}return t}function rs(e){return e==null?"":typeof e=="boolean"?e?"1":"0":typeof e=="number"?String(e):typeof e=="string"?e:Array.isArray(e)?e.length===0?"[]":e.map(t=>String(t)).join("|"):typeof e=="object"?JSON.stringify(e):String(e)}function oi(e){const t={};for(const[r,n]of Object.entries(e)){const i=rs(n),a=Ct(i);t[r]=a}return t}function We(e){const t=oi(e);return Object.values(t).reduce((r,n)=>r+n,0)}const Se=2048;async function Du({resource:e,data:t,mappedData:r}){const n=We(r);return n>Se&&e.emit("exceedsLimit",{operation:"insert",totalSize:n,limit:Se,excess:n-Se,data:t}),{mappedData:r,body:""}}async function Fu({resource:e,id:t,data:r,mappedData:n}){const i=We(n);return i>Se&&e.emit("exceedsLimit",{operation:"update",id:t,totalSize:i,limit:Se,excess:i-Se,data:r}),{mappedData:n,body:""}}async function Mu({resource:e,id:t,data:r,mappedData:n}){const i=We(n);return i>Se&&e.emit("exceedsLimit",{operation:"upsert",id:t,totalSize:i,limit:Se,excess:i-Se,data:r}),{mappedData:n,body:""}}async function ju({resource:e,metadata:t,body:r}){return{metadata:t,body:r}}var Lu=Object.freeze({__proto__:null,handleGet:ju,handleInsert:Du,handleUpdate:Fu,handleUpsert:Mu});const yt=2048;async function Nu({resource:e,data:t,mappedData:r}){const n=We(r);if(n>yt)throw new Error(`S3 metadata size exceeds 2KB limit. Current size: ${n} bytes, limit: ${yt} bytes`);return{mappedData:r,body:""}}async function Bu({resource:e,id:t,data:r,mappedData:n}){const i=We(n);if(i>yt)throw new Error(`S3 metadata size exceeds 2KB limit. Current size: ${i} bytes, limit: ${yt} bytes`);return{mappedData:n,body:""}}async function Uu({resource:e,id:t,data:r,mappedData:n}){const i=We(n);if(i>yt)throw new Error(`S3 metadata size exceeds 2KB limit. Current size: ${i} bytes, limit: ${yt} bytes`);return{mappedData:n,body:""}}async function $u({resource:e,metadata:t,body:r}){return{metadata:t,body:r}}var zu=Object.freeze({__proto__:null,handleGet:$u,handleInsert:Nu,handleUpdate:Bu,handleUpsert:Uu});const ns=2048,is="...",as=Ct(is);async function Zu({resource:e,data:t,mappedData:r}){return si({resource:e,data:t,mappedData:r})}async function qu({resource:e,id:t,data:r,mappedData:n}){return si({resource:e,data:r,mappedData:n})}async function Hu({resource:e,id:t,data:r,mappedData:n}){return si({resource:e,data:r,mappedData:n})}async function Ku({resource:e,metadata:t,body:r}){return{metadata:t,body:r}}function si({resource:e,data:t,mappedData:r}){const n=oi(r),i=Object.entries(n).sort(([,s],[,c])=>s-c),a={};let o=0;for(const[s,c]of i){const f=ns-o;if(c<=f)a[s]=r[s],o+=c;else if(f>as){const l=f-as,d=rs(r[s]);let h="",u=0;for(let p=0;p<d.length;p++){const v=d[p],_=Ct(v);if(u+_<=l)h+=v,u+=_;else break}a[s]=h+is,o=ns;break}else break}return{mappedData:a,body:""}}var Wu=Object.freeze({__proto__:null,handleGet:Ku,handleInsert:Zu,handleUpdate:qu,handleUpsert:Hu});const os=2048,pr="$overflow",fi="true",Vu=Ct(pr)+Ct(fi);async function Gu({resource:e,data:t,mappedData:r}){return ci({resource:e,data:t,mappedData:r})}async function Yu({resource:e,id:t,data:r,mappedData:n}){return ci({resource:e,data:r,mappedData:n})}async function Ju({resource:e,id:t,data:r,mappedData:n}){return ci({resource:e,data:r,mappedData:n})}async function Xu({resource:e,metadata:t,body:r}){if(t[pr]===fi)try{const n=r?JSON.parse(r):{},i={...t};return delete i[pr],{metadata:{...i,...n},body:""}}catch{return{metadata:t,body:r}}return{metadata:t,body:r}}function ci({resource:e,data:t,mappedData:r}){if(We(r)<=os)return{mappedData:r,body:""};const i=os-Vu,a=oi(r),o=Object.entries(a).sort(([,d],[,h])=>d-h),s={},c={};let f=0;for(const[d,h]of o)f+h<=i?(s[d]=r[d],f+=h):c[d]=r[d];s[pr]=fi;const l=Object.keys(c).length>0?JSON.stringify(c):"";return{mappedData:s,body:l}}var Qu=Object.freeze({__proto__:null,handleGet:Xu,handleInsert:Gu,handleUpdate:Yu,handleUpsert:Ju});const ss={"user-management":Lu,"enforce-limits":zu,"data-truncate":Wu,"body-overflow":Qu};function vt(e){const t=ss[e];if(!t)throw new Error(`Unknown behavior: ${e}. Available behaviors: ${Object.keys(ss).join(", ")}`);return t}const eh="user-management";class fs extends R{constructor({name:t,client:r,version:n="1",options:i={},attributes:a={},parallelism:o=10,passphrase:s="secret",observers:c=[],behavior:f=eh}){if(super(),this.name=t,this.client=r,this.version=n,this.behavior=f,this.observers=c,this.parallelism=o,this.passphrase=s??"secret",this.options={cache:!1,autoDecrypt:!0,timestamps:!1,partitions:{},paranoid:!0,...i},this.hooks={preInsert:[],afterInsert:[],preUpdate:[],afterUpdate:[],preDelete:[],afterDelete:[]},this.attributes=a||{},i.timestamps&&(this.attributes.createdAt="string|optional",this.attributes.updatedAt="string|optional",this.options.partitions.byCreatedDate||(this.options.partitions.byCreatedDate={fields:{createdAt:"date|maxlength:10"}}),this.options.partitions.byUpdatedDate||(this.options.partitions.byUpdatedDate={fields:{updatedAt:"date|maxlength:10"}})),this.schema=new Pe({name:t,attributes:this.attributes,passphrase:s,version:this.version,options:this.options}),this.validatePartitions(),this.setupPartitionHooks(),i.hooks){for(const[l,d]of Object.entries(i.hooks))if(Array.isArray(d)&&this.hooks[l])for(const h of d)this.hooks[l].push(h.bind(this))}}export(){const t=this.schema.export();return t.behavior=this.behavior,t}updateAttributes(t){const r=this.attributes;return this.attributes=t,this.options.timestamps&&(t.createdAt="string|optional",t.updatedAt="string|optional",this.options.partitions.byCreatedDate||(this.options.partitions.byCreatedDate={fields:{createdAt:"date|maxlength:10"}}),this.options.partitions.byUpdatedDate||(this.options.partitions.byUpdatedDate={fields:{updatedAt:"date|maxlength:10"}})),this.schema=new Pe({name:this.name,attributes:t,passphrase:this.passphrase,version:this.version,options:this.options}),this.validatePartitions(),this.setupPartitionHooks(),{oldAttributes:r,newAttributes:t}}addHook(t,r){this.hooks[t]&&this.hooks[t].push(r.bind(this))}async executeHooks(t,r){if(!this.hooks[t])return r;let n=r;for(const i of this.hooks[t])n=await i(n);return n}setupPartitionHooks(){const t=this.options.partitions;!t||Object.keys(t).length===0||(this.addHook("afterInsert",async r=>(await this.createPartitionReferences(r),r)),this.addHook("afterDelete",async r=>(await this.deletePartitionReferences(r),r)))}async validate(t){const r={original:L.cloneDeep(t),isValid:!1,errors:[]},n=await this.schema.validate(t,{mutateOriginal:!0});return n===!0?r.isValid=!0:r.errors=n,r.data=t,r}validatePartitions(){const t=this.options.partitions;if(!t||Object.keys(t).length===0)return;const r=Object.keys(this.attributes||{});for(const[n,i]of Object.entries(t))if(i.fields){for(const a of Object.keys(i.fields))if(!this.fieldExistsInAttributes(a))throw new Error(`Partition '${n}' uses field '${a}' which does not exist in resource version '${this.version}'. Available fields: ${r.join(", ")}. This version of resource does not have support for this partition.`)}}fieldExistsInAttributes(t){if(!t.includes("."))return Object.keys(this.attributes||{}).includes(t);const r=t.split(".");let n=this.attributes||{};for(const i of r){if(!n||typeof n!="object"||!(i in n))return!1;n=n[i]}return!0}applyPartitionRule(t,r){if(t==null)return t;let n=t;if(typeof r=="string"&&r.includes("maxlength:")){const i=r.match(/maxlength:(\d+)/);if(i){const a=parseInt(i[1]);typeof n=="string"&&n.length>a&&(n=n.substring(0,a))}}if(r.includes("date")){if(n instanceof Date)n=n.toISOString().split("T")[0];else if(typeof n=="string")try{if(n.includes("T")&&n.includes("Z"))n=n.split("T")[0];else{const i=new Date(n);isNaN(i.getTime())||(n=i.toISOString().split("T")[0])}}catch{}}return n}getResourceKey(t){return we(`resource=${this.name}`,`v=${this.version}`,`id=${t}`)}getPartitionKey(t,r,n){const i=this.options.partitions[t];if(!i)throw new Error(`Partition '${t}' not found`);const a=[],o=Object.entries(i.fields).sort(([s],[c])=>s.localeCompare(c));for(const[s,c]of o){const f=this.getNestedFieldValue(n,s),l=this.applyPartitionRule(f,c);if(l==null)return null;a.push(`${s}=${l}`)}return a.length===0?null:we(`resource=${this.name}`,`partition=${t}`,...a,`id=${r}`)}getNestedFieldValue(t,r){if(!r.includes("."))return t[r];const n=r.split(".");let i=t;for(const a of n){if(i==null||typeof i!="object")return;i=i[a]}return i}async insert({id:t,...r}){this.options.timestamps&&(r.createdAt=new Date().toISOString(),r.updatedAt=new Date().toISOString());const n=await this.executeHooks("preInsert",r),{errors:i,isValid:a,data:o}=await this.validate(n);if(!a)throw new Xt({bucket:this.client.config.bucket,resourceName:this.name,attributes:n,validation:i});!t&&t!==0&&(t=zi());const s=await this.schema.mapper(o),c=vt(this.behavior),{mappedData:f,body:l}=await c.handleInsert({resource:this,data:o,mappedData:s}),d=this.getResourceKey(t);await this.client.putObject({metadata:f,key:d,body:l});const h=L.merge({id:t},o);return await this.executeHooks("afterInsert",h),this.emit("insert",h),h}async get(t){const r=this.getResourceKey(t),n=await this.client.headObject(r),i=this.extractVersionFromKey(r)||this.version;let o=await(await this.getSchemaForVersion(i)).unmapper(n.Metadata);const s=vt(this.behavior);let c="";if(n.ContentLength>0)try{const d=await this.client.getObject(r);c=await It(d.Body)}catch{c=""}const{metadata:f}=await s.handleGet({resource:this,metadata:o,body:c});let l=f;return l.id=t,l._contentLength=n.ContentLength,l._lastModified=n.LastModified,l._hasContent=n.ContentLength>0,l._mimeType=n.ContentType||null,n.VersionId&&(l._versionId=n.VersionId),n.Expiration&&(l._expiresAt=n.Expiration),l._definitionHash=this.getDefinitionHash(),this.emit("get",l),l}async exists(t){try{const r=this.getResourceKey(t);return await this.client.headObject(r),!0}catch{return!1}}async update(t,r){const n=await this.get(t);this.options.timestamps&&(r.updatedAt=new Date().toISOString());const i=await this.executeHooks("preUpdate",r),a=L.merge(n,i);delete a.id;const{isValid:o,errors:s,data:c}=await this.validate(a);if(!o)throw new Xt({bucket:this.client.bucket,resourceName:this.name,attributes:i,validation:s});const f=await this.schema.mapper(c),l=vt(this.behavior),{mappedData:d,body:h}=await l.handleUpdate({resource:this,id:t,data:c,mappedData:f}),u=this.getResourceKey(t);let p,v=h;if(h===""&&this.behavior!=="body-overflow")try{const _=await this.client.getObject(u);if(_.ContentLength>0){const w=Buffer.from(await _.Body.transformToByteArray()),x=w.toString();try{JSON.parse(x)}catch{v=w,p=_.ContentType}}}catch{}return await this.client.putObject({key:u,body:v,contentType:p,metadata:d}),c.id=t,await this.executeHooks("afterUpdate",c),await this.updatePartitionReferences(c),this.emit("update",i,c),c}async delete(t){let r;try{r=await this.get(t)}catch{r={id:t}}await this.executeHooks("preDelete",r);const n=this.getResourceKey(t),i=await this.client.deleteObject(n);return await this.executeHooks("afterDelete",r),this.emit("delete",t),i}async upsert({id:t,...r}){return await this.exists(t)?this.update(t,r):this.insert({id:t,...r})}async count({partition:t=null,partitionValues:r={}}={}){let n;if(t&&Object.keys(r).length>0){const a=this.options.partitions[t];if(!a)throw new Error(`Partition '${t}' not found`);const o=[],s=Object.entries(a.fields).sort(([c],[f])=>c.localeCompare(f));for(const[c,f]of s){const l=r[c];if(l!=null){const d=this.applyPartitionRule(l,f);o.push(`${c}=${d}`)}}o.length>0?n=`resource=${this.name}/partition=${t}/${o.join("/")}`:n=`resource=${this.name}/partition=${t}`}else n=`resource=${this.name}/v=${this.version}`;const i=await this.client.count({prefix:n});return this.emit("count",i),i}async insertMany(t){const{results:r}=await ce.PromisePool.for(t).withConcurrency(this.parallelism).handleError(async(n,i)=>{this.emit("error",n,i),this.observers.map(a=>a.emit("error",this.name,n,i))}).process(async n=>await this.insert(n));return this.emit("insertMany",t.length),r}async deleteMany(t){const r=L.chunk(t.map(i=>this.getResourceKey(i)),1e3),{results:n}=await ce.PromisePool.for(r).withConcurrency(this.parallelism).handleError(async(i,a)=>{this.emit("error",i,a),this.observers.map(o=>o.emit("error",this.name,i,a))}).process(async i=>{const a=await this.client.deleteObjects(i);return i.forEach(o=>{const c=o.split("/").find(l=>l.startsWith("id=")),f=c?c.replace("id=",""):null;f&&(this.emit("deleted",f),this.observers.map(l=>l.emit("deleted",this.name,f)))}),a});return this.emit("deleteMany",t.length),n}async deleteAll(){if(this.options.paranoid!==!1)throw new Error(`deleteAll() is a dangerous operation and requires paranoid: false option. Current paranoid setting: ${this.options.paranoid}`);const t=`resource=${this.name}/v=${this.version}`,r=await this.client.deleteAll({prefix:t});return this.emit("deleteAll",{version:this.version,prefix:t,deletedCount:r}),{deletedCount:r,version:this.version}}async deleteAllData(){if(this.options.paranoid!==!1)throw new Error(`deleteAllData() is a dangerous operation and requires paranoid: false option. Current paranoid setting: ${this.options.paranoid}`);const t=`resource=${this.name}`,r=await this.client.deleteAll({prefix:t});return this.emit("deleteAllData",{resource:this.name,prefix:t,deletedCount:r}),{deletedCount:r,resource:this.name}}async listIds({partition:t=null,partitionValues:r={}}={}){let n;if(t&&Object.keys(r).length>0){const o=this.options.partitions[t];if(!o)throw new Error(`Partition '${t}' not found`);const s=[],c=Object.entries(o.fields).sort(([f],[l])=>f.localeCompare(l));for(const[f,l]of c){const d=r[f];if(d!=null){const h=this.applyPartitionRule(d,l);s.push(`${f}=${h}`)}}s.length>0?n=`resource=${this.name}/partition=${t}/${s.join("/")}`:n=`resource=${this.name}/partition=${t}`}else n=`resource=${this.name}/v=${this.version}`;const a=(await this.client.getAllKeys({prefix:n})).map(o=>{const c=o.split("/").find(f=>f.startsWith("id="));return c?c.replace("id=",""):null}).filter(Boolean);return this.emit("listIds",a.length),a}async listByPartition({partition:t=null,partitionValues:r={}}={},n={}){const{limit:i,offset:a=0}=n;if(!t){let v=(await this.listIds({partition:t,partitionValues:r})).slice(a);i&&(v=v.slice(0,i));const{results:_}=await ce.PromisePool.for(v).withConcurrency(this.parallelism).process(async w=>await this.get(w));return this.emit("listByPartition",{partition:t,partitionValues:r,count:_.length}),_}const o=this.options.partitions[t];if(!o)throw new Error(`Partition '${t}' not found`);const s=[],c=Object.entries(o.fields).sort(([p],[v])=>p.localeCompare(v));for(const[p,v]of c){const _=r[p];if(_!=null){const w=this.applyPartitionRule(_,v);s.push(`${p}=${w}`)}}let f;s.length>0?f=`resource=${this.name}/partition=${t}/${s.join("/")}`:f=`resource=${this.name}/partition=${t}`;let h=(await this.client.getAllKeys({prefix:f})).map(p=>{const _=p.split("/").find(w=>w.startsWith("id="));return _?_.replace("id=",""):null}).filter(Boolean).slice(a);i&&(h=h.slice(0,i));const{results:u}=await ce.PromisePool.for(h).withConcurrency(this.parallelism).process(async p=>await this.getFromPartition(p,t,r));return this.emit("listByPartition",{partition:t,partitionValues:r,count:u.length}),u}async getMany(t){const{results:r}=await ce.PromisePool.for(t).withConcurrency(this.client.parallelism).process(async n=>{this.emit("id",n);const i=await this.get(n);return this.emit("data",i),i});return this.emit("getMany",t.length),r}async getAll(){let t=await this.listIds();if(t.length===0)return[];const{results:r}=await ce.PromisePool.for(t).withConcurrency(this.client.parallelism).process(async n=>await this.get(n));return this.emit("getAll",r.length),r}async page(t=0,r=100,{partition:n=null,partitionValues:i={}}={}){const a=await this.listIds({partition:n,partitionValues:i}),o=a.length,s=Math.ceil(o/r),c=a.slice(t*r,(t+1)*r),l={items:await Promise.all(c.map(d=>this.get(d))),totalItems:o,page:t,pageSize:r,totalPages:s};return this.emit("page",l),l}readable(){return new es({resource:this}).build()}writable(){return new ts({resource:this}).build()}async setContent(t,r,n="application/octet-stream"){if(!Buffer.isBuffer(r))throw new Error("Content must be a Buffer");const i=this.getResourceKey(t);let a={};try{a=(await this.client.headObject(i)).Metadata||{}}catch{}const o=await this.client.putObject({key:i,body:r,contentType:n,metadata:a});return this.emit("setContent",t,r.length,n),o}async content(t){const r=this.getResourceKey(t);try{const n=await this.client.getObject(r),i=Buffer.from(await n.Body.transformToByteArray()),a=n.ContentType||null;return this.emit("content",t,i.length,a),{buffer:i,contentType:a}}catch(n){if(n.name==="NoSuchKey")return{buffer:null,contentType:null};throw n}}async hasContent(t){const r=this.getResourceKey(t);try{return(await this.client.headObject(r)).ContentLength>0}catch{return!1}}async deleteContent(t){const r=this.getResourceKey(t),i=(await this.client.headObject(r)).Metadata||{},a=await this.client.putObject({key:r,body:"",metadata:i});return this.emit("deleteContent",t),a}getDefinitionHash(){const t=this.schema.export(),r={...t,attributes:{...t.attributes}};this.options.timestamps&&(delete r.attributes.createdAt,delete r.attributes.updatedAt,r.options&&r.options.partitions&&(delete r.options.partitions.byCreatedDate,delete r.options.partitions.byUpdatedDate));const n=oo(r);return`sha256:${Ni.createHash("sha256").update(n).digest("hex")}`}extractVersionFromKey(t){const n=t.split("/").find(i=>i.startsWith("v="));return n?n.replace("v=",""):null}async getSchemaForVersion(t){return this.schema}async createPartitionReferences(t){const r=this.options.partitions;if(!(!r||Object.keys(r).length===0))for(const[n,i]of Object.entries(r)){const a=this.getPartitionKey(n,t.id,t);if(a){const o=await this.schema.mapper(t),s=vt(this.behavior),{mappedData:c,body:f}=await s.handleInsert({resource:this,data:t,mappedData:o}),l={...c,_version:this.version};await this.client.putObject({key:a,metadata:l,body:f})}}}async deletePartitionReferences(t){const r=this.options.partitions;if(!r||Object.keys(r).length===0)return;const n=[];for(const[i,a]of Object.entries(r)){const o=this.getPartitionKey(i,t.id,t);o&&n.push(o)}if(n.length>0)try{await this.client.deleteObjects(n)}catch(i){console.warn("Some partition objects could not be deleted:",i.message)}}async query(t={}){const r=await this.getAll();return Object.keys(t).length===0?r:r.filter(n=>Object.entries(t).every(([i,a])=>n[i]===a))}async updatePartitionReferences(t){const r=this.options.partitions;if(!(!r||Object.keys(r).length===0))for(const[n,i]of Object.entries(r)){const a=this.getPartitionKey(n,t.id,t);if(a){const o=await this.schema.mapper(t),s=vt(this.behavior),{mappedData:c,body:f}=await s.handleUpdate({resource:this,id:t.id,data:t,mappedData:o}),l={...c,_version:this.version};try{await this.client.putObject({key:a,metadata:l,body:f})}catch(d){console.warn(`Partition object could not be updated for ${n}:`,d.message)}}}}async getFromPartition(t,r,n={}){const i=this.options.partitions[r];if(!i)throw new Error(`Partition '${r}' not found`);const a=[],o=Object.entries(i.fields).sort(([_],[w])=>_.localeCompare(w));for(const[_,w]of o){const x=n[_];if(x!=null){const S=this.applyPartitionRule(x,w);a.push(`${_}=${S}`)}}if(a.length===0)throw new Error(`No partition values provided for partition '${r}'`);const s=we(`resource=${this.name}`,`partition=${r}`,...a,`id=${t}`),c=await this.client.headObject(s),f=c.Metadata?._version||this.version;let d=await(await this.getSchemaForVersion(f)).unmapper(c.Metadata);const h=vt(this.behavior);let u="";if(c.ContentLength>0)try{const _=await this.client.getObject(s);u=await It(_.Body)}catch{u=""}const{metadata:p}=await h.handleGet({resource:this,metadata:d,body:u});let v=p;return v.id=t,v._contentLength=c.ContentLength,v._lastModified=c.LastModified,v._hasContent=c.ContentLength>0,v._mimeType=c.ContentType||null,v._partition=r,v._partitionValues=n,c.VersionId&&(v._versionId=c.VersionId),c.Expiration&&(v._expiresAt=c.Expiration),v._definitionHash=this.getDefinitionHash(),this.emit("getFromPartition",v),v}}class cs extends R{constructor(t){super(),this.version="1",this.s3dbVersion=(()=>{try{return"4.1.0"}catch{return"latest"}})(),this.resources={},this.savedMetadata=null,this.options=t,this.verbose=t.verbose||!1,this.parallelism=parseInt(t.parallelism+"")||10,this.plugins=t.plugins||[],this.cache=t.cache,this.passphrase=t.passphrase||"secret",this.client=t.client||new ta({verbose:this.verbose,parallelism:this.parallelism,connectionString:t.connectionString}),this.bucket=this.client.bucket,this.keyPrefix=this.client.keyPrefix}async connect(){await this.startPlugins();let t=null;if(await this.client.exists("s3db.json")){const n=await this.client.getObject("s3db.json");t=JSON.parse(await It(n?.Body))}else t=this.blankMetadataStructure(),await this.uploadMetadataFile();this.savedMetadata=t;const r=this.detectDefinitionChanges(t);for(const[n,i]of Object.entries(t.resources||{})){const a=i.currentVersion||"v0",o=i.versions?.[a];o&&(this.resources[n]=new fs({name:n,client:this.client,version:a,options:{...o.options,partitions:i.partitions||o.options?.partitions||{}},attributes:o.attributes,behavior:o.behavior||"user-management",parallelism:this.parallelism,passphrase:this.passphrase,observers:[this]}))}r.length>0&&this.emit("resourceDefinitionsChanged",{changes:r,metadata:this.savedMetadata}),this.emit("connected",new Date)}detectDefinitionChanges(t){const r=[];for(const[n,i]of Object.entries(this.resources)){const a=this.generateDefinitionHash(i.export()),o=t.resources?.[n];if(!o)r.push({type:"new",resourceName:n,currentHash:a,savedHash:null});else{const s=o.currentVersion||"v0",f=o.versions?.[s]?.hash;f!==a&&r.push({type:"changed",resourceName:n,currentHash:a,savedHash:f,fromVersion:s,toVersion:this.getNextVersion(o.versions)})}}for(const[n,i]of Object.entries(t.resources||{}))if(!this.resources[n]){const a=i.currentVersion||"v0",o=i.versions?.[a];r.push({type:"deleted",resourceName:n,currentHash:null,savedHash:o?.hash,deletedVersion:a})}return r}generateDefinitionHash(t){const r=oo(t);return`sha256:${Ni.createHash("sha256").update(r).digest("hex")}`}getNextVersion(t={}){const r=Object.keys(t).filter(i=>i.startsWith("v")).map(i=>parseInt(i.substring(1))).filter(i=>!isNaN(i));return`v${(r.length>0?Math.max(...r):-1)+1}`}async startPlugins(){const t=this;if(!L.isEmpty(this.plugins)){const r=this.plugins.map(a=>L.isFunction(a)?new a(this):a),n=r.map(async a=>{a.beforeSetup&&await a.beforeSetup(),await a.setup(t),a.afterSetup&&await a.afterSetup()});await Promise.all(n);const i=r.map(async a=>{a.beforeStart&&await a.beforeStart(),await a.start(),a.afterStart&&await a.afterStart()});await Promise.all(i)}}async uploadMetadataFile(){const t={version:this.version,s3dbVersion:this.s3dbVersion,lastUpdated:new Date().toISOString(),resources:{}};Object.entries(this.resources).forEach(([r,n])=>{const i=n.export(),a=this.generateDefinitionHash(i),o=this.savedMetadata?.resources?.[r],s=o?.currentVersion||"v0",c=o?.versions?.[s];let f,l;!c||c.hash!==a?(f=this.getNextVersion(o?.versions),l=!0):(f=s,l=!1),t.resources[r]={currentVersion:f,partitions:i.options?.partitions||{},versions:{...o?.versions,[f]:{hash:a,attributes:i.attributes,options:i.options,behavior:i.behavior||"user-management",createdAt:l?new Date().toISOString():c?.createdAt}}},n.version!==f&&(n.version=f,n.emit("versionUpdated",{oldVersion:s,newVersion:f}))}),await this.client.putObject({key:"s3db.json",body:JSON.stringify(t,null,2),contentType:"application/json"}),this.savedMetadata=t,this.emit("metadataUploaded",t)}blankMetadataStructure(){return{version:"1",s3dbVersion:this.s3dbVersion,resources:{}}}async createResource({name:t,attributes:r,options:n={},behavior:i="user-management"}){if(this.resources[t]){const c=this.resources[t];return Object.assign(c.options,{cache:this.cache,...n}),i&&(c.behavior=i),c.updateAttributes(r),await this.uploadMetadataFile(),this.emit("s3db.resourceUpdated",t),c}const o=this.savedMetadata?.resources?.[t]?.currentVersion||"v0",s=new fs({name:t,attributes:r,behavior:i,observers:[this],client:this.client,version:o,options:{cache:this.cache,...n}});return this.resources[t]=s,await this.uploadMetadataFile(),this.emit("s3db.resourceCreated",t),s}resource(t){return this.resources[t]?this.resources[t]:Promise.reject(`resource ${t} does not exist`)}async listResources(){return Object.keys(this.resources).map(t=>({name:t}))}async getResource(t){if(!this.resources[t])throw new Error(`Resource not found: ${t}`);return this.resources[t]}get config(){return{version:this.version,s3dbVersion:this.s3dbVersion,bucket:this.bucket,keyPrefix:this.keyPrefix,parallelism:this.parallelism,verbose:this.verbose}}isConnected(){return!!this.savedMetadata}}class th extends cs{}class li extends R{constructor(t={}){super(),this.config=t}async _set(t,r){}async _get(t){}async _del(t){}async _clear(t){}validateKey(t){if(t==null||typeof t!="string"||!t)throw new Error("Invalid key")}async set(t,r){return this.validateKey(t),await this._set(t,r),this.emit("set",r),r}async get(t){this.validateKey(t);const r=await this._get(t);return this.emit("get",r),r}async del(t){this.validateKey(t);const r=await this._del(t);return this.emit("delete",r),r}async delete(t){return this.del(t)}async clear(){const t=await this._clear();return this.emit("clear",t),t}}class rh extends li{constructor(t={}){super(t),this.cache={},this.meta={},this.maxSize=t.maxSize||0,this.ttl=t.ttl||0}async _set(t,r){if(this.maxSize>0&&Object.keys(this.cache).length>=this.maxSize){const n=Object.entries(this.meta).sort((i,a)=>i[1].ts-a[1].ts)[0]?.[0];n&&(delete this.cache[n],delete this.meta[n])}return this.cache[t]=r,this.meta[t]={ts:Date.now()},r}async _get(t){if(!Object.prototype.hasOwnProperty.call(this.cache,t))return null;if(this.ttl>0){const r=Date.now(),n=this.meta[t];if(n&&r-n.ts>this.ttl*1e3)return delete this.cache[t],delete this.meta[t],null}return this.cache[t]}async _del(t){return delete this.cache[t],delete this.meta[t],!0}async _clear(){return this.cache={},this.meta={},!0}async size(){return Object.keys(this.cache).length}async keys(){return Object.keys(this.cache)}}var ls={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function nh(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}function Ae(e,t,r,n,i){if(t.subarray&&e.subarray){e.set(t.subarray(r,r+n),i);return}for(var a=0;a<n;a++)e[i+a]=t[r+a]}var yr=Uint8Array,ae=Uint16Array,vr=Int32Array,ih=4,us=0,hs=1,ah=2;function gt(e){for(var t=e.length;--t>=0;)e[t]=0}var oh=0,ds=1,sh=2,fh=3,ch=258,ui=29,Dt=256,Ft=Dt+1+ui,_t=30,hi=19,ps=2*Ft+1,Ve=15,di=16,lh=7,pi=256,ys=16,vs=17,gs=18,yi=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],gr=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],uh=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],_s=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],hh=512,ke=new Array((Ft+2)*2);gt(ke);var Mt=new Array(_t*2);gt(Mt);var jt=new Array(hh);gt(jt);var Lt=new Array(ch-fh+1);gt(Lt);var vi=new Array(ui);gt(vi);var _r=new Array(_t);gt(_r);function gi(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}var ws,bs,ms;function _i(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function Es(e){return e<256?jt[e]:jt[256+(e>>>7)]}function Nt(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function X(e,t,r){e.bi_valid>di-r?(e.bi_buf|=t<<e.bi_valid&65535,Nt(e,e.bi_buf),e.bi_buf=t>>di-e.bi_valid,e.bi_valid+=r-di):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function pe(e,t,r){X(e,r[t*2],r[t*2+1])}function xs(e,t){var r=0;do r|=e&1,e>>>=1,r<<=1;while(--t>0);return r>>>1}function dh(e){e.bi_valid===16?(Nt(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function ph(e,t){var r=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,s=t.stat_desc.extra_base,c=t.stat_desc.max_length,f,l,d,h,u,p,v=0;for(h=0;h<=Ve;h++)e.bl_count[h]=0;for(r[e.heap[e.heap_max]*2+1]=0,f=e.heap_max+1;f<ps;f++)l=e.heap[f],h=r[r[l*2+1]*2+1]+1,h>c&&(h=c,v++),r[l*2+1]=h,!(l>n)&&(e.bl_count[h]++,u=0,l>=s&&(u=o[l-s]),p=r[l*2],e.opt_len+=p*(h+u),a&&(e.static_len+=p*(i[l*2+1]+u)));if(v!==0){do{for(h=c-1;e.bl_count[h]===0;)h--;e.bl_count[h]--,e.bl_count[h+1]+=2,e.bl_count[c]--,v-=2}while(v>0);for(h=c;h!==0;h--)for(l=e.bl_count[h];l!==0;)d=e.heap[--f],!(d>n)&&(r[d*2+1]!==h&&(e.opt_len+=(h-r[d*2+1])*r[d*2],r[d*2+1]=h),l--)}}function Ss(e,t,r){var n=new Array(Ve+1),i=0,a,o;for(a=1;a<=Ve;a++)n[a]=i=i+r[a-1]<<1;for(o=0;o<=t;o++){var s=e[o*2+1];s!==0&&(e[o*2]=xs(n[s]++,s))}}function yh(){var e,t,r,n,i,a=new Array(Ve+1);for(r=0,n=0;n<ui-1;n++)for(vi[n]=r,e=0;e<1<<yi[n];e++)Lt[r++]=n;for(Lt[r-1]=n,i=0,n=0;n<16;n++)for(_r[n]=i,e=0;e<1<<gr[n];e++)jt[i++]=n;for(i>>=7;n<_t;n++)for(_r[n]=i<<7,e=0;e<1<<gr[n]-7;e++)jt[256+i++]=n;for(t=0;t<=Ve;t++)a[t]=0;for(e=0;e<=143;)ke[e*2+1]=8,e++,a[8]++;for(;e<=255;)ke[e*2+1]=9,e++,a[9]++;for(;e<=279;)ke[e*2+1]=7,e++,a[7]++;for(;e<=287;)ke[e*2+1]=8,e++,a[8]++;for(Ss(ke,Ft+1,a),e=0;e<_t;e++)Mt[e*2+1]=5,Mt[e*2]=xs(e,5);ws=new gi(ke,yi,Dt+1,Ft,Ve),bs=new gi(Mt,gr,0,_t,Ve),ms=new gi(new Array(0),uh,0,hi,lh)}function As(e){var t;for(t=0;t<Ft;t++)e.dyn_ltree[t*2]=0;for(t=0;t<_t;t++)e.dyn_dtree[t*2]=0;for(t=0;t<hi;t++)e.bl_tree[t*2]=0;e.dyn_ltree[pi*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function ks(e){e.bi_valid>8?Nt(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function vh(e,t,r,n){ks(e),Nt(e,r),Nt(e,~r),Ae(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}function Rs(e,t,r,n){var i=t*2,a=r*2;return e[i]<e[a]||e[i]===e[a]&&n[t]<=n[r]}function wi(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&Rs(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Rs(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function Os(e,t,r){var n,i,a=0,o,s;if(e.last_lit!==0)do n=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],i=e.pending_buf[e.l_buf+a],a++,n===0?pe(e,i,t):(o=Lt[i],pe(e,o+Dt+1,t),s=yi[o],s!==0&&(i-=vi[o],X(e,i,s)),n--,o=Es(n),pe(e,o,r),s=gr[o],s!==0&&(n-=_r[o],X(e,n,s)));while(a<e.last_lit);pe(e,pi,t)}function bi(e,t){var r=t.dyn_tree,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,a=t.stat_desc.elems,o,s,c=-1,f;for(e.heap_len=0,e.heap_max=ps,o=0;o<a;o++)r[o*2]!==0?(e.heap[++e.heap_len]=c=o,e.depth[o]=0):r[o*2+1]=0;for(;e.heap_len<2;)f=e.heap[++e.heap_len]=c<2?++c:0,r[f*2]=1,e.depth[f]=0,e.opt_len--,i&&(e.static_len-=n[f*2+1]);for(t.max_code=c,o=e.heap_len>>1;o>=1;o--)wi(e,r,o);f=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],wi(e,r,1),s=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=s,r[f*2]=r[o*2]+r[s*2],e.depth[f]=(e.depth[o]>=e.depth[s]?e.depth[o]:e.depth[s])+1,r[o*2+1]=r[s*2+1]=f,e.heap[1]=f++,wi(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ph(e,t),Ss(r,c,e.bl_count)}function Ts(e,t,r){var n,i=-1,a,o=t[0*2+1],s=0,c=7,f=4;for(o===0&&(c=138,f=3),t[(r+1)*2+1]=65535,n=0;n<=r;n++)a=o,o=t[(n+1)*2+1],!(++s<c&&a===o)&&(s<f?e.bl_tree[a*2]+=s:a!==0?(a!==i&&e.bl_tree[a*2]++,e.bl_tree[ys*2]++):s<=10?e.bl_tree[vs*2]++:e.bl_tree[gs*2]++,s=0,i=a,o===0?(c=138,f=3):a===o?(c=6,f=3):(c=7,f=4))}function Ps(e,t,r){var n,i=-1,a,o=t[0*2+1],s=0,c=7,f=4;for(o===0&&(c=138,f=3),n=0;n<=r;n++)if(a=o,o=t[(n+1)*2+1],!(++s<c&&a===o)){if(s<f)do pe(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(pe(e,a,e.bl_tree),s--),pe(e,ys,e.bl_tree),X(e,s-3,2)):s<=10?(pe(e,vs,e.bl_tree),X(e,s-3,3)):(pe(e,gs,e.bl_tree),X(e,s-11,7));s=0,i=a,o===0?(c=138,f=3):a===o?(c=6,f=3):(c=7,f=4)}}function gh(e){var t;for(Ts(e,e.dyn_ltree,e.l_desc.max_code),Ts(e,e.dyn_dtree,e.d_desc.max_code),bi(e,e.bl_desc),t=hi-1;t>=3&&e.bl_tree[_s[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function _h(e,t,r,n){var i;for(X(e,t-257,5),X(e,r-1,5),X(e,n-4,4),i=0;i<n;i++)X(e,e.bl_tree[_s[i]*2+1],3);Ps(e,e.dyn_ltree,t-1),Ps(e,e.dyn_dtree,r-1)}function wh(e){var t=4093624447,r;for(r=0;r<=31;r++,t>>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return us;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return hs;for(r=32;r<Dt;r++)if(e.dyn_ltree[r*2]!==0)return hs;return us}var Is=!1;function bh(e){Is||(yh(),Is=!0),e.l_desc=new _i(e.dyn_ltree,ws),e.d_desc=new _i(e.dyn_dtree,bs),e.bl_desc=new _i(e.bl_tree,ms),e.bi_buf=0,e.bi_valid=0,As(e)}function Cs(e,t,r,n){X(e,(oh<<1)+(n?1:0),3),vh(e,t,r)}function mh(e){X(e,ds<<1,3),pe(e,pi,ke),dh(e)}function Eh(e,t,r,n){var i,a,o=0;e.level>0?(e.strm.data_type===ah&&(e.strm.data_type=wh(e)),bi(e,e.l_desc),bi(e,e.d_desc),o=gh(e),i=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=i&&(i=a)):i=a=r+5,r+4<=i&&t!==-1?Cs(e,t,r,n):e.strategy===ih||a===i?(X(e,(ds<<1)+(n?1:0),3),Os(e,ke,Mt)):(X(e,(sh<<1)+(n?1:0),3),_h(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),Os(e,e.dyn_ltree,e.dyn_dtree)),As(e),n&&ks(e)}function Me(e,t,r){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=r&255,e.last_lit++,t===0?e.dyn_ltree[r*2]++:(e.matches++,t--,e.dyn_ltree[(Lt[r]+Dt+1)*2]++,e.dyn_dtree[Es(t)*2]++),e.last_lit===e.lit_bufsize-1}function mi(e,t,r,n){for(var i=e&65535|0,a=e>>>16&65535|0,o=0;r!==0;){o=r>2e3?2e3:r,r-=o;do i=i+t[n++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0}function xh(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t}var Sh=xh();function Z(e,t,r,n){var i=Sh,a=n+r;e^=-1;for(var o=n;o<a;o++)e=e>>>8^i[(e^t[o])&255];return e^-1}var Ge=0,Ah=1,kh=3,je=4,Ds=5,Le=0,Fs=1,Ne=-2,Rh=-3,Ei=-5,Oh=-1,Th=1,wr=2,Ph=3,Ih=4,Ch=2,xi=8,Dh=9,Fh=29,Mh=256,Si=Mh+1+Fh,jh=30,Lh=19,Nh=2*Si+1,Bh=15,C=3,Be=258,se=Be+C+1,Uh=32,Ai=42,ki=69,br=73,mr=91,Er=103,Ye=113,Bt=666,$=1,Ut=2,Je=3,wt=4,$h=3;function Ue(e,t){return e.msg=ls[t],t}function Ms(e){return(e<<1)-(e>4?9:0)}function Xe(e){for(var t=e.length;--t>=0;)e[t]=0}function $e(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(Ae(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,t.pending===0&&(t.pending_out=0))}function H(e,t){Eh(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,$e(e.strm)}function I(e,t){e.pending_buf[e.pending++]=t}function $t(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function zh(e,t,r,n){var i=e.avail_in;return i>n&&(i=n),i===0?0:(e.avail_in-=i,Ae(t,e.input,e.next_in,i,r),e.state.wrap===1?e.adler=mi(e.adler,t,i,r):e.state.wrap===2&&(e.adler=Z(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)}function js(e,t){var r=e.max_chain_length,n=e.strstart,i,a,o=e.prev_length,s=e.nice_match,c=e.strstart>e.w_size-se?e.strstart-(e.w_size-se):0,f=e.window,l=e.w_mask,d=e.prev,h=e.strstart+Be,u=f[n+o-1],p=f[n+o];e.prev_length>=e.good_match&&(r>>=2),s>e.lookahead&&(s=e.lookahead);do if(i=t,!(f[i+o]!==p||f[i+o-1]!==u||f[i]!==f[n]||f[++i]!==f[n+1])){n+=2,i++;do;while(f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&f[++n]===f[++i]&&n<h);if(a=Be-(h-n),n=h-Be,a>o){if(e.match_start=t,o=a,a>=s)break;u=f[n+o-1],p=f[n+o]}}while((t=d[t&l])>c&&--r!==0);return o<=e.lookahead?o:e.lookahead}function zt(e){var t=e.w_size,r,n,i,a,o;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-se)){Ae(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,r=n;do i=e.head[--r],e.head[r]=i>=t?i-t:0;while(--n);n=t,r=n;do i=e.prev[--r],e.prev[r]=i>=t?i-t:0;while(--n);a+=t}if(e.strm.avail_in===0)break;if(n=zh(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=C)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[o+C-1])&e.hash_mask,e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<C)););}while(e.lookahead<se&&e.strm.avail_in!==0)}function Zh(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(zt(e),e.lookahead===0&&t===Ge)return $;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((e.strstart===0||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,H(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-se&&(H(e,!1),e.strm.avail_out===0))return $}return e.insert=0,t===je?(H(e,!0),e.strm.avail_out===0?Je:wt):(e.strstart>e.block_start&&(H(e,!1),e.strm.avail_out===0),$)}function Ri(e,t){for(var r,n;;){if(e.lookahead<se){if(zt(e),e.lookahead<se&&t===Ge)return $;if(e.lookahead===0)break}if(r=0,e.lookahead>=C&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),r!==0&&e.strstart-r<=e.w_size-se&&(e.match_length=js(e,r)),e.match_length>=C)if(n=Me(e,e.strstart-e.match_start,e.match_length-C),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=C){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=Me(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(H(e,!1),e.strm.avail_out===0))return $}return e.insert=e.strstart<C-1?e.strstart:C-1,t===je?(H(e,!0),e.strm.avail_out===0?Je:wt):e.last_lit&&(H(e,!1),e.strm.avail_out===0)?$:Ut}function bt(e,t){for(var r,n,i;;){if(e.lookahead<se){if(zt(e),e.lookahead<se&&t===Ge)return $;if(e.lookahead===0)break}if(r=0,e.lookahead>=C&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=C-1,r!==0&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-se&&(e.match_length=js(e,r),e.match_length<=5&&(e.strategy===Th||e.match_length===C&&e.strstart-e.match_start>4096)&&(e.match_length=C-1)),e.prev_length>=C&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-C,n=Me(e,e.strstart-1-e.prev_match,e.prev_length-C),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=C-1,e.strstart++,n&&(H(e,!1),e.strm.avail_out===0))return $}else if(e.match_available){if(n=Me(e,0,e.window[e.strstart-1]),n&&H(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return $}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=Me(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<C-1?e.strstart:C-1,t===je?(H(e,!0),e.strm.avail_out===0?Je:wt):e.last_lit&&(H(e,!1),e.strm.avail_out===0)?$:Ut}function qh(e,t){for(var r,n,i,a,o=e.window;;){if(e.lookahead<=Be){if(zt(e),e.lookahead<=Be&&t===Ge)return $;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=C&&e.strstart>0&&(i=e.strstart-1,n=o[i],n===o[++i]&&n===o[++i]&&n===o[++i])){a=e.strstart+Be;do;while(n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&i<a);e.match_length=Be-(a-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=C?(r=Me(e,1,e.match_length-C),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=Me(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(H(e,!1),e.strm.avail_out===0))return $}return e.insert=0,t===je?(H(e,!0),e.strm.avail_out===0?Je:wt):e.last_lit&&(H(e,!1),e.strm.avail_out===0)?$:Ut}function Hh(e,t){for(var r;;){if(e.lookahead===0&&(zt(e),e.lookahead===0)){if(t===Ge)return $;break}if(e.match_length=0,r=Me(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(H(e,!1),e.strm.avail_out===0))return $}return e.insert=0,t===je?(H(e,!0),e.strm.avail_out===0?Je:wt):e.last_lit&&(H(e,!1),e.strm.avail_out===0)?$:Ut}function ye(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}var mt;mt=[new ye(0,0,0,0,Zh),new ye(4,4,8,4,Ri),new ye(4,5,16,8,Ri),new ye(4,6,32,32,Ri),new ye(4,4,16,16,bt),new ye(8,16,32,32,bt),new ye(8,16,128,128,bt),new ye(8,32,128,256,bt),new ye(32,128,258,1024,bt),new ye(32,258,258,4096,bt)];function Kh(e){e.window_size=2*e.w_size,Xe(e.head),e.max_lazy_match=mt[e.level].max_lazy,e.good_match=mt[e.level].good_length,e.nice_match=mt[e.level].nice_length,e.max_chain_length=mt[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=C-1,e.match_available=0,e.ins_h=0}function Wh(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=xi,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new ae(Nh*2),this.dyn_dtree=new ae((2*jh+1)*2),this.bl_tree=new ae((2*Lh+1)*2),Xe(this.dyn_ltree),Xe(this.dyn_dtree),Xe(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new ae(Bh+1),this.heap=new ae(2*Si+1),Xe(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new ae(2*Si+1),Xe(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Vh(e){var t;return!e||!e.state?Ue(e,Ne):(e.total_in=e.total_out=0,e.data_type=Ch,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Ai:Ye,e.adler=t.wrap===2?0:1,t.last_flush=Ge,bh(t),Le)}function Ls(e){var t=Vh(e);return t===Le&&Kh(e.state),t}function Gh(e,t,r,n,i,a){if(!e)return Ne;var o=1;if(t===Oh&&(t=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),i<1||i>Dh||r!==xi||n<8||n>15||t<0||t>9||a<0||a>Ih)return Ue(e,Ne);n===8&&(n=9);var s=new Wh;return e.state=s,s.strm=e,s.wrap=o,s.gzhead=null,s.w_bits=n,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+C-1)/C),s.window=new yr(s.w_size*2),s.head=new ae(s.hash_size),s.prev=new ae(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new yr(s.pending_buf_size),s.d_buf=1*s.lit_bufsize,s.l_buf=3*s.lit_bufsize,s.level=t,s.strategy=a,s.method=r,Ls(e)}function Yh(e,t){var r,n,i,a;if(!e||!e.state||t>Ds||t<0)return e?Ue(e,Ne):Ne;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===Bt&&t!==je)return Ue(e,e.avail_out===0?Ei:Ne);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===Ai)if(n.wrap===2)e.adler=0,I(n,31),I(n,139),I(n,8),n.gzhead?(I(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),I(n,n.gzhead.time&255),I(n,n.gzhead.time>>8&255),I(n,n.gzhead.time>>16&255),I(n,n.gzhead.time>>24&255),I(n,n.level===9?2:n.strategy>=wr||n.level<2?4:0),I(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(I(n,n.gzhead.extra.length&255),I(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Z(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=ki):(I(n,0),I(n,0),I(n,0),I(n,0),I(n,0),I(n,n.level===9?2:n.strategy>=wr||n.level<2?4:0),I(n,$h),n.status=Ye);else{var o=xi+(n.w_bits-8<<4)<<8,s=-1;n.strategy>=wr||n.level<2?s=0:n.level<6?s=1:n.level===6?s=2:s=3,o|=s<<6,n.strstart!==0&&(o|=Uh),o+=31-o%31,n.status=Ye,$t(n,o),n.strstart!==0&&($t(n,e.adler>>>16),$t(n,e.adler&65535)),e.adler=1}if(n.status===ki)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),$e(e),i=n.pending,n.pending===n.pending_buf_size));)I(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=br)}else n.status=br;if(n.status===br)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),$e(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,I(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.gzindex=0,n.status=mr)}else n.status=mr;if(n.status===mr)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),$e(e),i=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,I(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=Z(e.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.status=Er)}else n.status=Er;if(n.status===Er&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&$e(e),n.pending+2<=n.pending_buf_size&&(I(n,e.adler&255),I(n,e.adler>>8&255),e.adler=0,n.status=Ye)):n.status=Ye),n.pending!==0){if($e(e),e.avail_out===0)return n.last_flush=-1,Le}else if(e.avail_in===0&&Ms(t)<=Ms(r)&&t!==je)return Ue(e,Ei);if(n.status===Bt&&e.avail_in!==0)return Ue(e,Ei);if(e.avail_in!==0||n.lookahead!==0||t!==Ge&&n.status!==Bt){var c=n.strategy===wr?Hh(n,t):n.strategy===Ph?qh(n,t):mt[n.level].func(n,t);if((c===Je||c===wt)&&(n.status=Bt),c===$||c===Je)return e.avail_out===0&&(n.last_flush=-1),Le;if(c===Ut&&(t===Ah?mh(n):t!==Ds&&(Cs(n,0,0,!1),t===kh&&(Xe(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),$e(e),e.avail_out===0))return n.last_flush=-1,Le}return t!==je?Le:n.wrap<=0?Fs:(n.wrap===2?(I(n,e.adler&255),I(n,e.adler>>8&255),I(n,e.adler>>16&255),I(n,e.adler>>24&255),I(n,e.total_in&255),I(n,e.total_in>>8&255),I(n,e.total_in>>16&255),I(n,e.total_in>>24&255)):($t(n,e.adler>>>16),$t(n,e.adler&65535)),$e(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Le:Fs)}function Jh(e){var t;return!e||!e.state?Ne:(t=e.state.status,t!==Ai&&t!==ki&&t!==br&&t!==mr&&t!==Er&&t!==Ye&&t!==Bt?Ue(e,Ne):(e.state=null,t===Ye?Ue(e,Rh):Le))}var xr=30,Xh=12;function Qh(e,t){var r,n,i,a,o,s,c,f,l,d,h,u,p,v,_,w,x,S,g,A,T,b,E,O,k;r=e.state,n=e.next_in,O=e.input,i=n+(e.avail_in-5),a=e.next_out,k=e.output,o=a-(t-e.avail_out),s=a+(e.avail_out-257),c=r.dmax,f=r.wsize,l=r.whave,d=r.wnext,h=r.window,u=r.hold,p=r.bits,v=r.lencode,_=r.distcode,w=(1<<r.lenbits)-1,x=(1<<r.distbits)-1;e:do{p<15&&(u+=O[n++]<<p,p+=8,u+=O[n++]<<p,p+=8),S=v[u&w];t:for(;;){if(g=S>>>24,u>>>=g,p-=g,g=S>>>16&255,g===0)k[a++]=S&65535;else if(g&16){A=S&65535,g&=15,g&&(p<g&&(u+=O[n++]<<p,p+=8),A+=u&(1<<g)-1,u>>>=g,p-=g),p<15&&(u+=O[n++]<<p,p+=8,u+=O[n++]<<p,p+=8),S=_[u&x];r:for(;;){if(g=S>>>24,u>>>=g,p-=g,g=S>>>16&255,g&16){if(T=S&65535,g&=15,p<g&&(u+=O[n++]<<p,p+=8,p<g&&(u+=O[n++]<<p,p+=8)),T+=u&(1<<g)-1,T>c){e.msg="invalid distance too far back",r.mode=xr;break e}if(u>>>=g,p-=g,g=a-o,T>g){if(g=T-g,g>l&&r.sane){e.msg="invalid distance too far back",r.mode=xr;break e}if(b=0,E=h,d===0){if(b+=f-g,g<A){A-=g;do k[a++]=h[b++];while(--g);b=a-T,E=k}}else if(d<g){if(b+=f+d-g,g-=d,g<A){A-=g;do k[a++]=h[b++];while(--g);if(b=0,d<A){g=d,A-=g;do k[a++]=h[b++];while(--g);b=a-T,E=k}}}else if(b+=d-g,g<A){A-=g;do k[a++]=h[b++];while(--g);b=a-T,E=k}for(;A>2;)k[a++]=E[b++],k[a++]=E[b++],k[a++]=E[b++],A-=3;A&&(k[a++]=E[b++],A>1&&(k[a++]=E[b++]))}else{b=a-T;do k[a++]=k[b++],k[a++]=k[b++],k[a++]=k[b++],A-=3;while(A>2);A&&(k[a++]=k[b++],A>1&&(k[a++]=k[b++]))}}else if((g&64)===0){S=_[(S&65535)+(u&(1<<g)-1)];continue r}else{e.msg="invalid distance code",r.mode=xr;break e}break}}else if((g&64)===0){S=v[(S&65535)+(u&(1<<g)-1)];continue t}else if(g&32){r.mode=Xh;break e}else{e.msg="invalid literal/length code",r.mode=xr;break e}break}}while(n<i&&a<s);A=p>>3,n-=A,p-=A<<3,u&=(1<<p)-1,e.next_in=n,e.next_out=a,e.avail_in=n<i?5+(i-n):5-(n-i),e.avail_out=a<s?257+(s-a):257-(a-s),r.hold=u,r.bits=p}var Et=15,Ns=852,Bs=592,Us=0,Oi=1,$s=2,ed=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],td=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],rd=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],nd=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];function Zt(e,t,r,n,i,a,o,s){var c=s.bits,f=0,l=0,d=0,h=0,u=0,p=0,v=0,_=0,w=0,x=0,S,g,A,T,b,E=null,O=0,k,F=new ae(Et+1),K=new ae(Et+1),G=null,oe=0,ft,Q,ve;for(f=0;f<=Et;f++)F[f]=0;for(l=0;l<n;l++)F[t[r+l]]++;for(u=c,h=Et;h>=1&&F[h]===0;h--);if(u>h&&(u=h),h===0)return i[a++]=20971520,i[a++]=20971520,s.bits=1,0;for(d=1;d<h&&F[d]===0;d++);for(u<d&&(u=d),_=1,f=1;f<=Et;f++)if(_<<=1,_-=F[f],_<0)return-1;if(_>0&&(e===Us||h!==1))return-1;for(K[1]=0,f=1;f<Et;f++)K[f+1]=K[f]+F[f];for(l=0;l<n;l++)t[r+l]!==0&&(o[K[t[r+l]]++]=l);if(e===Us?(E=G=o,k=19):e===Oi?(E=ed,O-=257,G=td,oe-=257,k=256):(E=rd,G=nd,k=-1),x=0,l=0,f=d,b=a,p=u,v=0,A=-1,w=1<<u,T=w-1,e===Oi&&w>Ns||e===$s&&w>Bs)return 1;for(;;){ft=f-v,o[l]<k?(Q=0,ve=o[l]):o[l]>k?(Q=G[oe+o[l]],ve=E[O+o[l]]):(Q=96,ve=0),S=1<<f-v,g=1<<p,d=g;do g-=S,i[b+(x>>v)+g]=ft<<24|Q<<16|ve|0;while(g!==0);for(S=1<<f-1;x&S;)S>>=1;if(S!==0?(x&=S-1,x+=S):x=0,l++,--F[f]===0){if(f===h)break;f=t[r+o[l]]}if(f>u&&(x&T)!==A){for(v===0&&(v=u),b+=d,p=f-v,_=1<<p;p+v<h&&(_-=F[p+v],!(_<=0));)p++,_<<=1;if(w+=1<<p,e===Oi&&w>Ns||e===$s&&w>Bs)return 1;A=x&T,i[A]=u<<24|p<<16|b-a|0}}return x!==0&&(i[b+x]=f-v<<24|4194304|0),s.bits=u,0}var id=0,zs=1,Zs=2,qs=4,ad=5,Sr=6,qt=0,od=1,sd=2,ze=-2,fd=-3,cd=-4,ld=-5,Hs=8,Ks=1,Ws=2,Vs=3,Gs=4,Ys=5,Js=6,Xs=7,Qs=8,ef=9,tf=10,rf=11,Re=12,Ti=13,nf=14,Pi=15,af=16,of=17,sf=18,ff=19,Ar=20,kr=21,cf=22,lf=23,uf=24,hf=25,df=26,Ii=27,pf=28,yf=29,M=30,ud=31,hd=32,dd=852,pd=592;function vf(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function yd(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new ae(320),this.work=new ae(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function vd(e){var t;return!e||!e.state?ze:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Ks,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new vr(dd),t.distcode=t.distdyn=new vr(pd),t.sane=1,t.back=-1,qt)}function gf(e){var t;return!e||!e.state?ze:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,vd(e))}function gd(e,t){var r,n;return!e||!e.state||(n=e.state,t<0?(r=0,t=-t):(r=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?ze:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,gf(e))}function _d(e,t){var r,n;return e?(n=new yd,e.state=n,n.window=null,r=gd(e,t),r!==qt&&(e.state=null),r):ze}var _f=!0,Ci,Di;function wd(e){if(_f){var t;for(Ci=new vr(512),Di=new vr(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Zt(zs,e.lens,0,288,Ci,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Zt(Zs,e.lens,0,32,Di,0,e.work,{bits:5}),_f=!1}e.lencode=Ci,e.lenbits=9,e.distcode=Di,e.distbits=5}function bd(e,t,r,n){var i,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new yr(a.wsize)),n>=a.wsize?(Ae(a.window,t,r-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>n&&(i=n),Ae(a.window,t,r-n,i,a.wnext),n-=i,n?(Ae(a.window,t,r-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0}function md(e,t){var r,n,i,a,o,s,c,f,l,d,h,u,p,v,_=0,w,x,S,g,A,T,b,E,O=new yr(4),k,F,K=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return ze;r=e.state,r.mode===Re&&(r.mode=Ti),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,n=e.input,s=e.avail_in,f=r.hold,l=r.bits,d=s,h=c,E=qt;e:for(;;)switch(r.mode){case Ks:if(r.wrap===0){r.mode=Ti;break}for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(r.wrap&2&&f===35615){r.check=0,O[0]=f&255,O[1]=f>>>8&255,r.check=Z(r.check,O,2,0),f=0,l=0,r.mode=Ws;break}if(r.flags=0,r.head&&(r.head.done=!1),!(r.wrap&1)||(((f&255)<<8)+(f>>8))%31){e.msg="incorrect header check",r.mode=M;break}if((f&15)!==Hs){e.msg="unknown compression method",r.mode=M;break}if(f>>>=4,l-=4,b=(f&15)+8,r.wbits===0)r.wbits=b;else if(b>r.wbits){e.msg="invalid window size",r.mode=M;break}r.dmax=1<<b,e.adler=r.check=1,r.mode=f&512?tf:Re,f=0,l=0;break;case Ws:for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(r.flags=f,(r.flags&255)!==Hs){e.msg="unknown compression method",r.mode=M;break}if(r.flags&57344){e.msg="unknown header flags set",r.mode=M;break}r.head&&(r.head.text=f>>8&1),r.flags&512&&(O[0]=f&255,O[1]=f>>>8&255,r.check=Z(r.check,O,2,0)),f=0,l=0,r.mode=Vs;case Vs:for(;l<32;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.head&&(r.head.time=f),r.flags&512&&(O[0]=f&255,O[1]=f>>>8&255,O[2]=f>>>16&255,O[3]=f>>>24&255,r.check=Z(r.check,O,4,0)),f=0,l=0,r.mode=Gs;case Gs:for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.head&&(r.head.xflags=f&255,r.head.os=f>>8),r.flags&512&&(O[0]=f&255,O[1]=f>>>8&255,r.check=Z(r.check,O,2,0)),f=0,l=0,r.mode=Ys;case Ys:if(r.flags&1024){for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.length=f,r.head&&(r.head.extra_len=f),r.flags&512&&(O[0]=f&255,O[1]=f>>>8&255,r.check=Z(r.check,O,2,0)),f=0,l=0}else r.head&&(r.head.extra=null);r.mode=Js;case Js:if(r.flags&1024&&(u=r.length,u>s&&(u=s),u&&(r.head&&(b=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),Ae(r.head.extra,n,a,u,b)),r.flags&512&&(r.check=Z(r.check,n,u,a)),s-=u,a+=u,r.length-=u),r.length))break e;r.length=0,r.mode=Xs;case Xs:if(r.flags&2048){if(s===0)break e;u=0;do b=n[a+u++],r.head&&b&&r.length<65536&&(r.head.name+=String.fromCharCode(b));while(b&&u<s);if(r.flags&512&&(r.check=Z(r.check,n,u,a)),s-=u,a+=u,b)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=Qs;case Qs:if(r.flags&4096){if(s===0)break e;u=0;do b=n[a+u++],r.head&&b&&r.length<65536&&(r.head.comment+=String.fromCharCode(b));while(b&&u<s);if(r.flags&512&&(r.check=Z(r.check,n,u,a)),s-=u,a+=u,b)break e}else r.head&&(r.head.comment=null);r.mode=ef;case ef:if(r.flags&512){for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(f!==(r.check&65535)){e.msg="header crc mismatch",r.mode=M;break}f=0,l=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Re;break;case tf:for(;l<32;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}e.adler=r.check=vf(f),f=0,l=0,r.mode=rf;case rf:if(r.havedict===0)return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,sd;e.adler=r.check=1,r.mode=Re;case Re:if(t===ad||t===Sr)break e;case Ti:if(r.last){f>>>=l&7,l-=l&7,r.mode=Ii;break}for(;l<3;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}switch(r.last=f&1,f>>>=1,l-=1,f&3){case 0:r.mode=nf;break;case 1:if(wd(r),r.mode=Ar,t===Sr){f>>>=2,l-=2;break e}break;case 2:r.mode=of;break;case 3:e.msg="invalid block type",r.mode=M}f>>>=2,l-=2;break;case nf:for(f>>>=l&7,l-=l&7;l<32;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if((f&65535)!==(f>>>16^65535)){e.msg="invalid stored block lengths",r.mode=M;break}if(r.length=f&65535,f=0,l=0,r.mode=Pi,t===Sr)break e;case Pi:r.mode=af;case af:if(u=r.length,u){if(u>s&&(u=s),u>c&&(u=c),u===0)break e;Ae(i,n,a,u,o),s-=u,a+=u,c-=u,o+=u,r.length-=u;break}r.mode=Re;break;case of:for(;l<14;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(r.nlen=(f&31)+257,f>>>=5,l-=5,r.ndist=(f&31)+1,f>>>=5,l-=5,r.ncode=(f&15)+4,f>>>=4,l-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=M;break}r.have=0,r.mode=sf;case sf:for(;r.have<r.ncode;){for(;l<3;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.lens[K[r.have++]]=f&7,f>>>=3,l-=3}for(;r.have<19;)r.lens[K[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,k={bits:r.lenbits},E=Zt(id,r.lens,0,19,r.lencode,0,r.work,k),r.lenbits=k.bits,E){e.msg="invalid code lengths set",r.mode=M;break}r.have=0,r.mode=ff;case ff:for(;r.have<r.nlen+r.ndist;){for(;_=r.lencode[f&(1<<r.lenbits)-1],w=_>>>24,x=_>>>16&255,S=_&65535,!(w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(S<16)f>>>=w,l-=w,r.lens[r.have++]=S;else{if(S===16){for(F=w+2;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(f>>>=w,l-=w,r.have===0){e.msg="invalid bit length repeat",r.mode=M;break}b=r.lens[r.have-1],u=3+(f&3),f>>>=2,l-=2}else if(S===17){for(F=w+3;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=w,l-=w,b=0,u=3+(f&7),f>>>=3,l-=3}else{for(F=w+7;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=w,l-=w,b=0,u=11+(f&127),f>>>=7,l-=7}if(r.have+u>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=M;break}for(;u--;)r.lens[r.have++]=b}}if(r.mode===M)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=M;break}if(r.lenbits=9,k={bits:r.lenbits},E=Zt(zs,r.lens,0,r.nlen,r.lencode,0,r.work,k),r.lenbits=k.bits,E){e.msg="invalid literal/lengths set",r.mode=M;break}if(r.distbits=6,r.distcode=r.distdyn,k={bits:r.distbits},E=Zt(Zs,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,k),r.distbits=k.bits,E){e.msg="invalid distances set",r.mode=M;break}if(r.mode=Ar,t===Sr)break e;case Ar:r.mode=kr;case kr:if(s>=6&&c>=258){e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,Qh(e,h),o=e.next_out,i=e.output,c=e.avail_out,a=e.next_in,n=e.input,s=e.avail_in,f=r.hold,l=r.bits,r.mode===Re&&(r.back=-1);break}for(r.back=0;_=r.lencode[f&(1<<r.lenbits)-1],w=_>>>24,x=_>>>16&255,S=_&65535,!(w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(x&&(x&240)===0){for(g=w,A=x,T=S;_=r.lencode[T+((f&(1<<g+A)-1)>>g)],w=_>>>24,x=_>>>16&255,S=_&65535,!(g+w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=g,l-=g,r.back+=g}if(f>>>=w,l-=w,r.back+=w,r.length=S,x===0){r.mode=df;break}if(x&32){r.back=-1,r.mode=Re;break}if(x&64){e.msg="invalid literal/length code",r.mode=M;break}r.extra=x&15,r.mode=cf;case cf:if(r.extra){for(F=r.extra;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.length+=f&(1<<r.extra)-1,f>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=lf;case lf:for(;_=r.distcode[f&(1<<r.distbits)-1],w=_>>>24,x=_>>>16&255,S=_&65535,!(w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if((x&240)===0){for(g=w,A=x,T=S;_=r.distcode[T+((f&(1<<g+A)-1)>>g)],w=_>>>24,x=_>>>16&255,S=_&65535,!(g+w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=g,l-=g,r.back+=g}if(f>>>=w,l-=w,r.back+=w,x&64){e.msg="invalid distance code",r.mode=M;break}r.offset=S,r.extra=x&15,r.mode=uf;case uf:if(r.extra){for(F=r.extra;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.offset+=f&(1<<r.extra)-1,f>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=M;break}r.mode=hf;case hf:if(c===0)break e;if(u=h-c,r.offset>u){if(u=r.offset-u,u>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=M;break}u>r.wnext?(u-=r.wnext,p=r.wsize-u):p=r.wnext-u,u>r.length&&(u=r.length),v=r.window}else v=i,p=o-r.offset,u=r.length;u>c&&(u=c),c-=u,r.length-=u;do i[o++]=v[p++];while(--u);r.length===0&&(r.mode=kr);break;case df:if(c===0)break e;i[o++]=r.length,c--,r.mode=kr;break;case Ii:if(r.wrap){for(;l<32;){if(s===0)break e;s--,f|=n[a++]<<l,l+=8}if(h-=c,e.total_out+=h,r.total+=h,h&&(e.adler=r.check=r.flags?Z(r.check,i,h,o-h):mi(r.check,i,h,o-h)),h=c,(r.flags?f:vf(f))!==r.check){e.msg="incorrect data check",r.mode=M;break}f=0,l=0}r.mode=pf;case pf:if(r.wrap&&r.flags){for(;l<32;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(f!==(r.total&4294967295)){e.msg="incorrect length check",r.mode=M;break}f=0,l=0}r.mode=yf;case yf:E=od;break e;case M:E=fd;break e;case ud:return cd;case hd:default:return ze}return e.next_out=o,e.avail_out=c,e.next_in=a,e.avail_in=s,r.hold=f,r.bits=l,(r.wsize||h!==e.avail_out&&r.mode<M&&(r.mode<Ii||t!==qs))&&bd(e,e.output,e.next_out,h-e.avail_out),d-=e.avail_in,h-=e.avail_out,e.total_in+=d,e.total_out+=h,r.total+=h,r.wrap&&h&&(e.adler=r.check=r.flags?Z(r.check,i,h,e.next_out-h):mi(r.check,i,h,e.next_out-h)),e.data_type=r.bits+(r.last?64:0)+(r.mode===Re?128:0)+(r.mode===Ar||r.mode===Pi?256:0),(d===0&&h===0||t===qs)&&E===qt&&(E=ld),E}function Ed(e){if(!e||!e.state)return ze;var t=e.state;return t.window&&(t.window=null),e.state=null,qt}var Fi=0,xt=1,Rr=2,Ht=3,Or=4,St=5,Kt=6,Wt=7,wf=0,bf=1,mf=2,Ef=3,Mi=4,xf=5,xd=6,Tr=0,Sf=1,Af=2,Sd=-1,Ad=-2,kd=-3,kf=-5,Rd=0,Od=1,Td=9,Pd=-1,Id=1,Cd=2,Dd=3,Fd=4,Md=0,jd=0,Ld=1,Nd=2,Rf=8;function fe(e){if(e<xt||e>Wt)throw new TypeError("Bad argument");this.mode=e,this.init_done=!1,this.write_in_progress=!1,this.pending_close=!1,this.windowBits=0,this.level=0,this.memLevel=0,this.strategy=0,this.dictionary=null}fe.prototype.init=function(e,t,r,n,i){this.windowBits=e,this.level=t,this.memLevel=r,this.strategy=n,(this.mode===Ht||this.mode===Or)&&(this.windowBits+=16),this.mode===Wt&&(this.windowBits+=32),(this.mode===St||this.mode===Kt)&&(this.windowBits=-this.windowBits),this.strm=new nh;var a;switch(this.mode){case xt:case Ht:case St:a=Gh(this.strm,this.level,Rf,this.windowBits,this.memLevel,this.strategy);break;case Rr:case Or:case Kt:case Wt:a=_d(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}if(a!==Tr){this._error(a);return}this.write_in_progress=!1,this.init_done=!0},fe.prototype.params=function(){throw new Error("deflateParams Not supported")},fe.prototype._writeCheck=function(){if(!this.init_done)throw new Error("write before init");if(this.mode===Fi)throw new Error("already finalized");if(this.write_in_progress)throw new Error("write already in progress");if(this.pending_close)throw new Error("close is pending")},fe.prototype.write=function(e,t,r,n,i,a,o){this._writeCheck(),this.write_in_progress=!0;var s=this;return Ee.nextTick(function(){s.write_in_progress=!1;var c=s._write(e,t,r,n,i,a,o);s.callback(c[0],c[1]),s.pending_close&&s.close()}),this};function Bd(e,t){for(var r=0;r<e.length;r++)this[t+r]=e[r]}fe.prototype.writeSync=function(e,t,r,n,i,a,o){return this._writeCheck(),this._write(e,t,r,n,i,a,o)},fe.prototype._write=function(e,t,r,n,i,a,o){if(this.write_in_progress=!0,e!==wf&&e!==bf&&e!==mf&&e!==Ef&&e!==Mi&&e!==xf)throw new Error("Invalid flush value");t==null&&(t=new y(0),n=0,r=0),i._set?i.set=i._set:i.set=Bd;var s=this.strm;s.avail_in=n,s.input=t,s.next_in=r,s.avail_out=o,s.output=i,s.next_out=a;var c;switch(this.mode){case xt:case Ht:case St:c=Yh(s,e);break;case Wt:case Rr:case Or:case Kt:c=md(s,e);break;default:throw new Error("Unknown mode "+this.mode)}return this._checkError(c,s,e)||this._error(c),this.write_in_progress=!1,[s.avail_in,s.avail_out]},fe.prototype._checkError=function(e,t,r){switch(e){case Tr:case kf:if(t.avail_out!==0&&r===Mi)return!1;break;case Sf:break;case Af:return!1;default:return!1}return!0},fe.prototype.close=function(){if(this.write_in_progress){this.pending_close=!0;return}this.pending_close=!1,this.mode===xt||this.mode===Ht||this.mode===St?Jh(this.strm):Ed(this.strm),this.mode=Fi};var Pr;fe.prototype.reset=function(){switch(this.mode){case xt:case St:Pr=Ls(this.strm);break;case Rr:case Kt:Pr=gf(this.strm);break}Pr!==Tr&&this._error(Pr)},fe.prototype._error=function(e){this.onerror(ls[e]+": "+this.strm.msg,e),this.write_in_progress=!1,this.pending_close&&this.close()};var Of=Object.freeze({__proto__:null,DEFLATE:xt,DEFLATERAW:St,GUNZIP:Or,GZIP:Ht,INFLATE:Rr,INFLATERAW:Kt,NONE:Fi,UNZIP:Wt,Z_BEST_COMPRESSION:Td,Z_BEST_SPEED:Od,Z_BINARY:jd,Z_BLOCK:xf,Z_BUF_ERROR:kf,Z_DATA_ERROR:kd,Z_DEFAULT_COMPRESSION:Pd,Z_DEFAULT_STRATEGY:Md,Z_DEFLATED:Rf,Z_ERRNO:Sd,Z_FILTERED:Id,Z_FINISH:Mi,Z_FIXED:Fd,Z_FULL_FLUSH:Ef,Z_HUFFMAN_ONLY:Cd,Z_NEED_DICT:Af,Z_NO_COMPRESSION:Rd,Z_NO_FLUSH:wf,Z_OK:Tr,Z_PARTIAL_FLUSH:bf,Z_RLE:Dd,Z_STREAM_END:Sf,Z_STREAM_ERROR:Ad,Z_SYNC_FLUSH:mf,Z_TEXT:Ld,Z_TREES:xd,Z_UNKNOWN:Nd,Zlib:fe});function Ud(e,t){if(!e)throw new Error(t)}var m={};Object.keys(Of).forEach(function(e){m[e]=Of[e]}),m.Z_MIN_WINDOWBITS=8,m.Z_MAX_WINDOWBITS=15,m.Z_DEFAULT_WINDOWBITS=15,m.Z_MIN_CHUNK=64,m.Z_MAX_CHUNK=1/0,m.Z_DEFAULT_CHUNK=16384,m.Z_MIN_MEMLEVEL=1,m.Z_MAX_MEMLEVEL=9,m.Z_DEFAULT_MEMLEVEL=8,m.Z_MIN_LEVEL=-1,m.Z_MAX_LEVEL=9,m.Z_DEFAULT_LEVEL=m.Z_DEFAULT_COMPRESSION;var Vt={Z_OK:m.Z_OK,Z_STREAM_END:m.Z_STREAM_END,Z_NEED_DICT:m.Z_NEED_DICT,Z_ERRNO:m.Z_ERRNO,Z_STREAM_ERROR:m.Z_STREAM_ERROR,Z_DATA_ERROR:m.Z_DATA_ERROR,Z_MEM_ERROR:m.Z_MEM_ERROR,Z_BUF_ERROR:m.Z_BUF_ERROR,Z_VERSION_ERROR:m.Z_VERSION_ERROR};Object.keys(Vt).forEach(function(e){Vt[Vt[e]]=e});function $d(e){return new tt(e)}function zd(e){return new rt(e)}function Zd(e){return new at(e)}function qd(e){return new ot(e)}function Hd(e){return new nt(e)}function Kd(e){return new it(e)}function Wd(e){return new st(e)}function Vd(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new tt(t),e,r)}function Gd(e,t){return et(new tt(t),e)}function Yd(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new nt(t),e,r)}function Jd(e,t){return et(new nt(t),e)}function Xd(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new at(t),e,r)}function Qd(e,t){return et(new at(t),e)}function ep(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new st(t),e,r)}function tp(e,t){return et(new st(t),e)}function rp(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new rt(t),e,r)}function np(e,t){return et(new rt(t),e)}function ip(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new it(t),e,r)}function ap(e,t){return et(new it(t),e)}function op(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new ot(t),e,r)}function sp(e,t){return et(new ot(t),e)}function Qe(e,t,r){var n=[],i=0;e.on("error",o),e.on("end",s),e.end(t),a();function a(){for(var c;(c=e.read())!==null;)n.push(c),i+=c.length;e.once("readable",a)}function o(c){e.removeListener("end",s),e.removeListener("readable",a),r(c)}function s(){var c=y.concat(n,i);n=[],r(null,c),e.close()}}function et(e,t){if(typeof t=="string"&&(t=new y(t)),!y.isBuffer(t))throw new TypeError("Not a string or buffer");var r=m.Z_FINISH;return e._processChunk(t,r)}function tt(e){if(!(this instanceof tt))return new tt(e);j.call(this,e,m.DEFLATE)}function rt(e){if(!(this instanceof rt))return new rt(e);j.call(this,e,m.INFLATE)}function nt(e){if(!(this instanceof nt))return new nt(e);j.call(this,e,m.GZIP)}function it(e){if(!(this instanceof it))return new it(e);j.call(this,e,m.GUNZIP)}function at(e){if(!(this instanceof at))return new at(e);j.call(this,e,m.DEFLATERAW)}function ot(e){if(!(this instanceof ot))return new ot(e);j.call(this,e,m.INFLATERAW)}function st(e){if(!(this instanceof st))return new st(e);j.call(this,e,m.UNZIP)}function j(e,t){if(this._opts=e=e||{},this._chunkSize=e.chunkSize||m.Z_DEFAULT_CHUNK,re.call(this,e),e.flush&&e.flush!==m.Z_NO_FLUSH&&e.flush!==m.Z_PARTIAL_FLUSH&&e.flush!==m.Z_SYNC_FLUSH&&e.flush!==m.Z_FULL_FLUSH&&e.flush!==m.Z_FINISH&&e.flush!==m.Z_BLOCK)throw new Error("Invalid flush flag: "+e.flush);if(this._flushFlag=e.flush||m.Z_NO_FLUSH,e.chunkSize&&(e.chunkSize<m.Z_MIN_CHUNK||e.chunkSize>m.Z_MAX_CHUNK))throw new Error("Invalid chunk size: "+e.chunkSize);if(e.windowBits&&(e.windowBits<m.Z_MIN_WINDOWBITS||e.windowBits>m.Z_MAX_WINDOWBITS))throw new Error("Invalid windowBits: "+e.windowBits);if(e.level&&(e.level<m.Z_MIN_LEVEL||e.level>m.Z_MAX_LEVEL))throw new Error("Invalid compression level: "+e.level);if(e.memLevel&&(e.memLevel<m.Z_MIN_MEMLEVEL||e.memLevel>m.Z_MAX_MEMLEVEL))throw new Error("Invalid memLevel: "+e.memLevel);if(e.strategy&&e.strategy!=m.Z_FILTERED&&e.strategy!=m.Z_HUFFMAN_ONLY&&e.strategy!=m.Z_RLE&&e.strategy!=m.Z_FIXED&&e.strategy!=m.Z_DEFAULT_STRATEGY)throw new Error("Invalid strategy: "+e.strategy);if(e.dictionary&&!y.isBuffer(e.dictionary))throw new Error("Invalid dictionary: it should be a Buffer instance");this._binding=new m.Zlib(t);var r=this;this._hadError=!1,this._binding.onerror=function(a,o){r._binding=null,r._hadError=!0;var s=new Error(a);s.errno=o,s.code=Vt[o],r.emit("error",s)};var n=m.Z_DEFAULT_COMPRESSION;typeof e.level=="number"&&(n=e.level);var i=m.Z_DEFAULT_STRATEGY;typeof e.strategy=="number"&&(i=e.strategy),this._binding.init(e.windowBits||m.Z_DEFAULT_WINDOWBITS,n,e.memLevel||m.Z_DEFAULT_MEMLEVEL,i,e.dictionary),this._buffer=new y(this._chunkSize),this._offset=0,this._closed=!1,this._level=n,this._strategy=i,this.once("end",this.close)}W(j,re),j.prototype.params=function(e,t,r){if(e<m.Z_MIN_LEVEL||e>m.Z_MAX_LEVEL)throw new RangeError("Invalid compression level: "+e);if(t!=m.Z_FILTERED&&t!=m.Z_HUFFMAN_ONLY&&t!=m.Z_RLE&&t!=m.Z_FIXED&&t!=m.Z_DEFAULT_STRATEGY)throw new TypeError("Invalid strategy: "+t);if(this._level!==e||this._strategy!==t){var n=this;this.flush(m.Z_SYNC_FLUSH,function(){n._binding.params(e,t),n._hadError||(n._level=e,n._strategy=t,r&&r())})}else Ee.nextTick(r)},j.prototype.reset=function(){return this._binding.reset()},j.prototype._flush=function(e){this._transform(new y(0),"",e)},j.prototype.flush=function(e,t){var r=this._writableState;if((typeof e=="function"||e===void 0&&!t)&&(t=e,e=m.Z_FULL_FLUSH),r.ended)t&&Ee.nextTick(t);else if(r.ending)t&&this.once("end",t);else if(r.needDrain){var n=this;this.once("drain",function(){n.flush(t)})}else this._flushFlag=e,this.write(new y(0),"",t)},j.prototype.close=function(e){if(e&&Ee.nextTick(e),!this._closed){this._closed=!0,this._binding.close();var t=this;Ee.nextTick(function(){t.emit("close")})}},j.prototype._transform=function(e,t,r){var n,i=this._writableState,a=i.ending||i.ended,o=a&&(!e||i.length===e.length);if(!e===null&&!y.isBuffer(e))return r(new Error("invalid input"));o?n=m.Z_FINISH:(n=this._flushFlag,e.length>=i.length&&(this._flushFlag=this._opts.flush||m.Z_NO_FLUSH)),this._processChunk(e,n,r)},j.prototype._processChunk=function(e,t,r){var n=e&&e.length,i=this._chunkSize-this._offset,a=0,o=this,s=typeof r=="function";if(!s){var c=[],f=0,l;this.on("error",function(v){l=v});do var d=this._binding.writeSync(t,e,a,n,this._buffer,this._offset,i);while(!this._hadError&&p(d[0],d[1]));if(this._hadError)throw l;var h=y.concat(c,f);return this.close(),h}var u=this._binding.write(t,e,a,n,this._buffer,this._offset,i);u.buffer=e,u.callback=p;function p(v,_){if(!o._hadError){var w=i-_;if(Ud(w>=0,"have should not go down"),w>0){var x=o._buffer.slice(o._offset,o._offset+w);o._offset+=w,s?o.push(x):(c.push(x),f+=x.length)}if((_===0||o._offset>=o._chunkSize)&&(i=o._chunkSize,o._offset=0,o._buffer=new y(o._chunkSize)),_===0){if(a+=n-v,n=v,!s)return!0;var S=o._binding.write(t,e,a,n,o._buffer,o._offset,o._chunkSize);S.callback=p,S.buffer=e;return}if(!s)return!1;r()}}},W(tt,j),W(rt,j),W(nt,j),W(it,j),W(at,j),W(ot,j),W(st,j);var Tf={codes:Vt,createDeflate:$d,createInflate:zd,createDeflateRaw:Zd,createInflateRaw:qd,createGzip:Hd,createGunzip:Kd,createUnzip:Wd,deflate:Vd,deflateSync:Gd,gzip:Yd,gzipSync:Jd,deflateRaw:Xd,deflateRawSync:Qd,unzip:ep,unzipSync:tp,inflate:rp,inflateSync:np,gunzip:ip,gunzipSync:ap,inflateRaw:op,inflateRawSync:sp,Deflate:tt,Inflate:rt,Gzip:nt,Gunzip:it,DeflateRaw:at,InflateRaw:ot,Unzip:st,Zlib:j};class Pf extends li{constructor({client:t,keyPrefix:r="cache",ttl:n=0,prefix:i=void 0}){super({client:t,keyPrefix:r,ttl:n,prefix:i}),this.client=t,this.keyPrefix=r,this.config.ttl=n,this.config.client=t,this.config.prefix=i!==void 0?i:r+(r.endsWith("/")?"":"/")}async _set(t,r){let n=JSON.stringify(r);const i=n.length;return n=Tf.gzipSync(n).toString("base64"),this.client.putObject({key:we(this.keyPrefix,t),body:n,contentEncoding:"gzip",contentType:"application/gzip",metadata:{compressor:"zlib",compressed:"true","client-id":this.client.id,"length-serialized":String(i),"length-compressed":String(n.length),"compression-gain":(n.length/i).toFixed(2)}})}async _get(t){try{const{Body:r}=await this.client.getObject(we(this.keyPrefix,t));let n=await It(r);return n=Buffer.from(n,"base64"),n=Tf.unzipSync(n).toString(),JSON.parse(n)}catch(r){if(r.name==="NoSuchKey"||r.name==="NotFound")return null;throw r}}async _del(t){return await this.client.deleteObject(we(this.keyPrefix,t)),!0}async _clear(){const t=await this.client.getAllKeys({prefix:this.keyPrefix});for(const r of t)await this.client.deleteObject(r)}async size(){return(await this.keys()).length}async keys(){const t=await this.client.getAllKeys({prefix:this.keyPrefix}),r=this.keyPrefix.endsWith("/")?this.keyPrefix:this.keyPrefix+"/";return t.map(n=>n.startsWith(r)?n.slice(r.length):n)}}class If extends R{async setup(t){}async start(){}async stop(){}beforeSetup(){this.emit("plugin.beforeSetup",new Date)}afterSetup(){this.emit("plugin.afterSetup",new Date)}beforeStart(){this.emit("plugin.beforeStart",new Date)}afterStart(){this.emit("plugin.afterStart",new Date)}beforeStop(){this.emit("plugin.beforeStop",new Date)}afterStop(){this.emit("plugin.afterStop",new Date)}}const fp={setup(e){},start(){},stop(){}},cp={async setup(e){this.client=e.client,this.map={PutObjectCommand:"put",GetObjectCommand:"get",HeadObjectCommand:"get",DeleteObjectCommand:"delete",DeleteObjectsCommand:"delete",ListObjectsV2Command:"list"},this.costs={total:0,prices:{put:.005/1e3,copy:.005/1e3,list:.005/1e3,post:.005/1e3,get:4e-4/1e3,select:4e-4/1e3,delete:4e-4/1e3},requests:{total:0,put:0,post:0,copy:0,list:0,get:0,select:0,delete:0},events:{total:0,PutObjectCommand:0,GetObjectCommand:0,HeadObjectCommand:0,DeleteObjectCommand:0,DeleteObjectsCommand:0,ListObjectsV2Command:0}},this.client.costs=JSON.parse(JSON.stringify(this.costs))},async start(){this.client.on("command.response",e=>this.addRequest(e,this.map[e]))},addRequest(e,t){this.costs.events[e]++,this.costs.events.total++,this.costs.requests.total++,this.costs.requests[t]++,this.costs.total+=this.costs.prices[t],this.client.costs.events[e]++,this.client.costs.events.total++,this.client.costs.requests.total++,this.client.costs.requests[t]++,this.client.costs.total+=this.client.costs.prices[t]}};class lp extends If{constructor(t={}){super(),this.driver=t.driver}async setup(t){this.database=t,this.driver||(this.driver=new Pf({keyPrefix:"cache",client:t.client})),this.installDatabaseProxy();for(const r of Object.values(t.resources))this.installResourcesProxies(r)}async start(){}async stop(){}installDatabaseProxy(){const t=this.installResourcesProxies.bind(this);this.database._createResource=this.database.createResource,this.database.createResource=async function(...r){const n=await this._createResource(...r);return t(n),n}}installResourcesProxies(t){t.cache=this.driver;let r=`resource=${t.name}`;this.driver.keyPrefix&&(this.driver.keyPrefix=we(this.driver.keyPrefix,r)),t.cacheKeyFor=async function({params:n={},action:i="list"}){let a=Object.keys(n).sort().map(o=>`${o}:${n[o]}`).join("|")||"empty";return a=await ra(a),a=we(r,`action=${i}`,`${a}.json.gz`),a},t._count=t.count,t._listIds=t.listIds,t._getMany=t.getMany,t._getAll=t.getAll,t._page=t.page,t.count=async function(){const n=await this.cacheKeyFor({action:"count"});try{const a=await this.cache.get(n);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const i=await t._count();return await this.cache.set(n,i),i},t.listIds=async function(){const n=await this.cacheKeyFor({action:"listIds"});try{const a=await this.cache.get(n);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const i=await t._listIds();return await this.cache.set(n,i),i},t.getMany=async function(n){const i=await this.cacheKeyFor({action:"getMany",params:{ids:n}});try{const o=await this.cache.get(i);if(o)return o}catch(o){if(o.name!=="NoSuchKey")throw o}const a=await t._getMany(n);return await this.cache.set(i,a),a},t.getAll=async function(){const n=await this.cacheKeyFor({action:"getAll"});try{const a=await this.cache.get(n);if(a)return a}catch(a){if(a.name!=="NoSuchKey")throw a}const i=await t._getAll();return await this.cache.set(n,i),i},t.page=async function({offset:n,size:i}){const a=await this.cacheKeyFor({action:"page",params:{offset:n,size:i}});try{const s=await this.cache.get(a);if(s)return s}catch(s){if(s.name!=="NoSuchKey")throw s}const o=await t._page({offset:n,size:i});return await this.cache.set(a,o),o},t._insert=t.insert,t._update=t.update,t._delete=t.delete,t._deleteMany=t.deleteMany,t.insert=async function(...n){const i=await t._insert(...n);return await this.cache.clear(r),i},t.update=async function(...n){const i=await t._update(...n);return await this.cache.clear(r),i},t.delete=async function(...n){const i=await t._delete(...n);return await this.cache.clear(r),i},t.deleteMany=async function(...n){const i=await t._deleteMany(...n);return await this.cache.clear(r),i}}}return P.BaseError=ut,P.Cache=li,P.CachePlugin=lp,P.Client=ta,P.ConnectionString=ea,P.CostsPlugin=cp,P.Database=cs,P.ErrorMap=Ji,P.InvalidResourceItem=Xt,P.MemoryCache=rh,P.MissingMetadata=Gi,P.NoSuchBucket=Wi,P.NoSuchKey=$r,P.NotFound=Vi,P.Plugin=If,P.PluginObject=fp,P.ResourceIdsPageReader=Qo,P.ResourceIdsReader=Xo,P.ResourceReader=es,P.ResourceWriter=ts,P.S3Cache=Pf,P.S3_DEFAULT_ENDPOINT=Qi,P.S3_DEFAULT_REGION=Xi,P.S3db=th,P.UnknownError=Yi,P.Validator=so,P.ValidatorManager=fo,P.decrypt=na,P.encrypt=zr,P.sha256=ra,P.streamToString=It,P}({},nanoid,lodashEs,promisePool,clientS3,crypto,flat,FastestValidator,web);