s3db.js 4.1.6 → 4.1.8

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(I,Ni,L,ce,le,Bi,Jt,Df,Ff){"use strict";function Ui(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=Ui(Br(e.split("/"),function(i){return!!i}),!t).join("/"),(t?"/":"")+e||"."}function $i(e){var t=zi(e),r=zf(e,-1)==="/";return e=Ui(Br(e.split("/"),function(n){return!!n}),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function zi(e){return e.charAt(0)==="/"}function we(){var e=Array.prototype.slice.call(arguments,0);return $i(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:zi,normalize:$i,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=Ni.customAlphabet(Ni.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 Hi(e){return e._maxListeners===void 0?R.defaultMaxListeners:e._maxListeners}R.prototype.getMaxListeners=function(){return Hi(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 Hf(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 qf(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:Hf(n,d,this,arguments[1]);break;case 3:qf(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=Hi(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 Ki(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,Ki(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,Ki(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):Wi.call(e,t)},R.prototype.listenerCount=Wi;function Wi(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+`
2
+ var S3DB=function(P,Li,L,le,ue,Ni,Yt,Pf,If){"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 Cf=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,Mr=function(e){return Cf.exec(e).slice(1)};function Lr(){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(Nr(e.split("/"),function(i){return!!i}),!t).join("/"),(t?"/":"")+e||"."}function Ui(e){var t=$i(e),r=Bf(e,-1)==="/";return e=Bi(Nr(e.split("/"),function(n){return!!n}),!t).join("/"),!e&&!t&&(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function $i(e){return e.charAt(0)==="/"}function be(){var e=Array.prototype.slice.call(arguments,0);return Ui(Nr(e,function(t,r){if(typeof t!="string")throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))}function Df(e,t){e=Lr(e).substr(1),t=Lr(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 Ff="/",jf=":";function Mf(e){var t=Mr(e),r=t[0],n=t[1];return!r&&!n?".":(n&&(n=n.substr(0,n.length-1)),r+n)}function Lf(e,t){var r=Mr(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r}function Nf(e){return Mr(e)[3]}var he={extname:Nf,basename:Lf,dirname:Mf,sep:Ff,delimiter:jf,relative:Df,join:be,isAbsolute:$i,normalize:Ui,resolve:Lr};function Nr(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 Bf="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 Br;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&&Br.active&&!(this instanceof Br.Domain)&&(this.domain=Br.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 Uf(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 $f(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 zf(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 Zf(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 Hf(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:Uf(n,d,this);break;case 2:$f(n,d,this,arguments[1]);break;case 3:zf(n,d,this,arguments[1],arguments[2]);break;case 4:Zf(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];Hf(n,d,this,a)}return!0};function Hi(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,qf(s)}return e}function qf(e){typeof console.warn=="function"?console.warn(e):console.log(e)}R.prototype.addListener=function(t,r){return Hi(this,t,r,!1)},R.prototype.on=R.prototype.addListener,R.prototype.prependListener=function(t,r){return Hi(this,t,r,!0)};function qi(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,qi(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,qi(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 Kf(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=Wf(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 Kf(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 Wf(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 Vi 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 Gi extends $r{}class Yi 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 Ji extends ut{}const Xi={NotFound:Gi,NoSuchKey:$r,UnknownError:Ji,NoSuchBucket:Vi,MissingMetadata:Yi,InvalidResourceItem:Xt},Qi="us-east-1",ea="https://s3.us-east-1.amazonaws.com";class ta{constructor(t){let r;try{r=new URL(t)}catch{throw new Error("Invalid connection string: "+t)}this.region=Qi,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=ea,["/","",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 ra 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 ta(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=Xi[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||Buffer.alloc(0)};n!==void 0&&(o.ContentType=n),a!==void 0&&(o.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 na(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 aa(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 ia(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 aa(t,i),c=await r.subtle.decrypt({name:"AES-GCM",iv:a},s,o);return new TextDecoder().decode(c)}async function aa(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,oa;function ec(){if(oa)return Zr;oa=1;var e,t,r={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
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,E){var S,g,A=w[E];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,E,A)}({"":v},""):v},Zr}var Hr,sa;function tc(){if(sa)return Hr;sa=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?`[
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 Ur 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 Ur{}class Gi extends ut{constructor({bucket:t,...r}){super({...r,bucket:t,message:`Missing metadata for bucket [bucket:${t}]`})}}class Jt 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:Ur,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 ue.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?he.join(this.config.keyPrefix,t):t,Metadata:{...r},Body:i||Buffer.alloc(0)};n!==void 0&&(o.ContentType=n),a!==void 0&&(o.ContentEncoding=a);try{const s=await this.sendCommand(new ue.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:he.join(this.config.keyPrefix,t)};try{const n=await this.sendCommand(new ue.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?he.join(this.config.keyPrefix,t):t};try{const n=await this.sendCommand(new ue.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?he.join(this.config.keyPrefix,r):r,CopySource:he.join(this.config.bucket,this.config.keyPrefix?he.join(this.config.keyPrefix,t):t)};try{const i=await this.client.send(new ue.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?he.join(this.config.keyPrefix,t):t};try{const n=await this.sendCommand(new ue.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 le.PromisePool.for(r).withConcurrency(this.parallelism).process(async o=>{const s={Bucket:this.config.bucket,Delete:{Objects:o.map(c=>({Key:this.config.keyPrefix?he.join(this.config.keyPrefix,c):c}))}};try{return await this.sendCommand(new ue.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 ue.ListObjectsV2Command({Bucket:this.config.bucket,Prefix:this.config.keyPrefix?he.join(this.config.keyPrefix,t):t,ContinuationToken:r}),a=await this.client.send(i);if(a.Contents&&a.Contents.length>0){const o=new ue.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?he.join(this.config.keyPrefix,t||""):t||""};try{const a=await this.sendCommand(new ue.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 le.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 $r(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),Vf(f)}async function na(e,t){const r=await Xt(),n=Gf(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 Vf(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 Gf(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 Yf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Qt={},zr,aa;function Jf(){if(aa)return zr;aa=1;var e,t,r={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
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,g="",w;if(t==='"')for(;a();){if(t==='"')return a(),g;if(t==="\\")if(a(),t==="u"){for(w=0,p=0;p<4&&(u=parseInt(a(),16),!!isFinite(u));p+=1)w=w*16+u;g+=String.fromCharCode(w)}else if(typeof r[t]=="string")g+=r[t];else break;else g+=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 g;return n=u,e=0,t=" ",g=h(),c(),t&&i("Syntax error"),typeof p=="function"?function w(b,E){var S,v,A=b[E];if(A&&typeof A=="object")for(S in h)Object.prototype.hasOwnProperty.call(A,S)&&(v=w(A,S),typeof v>"u"?delete A[S]:A[S]=v);return p.call(b,E,A)}({"":g},""):g},zr}var Zr,oa;function Xf(){if(oa)return Zr;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,g=c[s];switch(g&&typeof g=="object"&&typeof g.toJSON=="function"&&(g=g.toJSON(s)),typeof i=="function"&&(g=i.call(c,s,g)),typeof g){case"string":return a(g);case"number":return isFinite(g)?String(g):"null";case"boolean":case"null":return String(g);case"object":if(!g)return"null";if(t+=r,p=[],Object.prototype.toString.apply(g)==="[object Array]"){for(h=g.length,f=0;f<h;f+=1)p[f]=o(f,g)||"null";return d=p.length===0?"[]":t?`[
9
9
  `+t+p.join(`,
10
10
  `+t)+`
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?`{
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,g),d&&p.push(a(l)+(t?": ":":")+d));else for(l in g)Object.prototype.hasOwnProperty.call(g,l)&&(d=o(l,g),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 Hr=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})},Hr}var fa;function rc(){return fa||(fa=1,er.parse=ec(),er.stringify=tc()),er}var qr,ca;function nc(){if(ca)return qr;ca=1;var e={}.toString;return qr=Array.isArray||function(t){return e.call(t)=="[object Array]"},qr}var Kr,la;function ua(){if(la)return Kr;la=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,ha;function ic(){if(ha)return Wr;ha=1;var e;if(!Object.keys){var t=Object.prototype.hasOwnProperty,r=Object.prototype.toString,n=ua(),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]",E=[];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)E.push(String(g));if(_&&u.length>0)for(var A=0;A<u.length;++A)E.push(String(A));else for(var T in u)!(S&&T==="prototype")&&t.call(u,T)&&E.push(String(T));if(a)for(var b=d(u),x=0;x<s.length;++x)!(b&&s[x]==="constructor")&&t.call(u,s[x])&&E.push(s[x]);return E}}return Wr=e,Wr}var Vr,da;function ac(){if(da)return Vr;da=1;var e=Array.prototype.slice,t=ua(),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,pa;function ya(){return pa||(pa=1,Yr=Object),Yr}var Jr,va;function oc(){return va||(va=1,Jr=Error),Jr}var Xr,ga;function sc(){return ga||(ga=1,Xr=EvalError),Xr}var Qr,_a;function fc(){return _a||(_a=1,Qr=RangeError),Qr}var en,wa;function cc(){return wa||(wa=1,en=ReferenceError),en}var tn,ba;function ma(){return ba||(ba=1,tn=SyntaxError),tn}var rn,xa;function tr(){return xa||(xa=1,rn=TypeError),rn}var nn,Ea;function lc(){return Ea||(Ea=1,nn=URIError),nn}var an,Sa;function uc(){return Sa||(Sa=1,an=Math.abs),an}var on,Aa;function hc(){return Aa||(Aa=1,on=Math.floor),on}var sn,ka;function dc(){return ka||(ka=1,sn=Math.max),sn}var fn,Ra;function pc(){return Ra||(Ra=1,fn=Math.min),fn}var cn,Oa;function yc(){return Oa||(Oa=1,cn=Math.pow),cn}var ln,Ta;function vc(){return Ta||(Ta=1,ln=Math.round),ln}var un,Ia;function gc(){return Ia||(Ia=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,Ca;function wc(){return Ca||(Ca=1,dn=Object.getOwnPropertyDescriptor),dn}var pn,Da;function rr(){if(Da)return pn;Da=1;var e=wc();if(e)try{e([],"length")}catch{e=null}return pn=e,pn}var yn,Fa;function nr(){if(Fa)return yn;Fa=1;var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch{e=!1}return yn=e,yn}var vn,Ma;function bc(){return Ma||(Ma=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,ja;function mc(){if(ja)return gn;ja=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 Na(){return La||(La=1,_n=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),_n}var wn,Ba;function Ua(){if(Ba)return wn;Ba=1;var e=ya();return wn=e.getPrototypeOf||null,wn}var bn,$a;function xc(){if($a)return bn;$a=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,za;function Rt(){if(za)return mn;za=1;var e=xc();return mn=Function.prototype.bind||e,mn}var xn,Za;function En(){return Za||(Za=1,xn=Function.prototype.call),xn}var Sn,Ha;function An(){return Ha||(Ha=1,Sn=Function.prototype.apply),Sn}var kn,qa;function Ec(){return qa||(qa=1,kn=typeof Reflect<"u"&&Reflect&&Reflect.apply),kn}var Rn,Ka;function Wa(){if(Ka)return Rn;Ka=1;var e=Rt(),t=An(),r=En(),n=Ec();return Rn=n||e.call(r,t),Rn}var On,Va;function Tn(){if(Va)return On;Va=1;var e=Rt(),t=tr(),r=En(),n=Wa();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 In,Ga;function Sc(){if(Ga)return In;Ga=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 In=n&&typeof n.get=="function"?e([n.get]):typeof a=="function"?function(s){return a(s==null?s:i(s))}:!1,In}var Pn,Ya;function Ac(){if(Ya)return Pn;Ya=1;var e=Na(),t=Ua(),r=Sc();return Pn=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,Pn}var Cn,Ja;function kc(){if(Ja)return Cn;Ja=1;var e=Function.prototype.call,t=Object.prototype.hasOwnProperty,r=Rt();return Cn=r.call(e,t),Cn}var Dn,Xa;function Qa(){if(Xa)return Dn;Xa=1;var e,t=ya(),r=oc(),n=sc(),i=fc(),a=cc(),o=ma(),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{}},E=rr(),S=nr(),g=function(){throw new s},A=E?function(){try{return arguments.callee,g}catch{try{return E(arguments,"callee").get}catch{return g}}}():g,T=mc()(),b=Ac(),x=Ua(),O=Na(),k=An(),F=En(),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%":E,"%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%":x,"%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),Pr=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=Pr(B,0,1),U=Pr(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,Li=_e.alias;Li&&(Y=Li[0],up(U,Gt([0,1],Li)));for(var Dr=1,Yt=!0;Dr<U.length;Dr+=1){var Oe=U[Dr],Fr=Pr(Oe,0,1),Mr=Pr(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(E&&Dr+1>=U.length){var jr=E(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,eo;function Rc(){if(eo)return Fn;eo=1;var e=nr(),t=ma(),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,to;function Oc(){if(to)return Mn;to=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,ro;function Tc(){if(ro)return jn;ro=1;var e=Qa(),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,no;function Ic(){if(no)return Ln;no=1;var e=Rt(),t=An(),r=Wa();return Ln=function(){return r(e,t,arguments)},Ln}var io;function Pc(){return io||(io=1,function(e){var t=Tc(),r=nr(),n=Tn(),i=Ic();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,ao;function Cc(){if(ao)return Nn;ao=1;var e=Qa(),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,oo;function Dc(){if(oo)return Bn;oo=1;var e=(typeof JSON<"u"?JSON:rc()).stringify,t=nc(),r=ac(),n=Pc(),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,E=typeof u=="function"?u:u&&u.cmp,S=E&&function(A){var T=E.length>2&&function(x){return A[x]};return function(b,x){return E({key:b,value:A[b]},{key:x,value:A[x]},T?{__proto__:null,get:T}:void 0)}},g=[];return function A(T,b,x,O){var k=p?`
15
- `+f(O,p):"",F=p?": ":":";if(x&&x.toJSON&&typeof x.toJSON=="function"&&(x=x.toJSON()),x=_(T,b,x),x!==void 0){if(typeof x!="object"||x===null)return e(x);var K=function(lt,Gt){return w&&lt.length===0?Gt:(Gt==="[]"?"[":"{")+a(lt,",")+k+(Gt==="[]"?"]":"}")};if(t(x)){for(var Q=[],G=0;G<x.length;G++){var oe=A(x,G,x[G],O+1)||e(null);Q[Q.length]=k+p+oe}return K(Q,"[]")}if(o(g,x)!==-1){if(v)return e("__cycle__");throw new TypeError("Converting circular structure to JSON")}else g[g.length]=x;for(var ft=c(r(x),S&&S(x)),Q=[],G=0;G<ft.length;G++){var b=ft[G],ve=A(x,b,x[b],O+1);if(ve){var ct=e(b)+F+ve;Q[Q.length]=k+p+ct}}return s(g,o(g,x),1),K(Q,"{}")}}({"":h},"",h,0)},Bn}var Fc=Dc(),so=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 fo 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 co=new Proxy(fo,{instance:null,construct(e,t){return this.instance||(this.instance=new e(...t)),this.instance}}),lo={trim:e=>e.trim(),encrypt:(e,{passphrase:t})=>zr(e,t),decrypt:(e,{passphrase:t})=>ia(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 Ie{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),this.allNestedObjectsOptional=this.options.allNestedObjectsOptional??!1;const c=this.preprocessAttributesForValidation(this.attributes);if(this.validator=new co({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=Ie._importAttributes(o),new Ie({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 Ie._importAttributes(r)}catch{}return t}if(Array.isArray(t))return t.map(r=>Ie._importAttributes(r));if(typeof t=="object"&&t!==null){const r={};for(const[n,i]of Object.entries(t))r[n]=Ie._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 lo[a]=="function"&&L.set(t,n,await lo[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))if(typeof i=="object"&&i!==null&&!Array.isArray(i)){const a=i.$$type&&i.$$type.includes("required"),o=i.$$type&&i.$$type.includes("optional"),s={type:"object",properties:this.preprocessAttributesForValidation(i),strict:!1};a||(o||this.allNestedObjectsOptional)&&(s.optional=!0),r[n]=s}else 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 uo(){$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||uo();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 ho(e){$n||uo();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 po(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,yo=Array.isArray||function(e){return Bc.call(e)=="[object Array]"};/*!
14
+ `+u+"}":"{"+p.join(",")+"}",t=u,d}}return Zr=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})},Zr}var sa;function Qf(){return sa||(sa=1,Qt.parse=Jf(),Qt.stringify=Xf()),Qt}var Hr,fa;function ec(){if(fa)return Hr;fa=1;var e={}.toString;return Hr=Array.isArray||function(t){return e.call(t)=="[object Array]"},Hr}var qr,ca;function la(){if(ca)return qr;ca=1;var e=Object.prototype.toString;return qr=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},qr}var Kr,ua;function tc(){if(ua)return Kr;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",g=r.call(u)==="[object Function]",w=n(u),b=p&&r.call(u)==="[object String]",E=[];if(!p&&!g&&!w)throw new TypeError("Object.keys called on a non-object");var S=o&&g;if(b&&u.length>0&&!t.call(u,0))for(var v=0;v<u.length;++v)E.push(String(v));if(w&&u.length>0)for(var A=0;A<u.length;++A)E.push(String(A));else for(var T in u)!(S&&T==="prototype")&&t.call(u,T)&&E.push(String(T));if(a)for(var _=d(u),x=0;x<s.length;++x)!(_&&s[x]==="constructor")&&t.call(u,s[x])&&E.push(s[x]);return E}}return Kr=e,Kr}var Wr,ha;function rc(){if(ha)return Wr;ha=1;var e=Array.prototype.slice,t=la(),r=Object.keys,n=r?function(o){return r(o)}:tc(),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},Wr=n,Wr}var Vr={exports:{}},Gr,da;function pa(){return da||(da=1,Gr=Object),Gr}var Yr,ya;function nc(){return ya||(ya=1,Yr=Error),Yr}var Jr,ga;function ic(){return ga||(ga=1,Jr=EvalError),Jr}var Xr,va;function ac(){return va||(va=1,Xr=RangeError),Xr}var Qr,wa;function oc(){return wa||(wa=1,Qr=ReferenceError),Qr}var en,_a;function ba(){return _a||(_a=1,en=SyntaxError),en}var tn,ma;function er(){return ma||(ma=1,tn=TypeError),tn}var rn,xa;function sc(){return xa||(xa=1,rn=URIError),rn}var nn,Ea;function fc(){return Ea||(Ea=1,nn=Math.abs),nn}var an,Sa;function cc(){return Sa||(Sa=1,an=Math.floor),an}var on,Aa;function lc(){return Aa||(Aa=1,on=Math.max),on}var sn,ka;function uc(){return ka||(ka=1,sn=Math.min),sn}var fn,Ra;function hc(){return Ra||(Ra=1,fn=Math.pow),fn}var cn,Oa;function dc(){return Oa||(Oa=1,cn=Math.round),cn}var ln,Ta;function pc(){return Ta||(Ta=1,ln=Number.isNaN||function(t){return t!==t}),ln}var un,Pa;function yc(){if(Pa)return un;Pa=1;var e=pc();return un=function(r){return e(r)||r===0?r:r<0?-1:1},un}var hn,Ia;function gc(){return Ia||(Ia=1,hn=Object.getOwnPropertyDescriptor),hn}var dn,Ca;function tr(){if(Ca)return dn;Ca=1;var e=gc();if(e)try{e([],"length")}catch{e=null}return dn=e,dn}var pn,Da;function rr(){if(Da)return pn;Da=1;var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch{e=!1}return pn=e,pn}var yn,Fa;function vc(){return Fa||(Fa=1,yn=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}),yn}var gn,ja;function wc(){if(ja)return gn;ja=1;var e=typeof Symbol<"u"&&Symbol,t=vc();return gn=function(){return typeof e!="function"||typeof Symbol!="function"||typeof e("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:t()},gn}var vn,Ma;function La(){return Ma||(Ma=1,vn=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),vn}var wn,Na;function Ba(){if(Na)return wn;Na=1;var e=pa();return wn=e.getPrototypeOf||null,wn}var _n,Ua;function _c(){if(Ua)return _n;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 _n=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 b=f.apply(this,i(l,arguments));return Object(b)===b?b:this}return f.apply(c,i(l,arguments))},u=r(0,f.length-l.length),p=[],g=0;g<u;g++)p[g]="$"+g;if(d=Function("binder","return function ("+o(p,",")+"){ return binder.apply(this,arguments); }")(h),f.prototype){var w=function(){};w.prototype=f.prototype,d.prototype=new w,w.prototype=null}return d},_n}var bn,$a;function Rt(){if($a)return bn;$a=1;var e=_c();return bn=Function.prototype.bind||e,bn}var mn,za;function xn(){return za||(za=1,mn=Function.prototype.call),mn}var En,Za;function Sn(){return Za||(Za=1,En=Function.prototype.apply),En}var An,Ha;function bc(){return Ha||(Ha=1,An=typeof Reflect<"u"&&Reflect&&Reflect.apply),An}var kn,qa;function Ka(){if(qa)return kn;qa=1;var e=Rt(),t=Sn(),r=xn(),n=bc();return kn=n||e.call(r,t),kn}var Rn,Wa;function On(){if(Wa)return Rn;Wa=1;var e=Rt(),t=er(),r=xn(),n=Ka();return Rn=function(a){if(a.length<1||typeof a[0]!="function")throw new t("a function is required");return n(e,r,a)},Rn}var Tn,Va;function mc(){if(Va)return Tn;Va=1;var e=On(),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 Tn=n&&typeof n.get=="function"?e([n.get]):typeof a=="function"?function(s){return a(s==null?s:i(s))}:!1,Tn}var Pn,Ga;function xc(){if(Ga)return Pn;Ga=1;var e=La(),t=Ba(),r=mc();return Pn=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,Pn}var In,Ya;function Ec(){if(Ya)return In;Ya=1;var e=Function.prototype.call,t=Object.prototype.hasOwnProperty,r=Rt();return In=r.call(e,t),In}var Cn,Ja;function Xa(){if(Ja)return Cn;Ja=1;var e,t=pa(),r=nc(),n=ic(),i=ac(),a=oc(),o=ba(),s=er(),c=sc(),f=fc(),l=cc(),d=lc(),h=uc(),u=hc(),p=dc(),g=yc(),w=Function,b=function(we){try{return w('"use strict"; return ('+we+").constructor;")()}catch{}},E=tr(),S=rr(),v=function(){throw new s},A=E?function(){try{return arguments.callee,v}catch{try{return E(arguments,"callee").get}catch{return v}}}():v,T=wc()(),_=xc(),x=Ba(),O=La(),k=Sn(),F=xn(),W={},Y=typeof Uint8Array>"u"||!_?e:_(Uint8Array),se={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?e:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?e:ArrayBuffer,"%ArrayIteratorPrototype%":T&&_?_([][Symbol.iterator]()):e,"%AsyncFromSyncIteratorPrototype%":e,"%AsyncFunction%":W,"%AsyncGenerator%":W,"%AsyncGeneratorFunction%":W,"%AsyncIteratorPrototype%":W,"%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%":w,"%GeneratorFunction%":W,"%Int8Array%":typeof Int8Array>"u"?e:Int8Array,"%Int16Array%":typeof Int16Array>"u"?e:Int16Array,"%Int32Array%":typeof Int32Array>"u"?e:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":T&&_?_(_([][Symbol.iterator]())):e,"%JSON%":typeof JSON=="object"?JSON:e,"%Map%":typeof Map>"u"?e:Map,"%MapIteratorPrototype%":typeof Map>"u"||!T||!_?e:_(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":t,"%Object.getOwnPropertyDescriptor%":E,"%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||!_?e:_(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?e:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":T&&_?_(""[Symbol.iterator]()):e,"%Symbol%":T?Symbol:e,"%SyntaxError%":o,"%ThrowTypeError%":A,"%TypedArray%":Y,"%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%":x,"%Math.abs%":f,"%Math.floor%":l,"%Math.max%":d,"%Math.min%":h,"%Math.pow%":u,"%Math.round%":p,"%Math.sign%":g,"%Reflect.getPrototypeOf%":O};if(_)try{null.error}catch(we){var ft=_(_(we));se["%Error.prototype%"]=ft}var ee=function we(B){var G;if(B==="%AsyncFunction%")G=b("async function () {}");else if(B==="%GeneratorFunction%")G=b("function* () {}");else if(B==="%AsyncGeneratorFunction%")G=b("async function* () {}");else if(B==="%AsyncGenerator%"){var $=we("%AsyncGeneratorFunction%");$&&(G=$.prototype)}else if(B==="%AsyncIteratorPrototype%"){var J=we("%AsyncGenerator%");J&&_&&(G=_(J.prototype))}return se[B]=G,G},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=Ec(),Vt=ct.call(F,Array.prototype.concat),cp=ct.call(k,Array.prototype.splice),Tf=ct.call(F,String.prototype.replace),Pr=ct.call(F,String.prototype.slice),lp=ct.call(F,RegExp.prototype.exec),up=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,hp=/\\(\\)?/g,dp=function(B){var G=Pr(B,0,1),$=Pr(B,-1);if(G==="%"&&$!=="%")throw new o("invalid intrinsic syntax, expected closing `%`");if($==="%"&&G!=="%")throw new o("invalid intrinsic syntax, expected opening `%`");var J=[];return Tf(B,up,function(_e,At,te,Ir){J[J.length]=te?Tf(Ir,hp,"$1"):At||_e}),J},pp=function(B,G){var $=B,J;if(lt(ve,$)&&(J=ve[$],$="%"+J[0]+"%"),lt(se,$)){var _e=se[$];if(_e===W&&(_e=ee($)),typeof _e>"u"&&!G)throw new s("intrinsic "+B+" exists, but is not available. Please file an issue!");return{alias:J,name:$,value:_e}}throw new o("intrinsic "+B+" does not exist!")};return Cn=function(B,G){if(typeof B!="string"||B.length===0)throw new s("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof G!="boolean")throw new s('"allowMissing" argument must be a boolean');if(lp(/^%?[^%]*%?$/,B)===null)throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var $=dp(B),J=$.length>0?$[0]:"",_e=pp("%"+J+"%",G),At=_e.name,te=_e.value,Ir=!1,Mi=_e.alias;Mi&&(J=Mi[0],cp($,Vt([0,1],Mi)));for(var Cr=1,Gt=!0;Cr<$.length;Cr+=1){var Oe=$[Cr],Dr=Pr(Oe,0,1),Fr=Pr(Oe,-1);if((Dr==='"'||Dr==="'"||Dr==="`"||Fr==='"'||Fr==="'"||Fr==="`")&&Dr!==Fr)throw new o("property names with quotes must have matching quotes");if((Oe==="constructor"||!Gt)&&(Ir=!0),J+="."+Oe,At="%"+J+"%",lt(se,At))te=se[At];else if(te!=null){if(!(Oe in te)){if(!G)throw new s("base intrinsic for "+B+" exists, but the property is not available.");return}if(E&&Cr+1>=$.length){var jr=E(te,Oe);Gt=!!jr,Gt&&"get"in jr&&!("originalValue"in jr.get)?te=jr.get:te=te[Oe]}else Gt=lt(te,Oe),te=te[Oe];Gt&&!Ir&&(se[At]=te)}}return te},Cn}var Dn,Qa;function Sc(){if(Qa)return Dn;Qa=1;var e=rr(),t=ba(),r=er(),n=tr();return Dn=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.")},Dn}var Fn,eo;function Ac(){if(eo)return Fn;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}},Fn=t,Fn}var jn,to;function kc(){if(to)return jn;to=1;var e=Xa(),t=Sc(),r=Ac()(),n=tr(),i=er(),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 Mn,ro;function Rc(){if(ro)return Mn;ro=1;var e=Rt(),t=Sn(),r=Ka();return Mn=function(){return r(e,t,arguments)},Mn}var no;function Oc(){return no||(no=1,function(e){var t=kc(),r=rr(),n=On(),i=Rc();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}(Vr)),Vr.exports}var Ln,io;function Tc(){if(io)return Ln;io=1;var e=Xa(),t=On(),r=t([e("%String.prototype.indexOf%")]);return Ln=function(i,a){var o=e(i,!!a);return typeof o=="function"&&r(i,".prototype.")>-1?t([o]):o},Ln}var Nn,ao;function Pc(){if(ao)return Nn;ao=1;var e=(typeof JSON<"u"?JSON:Qf()).stringify,t=ec(),r=rc(),n=Oc(),i=Tc(),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="",g=0;g<h;g+=1)p+=u;return p},l=function(d,h,u){return u};return Nn=function(h){var u=arguments.length>1?arguments[1]:void 0,p=u&&u.space||"";typeof p=="number"&&(p=f(p," "));var g=!!u&&typeof u.cycles=="boolean"&&u.cycles,w=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 b=!!u&&u.collapseEmpty,E=typeof u=="function"?u:u&&u.cmp,S=E&&function(A){var T=E.length>2&&function(x){return A[x]};return function(_,x){return E({key:_,value:A[_]},{key:x,value:A[x]},T?{__proto__:null,get:T}:void 0)}},v=[];return function A(T,_,x,O){var k=p?`
15
+ `+f(O,p):"",F=p?": ":":";if(x&&x.toJSON&&typeof x.toJSON=="function"&&(x=x.toJSON()),x=w(T,_,x),x!==void 0){if(typeof x!="object"||x===null)return e(x);var W=function(lt,Vt){return b&&lt.length===0?Vt:(Vt==="[]"?"[":"{")+a(lt,",")+k+(Vt==="[]"?"]":"}")};if(t(x)){for(var ee=[],Y=0;Y<x.length;Y++){var se=A(x,Y,x[Y],O+1)||e(null);ee[ee.length]=k+p+se}return W(ee,"[]")}if(o(v,x)!==-1){if(g)return e("__cycle__");throw new TypeError("Converting circular structure to JSON")}else v[v.length]=x;for(var ft=c(r(x),S&&S(x)),ee=[],Y=0;Y<ft.length;Y++){var _=ft[Y],ve=A(x,_,x[_],O+1);if(ve){var ct=e(_)+F+ve;ee[ee.length]=k+p+ct}}return s(v,o(v,x),1),W(ee,"{}")}}({"":h},"",h,0)},Nn}var Ic=Pc(),oo=Yf(Ic);async function Bn(e,t,r){if(!this.passphrase)return t.push({actual:e,type:"encryptionKeyMissing"}),e;try{return await $r(String(e),this.passphrase)}catch(n){t.push({actual:e,type:"encryptionProblem",error:n})}return e}class so extends Pf{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?Bn: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?Bn:void 0}),this.alias("secretNumber",{type:"number",custom:this.autoEncrypt?Bn: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})=>$r(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),this.allNestedObjectsOptional=this.options.allNestedObjectsOptional??!1;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 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=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))if(typeof i=="object"&&i!==null&&!Array.isArray(i)){const a=i.$$type&&i.$$type.includes("required"),o=i.$$type&&i.$$type.includes("optional"),s={type:"object",properties:this.preprocessAttributesForValidation(i),strict:!1};a||(o||this.allNestedObjectsOptional)&&(s.optional=!0),r[n]=s}else r[n]=i;return r}}var ht=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{},de=[],ie=[],Cc=typeof Uint8Array<"u"?Uint8Array:Array,Un=!1;function lo(){Un=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0,r=e.length;t<r;++t)de[t]=e[t],ie[e.charCodeAt(t)]=t;ie[45]=62,ie[95]=63}function Dc(e){Un||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 Cc(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=ie[e.charCodeAt(t)]<<18|ie[e.charCodeAt(t+1)]<<12|ie[e.charCodeAt(t+2)]<<6|ie[e.charCodeAt(t+3)],o[c++]=i>>16&255,o[c++]=i>>8&255,o[c++]=i&255;return a===2?(i=ie[e.charCodeAt(t)]<<2|ie[e.charCodeAt(t+1)]>>4,o[c++]=i&255):a===1&&(i=ie[e.charCodeAt(t)]<<10|ie[e.charCodeAt(t+1)]<<4|ie[e.charCodeAt(t+2)]>>2,o[c++]=i>>8&255,o[c++]=i&255),o}function Fc(e){return de[e>>18&63]+de[e>>12&63]+de[e>>6&63]+de[e&63]}function jc(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(Fc(n));return i.join("")}function uo(e){Un||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(jc(e,s,s+o>c?c:s+o));return n===1?(t=e[r-1],i+=de[t>>2],i+=de[t<<4&63],i+="=="):n===2&&(t=(e[r-2]<<8)+e[r-1],i+=de[t>>10],i+=de[t>>4&63],i+=de[t<<2&63],i+="="),a.push(i),a.join("")}function nr(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,g=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]|=g*128}var Mc={}.toString,po=Array.isArray||function(e){return Mc.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=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 vo(this,e,t,r)}y.poolSize=8192,y._augment=function(e){return e.__proto__=y.prototype,e};function vo(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):Hc(e,t)}y.from=function(e,t,r){return vo(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 go(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 go(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(go(t),e=be(e,t<0?0:Hn(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=_o(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:Hn(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 Hc(e,t){if(de(t)){var r=Hn(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"&&yo(t.data))return Zn(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function Hn(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(!yo(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 _o(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 Ro(e).length;default:if(n)return fr(e).length;t=(""+t).toLowerCase(),n=!0}}y.byteLength=_o;function qc(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 xo(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?xo(this,0,t):qc.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 wo(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:bo(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):bo(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function bo(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 wo(this,t,r,n,!0)},y.prototype.lastIndexOf=function(t,r,n){return wo(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 mo(e,t,r,n){return cr(sl(t),e,r,n)}function Vc(e,t,r,n){return mo(e,t,r,n)}function Gc(e,t,r,n){return cr(Ro(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 mo(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?ho(e):ho(e.slice(t,r))}function xo(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 So(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 Ao(e,t,r,n,i){return i||So(e,t,r,4),po(e,t,r,n,23,4),r+4}y.prototype.writeFloatLE=function(t,r,n){return Ao(this,t,r,!0,n)},y.prototype.writeFloatBE=function(t,r,n){return Ao(this,t,r,!1,n)};function ko(e,t,r,n,i){return i||So(e,t,r,8),po(e,t,r,n,52,8),r+8}y.prototype.writeDoubleLE=function(t,r,n){return ko(this,t,r,!0,n)},y.prototype.writeDoubleBE=function(t,r,n){return ko(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 Ro(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||Oo(e)||ul(e))}function Oo(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"&&Oo(e.slice(0,0))}function To(){throw new Error("setTimeout has not been defined")}function Io(){throw new Error("clearTimeout has not been defined")}var Pe=To,Ce=Io;typeof ht.setTimeout=="function"&&(Pe=setTimeout),typeof ht.clearTimeout=="function"&&(Ce=clearTimeout);function Po(e){if(Pe===setTimeout)return setTimeout(e,0);if((Pe===To||!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(Ce===clearTimeout)return clearTimeout(e);if((Ce===Io||!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,He,lr=-1;function dl(){!dt||!He||(dt=!1,He.length?me=He.concat(me):lr=-1,me.length&&Co())}function Co(){if(!dt){var e=Po(dl);dt=!0;for(var t=me.length;t;){for(He=me,me=[];++lr<t;)He&&He[lr].run();lr=-1,t=me.length}He=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 Do(e,t)),me.length===1&&!dt&&Po(Co)}function Do(e,t){this.fun=e,this.array=t}Do.prototype.run=function(){this.fun.apply(null,this.array)};var pl="browser",yl="browser",vl=!0,gl={},_l=[],wl="",bl={},ml={},xl={};function qe(){}var El=qe,Sl=qe,Al=qe,kl=qe,Rl=qe,Ol=qe,Tl=qe;function Il(e){throw new Error("process.binding is not supported")}function Pl(){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 xe={nextTick:te,title:pl,browser:vl,env:gl,argv:_l,version:wl,versions:bl,on:El,addListener:Sl,once:Al,off:kl,removeListener:Rl,removeAllListeners:Ol,emit:Tl,binding:Il,cwd:Pl,chdir:Cl,umask:Dl,hrtime:Ml,platform:yl,release:ml,config:xl,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 Fo(e,t){if(Fe(ht.process))return function(){return Fo(e,t).apply(this,arguments)};if(xe.noDeprecation===!0)return e;var r=!1;function n(){if(!r){if(xe.throwDeprecation)throw new Error(t);xe.traceDeprecation?console.trace(t):console.error(t),r=!0}return e.apply(this,arguments)}return n}var ur={},qn;function Ul(e){if(Fe(qn)&&(qn=xe.env.NODE_DEBUG||""),e=e.toUpperCase(),!ur[e])if(new RegExp("\\b"+e+"\\b","i").test(qn)){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]),Mo(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=Hl(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(jo(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)),jo(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=ql(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 Hl(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(Mo(t))return e.stylize(""+t,"boolean");if(Vn(t))return e.stylize("null","null")}function Kn(e){return"["+Error.prototype.toString.call(e)+"]"}function ql(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 Lc=50;y.TYPED_ARRAY_SUPPORT=ht.TYPED_ARRAY_SUPPORT!==void 0?ht.TYPED_ARRAY_SUPPORT:!0,ir();function ir(){return y.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function me(e,t){if(ir()<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 $n(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?Uc(e,t,r,n):typeof t=="string"?Bc(e,t,r):$c(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 go(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 Nc(e,t,r,n){return go(t),t<=0?me(e,t):r!==void 0?typeof n=="string"?me(e,t).fill(r,n):me(e,t).fill(r):me(e,t)}y.alloc=function(e,t,r){return Nc(null,e,t,r)};function $n(e,t){if(go(t),e=me(e,t<0?0:Zn(t)|0),!y.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}y.allocUnsafe=function(e){return $n(null,e)},y.allocUnsafeSlow=function(e){return $n(null,e)};function Bc(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=vo(t,r)|0;e=me(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:Zn(t.length)|0;e=me(e,r);for(var n=0;n<r;n+=1)e[n]=t[n]&255;return e}function Uc(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 $c(e,t){if(pe(t)){var r=Zn(t.length)|0;return e=me(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"||ol(t.length)?me(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 Zn(e){if(e>=ir())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ir().toString(16)+" bytes");return e|0}y.isBuffer=sl;function pe(e){return!!(e!=null&&e._isBuffer)}y.compare=function(t,r){if(!pe(t)||!pe(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(!pe(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(i,a),a+=o.length}return i};function vo(e,t){if(pe(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 sr(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 sr(e).length;t=(""+t).toLowerCase(),n=!0}}y.byteLength=vo;function zc(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 Xc(this,t,r);case"utf8":case"utf-8":return mo(this,t,r);case"ascii":return Yc(this,t,r);case"latin1":case"binary":return Jc(this,t,r);case"base64":return Vc(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Qc(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):zc.apply(this,arguments)},y.prototype.equals=function(t){if(!pe(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=Lc;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(!pe(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 wo(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)),pe(t))return t.length===0?-1:_o(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):_o(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function _o(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 wo(this,t,r,n,!0)},y.prototype.lastIndexOf=function(t,r,n){return wo(this,t,r,n,!1)};function Zc(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 Hc(e,t,r,n){return fr(sr(t,e.length-r),e,r,n)}function bo(e,t,r,n){return fr(il(t),e,r,n)}function qc(e,t,r,n){return bo(e,t,r,n)}function Kc(e,t,r,n){return fr(ko(t),e,r,n)}function Wc(e,t,r,n){return fr(al(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 Zc(this,t,r,n);case"utf8":case"utf-8":return Hc(this,t,r,n);case"ascii":return bo(this,t,r,n);case"latin1":case"binary":return qc(this,t,r,n);case"base64":return Kc(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Wc(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 Vc(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 Gc(n)}var xo=4096;function Gc(e){var t=e.length;if(t<=xo)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=xo));return r}function Yc(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 Jc(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 Xc(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+=nl(e[a]);return i}function Qc(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),nr(this,t,!0,23,4)},y.prototype.readFloatBE=function(t,r){return r||Z(t,4,this.length),nr(this,t,!1,23,4)},y.prototype.readDoubleLE=function(t,r){return r||Z(t,8,this.length),nr(this,t,!0,52,8)},y.prototype.readDoubleBE=function(t,r){return r||Z(t,8,this.length),nr(this,t,!1,52,8)};function X(e,t,r,n,i,a){if(!pe(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;X(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;X(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||X(this,t,r,1,255,0),y.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[r]=t&255,r+1};function ar(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||X(this,t,r,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):ar(this,t,r,!0),r+2},y.prototype.writeUInt16BE=function(t,r,n){return t=+t,r=r|0,n||X(this,t,r,2,65535,0),y.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):ar(this,t,r,!1),r+2};function or(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||X(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):or(this,t,r,!0),r+4},y.prototype.writeUInt32BE=function(t,r,n){return t=+t,r=r|0,n||X(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):or(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);X(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);X(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||X(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||X(this,t,r,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[r]=t&255,this[r+1]=t>>>8):ar(this,t,r,!0),r+2},y.prototype.writeInt16BE=function(t,r,n){return t=+t,r=r|0,n||X(this,t,r,2,32767,-32768),y.TYPED_ARRAY_SUPPORT?(this[r]=t>>>8,this[r+1]=t&255):ar(this,t,r,!1),r+2},y.prototype.writeInt32LE=function(t,r,n){return t=+t,r=r|0,n||X(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):or(this,t,r,!0),r+4},y.prototype.writeInt32BE=function(t,r,n){return t=+t,r=r|0,n||X(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):or(this,t,r,!1),r+4};function Eo(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||Eo(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||Eo(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=pe(t)?t:sr(new y(t,i).toString()),c=s.length;for(o=0;o<n-r;++o)this[o+r]=s[o%c]}return this};var el=/[^+\/0-9A-Za-z-_]/g;function tl(e){if(e=rl(e).replace(el,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function rl(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function nl(e){return e<16?"0"+e.toString(16):e.toString(16)}function sr(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 il(e){for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r)&255);return t}function al(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 Dc(tl(e))}function fr(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 ol(e){return e!==e}function sl(e){return e!=null&&(!!e._isBuffer||Ro(e)||fl(e))}function Ro(e){return!!e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function fl(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 cl(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 xe=[],dt=!1,He,cr=-1;function ll(){!dt||!He||(dt=!1,He.length?xe=He.concat(xe):cr=-1,xe.length&&Io())}function Io(){if(!dt){var e=Po(ll);dt=!0;for(var t=xe.length;t;){for(He=xe,xe=[];++cr<t;)He&&He[cr].run();cr=-1,t=xe.length}He=null,dt=!1,cl(e)}}function re(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];xe.push(new Co(e,t)),xe.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 ul="browser",hl="browser",dl=!0,pl={},yl=[],gl="",vl={},wl={},_l={};function qe(){}var bl=qe,ml=qe,xl=qe,El=qe,Sl=qe,Al=qe,kl=qe;function Rl(e){throw new Error("process.binding is not supported")}function Ol(){return"/"}function Tl(e){throw new Error("process.chdir is not supported")}function Pl(){return 0}var pt=ht.performance||{},Il=pt.now||pt.mozNow||pt.msNow||pt.oNow||pt.webkitNow||function(){return new Date().getTime()};function Cl(e){var t=Il.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 Dl=new Date;function Fl(){var e=new Date,t=e-Dl;return t/1e3}var Ee={nextTick:re,title:ul,browser:dl,env:pl,argv:yl,version:gl,versions:vl,on:bl,addListener:ml,once:xl,off:El,removeListener:Sl,removeAllListeners:Al,emit:kl,binding:Rl,cwd:Ol,chdir:Tl,umask:Pl,hrtime:Cl,platform:hl,release:wl,config:_l,uptime:Fl},V;typeof Object.create=="function"?V=function(t,r){t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:V=function(t,r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t};var jl=/%[sdj%]/g;function Ml(e){if(!Vn(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(jl,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])Wn(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 lr={},Hn;function Ll(e){if(Fe(Hn)&&(Hn=Ee.env.NODE_DEBUG||""),e=e.toUpperCase(),!lr[e])if(new RegExp("\\b"+e+"\\b","i").test(Hn)){var t=0;lr[e]=function(){var r=Ml.apply(null,arguments);console.error("%s %d: %s",e,t,r)}}else lr[e]=function(){};return lr[e]}function De(e,t){var r={seen:[],stylize:Bl};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),Fo(t)?r.showHidden=t:t&&Kl(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=Nl),ur(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 Nl(e,t){var r=De.styles[t];return r?"\x1B["+De.colors[r][0]+"m"+e+"\x1B["+De.colors[r][1]+"m":e}function Bl(e,t){return e}function Ul(e){var t={};return e.forEach(function(r,n){t[r]=!0}),t}function ur(e,t,r){if(e.customInspect&&t&&Jn(t.inspect)&&t.inspect!==De&&!(t.constructor&&t.constructor.prototype===t)){var n=t.inspect(r,e);return Vn(n)||(n=ur(e,n,r)),n}var i=$l(e,t);if(i)return i;var a=Object.keys(t),o=Ul(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),Yn(t)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return qn(t);if(a.length===0){if(Jn(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(Gn(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(jo(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Yn(t))return qn(t)}var c="",f=!1,l=["{","}"];if(Hl(t)&&(f=!0,l=["[","]"]),Jn(t)){var d=t.name?": "+t.name:"";c=" [Function"+d+"]"}if(Gn(t)&&(c=" "+RegExp.prototype.toString.call(t)),jo(t)&&(c=" "+Date.prototype.toUTCString.call(t)),Yn(t)&&(c=" "+qn(t)),a.length===0&&(!f||t.length==0))return l[0]+c+l[1];if(r<0)return Gn(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var h;return f?h=zl(e,t,r,o,a):h=a.map(function(u){return Kn(e,t,r,o,u,f)}),e.seen.pop(),Zl(h,c,l)}function $l(e,t){if(Fe(t))return e.stylize("undefined","undefined");if(Vn(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(ql(t))return e.stylize(""+t,"number");if(Fo(t))return e.stylize(""+t,"boolean");if(Wn(t))return e.stylize("null","null")}function qn(e){return"["+Error.prototype.toString.call(e)+"]"}function zl(e,t,r,n,i){for(var a=[],o=0,s=t.length;o<s;++o)Mo(t,String(o))?a.push(Kn(e,t,r,n,String(o),!0)):a.push("");return i.forEach(function(c){c.match(/^\d+$/)||a.push(Kn(e,t,r,n,c,!0))}),a}function Kn(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")),Mo(n,i)||(o="["+i+"]"),s||(e.seen.indexOf(c.value)<0?(Wn(r)?s=ur(e,c.value,null):s=ur(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")),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(`
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 Zl(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 Mo(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 jo(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 Lo(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=No;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 No(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 No(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="")),Bo(this,r,e,t,!1)},N.prototype.unshift=function(e){var t=this._readableState;return Bo(this,t,e,"",!0)},N.prototype.isPaused=function(){return this._readableState.flowing===!1};function Bo(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 Uo=8388608;function iu(e){return e>=Uo?e=Uo:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function $o(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=$o(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=$o(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(zo,e):zo(e))}function zo(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 E=e.write(w);E===!1&&!d&&((n.pipesCount===1&&n.pipes===e||n.pipesCount>1&&Ho(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=Ho(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 Ho(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}H.WritableState=ri,W(H,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:Fo(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 Yo(this)}ri.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};function H(e){if(!(this instanceof H)&&!(this instanceof ie))return new H(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)}H.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}H.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=Eu(this,n,e,t,r)),i},H.prototype.cork=function(){var e=this._writableState;e.corked++},H.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.finished&&!e.bufferProcessing&&e.bufferedRequest&&Ko(this,e))},H.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 xu(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=y.from(t,r)),t}function Eu(e,t,r,n,i){r=xu(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=Wo(r);!a&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&Ko(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(),Go(e,t)}function Ru(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function Ko(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 Yo(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}H.prototype._write=function(e,t,r){r(new Error("not implemented"))},H.prototype._writev=null,H.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 Wo(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function Vo(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function Go(e,t){var r=Wo(t);return r&&(t.pendingcb===0?(Vo(e,t),t.finished=!0,e.emit("finish")):Vo(e,t)),r}function Ou(e,t,r){t.ending=!0,Go(e,t),r&&(t.finished?te(r):e.once("finish",r)),t.ended=!0,e.writable=!1}function Yo(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 Jo=Object.keys(H.prototype),ii=0;ii<Jo.length;ii++){var ai=Jo[ii];ie.prototype[ai]||(ie.prototype[ai]=H.prototype[ai])}function ie(e){if(!(this instanceof ie))return new ie(e);N.call(this,e),H.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(Iu,this)}function Iu(e){e.end()}W(re,ie);function Pu(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 Pu(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){Xo(t,r)}):Xo(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 Xo(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(It,re);function It(e){if(!(this instanceof It))return new It(e);re.call(this,e)}It.prototype._transform=function(e,t,r){r(null,e)},W(Ee,R),Ee.Readable=N,Ee.Writable=H,Ee.Duplex=ie,Ee.Transform=re,Ee.PassThrough=It,Ee.Stream=Ee;function Ee(){R.call(this)}Ee.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 Qo 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 es extends Qo{enqueue(t){this.controller.enqueue(t),this.emit("page",t)}}class ts 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 es({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 rs 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 H({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().catch(r=>{this.emit("error",r)}),!0}end(){this.ended=!0,this._maybeWrite().catch(t=>{this.emit("error",t)})}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 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 ns(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=ns(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=2e3;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=2e3;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 is=2e3,as="...",os=Ct(as);async function Zu({resource:e,data:t,mappedData:r}){return si({resource:e,data:t,mappedData:r})}async function Hu({resource:e,id:t,data:r,mappedData:n}){return si({resource:e,data:r,mappedData:n})}async function qu({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=is-o;if(c<=f)a[s]=r[s],o+=c;else if(f>os){const l=f-os,d=ns(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+as,o=is;break}else break}return{mappedData:a,body:""}}var Wu=Object.freeze({__proto__:null,handleGet:Ku,handleInsert:Zu,handleUpdate:Hu,handleUpsert:qu});const ss=2e3,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)<=ss)return{mappedData:r,body:""};const i=ss-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 fs={"user-management":Lu,"enforce-limits":zu,"data-truncate":Wu,"body-overflow":Qu};function vt(e){const t=fs[e];if(!t)throw new Error(`Unknown behavior: ${e}. Available behaviors: ${Object.keys(fs).join(", ")}`);return t}const eh="user-management";class li 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,allNestedObjectsOptional:i.allNestedObjectsOptional??!1,...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 Ie({name:t,attributes:this.attributes,passphrase:s,version:this.version,options:{...this.options,allNestedObjectsOptional:this.options.allNestedObjectsOptional??!1}}),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 Ie({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 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 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()),E=w.toString();try{JSON.parse(E)}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 ts({resource:this}).build()}writable(){return new rs({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 r={...this.schema.export().attributes};this.options.timestamps&&(delete r.createdAt,delete r.updatedAt);const n=so(r);return`sha256:${Bi.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 E=n[_];if(E!=null){const S=this.applyPartitionRule(E,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 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.1.4"}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 ra({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 li({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,r=void 0){const i={...t.attributes};t.options?.timestamps&&(delete i.createdAt,delete i.updatedAt);const a={attributes:i,behavior:r||t.behavior||"user-management"},o=so(a);return`sha256:${Bi.createHash("sha256").update(o).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:{}}}resourceExists(t){return!!this.resources[t]}resourceExistsWithSameHash({name:t,attributes:r,options:n={},behavior:i="user-management"}){if(!this.resources[t])return{exists:!1,sameHash:!1,hash:null};const a=new li({name:t,attributes:r,behavior:i,observers:[],client:this.client,version:"temp",options:{cache:this.cache,...n}}),o=this.generateDefinitionHash(a.export(),i),s=this.generateDefinitionHash(this.resources[t].export(),this.resources[t].behavior);return{exists:!0,sameHash:o===s,hash:o,existingHash:s}}async createResourceIfNotExists({name:t,attributes:r,options:n={},behavior:i="user-management"}){const a=!!this.resources[t],o=this.resourceExistsWithSameHash({name:t,attributes:r,options:n,behavior:i});return o.exists&&o.sameHash?{resource:this.resources[t],created:!1,reason:"Resource already exists with same definition hash"}:{resource:await this.createResource({name:t,attributes:r,options:n,behavior:i}),created:!a,reason:a?"Resource updated with new definition":"New resource created"}}async createResource({name:t,attributes:r,options:n={},behavior:i="user-management"}){if(this.resources[t]){const c=this.resources[t];Object.assign(c.options,{cache:this.cache,...n}),i&&(c.behavior=i),c.updateAttributes(r);const f=this.generateDefinitionHash(c.export(),c.behavior),l=this.savedMetadata?.resources?.[t],d=l?.currentVersion||"v0",h=l?.versions?.[d];return(!h||h.hash!==f)&&await this.uploadMetadataFile(),this.emit("s3db.resourceUpdated",t),c}const o=this.savedMetadata?.resources?.[t]?.currentVersion||"v0",s=new li({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 ui 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 ui{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,hi=29,Dt=256,Ft=Dt+1+hi,_t=30,di=19,ps=2*Ft+1,Ve=15,pi=16,lh=7,yi=256,ys=16,vs=17,gs=18,vi=[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 gi=new Array(hi);gt(gi);var _r=new Array(_t);gt(_r);function _i(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 wi(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function xs(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>pi-r?(e.bi_buf|=t<<e.bi_valid&65535,Nt(e,e.bi_buf),e.bi_buf=t>>pi-e.bi_valid,e.bi_valid+=r-pi):(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 Es(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]=Es(n[s]++,s))}}function yh(){var e,t,r,n,i,a=new Array(Ve+1);for(r=0,n=0;n<hi-1;n++)for(gi[n]=r,e=0;e<1<<vi[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]=Es(e,5);ws=new _i(ke,vi,Dt+1,Ft,Ve),bs=new _i(Mt,gr,0,_t,Ve),ms=new _i(new Array(0),uh,0,di,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<di;t++)e.bl_tree[t*2]=0;e.dyn_ltree[yi*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 bi(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=vi[o],s!==0&&(i-=gi[o],X(e,i,s)),n--,o=xs(n),pe(e,o,r),s=gr[o],s!==0&&(n-=_r[o],X(e,n,s)));while(a<e.last_lit);pe(e,yi,t)}function mi(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--)bi(e,r,o);f=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],bi(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++,bi(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 Is(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),mi(e,e.bl_desc),t=di-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);Is(e,e.dyn_ltree,t-1),Is(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 Ps=!1;function bh(e){Ps||(yh(),Ps=!0),e.l_desc=new wi(e.dyn_ltree,ws),e.d_desc=new wi(e.dyn_dtree,bs),e.bl_desc=new wi(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,yi,ke),dh(e)}function xh(e,t,r,n){var i,a,o=0;e.level>0?(e.strm.data_type===ah&&(e.strm.data_type=wh(e)),mi(e,e.l_desc),mi(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[xs(t)*2]++),e.last_lit===e.lit_bufsize-1}function xi(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 Eh(){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=Eh();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,Ih=3,Ph=4,Ch=2,Si=8,Dh=9,Fh=29,Mh=256,Ai=Mh+1+Fh,jh=30,Lh=19,Nh=2*Ai+1,Bh=15,C=3,Be=258,se=Be+C+1,Uh=32,ki=42,Ri=69,br=73,mr=91,xr=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 q(e,t){xh(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,$e(e.strm)}function P(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=xi(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,q(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-se&&(q(e,!1),e.strm.avail_out===0))return $}return e.insert=0,t===je?(q(e,!0),e.strm.avail_out===0?Je:wt):(e.strstart>e.block_start&&(q(e,!1),e.strm.avail_out===0),$)}function Oi(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&&(q(e,!1),e.strm.avail_out===0))return $}return e.insert=e.strstart<C-1?e.strstart:C-1,t===je?(q(e,!0),e.strm.avail_out===0?Je:wt):e.last_lit&&(q(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&&(q(e,!1),e.strm.avail_out===0))return $}else if(e.match_available){if(n=Me(e,0,e.window[e.strstart-1]),n&&q(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?(q(e,!0),e.strm.avail_out===0?Je:wt):e.last_lit&&(q(e,!1),e.strm.avail_out===0)?$:Ut}function Hh(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&&(q(e,!1),e.strm.avail_out===0))return $}return e.insert=0,t===je?(q(e,!0),e.strm.avail_out===0?Je:wt):e.last_lit&&(q(e,!1),e.strm.avail_out===0)?$:Ut}function qh(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&&(q(e,!1),e.strm.avail_out===0))return $}return e.insert=0,t===je?(q(e,!0),e.strm.avail_out===0?Je:wt):e.last_lit&&(q(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,Oi),new ye(4,5,16,8,Oi),new ye(4,6,32,32,Oi),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=Si,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*Ai+1),Xe(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new ae(2*Ai+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?ki: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!==Si||n<8||n>15||t<0||t>9||a<0||a>Ph)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===ki)if(n.wrap===2)e.adler=0,P(n,31),P(n,139),P(n,8),n.gzhead?(P(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)),P(n,n.gzhead.time&255),P(n,n.gzhead.time>>8&255),P(n,n.gzhead.time>>16&255),P(n,n.gzhead.time>>24&255),P(n,n.level===9?2:n.strategy>=wr||n.level<2?4:0),P(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(P(n,n.gzhead.extra.length&255),P(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=Ri):(P(n,0),P(n,0),P(n,0),P(n,0),P(n,0),P(n,n.level===9?2:n.strategy>=wr||n.level<2?4:0),P(n,$h),n.status=Ye);else{var o=Si+(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===Ri)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));)P(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,P(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,P(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=xr)}else n.status=xr;if(n.status===xr&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&$e(e),n.pending+2<=n.pending_buf_size&&(P(n,e.adler&255),P(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?qh(n,t):n.strategy===Ih?Hh(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?(P(n,e.adler&255),P(n,e.adler>>8&255),P(n,e.adler>>16&255),P(n,e.adler>>24&255),P(n,e.total_in&255),P(n,e.total_in>>8&255),P(n,e.total_in>>16&255),P(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!==ki&&t!==Ri&&t!==br&&t!==mr&&t!==xr&&t!==Ye&&t!==Bt?Ue(e,Ne):(e.state=null,t===Ye?Ue(e,Rh):Le))}var Er=30,Xh=12;function Qh(e,t){var r,n,i,a,o,s,c,f,l,d,h,u,p,v,_,w,E,S,g,A,T,b,x,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,E=(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&E];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=Er;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=Er;break e}if(b=0,x=h,d===0){if(b+=f-g,g<A){A-=g;do k[a++]=h[b++];while(--g);b=a-T,x=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,x=k}}}else if(b+=d-g,g<A){A-=g;do k[a++]=h[b++];while(--g);b=a-T,x=k}for(;A>2;)k[a++]=x[b++],k[a++]=x[b++],k[a++]=x[b++],A-=3;A&&(k[a++]=x[b++],A>1&&(k[a++]=x[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=Er;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=Er;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 xt=15,Ns=852,Bs=592,Us=0,Ti=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,E=0,S,g,A,T,b,x=null,O=0,k,F=new ae(xt+1),K=new ae(xt+1),G=null,oe=0,ft,Q,ve;for(f=0;f<=xt;f++)F[f]=0;for(l=0;l<n;l++)F[t[r+l]]++;for(u=c,h=xt;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<=xt;f++)if(_<<=1,_-=F[f],_<0)return-1;if(_>0&&(e===Us||h!==1))return-1;for(K[1]=0,f=1;f<xt;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?(x=G=o,k=19):e===Ti?(x=ed,O-=257,G=td,oe-=257,k=256):(x=rd,G=nd,k=-1),E=0,l=0,f=d,b=a,p=u,v=0,A=-1,w=1<<u,T=w-1,e===Ti&&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=x[O+o[l]]):(Q=96,ve=0),S=1<<f-v,g=1<<p,d=g;do g-=S,i[b+(E>>v)+g]=ft<<24|Q<<16|ve|0;while(g!==0);for(S=1<<f-1;E&S;)S>>=1;if(S!==0?(E&=S-1,E+=S):E=0,l++,--F[f]===0){if(f===h)break;f=t[r+o[l]]}if(f>u&&(E&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===Ti&&w>Ns||e===$s&&w>Bs)return 1;A=E&T,i[A]=u<<24|p<<16|b-a|0}}return E!==0&&(i[b+E]=f-v<<24|4194304|0),s.bits=u,0}var id=0,zs=1,Zs=2,Hs=4,ad=5,Sr=6,Ht=0,od=1,sd=2,ze=-2,fd=-3,cd=-4,ld=-5,qs=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,Ii=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,Ci=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,Ht)}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!==Ht&&(e.state=null),r):ze}var _f=!0,Di,Fi;function wd(e){if(_f){var t;for(Di=new vr(512),Fi=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,Di,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Zt(Zs,e.lens,0,32,Fi,0,e.work,{bits:5}),_f=!1}e.lencode=Di,e.lenbits=9,e.distcode=Fi,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,E,S,g,A,T,b,x,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=Ii),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,x=Ht;e:for(;;)switch(r.mode){case Ks:if(r.wrap===0){r.mode=Ii;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)!==qs){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)!==qs){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 Ii:if(r.last){f>>>=l&7,l-=l&7,r.mode=Ci;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},x=Zt(id,r.lens,0,19,r.lencode,0,r.work,k),r.lenbits=k.bits,x){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,E=_>>>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},x=Zt(zs,r.lens,0,r.nlen,r.lencode,0,r.work,k),r.lenbits=k.bits,x){e.msg="invalid literal/lengths set",r.mode=M;break}if(r.distbits=6,r.distcode=r.distdyn,k={bits:r.distbits},x=Zt(Zs,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,k),r.distbits=k.bits,x){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,E=_>>>16&255,S=_&65535,!(w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(E&&(E&240)===0){for(g=w,A=E,T=S;_=r.lencode[T+((f&(1<<g+A)-1)>>g)],w=_>>>24,E=_>>>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,E===0){r.mode=df;break}if(E&32){r.back=-1,r.mode=Re;break}if(E&64){e.msg="invalid literal/length code",r.mode=M;break}r.extra=E&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,E=_>>>16&255,S=_&65535,!(w<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if((E&240)===0){for(g=w,A=E,T=S;_=r.distcode[T+((f&(1<<g+A)-1)>>g)],w=_>>>24,E=_>>>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,E&64){e.msg="invalid distance code",r.mode=M;break}r.offset=S,r.extra=E&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 Ci: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):xi(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:x=od;break e;case M:x=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<Ci||t!==Hs))&&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):xi(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===Hs)&&x===Ht&&(x=ld),x}function xd(e){if(!e||!e.state)return ze;var t=e.state;return t.window&&(t.window=null),e.state=null,Ht}var Mi=0,Et=1,Rr=2,qt=3,Or=4,St=5,Kt=6,Wt=7,wf=0,bf=1,mf=2,xf=3,ji=4,Ef=5,Ed=6,Tr=0,Sf=1,Af=2,Sd=-1,Ad=-2,kd=-3,kf=-5,Rd=0,Od=1,Td=9,Id=-1,Pd=1,Cd=2,Dd=3,Fd=4,Md=0,jd=0,Ld=1,Nd=2,Rf=8;function fe(e){if(e<Et||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===qt||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 Et:case qt: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===Mi)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 xe.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!==xf&&e!==ji&&e!==Ef)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 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===ji)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===St?Jh(this.strm):xd(this.strm),this.mode=Mi};var Ir;fe.prototype.reset=function(){switch(this.mode){case Et:case St:Ir=Ls(this.strm);break;case Rr:case Kt:Ir=gf(this.strm);break}Ir!==Tr&&this._error(Ir)},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:St,GUNZIP:Or,GZIP:qt,INFLATE:Rr,INFLATERAW:Kt,NONE:Mi,UNZIP:Wt,Z_BEST_COMPRESSION:Td,Z_BEST_SPEED:Od,Z_BINARY:jd,Z_BLOCK:Ef,Z_BUF_ERROR:kf,Z_DATA_ERROR:kd,Z_DEFAULT_COMPRESSION:Id,Z_DEFAULT_STRATEGY:Md,Z_DEFLATED:Rf,Z_ERRNO:Sd,Z_FILTERED:Pd,Z_FINISH:ji,Z_FIXED:Fd,Z_FULL_FLUSH:xf,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:Ed,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 Hd(e){return new ot(e)}function qd(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 xe.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&&xe.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&&xe.nextTick(e),!this._closed){this._closed=!0,this._binding.close();var t=this;xe.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 E=o._buffer.slice(o._offset,o._offset+w);o._offset+=w,s?o.push(E):(c.push(E),f+=E.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:Hd,createGzip:qd,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 If extends ui{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 Pf 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 Pf{constructor(t={}){super(),this.driver=t.driver}async setup(t){this.database=t,this.driver||(this.driver=new If({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 na(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 I.BaseError=ut,I.Cache=ui,I.CachePlugin=lp,I.Client=ra,I.ConnectionString=ta,I.CostsPlugin=cp,I.Database=cs,I.ErrorMap=Xi,I.InvalidResourceItem=Xt,I.MemoryCache=rh,I.MissingMetadata=Yi,I.NoSuchBucket=Vi,I.NoSuchKey=$r,I.NotFound=Gi,I.Plugin=Pf,I.PluginObject=fp,I.ResourceIdsPageReader=es,I.ResourceIdsReader=Qo,I.ResourceReader=ts,I.ResourceWriter=rs,I.S3Cache=If,I.S3_DEFAULT_ENDPOINT=ea,I.S3_DEFAULT_REGION=Qi,I.S3db=th,I.UnknownError=Ji,I.Validator=fo,I.ValidatorManager=co,I.decrypt=ia,I.encrypt=zr,I.sha256=na,I.streamToString=Pt,I}({},nanoid,lodashEs,promisePool,clientS3,crypto,flat,FastestValidator,web);
29
+ `)+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function Hl(e){return Array.isArray(e)}function Fo(e){return typeof e=="boolean"}function Wn(e){return e===null}function ql(e){return typeof e=="number"}function Vn(e){return typeof e=="string"}function Fe(e){return e===void 0}function Gn(e){return Ot(e)&&Xn(e)==="[object RegExp]"}function Ot(e){return typeof e=="object"&&e!==null}function jo(e){return Ot(e)&&Xn(e)==="[object Date]"}function Yn(e){return Ot(e)&&(Xn(e)==="[object Error]"||e instanceof Error)}function Jn(e){return typeof e=="function"}function Xn(e){return Object.prototype.toString.call(e)}function Kl(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 Mo(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 Wl=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 Vl(e){if(e&&!Wl(e))throw new Error("Unknown encoding: "+e)}function Tt(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),Vl(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=Yl;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=Jl;break;default:this.write=Gl;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 Gl(e){return e.toString(this.encoding)}function Yl(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function Jl(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}N.ReadableState=Lo;var D=Ll("stream");V(N,R);function Xl(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 Ql(e,t){return e.listeners(t).length}function Lo(e,t){e=e||{},this.objectMode=!!e.objectMode,t instanceof ae&&(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=ru(t,r);if(a)e.emit("error",a);else if(r===null)t.reading=!1,nu(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&&hr(e))),iu(e,t)}else i||(t.reading=!1);return eu(t)}function eu(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 tu(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=tu(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?ei(this):hr(this),null;if(e=Uo(e,t),e===0&&t.ended)return t.length===0&&ei(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&&ei(this)),i!==null&&this.emit("data",i),i};function ru(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 nu(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,hr(e)}}function hr(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(D("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?re($o,e):$o(e))}function $o(e){D("emit readable"),e.emit("readable"),Qn(e)}function iu(e,t){t.readingMore||(t.readingMore=!0,re(au,e,t))}function au(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?re(a):r.once("end",a),e.on("unpipe",o);function o(b){D("onunpipe"),b===r&&l()}function s(){D("onend"),e.end()}var c=ou(r);e.on("drain",c);var f=!1;function l(){D("cleanup"),e.removeListener("close",p),e.removeListener("finish",g),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(b){D("ondata"),d=!1;var E=e.write(b);E===!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(b){D("onerror",b),w(),e.removeListener("error",u),Ql(e,"error")===0&&e.emit("error",b)}Xl(e,"error",u);function p(){e.removeListener("finish",g),w()}e.once("close",p);function g(){D("onfinish"),e.removeListener("close",p),w()}e.once("finish",g);function w(){D("unpipe"),r.unpipe(e)}return e.emit("pipe",r),n.flowing||(D("pipe resume"),r.resume()),e};function ou(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,Qn(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&&hr(this):re(su,this))}return r},N.prototype.addListener=N.prototype.on;function su(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,fu(this,e)),this};function fu(e,t){t.resumeScheduled||(t.resumeScheduled=!0,re(cu,e,t))}function cu(e,t){t.reading||(D("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),Qn(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 Qn(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 pu(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=lu(e,t.buffer,t.decoder),r}function lu(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?uu(e,t):hu(e,t),n}function uu(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 hu(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 ei(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,re(du,t,e))}function du(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function pu(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=ti,V(q,R);function yu(){}function gu(e,t,r){this.chunk=e,this.encoding=t,this.callback=r,this.next=null}function ti(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 ae&&(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){Eu(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)}ti.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 ae))return new q(e);this._writableState=new ti(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 vu(e,t){var r=new Error("write after end");e.emit("error",r),re(t,r)}function wu(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),re(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=yu),n.ended?vu(this,r):wu(this,n,e,r)&&(n.pendingcb++,i=bu(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&&qo(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 _u(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=y.from(t,r)),t}function bu(e,t,r,n,i){r=_u(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 gu(r,n,i),s?s.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else ri(e,t,!1,a,r,n,i);return o}function ri(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 mu(e,t,r,n,i){--t.pendingcb,r?re(i,n):i(n),e._writableState.errorEmitted=!0,e.emit("error",n)}function xu(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function Eu(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if(xu(r),t)mu(e,r,n,t,i);else{var a=Ko(r);!a&&!r.corked&&!r.bufferProcessing&&r.bufferedRequest&&qo(e,r),n?re(Ho,e,r,a,i):Ho(e,r,a,i)}}function Ho(e,t,r,n){r||Su(e,t),t.pendingcb--,n(),Vo(e,t)}function Su(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function qo(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;ri(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(ri(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&&Au(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 Au(e,t,r){t.ending=!0,Vo(e,t),r&&(t.finished?re(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}}V(ae,N);for(var Yo=Object.keys(q.prototype),ni=0;ni<Yo.length;ni++){var ii=Yo[ni];ae.prototype[ii]||(ae.prototype[ii]=q.prototype[ii])}function ae(e){if(!(this instanceof ae))return new ae(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",ku)}function ku(){this.allowHalfOpen||this._writableState.ended||re(Ru,this)}function Ru(e){e.end()}V(ne,ae);function Ou(e){this.afterTransform=function(t,r){return Tu(e,t,r)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function Tu(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 ne(e){if(!(this instanceof ne))return new ne(e);ae.call(this,e),this._transformState=new Ou(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)})}ne.prototype.push=function(e,t){return this._transformState.needTransform=!1,ae.prototype.push.call(this,e,t)},ne.prototype._transform=function(e,t,r){throw new Error("Not implemented")},ne.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)}},ne.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)}V(Pt,ne);function Pt(e){if(!(this instanceof Pt))return new Pt(e);ne.call(this,e)}Pt.prototype._transform=function(e,t,r){r(null,e)},V(Se,R),Se.Readable=N,Se.Writable=q,Se.Duplex=ae,Se.Transform=ne,Se.PassThrough=Pt,Se.Stream=Se;function Se(){R.call(this)}Se.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 If.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 ne({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 le.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().catch(r=>{this.emit("error",r)}),!0}end(){this.ended=!0,this._maybeWrite().catch(t=>{this.emit("error",t)})}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 le.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 yt(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 Pu(e){let t=0;for(const r of Object.keys(e))r!=="_v"&&(t+=yt(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 ai(e){const t={};for(const[r,n]of Object.entries(e)){const i=rs(n),a=yt(i);t[r]=a}return t}function We(e){const t=ai(e),r=Object.values(t).reduce((i,a)=>i+a,0),n=Pu(e);return r+n}const U=2048;async function Iu({resource:e,data:t,mappedData:r}){const n=We(r);if(n>U)throw new Error(`S3 metadata size exceeds 2KB limit. Current size: ${n} bytes, limit: ${U} bytes`);return{mappedData:r,body:""}}async function Cu({resource:e,id:t,data:r,mappedData:n}){const i=We(n);if(i>U)throw new Error(`S3 metadata size exceeds 2KB limit. Current size: ${i} bytes, limit: ${U} bytes`);return{mappedData:n,body:""}}async function Du({resource:e,id:t,data:r,mappedData:n}){const i=We(n);if(i>U)throw new Error(`S3 metadata size exceeds 2KB limit. Current size: ${i} bytes, limit: ${U} bytes`);return{mappedData:n,body:""}}async function Fu({resource:e,metadata:t,body:r}){return{metadata:t,body:r}}var ju=Object.freeze({__proto__:null,S3_METADATA_LIMIT_BYTES:U,handleGet:Fu,handleInsert:Iu,handleUpdate:Cu,handleUpsert:Du});async function Mu({resource:e,data:t,mappedData:r}){const n=We(r);return n>U&&e.emit("exceedsLimit",{operation:"insert",totalSize:n,limit:U,excess:n-U,data:t}),{mappedData:r,body:""}}async function Lu({resource:e,id:t,data:r,mappedData:n}){const i=We(n);return i>U&&e.emit("exceedsLimit",{operation:"update",id:t,totalSize:i,limit:U,excess:i-U,data:r}),{mappedData:n,body:""}}async function Nu({resource:e,id:t,data:r,mappedData:n}){const i=We(n);return i>U&&e.emit("exceedsLimit",{operation:"upsert",id:t,totalSize:i,limit:U,excess:i-U,data:r}),{mappedData:n,body:""}}async function Bu({resource:e,metadata:t,body:r}){return{metadata:t,body:r}}var Uu=Object.freeze({__proto__:null,handleGet:Bu,handleInsert:Mu,handleUpdate:Lu,handleUpsert:Nu});const ns="...",is=yt(ns);async function $u({resource:e,data:t,mappedData:r}){return oi({resource:e,data:t,mappedData:r})}async function zu({resource:e,id:t,data:r,mappedData:n}){return oi({resource:e,data:r,mappedData:n})}async function Zu({resource:e,id:t,data:r,mappedData:n}){return oi({resource:e,data:r,mappedData:n})}async function Hu({resource:e,metadata:t,body:r}){return{metadata:t,body:r}}function oi({resource:e,data:t,mappedData:r}){const n=ai(r),i=Object.entries(n).sort(([,s],[,c])=>s-c),a={};let o=0;for(const[s,c]of i){const f=U-o;if(c<=f)a[s]=r[s],o+=c;else if(f>is){const l=f-is,d=rs(r[s]);let h="",u=0;for(let p=0;p<d.length;p++){const g=d[p],w=yt(g);if(u+w<=l)h+=g,u+=w;else break}a[s]=h+ns,o=U;break}else break}return{mappedData:a,body:""}}var qu=Object.freeze({__proto__:null,handleGet:Hu,handleInsert:$u,handleUpdate:zu,handleUpsert:Zu});const dr="$overflow",si="true",Ku=yt(dr)+yt(si);async function Wu({resource:e,data:t,mappedData:r}){return fi({resource:e,data:t,mappedData:r})}async function Vu({resource:e,id:t,data:r,mappedData:n}){return fi({resource:e,data:r,mappedData:n})}async function Gu({resource:e,id:t,data:r,mappedData:n}){return fi({resource:e,data:r,mappedData:n})}async function Yu({resource:e,metadata:t,body:r}){if(t[dr]===si)try{const n=r?JSON.parse(r):{},i={...t};return delete i[dr],{metadata:{...i,...n},body:""}}catch{return{metadata:t,body:r}}return{metadata:t,body:r}}function fi({resource:e,data:t,mappedData:r}){if(We(r)<=U)return{mappedData:r,body:""};const i=U-Ku,a=ai(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[dr]=si;const l=Object.keys(c).length>0?JSON.stringify(c):"";return{mappedData:s,body:l}}var Ju=Object.freeze({__proto__:null,handleGet:Yu,handleInsert:Wu,handleUpdate:Vu,handleUpsert:Gu});const as={"user-management":Uu,"enforce-limits":ju,"data-truncate":qu,"body-overflow":Ju};function gt(e){const t=as[e];if(!t)throw new Error(`Unknown behavior: ${e}. Available behaviors: ${Object.keys(as).join(", ")}`);return t}const Xu="user-management";class ci extends R{constructor({name:t,client:r,version:n="1",options:i={},attributes:a={},parallelism:o=10,passphrase:s="secret",observers:c=[],behavior:f=Xu}){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,allNestedObjectsOptional:i.allNestedObjectsOptional??!1,...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,allNestedObjectsOptional:this.options.allNestedObjectsOptional??!1}}),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 be(`resource=${this.name}`,`v=${this.version}`,`id=${t}`)}getPartitionKey({partitionName:t,id:r,data: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:be(`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||typeof i!="object"||!(a in i))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=gt(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);try{const n=await this.client.headObject(r),i=this.extractVersionFromKey(r)||this.version;let o=await(await this.getSchemaForVersion(i)).unmapper(n.Metadata);const s=gt(this.behavior);let c="";if(n.ContentLength>0)try{const d=await this.client.getObject(r);c=await It(d.Body)}catch(d){console.warn(`Failed to read body for resource ${t}:`,d.message),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}catch(n){const i=new Error(`Failed to get resource with id '${t}': ${n.message}`);throw i.originalError=n,i.resourceId=t,i.resourceKey=r,i}}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=gt(this.behavior),{mappedData:d,body:h}=await l.handleUpdate({resource:this,id:t,data:c,mappedData:f}),u=this.getResourceKey(t);let p,g=h;if(h===""&&this.behavior!=="body-overflow")try{const w=await this.client.getObject(u);if(w.ContentLength>0){const b=Buffer.from(await w.Body.transformToByteArray()),E=b.toString();try{JSON.parse(E)}catch{g=b,p=w.ContentType}}}catch{}return await this.client.putObject({key:u,body:g,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 le.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 le.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={},limit:n,offset:i=0}={}){let a;if(t&&Object.keys(r).length>0){const c=this.options.partitions[t];if(!c)throw new Error(`Partition '${t}' not found`);const f=[],l=Object.entries(c.fields).sort(([d],[h])=>d.localeCompare(h));for(const[d,h]of l){const u=r[d];if(u!=null){const p=this.applyPartitionRule(u,h);f.push(`${d}=${p}`)}}f.length>0?a=`resource=${this.name}/partition=${t}/${f.join("/")}`:a=`resource=${this.name}/partition=${t}`}else a=`resource=${this.name}/v=${this.version}`;const s=(await this.client.getKeysPage({prefix:a,offset:i,amount:n||1e3})).map(c=>{const l=c.split("/").find(d=>d.startsWith("id="));return l?l.replace("id=",""):null}).filter(Boolean);return this.emit("listIds",s.length),s}async list({partition:t=null,partitionValues:r={},limit:n,offset:i=0}={}){if(!t){let p=(await this.listIds({partition:t,partitionValues:r})).slice(i);n&&(p=p.slice(0,n));const{results:g}=await le.PromisePool.for(p).withConcurrency(this.parallelism).process(async w=>await this.get(w));return this.emit("list",{partition:t,partitionValues:r,count:g.length}),g}const a=this.options.partitions[t];if(!a)throw new Error(`Partition '${t}' not found`);const o=[],s=Object.entries(a.fields).sort(([u],[p])=>u.localeCompare(p));for(const[u,p]of s){const g=r[u];if(g!=null){const w=this.applyPartitionRule(g,p);o.push(`${u}=${w}`)}}let c;o.length>0?c=`resource=${this.name}/partition=${t}/${o.join("/")}`:c=`resource=${this.name}/partition=${t}`;let d=(await this.client.getAllKeys({prefix:c})).map(u=>{const g=u.split("/").find(w=>w.startsWith("id="));return g?g.replace("id=",""):null}).filter(Boolean).slice(i);n&&(d=d.slice(0,n));const{results:h}=await le.PromisePool.for(d).withConcurrency(this.parallelism).process(async u=>await this.getFromPartition({id:u,partitionName:t,partitionValues:r}));return this.emit("list",{partition:t,partitionValues:r,count:h.length}),h}async getMany(t){const{results:r}=await le.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 le.PromisePool.for(t).withConcurrency(this.client.parallelism).process(async n=>await this.get(n));return this.emit("getAll",r.length),r}async page({offset:t=0,size:r=100,partition:n=null,partitionValues:i={},skipCount:a=!1}={}){let o=null,s=null;a||(o=await this.count({partition:n,partitionValues:i}),s=Math.ceil(o/r));const c=Math.floor(t/r),f=await this.list({partition:n,partitionValues:i,limit:r,offset:t}),l={items:f,totalItems:o,page:c,pageSize:r,totalPages:s,_debug:{requestedSize:r,requestedOffset:t,actualItemsReturned:f.length,skipCount:a,hasTotalItems:o!==null}};return this.emit("page",l),l}readable(){return new es({resource:this}).build()}writable(){return new ts({resource:this}).build()}async setContent({id:t,buffer:r,contentType:n="application/octet-stream"}){const i=await this.get(t);if(!i)throw new Error(`Resource with id '${t}' not found`);const a={...i,_hasContent:!0,_contentLength:r.length,_mimeType:n};return await this.client.putObject({key:this.getResourceKey(t),metadata:await this.schema.mapper(a),body:r,contentType:n}),this.emit("setContent",{id:t,contentType:n,contentLength:r.length}),a}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 r={...this.schema.export().attributes};this.options.timestamps&&(delete r.createdAt,delete r.updatedAt);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({partitionName:n,id:t.id,data:t});if(a){const o=await this.schema.mapper(t),s=gt(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({partitionName:i,id:t.id,data: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={},{limit:r=100,offset:n=0,partition:i=null,partitionValues:a={}}={}){if(Object.keys(t).length===0)return await this.list({partition:i,partitionValues:a,limit:r,offset:n});const o=[];let s=n;const c=Math.min(r,50);for(;o.length<r;){const f=await this.list({partition:i,partitionValues:a,limit:c,offset:s});if(f.length===0)break;const l=f.filter(d=>Object.entries(t).every(([h,u])=>d[h]===u));if(o.push(...l),s+=c,f.length<c)break}return o.slice(0,r)}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({partitionName:n,id:t.id,data:t});if(a){const o=await this.schema.mapper(t),s=gt(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({id:t,partitionName:r,partitionValues: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],[b])=>w.localeCompare(b));for(const[w,b]of o){const E=n[w];if(E!=null){const S=this.applyPartitionRule(E,b);a.push(`${w}=${S}`)}}if(a.length===0)throw new Error(`No partition values provided for partition '${r}'`);const s=be(`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=gt(this.behavior);let u="";if(c.ContentLength>0)try{const w=await this.client.getObject(s);u=await It(w.Body)}catch{u=""}const{metadata:p}=await h.handleGet({resource:this,metadata:d,body:u});let g=p;return g.id=t,g._contentLength=c.ContentLength,g._lastModified=c.LastModified,g._hasContent=c.ContentLength>0,g._mimeType=c.ContentType||null,g._partition=r,g._partitionValues=n,c.VersionId&&(g._versionId=c.VersionId),c.Expiration&&(g._expiresAt=c.Expiration),g._definitionHash=this.getDefinitionHash(),this.emit("getFromPartition",g),g}}class os extends R{constructor(t){super(),this.version="1",this.s3dbVersion=(()=>{try{return"4.1.7"}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 ci({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,r=void 0){const i={...t.attributes};t.options?.timestamps&&(delete i.createdAt,delete i.updatedAt);const a={attributes:i,behavior:r||t.behavior||"user-management"},o=oo(a);return`sha256:${Ni.createHash("sha256").update(o).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:{}}}resourceExists(t){return!!this.resources[t]}resourceExistsWithSameHash({name:t,attributes:r,options:n={},behavior:i="user-management"}){if(!this.resources[t])return{exists:!1,sameHash:!1,hash:null};const a=new ci({name:t,attributes:r,behavior:i,observers:[],client:this.client,version:"temp",options:{cache:this.cache,...n}}),o=this.generateDefinitionHash(a.export(),i),s=this.generateDefinitionHash(this.resources[t].export(),this.resources[t].behavior);return{exists:!0,sameHash:o===s,hash:o,existingHash:s}}async createResourceIfNotExists({name:t,attributes:r,options:n={},behavior:i="user-management"}){const a=!!this.resources[t],o=this.resourceExistsWithSameHash({name:t,attributes:r,options:n,behavior:i});return o.exists&&o.sameHash?{resource:this.resources[t],created:!1,reason:"Resource already exists with same definition hash"}:{resource:await this.createResource({name:t,attributes:r,options:n,behavior:i}),created:!a,reason:a?"Resource updated with new definition":"New resource created"}}async createResource({name:t,attributes:r,options:n={},behavior:i="user-management"}){if(this.resources[t]){const c=this.resources[t];Object.assign(c.options,{cache:this.cache,...n}),i&&(c.behavior=i),c.updateAttributes(r);const f=this.generateDefinitionHash(c.export(),c.behavior),l=this.savedMetadata?.resources?.[t],d=l?.currentVersion||"v0",h=l?.versions?.[d];return(!h||h.hash!==f)&&await this.uploadMetadataFile(),this.emit("s3db.resourceUpdated",t),c}const o=this.savedMetadata?.resources?.[t]?.currentVersion||"v0",s=new ci({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 Qu extends os{}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 eh 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 ss={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 th(){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 pr=Uint8Array,oe=Uint16Array,yr=Int32Array,rh=4,fs=0,cs=1,nh=2;function vt(e){for(var t=e.length;--t>=0;)e[t]=0}var ih=0,ls=1,ah=2,oh=3,sh=258,ui=29,Ct=256,Dt=Ct+1+ui,wt=30,hi=19,us=2*Dt+1,Ve=15,di=16,fh=7,pi=256,hs=16,ds=17,ps=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],ch=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ys=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],lh=512,ke=new Array((Dt+2)*2);vt(ke);var Ft=new Array(wt*2);vt(Ft);var jt=new Array(lh);vt(jt);var Mt=new Array(sh-oh+1);vt(Mt);var gi=new Array(ui);vt(gi);var vr=new Array(wt);vt(vr);function vi(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 gs,vs,ws;function wi(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function _s(e){return e<256?jt[e]:jt[256+(e>>>7)]}function Lt(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function Q(e,t,r){e.bi_valid>di-r?(e.bi_buf|=t<<e.bi_valid&65535,Lt(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 ye(e,t,r){Q(e,r[t*2],r[t*2+1])}function bs(e,t){var r=0;do r|=e&1,e>>>=1,r<<=1;while(--t>0);return r>>>1}function uh(e){e.bi_valid===16?(Lt(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 hh(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,g=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<us;f++)l=e.heap[f],h=r[r[l*2+1]*2+1]+1,h>c&&(h=c,g++),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(g!==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]--,g-=2}while(g>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 ms(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]=bs(n[s]++,s))}}function dh(){var e,t,r,n,i,a=new Array(Ve+1);for(r=0,n=0;n<ui-1;n++)for(gi[n]=r,e=0;e<1<<yi[n];e++)Mt[r++]=n;for(Mt[r-1]=n,i=0,n=0;n<16;n++)for(vr[n]=i,e=0;e<1<<gr[n];e++)jt[i++]=n;for(i>>=7;n<wt;n++)for(vr[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(ms(ke,Dt+1,a),e=0;e<wt;e++)Ft[e*2+1]=5,Ft[e*2]=bs(e,5);gs=new vi(ke,yi,Ct+1,Dt,Ve),vs=new vi(Ft,gr,0,wt,Ve),ws=new vi(new Array(0),ch,0,hi,fh)}function xs(e){var t;for(t=0;t<Dt;t++)e.dyn_ltree[t*2]=0;for(t=0;t<wt;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 Es(e){e.bi_valid>8?Lt(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 ph(e,t,r,n){Es(e),Lt(e,r),Lt(e,~r),Ae(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}function Ss(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 _i(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&Ss(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Ss(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function As(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?ye(e,i,t):(o=Mt[i],ye(e,o+Ct+1,t),s=yi[o],s!==0&&(i-=gi[o],Q(e,i,s)),n--,o=_s(n),ye(e,o,r),s=gr[o],s!==0&&(n-=vr[o],Q(e,n,s)));while(a<e.last_lit);ye(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=us,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--)_i(e,r,o);f=a;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],_i(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++,_i(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],hh(e,t),ms(r,c,e.bl_count)}function ks(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[hs*2]++):s<=10?e.bl_tree[ds*2]++:e.bl_tree[ps*2]++,s=0,i=a,o===0?(c=138,f=3):a===o?(c=6,f=3):(c=7,f=4))}function Rs(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 ye(e,a,e.bl_tree);while(--s!==0);else a!==0?(a!==i&&(ye(e,a,e.bl_tree),s--),ye(e,hs,e.bl_tree),Q(e,s-3,2)):s<=10?(ye(e,ds,e.bl_tree),Q(e,s-3,3)):(ye(e,ps,e.bl_tree),Q(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 yh(e){var t;for(ks(e,e.dyn_ltree,e.l_desc.max_code),ks(e,e.dyn_dtree,e.d_desc.max_code),bi(e,e.bl_desc),t=hi-1;t>=3&&e.bl_tree[ys[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function gh(e,t,r,n){var i;for(Q(e,t-257,5),Q(e,r-1,5),Q(e,n-4,4),i=0;i<n;i++)Q(e,e.bl_tree[ys[i]*2+1],3);Rs(e,e.dyn_ltree,t-1),Rs(e,e.dyn_dtree,r-1)}function vh(e){var t=4093624447,r;for(r=0;r<=31;r++,t>>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return fs;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return cs;for(r=32;r<Ct;r++)if(e.dyn_ltree[r*2]!==0)return cs;return fs}var Os=!1;function wh(e){Os||(dh(),Os=!0),e.l_desc=new wi(e.dyn_ltree,gs),e.d_desc=new wi(e.dyn_dtree,vs),e.bl_desc=new wi(e.bl_tree,ws),e.bi_buf=0,e.bi_valid=0,xs(e)}function Ts(e,t,r,n){Q(e,(ih<<1)+(n?1:0),3),ph(e,t,r)}function _h(e){Q(e,ls<<1,3),ye(e,pi,ke),uh(e)}function bh(e,t,r,n){var i,a,o=0;e.level>0?(e.strm.data_type===nh&&(e.strm.data_type=vh(e)),bi(e,e.l_desc),bi(e,e.d_desc),o=yh(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?Ts(e,t,r,n):e.strategy===rh||a===i?(Q(e,(ls<<1)+(n?1:0),3),As(e,ke,Ft)):(Q(e,(ah<<1)+(n?1:0),3),gh(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),As(e,e.dyn_ltree,e.dyn_dtree)),xs(e),n&&Es(e)}function je(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[(Mt[r]+Ct+1)*2]++,e.dyn_dtree[_s(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 mh(){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 xh=mh();function H(e,t,r,n){var i=xh,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,Eh=1,Sh=3,Me=4,Ps=5,Le=0,Is=1,Ne=-2,Ah=-3,xi=-5,kh=-1,Rh=1,wr=2,Oh=3,Th=4,Ph=2,Ei=8,Ih=9,Ch=29,Dh=256,Si=Dh+1+Ch,Fh=30,jh=19,Mh=2*Si+1,Lh=15,C=3,Be=258,fe=Be+C+1,Nh=32,Ai=42,ki=69,_r=73,br=91,mr=103,Ye=113,Nt=666,z=1,Bt=2,Je=3,_t=4,Bh=3;function Ue(e,t){return e.msg=ss[t],t}function Cs(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 K(e,t){bh(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 Ut(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function Uh(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=H(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)}function Ds(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-fe?e.strstart-(e.w_size-fe):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 $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-fe)){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=Uh(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<fe&&e.strm.avail_in!==0)}function $h(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===Ge)return z;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,K(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-fe&&(K(e,!1),e.strm.avail_out===0))return z}return e.insert=0,t===Me?(K(e,!0),e.strm.avail_out===0?Je:_t):(e.strstart>e.block_start&&(K(e,!1),e.strm.avail_out===0),z)}function Ri(e,t){for(var r,n;;){if(e.lookahead<fe){if($t(e),e.lookahead<fe&&t===Ge)return z;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-fe&&(e.match_length=Ds(e,r)),e.match_length>=C)if(n=je(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=je(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(K(e,!1),e.strm.avail_out===0))return z}return e.insert=e.strstart<C-1?e.strstart:C-1,t===Me?(K(e,!0),e.strm.avail_out===0?Je:_t):e.last_lit&&(K(e,!1),e.strm.avail_out===0)?z:Bt}function bt(e,t){for(var r,n,i;;){if(e.lookahead<fe){if($t(e),e.lookahead<fe&&t===Ge)return z;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-fe&&(e.match_length=Ds(e,r),e.match_length<=5&&(e.strategy===Rh||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=je(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&&(K(e,!1),e.strm.avail_out===0))return z}else if(e.match_available){if(n=je(e,0,e.window[e.strstart-1]),n&&K(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return z}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=je(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<C-1?e.strstart:C-1,t===Me?(K(e,!0),e.strm.avail_out===0?Je:_t):e.last_lit&&(K(e,!1),e.strm.avail_out===0)?z:Bt}function zh(e,t){for(var r,n,i,a,o=e.window;;){if(e.lookahead<=Be){if($t(e),e.lookahead<=Be&&t===Ge)return z;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=je(e,1,e.match_length-C),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=je(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(K(e,!1),e.strm.avail_out===0))return z}return e.insert=0,t===Me?(K(e,!0),e.strm.avail_out===0?Je:_t):e.last_lit&&(K(e,!1),e.strm.avail_out===0)?z:Bt}function Zh(e,t){for(var r;;){if(e.lookahead===0&&($t(e),e.lookahead===0)){if(t===Ge)return z;break}if(e.match_length=0,r=je(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(K(e,!1),e.strm.avail_out===0))return z}return e.insert=0,t===Me?(K(e,!0),e.strm.avail_out===0?Je:_t):e.last_lit&&(K(e,!1),e.strm.avail_out===0)?z:Bt}function ge(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 ge(0,0,0,0,$h),new ge(4,4,8,4,Ri),new ge(4,5,16,8,Ri),new ge(4,6,32,32,Ri),new ge(4,4,16,16,bt),new ge(8,16,32,32,bt),new ge(8,16,128,128,bt),new ge(8,32,128,256,bt),new ge(32,128,258,1024,bt),new ge(32,258,258,4096,bt)];function Hh(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 qh(){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=Ei,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 oe(Mh*2),this.dyn_dtree=new oe((2*Fh+1)*2),this.bl_tree=new oe((2*jh+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 oe(Lh+1),this.heap=new oe(2*Si+1),Xe(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new oe(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 Kh(e){var t;return!e||!e.state?Ue(e,Ne):(e.total_in=e.total_out=0,e.data_type=Ph,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,wh(t),Le)}function Fs(e){var t=Kh(e);return t===Le&&Hh(e.state),t}function Wh(e,t,r,n,i,a){if(!e)return Ne;var o=1;if(t===kh&&(t=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),i<1||i>Ih||r!==Ei||n<8||n>15||t<0||t>9||a<0||a>Th)return Ue(e,Ne);n===8&&(n=9);var s=new qh;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 pr(s.w_size*2),s.head=new oe(s.hash_size),s.prev=new oe(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new pr(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,Fs(e)}function Vh(e,t){var r,n,i,a;if(!e||!e.state||t>Ps||t<0)return e?Ue(e,Ne):Ne;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===Nt&&t!==Me)return Ue(e,e.avail_out===0?xi: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=H(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,Bh),n.status=Ye);else{var o=Ei+(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|=Nh),o+=31-o%31,n.status=Ye,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=H(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=H(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=_r)}else n.status=_r;if(n.status===_r)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=H(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=H(e.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.gzindex=0,n.status=br)}else n.status=br;if(n.status===br)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=H(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=H(e.adler,n.pending_buf,n.pending-i,i)),a===0&&(n.status=mr)}else n.status=mr;if(n.status===mr&&(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&&Cs(t)<=Cs(r)&&t!==Me)return Ue(e,xi);if(n.status===Nt&&e.avail_in!==0)return Ue(e,xi);if(e.avail_in!==0||n.lookahead!==0||t!==Ge&&n.status!==Nt){var c=n.strategy===wr?Zh(n,t):n.strategy===Oh?zh(n,t):mt[n.level].func(n,t);if((c===Je||c===_t)&&(n.status=Nt),c===z||c===Je)return e.avail_out===0&&(n.last_flush=-1),Le;if(c===Bt&&(t===Eh?_h(n):t!==Ps&&(Ts(n,0,0,!1),t===Sh&&(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!==Me?Le:n.wrap<=0?Is:(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)),$e(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Le:Is)}function Gh(e){var t;return!e||!e.state?Ne:(t=e.state.status,t!==Ai&&t!==ki&&t!==_r&&t!==br&&t!==mr&&t!==Ye&&t!==Nt?Ue(e,Ne):(e.state=null,t===Ye?Ue(e,Ah):Le))}var xr=30,Yh=12;function Jh(e,t){var r,n,i,a,o,s,c,f,l,d,h,u,p,g,w,b,E,S,v,A,T,_,x,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,g=r.lencode,w=r.distcode,b=(1<<r.lenbits)-1,E=(1<<r.distbits)-1;e:do{p<15&&(u+=O[n++]<<p,p+=8,u+=O[n++]<<p,p+=8),S=g[u&b];t:for(;;){if(v=S>>>24,u>>>=v,p-=v,v=S>>>16&255,v===0)k[a++]=S&65535;else if(v&16){A=S&65535,v&=15,v&&(p<v&&(u+=O[n++]<<p,p+=8),A+=u&(1<<v)-1,u>>>=v,p-=v),p<15&&(u+=O[n++]<<p,p+=8,u+=O[n++]<<p,p+=8),S=w[u&E];r:for(;;){if(v=S>>>24,u>>>=v,p-=v,v=S>>>16&255,v&16){if(T=S&65535,v&=15,p<v&&(u+=O[n++]<<p,p+=8,p<v&&(u+=O[n++]<<p,p+=8)),T+=u&(1<<v)-1,T>c){e.msg="invalid distance too far back",r.mode=xr;break e}if(u>>>=v,p-=v,v=a-o,T>v){if(v=T-v,v>l&&r.sane){e.msg="invalid distance too far back",r.mode=xr;break e}if(_=0,x=h,d===0){if(_+=f-v,v<A){A-=v;do k[a++]=h[_++];while(--v);_=a-T,x=k}}else if(d<v){if(_+=f+d-v,v-=d,v<A){A-=v;do k[a++]=h[_++];while(--v);if(_=0,d<A){v=d,A-=v;do k[a++]=h[_++];while(--v);_=a-T,x=k}}}else if(_+=d-v,v<A){A-=v;do k[a++]=h[_++];while(--v);_=a-T,x=k}for(;A>2;)k[a++]=x[_++],k[a++]=x[_++],k[a++]=x[_++],A-=3;A&&(k[a++]=x[_++],A>1&&(k[a++]=x[_++]))}else{_=a-T;do k[a++]=k[_++],k[a++]=k[_++],k[a++]=k[_++],A-=3;while(A>2);A&&(k[a++]=k[_++],A>1&&(k[a++]=k[_++]))}}else if((v&64)===0){S=w[(S&65535)+(u&(1<<v)-1)];continue r}else{e.msg="invalid distance code",r.mode=xr;break e}break}}else if((v&64)===0){S=g[(S&65535)+(u&(1<<v)-1)];continue t}else if(v&32){r.mode=Yh;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 xt=15,js=852,Ms=592,Ls=0,Oi=1,Ns=2,Xh=[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],Qh=[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],ed=[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],td=[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,g=0,w=0,b=0,E=0,S,v,A,T,_,x=null,O=0,k,F=new oe(xt+1),W=new oe(xt+1),Y=null,se=0,ft,ee,ve;for(f=0;f<=xt;f++)F[f]=0;for(l=0;l<n;l++)F[t[r+l]]++;for(u=c,h=xt;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),w=1,f=1;f<=xt;f++)if(w<<=1,w-=F[f],w<0)return-1;if(w>0&&(e===Ls||h!==1))return-1;for(W[1]=0,f=1;f<xt;f++)W[f+1]=W[f]+F[f];for(l=0;l<n;l++)t[r+l]!==0&&(o[W[t[r+l]]++]=l);if(e===Ls?(x=Y=o,k=19):e===Oi?(x=Xh,O-=257,Y=Qh,se-=257,k=256):(x=ed,Y=td,k=-1),E=0,l=0,f=d,_=a,p=u,g=0,A=-1,b=1<<u,T=b-1,e===Oi&&b>js||e===Ns&&b>Ms)return 1;for(;;){ft=f-g,o[l]<k?(ee=0,ve=o[l]):o[l]>k?(ee=Y[se+o[l]],ve=x[O+o[l]]):(ee=96,ve=0),S=1<<f-g,v=1<<p,d=v;do v-=S,i[_+(E>>g)+v]=ft<<24|ee<<16|ve|0;while(v!==0);for(S=1<<f-1;E&S;)S>>=1;if(S!==0?(E&=S-1,E+=S):E=0,l++,--F[f]===0){if(f===h)break;f=t[r+o[l]]}if(f>u&&(E&T)!==A){for(g===0&&(g=u),_+=d,p=f-g,w=1<<p;p+g<h&&(w-=F[p+g],!(w<=0));)p++,w<<=1;if(b+=1<<p,e===Oi&&b>js||e===Ns&&b>Ms)return 1;A=E&T,i[A]=u<<24|p<<16|_-a|0}}return E!==0&&(i[_+E]=f-g<<24|4194304|0),s.bits=u,0}var rd=0,Bs=1,Us=2,$s=4,nd=5,Er=6,Zt=0,id=1,ad=2,ze=-2,od=-3,sd=-4,fd=-5,zs=8,Zs=1,Hs=2,qs=3,Ks=4,Ws=5,Vs=6,Gs=7,Ys=8,Js=9,Xs=10,Qs=11,Re=12,Ti=13,ef=14,Pi=15,tf=16,rf=17,nf=18,af=19,Sr=20,Ar=21,of=22,sf=23,ff=24,cf=25,lf=26,Ii=27,uf=28,hf=29,j=30,cd=31,ld=32,ud=852,hd=592;function df(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function dd(){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 oe(320),this.work=new oe(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function pd(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=Zs,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new yr(ud),t.distcode=t.distdyn=new yr(hd),t.sane=1,t.back=-1,Zt)}function pf(e){var t;return!e||!e.state?ze:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,pd(e))}function yd(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,pf(e))}function gd(e,t){var r,n;return e?(n=new dd,e.state=n,n.window=null,r=yd(e,t),r!==Zt&&(e.state=null),r):ze}var yf=!0,Ci,Di;function vd(e){if(yf){var t;for(Ci=new yr(512),Di=new yr(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(Bs,e.lens,0,288,Ci,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;zt(Us,e.lens,0,32,Di,0,e.work,{bits:5}),yf=!1}e.lencode=Ci,e.lenbits=9,e.distcode=Di,e.distbits=5}function wd(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 pr(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 _d(e,t){var r,n,i,a,o,s,c,f,l,d,h,u,p,g,w=0,b,E,S,v,A,T,_,x,O=new pr(4),k,F,W=[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,x=Zt;e:for(;;)switch(r.mode){case Zs: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=H(r.check,O,2,0),f=0,l=0,r.mode=Hs;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=j;break}if((f&15)!==zs){e.msg="unknown compression method",r.mode=j;break}if(f>>>=4,l-=4,_=(f&15)+8,r.wbits===0)r.wbits=_;else if(_>r.wbits){e.msg="invalid window size",r.mode=j;break}r.dmax=1<<_,e.adler=r.check=1,r.mode=f&512?Xs:Re,f=0,l=0;break;case Hs:for(;l<16;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(r.flags=f,(r.flags&255)!==zs){e.msg="unknown compression method",r.mode=j;break}if(r.flags&57344){e.msg="unknown header flags set",r.mode=j;break}r.head&&(r.head.text=f>>8&1),r.flags&512&&(O[0]=f&255,O[1]=f>>>8&255,r.check=H(r.check,O,2,0)),f=0,l=0,r.mode=qs;case qs: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=H(r.check,O,4,0)),f=0,l=0,r.mode=Ks;case Ks: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=H(r.check,O,2,0)),f=0,l=0,r.mode=Ws;case Ws: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=H(r.check,O,2,0)),f=0,l=0}else r.head&&(r.head.extra=null);r.mode=Vs;case Vs:if(r.flags&1024&&(u=r.length,u>s&&(u=s),u&&(r.head&&(_=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,_)),r.flags&512&&(r.check=H(r.check,n,u,a)),s-=u,a+=u,r.length-=u),r.length))break e;r.length=0,r.mode=Gs;case Gs:if(r.flags&2048){if(s===0)break e;u=0;do _=n[a+u++],r.head&&_&&r.length<65536&&(r.head.name+=String.fromCharCode(_));while(_&&u<s);if(r.flags&512&&(r.check=H(r.check,n,u,a)),s-=u,a+=u,_)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=Ys;case Ys:if(r.flags&4096){if(s===0)break e;u=0;do _=n[a+u++],r.head&&_&&r.length<65536&&(r.head.comment+=String.fromCharCode(_));while(_&&u<s);if(r.flags&512&&(r.check=H(r.check,n,u,a)),s-=u,a+=u,_)break e}else r.head&&(r.head.comment=null);r.mode=Js;case Js: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=j;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 Xs:for(;l<32;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}e.adler=r.check=df(f),f=0,l=0,r.mode=Qs;case Qs: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,ad;e.adler=r.check=1,r.mode=Re;case Re:if(t===nd||t===Er)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=ef;break;case 1:if(vd(r),r.mode=Sr,t===Er){f>>>=2,l-=2;break e}break;case 2:r.mode=rf;break;case 3:e.msg="invalid block type",r.mode=j}f>>>=2,l-=2;break;case ef: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=j;break}if(r.length=f&65535,f=0,l=0,r.mode=Pi,t===Er)break e;case Pi:r.mode=tf;case tf: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 rf: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=j;break}r.have=0,r.mode=nf;case nf:for(;r.have<r.ncode;){for(;l<3;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}r.lens[W[r.have++]]=f&7,f>>>=3,l-=3}for(;r.have<19;)r.lens[W[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,k={bits:r.lenbits},x=zt(rd,r.lens,0,19,r.lencode,0,r.work,k),r.lenbits=k.bits,x){e.msg="invalid code lengths set",r.mode=j;break}r.have=0,r.mode=af;case af:for(;r.have<r.nlen+r.ndist;){for(;w=r.lencode[f&(1<<r.lenbits)-1],b=w>>>24,E=w>>>16&255,S=w&65535,!(b<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(S<16)f>>>=b,l-=b,r.lens[r.have++]=S;else{if(S===16){for(F=b+2;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(f>>>=b,l-=b,r.have===0){e.msg="invalid bit length repeat",r.mode=j;break}_=r.lens[r.have-1],u=3+(f&3),f>>>=2,l-=2}else if(S===17){for(F=b+3;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=b,l-=b,_=0,u=3+(f&7),f>>>=3,l-=3}else{for(F=b+7;l<F;){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=b,l-=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=j;break}for(;u--;)r.lens[r.have++]=_}}if(r.mode===j)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=j;break}if(r.lenbits=9,k={bits:r.lenbits},x=zt(Bs,r.lens,0,r.nlen,r.lencode,0,r.work,k),r.lenbits=k.bits,x){e.msg="invalid literal/lengths set",r.mode=j;break}if(r.distbits=6,r.distcode=r.distdyn,k={bits:r.distbits},x=zt(Us,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,k),r.distbits=k.bits,x){e.msg="invalid distances set",r.mode=j;break}if(r.mode=Sr,t===Er)break e;case Sr:r.mode=Ar;case Ar: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,Jh(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;w=r.lencode[f&(1<<r.lenbits)-1],b=w>>>24,E=w>>>16&255,S=w&65535,!(b<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if(E&&(E&240)===0){for(v=b,A=E,T=S;w=r.lencode[T+((f&(1<<v+A)-1)>>v)],b=w>>>24,E=w>>>16&255,S=w&65535,!(v+b<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=v,l-=v,r.back+=v}if(f>>>=b,l-=b,r.back+=b,r.length=S,E===0){r.mode=lf;break}if(E&32){r.back=-1,r.mode=Re;break}if(E&64){e.msg="invalid literal/length code",r.mode=j;break}r.extra=E&15,r.mode=of;case of: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=sf;case sf:for(;w=r.distcode[f&(1<<r.distbits)-1],b=w>>>24,E=w>>>16&255,S=w&65535,!(b<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}if((E&240)===0){for(v=b,A=E,T=S;w=r.distcode[T+((f&(1<<v+A)-1)>>v)],b=w>>>24,E=w>>>16&255,S=w&65535,!(v+b<=l);){if(s===0)break e;s--,f+=n[a++]<<l,l+=8}f>>>=v,l-=v,r.back+=v}if(f>>>=b,l-=b,r.back+=b,E&64){e.msg="invalid distance code",r.mode=j;break}r.offset=S,r.extra=E&15,r.mode=ff;case ff: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=j;break}r.mode=cf;case cf: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=j;break}u>r.wnext?(u-=r.wnext,p=r.wsize-u):p=r.wnext-u,u>r.length&&(u=r.length),g=r.window}else g=i,p=o-r.offset,u=r.length;u>c&&(u=c),c-=u,r.length-=u;do i[o++]=g[p++];while(--u);r.length===0&&(r.mode=Ar);break;case lf:if(c===0)break e;i[o++]=r.length,c--,r.mode=Ar;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?H(r.check,i,h,o-h):mi(r.check,i,h,o-h)),h=c,(r.flags?f:df(f))!==r.check){e.msg="incorrect data check",r.mode=j;break}f=0,l=0}r.mode=uf;case uf: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=j;break}f=0,l=0}r.mode=hf;case hf:x=id;break e;case j:x=od;break e;case cd:return sd;case ld: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<j&&(r.mode<Ii||t!==$s))&&wd(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?H(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===Sr||r.mode===Pi?256:0),(d===0&&h===0||t===$s)&&x===Zt&&(x=fd),x}function bd(e){if(!e||!e.state)return ze;var t=e.state;return t.window&&(t.window=null),e.state=null,Zt}var Fi=0,Et=1,kr=2,Ht=3,Rr=4,St=5,qt=6,Kt=7,gf=0,vf=1,wf=2,_f=3,ji=4,bf=5,md=6,Or=0,mf=1,xf=2,xd=-1,Ed=-2,Sd=-3,Ef=-5,Ad=0,kd=1,Rd=9,Od=-1,Td=1,Pd=2,Id=3,Cd=4,Dd=0,Fd=0,jd=1,Md=2,Sf=8;function ce(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}ce.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===Rr)&&(this.windowBits+=16),this.mode===Kt&&(this.windowBits+=32),(this.mode===St||this.mode===qt)&&(this.windowBits=-this.windowBits),this.strm=new th;var a;switch(this.mode){case Et:case Ht:case St:a=Wh(this.strm,this.level,Sf,this.windowBits,this.memLevel,this.strategy);break;case kr:case Rr:case qt:case Kt:a=gd(this.strm,this.windowBits);break;default:throw new Error("Unknown mode "+this.mode)}if(a!==Or){this._error(a);return}this.write_in_progress=!1,this.init_done=!0},ce.prototype.params=function(){throw new Error("deflateParams Not supported")},ce.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")},ce.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 Ld(e,t){for(var r=0;r<e.length;r++)this[t+r]=e[r]}ce.prototype.writeSync=function(e,t,r,n,i,a,o){return this._writeCheck(),this._write(e,t,r,n,i,a,o)},ce.prototype._write=function(e,t,r,n,i,a,o){if(this.write_in_progress=!0,e!==gf&&e!==vf&&e!==wf&&e!==_f&&e!==ji&&e!==bf)throw new Error("Invalid flush value");t==null&&(t=new y(0),n=0,r=0),i._set?i.set=i._set:i.set=Ld;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 Ht:case St:c=Vh(s,e);break;case Kt:case kr:case Rr:case qt:c=_d(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]},ce.prototype._checkError=function(e,t,r){switch(e){case Or:case Ef:if(t.avail_out!==0&&r===ji)return!1;break;case mf:break;case xf:return!1;default:return!1}return!0},ce.prototype.close=function(){if(this.write_in_progress){this.pending_close=!0;return}this.pending_close=!1,this.mode===Et||this.mode===Ht||this.mode===St?Gh(this.strm):bd(this.strm),this.mode=Fi};var Tr;ce.prototype.reset=function(){switch(this.mode){case Et:case St:Tr=Fs(this.strm);break;case kr:case qt:Tr=pf(this.strm);break}Tr!==Or&&this._error(Tr)},ce.prototype._error=function(e){this.onerror(ss[e]+": "+this.strm.msg,e),this.write_in_progress=!1,this.pending_close&&this.close()};var Af=Object.freeze({__proto__:null,DEFLATE:Et,DEFLATERAW:St,GUNZIP:Rr,GZIP:Ht,INFLATE:kr,INFLATERAW:qt,NONE:Fi,UNZIP:Kt,Z_BEST_COMPRESSION:Rd,Z_BEST_SPEED:kd,Z_BINARY:Fd,Z_BLOCK:bf,Z_BUF_ERROR:Ef,Z_DATA_ERROR:Sd,Z_DEFAULT_COMPRESSION:Od,Z_DEFAULT_STRATEGY:Dd,Z_DEFLATED:Sf,Z_ERRNO:xd,Z_FILTERED:Td,Z_FINISH:ji,Z_FIXED:Cd,Z_FULL_FLUSH:_f,Z_HUFFMAN_ONLY:Pd,Z_NEED_DICT:xf,Z_NO_COMPRESSION:Ad,Z_NO_FLUSH:gf,Z_OK:Or,Z_PARTIAL_FLUSH:vf,Z_RLE:Id,Z_STREAM_END:mf,Z_STREAM_ERROR:Ed,Z_SYNC_FLUSH:wf,Z_TEXT:jd,Z_TREES:md,Z_UNKNOWN:Md,Zlib:ce});function Nd(e,t){if(!e)throw new Error(t)}var m={};Object.keys(Af).forEach(function(e){m[e]=Af[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 Bd(e){return new tt(e)}function Ud(e){return new rt(e)}function $d(e){return new at(e)}function zd(e){return new ot(e)}function Zd(e){return new nt(e)}function Hd(e){return new it(e)}function qd(e){return new st(e)}function Kd(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new tt(t),e,r)}function Wd(e,t){return et(new tt(t),e)}function Vd(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new nt(t),e,r)}function Gd(e,t){return et(new nt(t),e)}function Yd(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new at(t),e,r)}function Jd(e,t){return et(new at(t),e)}function Xd(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new st(t),e,r)}function Qd(e,t){return et(new st(t),e)}function ep(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new rt(t),e,r)}function tp(e,t){return et(new rt(t),e)}function rp(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new it(t),e,r)}function np(e,t){return et(new it(t),e)}function ip(e,t,r){return typeof t=="function"&&(r=t,t={}),Qe(new ot(t),e,r)}function ap(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);M.call(this,e,m.DEFLATE)}function rt(e){if(!(this instanceof rt))return new rt(e);M.call(this,e,m.INFLATE)}function nt(e){if(!(this instanceof nt))return new nt(e);M.call(this,e,m.GZIP)}function it(e){if(!(this instanceof it))return new it(e);M.call(this,e,m.GUNZIP)}function at(e){if(!(this instanceof at))return new at(e);M.call(this,e,m.DEFLATERAW)}function ot(e){if(!(this instanceof ot))return new ot(e);M.call(this,e,m.INFLATERAW)}function st(e){if(!(this instanceof st))return new st(e);M.call(this,e,m.UNZIP)}function M(e,t){if(this._opts=e=e||{},this._chunkSize=e.chunkSize||m.Z_DEFAULT_CHUNK,ne.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)}V(M,ne),M.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)},M.prototype.reset=function(){return this._binding.reset()},M.prototype._flush=function(e){this._transform(new y(0),"",e)},M.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)},M.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")})}},M.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)},M.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(g){l=g});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(g,w){if(!o._hadError){var b=i-w;if(Nd(b>=0,"have should not go down"),b>0){var E=o._buffer.slice(o._offset,o._offset+b);o._offset+=b,s?o.push(E):(c.push(E),f+=E.length)}if((w===0||o._offset>=o._chunkSize)&&(i=o._chunkSize,o._offset=0,o._buffer=new y(o._chunkSize)),w===0){if(a+=n-g,n=g,!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()}}},V(tt,M),V(rt,M),V(nt,M),V(it,M),V(at,M),V(ot,M),V(st,M);var kf={codes:Wt,createDeflate:Bd,createInflate:Ud,createDeflateRaw:$d,createInflateRaw:zd,createGzip:Zd,createGunzip:Hd,createUnzip:qd,deflate:Kd,deflateSync:Wd,gzip:Vd,gzipSync:Gd,deflateRaw:Yd,deflateRawSync:Jd,unzip:Xd,unzipSync:Qd,inflate:ep,inflateSync:tp,gunzip:rp,gunzipSync:np,inflateRaw:ip,inflateRawSync:ap,Deflate:tt,Inflate:rt,Gzip:nt,Gunzip:it,DeflateRaw:at,InflateRaw:ot,Unzip:st,Zlib:M};class Rf 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=kf.gzipSync(n).toString("base64"),this.client.putObject({key:be(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(be(this.keyPrefix,t));let n=await It(r);return n=Buffer.from(n,"base64"),n=kf.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(be(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 Of 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 op={setup(e){},start(){},stop(){}},sp={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 fp extends Of{constructor(t={}){super(),this.driver=t.driver}async setup(t){this.database=t,this.driver||(this.driver=new Rf({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=be(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=be(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=fp,P.Client=ta,P.ConnectionString=ea,P.CostsPlugin=sp,P.Database=os,P.ErrorMap=Ji,P.InvalidResourceItem=Jt,P.MemoryCache=eh,P.MissingMetadata=Gi,P.NoSuchBucket=Wi,P.NoSuchKey=Ur,P.NotFound=Vi,P.Plugin=Of,P.PluginObject=op,P.ResourceIdsPageReader=Qo,P.ResourceIdsReader=Xo,P.ResourceReader=es,P.ResourceWriter=ts,P.S3Cache=Rf,P.S3_DEFAULT_ENDPOINT=Qi,P.S3_DEFAULT_REGION=Xi,P.S3db=Qu,P.UnknownError=Yi,P.Validator=so,P.ValidatorManager=fo,P.decrypt=na,P.encrypt=$r,P.sha256=ra,P.streamToString=It,P}({},nanoid,lodashEs,promisePool,clientS3,crypto,flat,FastestValidator,web);